在一个矩形区域,求解Tight-Bindind能带, 然后在第一布里渊区内,使用matlib函数,截取等高线即可。
function H=Hamiltonian_TaS2_k(kx,ky)
e1 = 1.4052;
e2 = 1.3440;
t0 = -0.1046;
t11 = 0.2406;
t22 = -0.5320;
t2 = -0.3701;
rt3 = sqrt(3);
a = 0.5*kx;
b = rt3/2*ky;
h0 = 2*t0*(cos(2*a)+2*cos(a)*cos(b))+e1;
h1 = -2*rt3*t2*sin(a)*sin(b);
h2 = 2*t2*(cos(2*a)-cos(a)*cos(b));
h11 = 2*t11*cos(2*a)+(t11+3*t22)*cos(a)*cos(b)+e2;
h22 = 2*t22*cos(2*a)+(3*t11+t22)*cos(a)*cos(b)+e2;
h12 = rt3*(t22-t11)*sin(a)*sin(b);
H = [h0,h1,h2;h1',h11,h12;h2',h12',h22];
dk = 0.1;
Es =[];
for kx=-2*pi:dk:2*pi
for ky = -2*pi:dk:2*pi
Hk=Hamiltonian_TaS2_k(kx,ky);
[~