结论: 自能修正可以定性解释Gap
第一步:计算一个平行四边形区域的能谱
第二步:沿着高对称性计算能带:
clc
clear
kx_mesh = load('KX.grd');
ky_mesh = load('KY.grd');
band_d = load('BAND.B9.grd');
band_p = load('BAND.B8.grd');
n = length(band_d);
Ed_line = band_d(1:n/2,1);
Ep_line = band_p(1:n/2,1);
plot(Ed_line);
plot(Ep_line);
使用自能展开计算谱函数:
clc
clear
kx_mesh = load('KX.grd');
ky_mesh = load('KY.grd');
band_d = load('BAND.B9.grd');
band_p = load('BAND.B8.grd');
Ed_line = band_d(1:length(band_d)/2,1);
Ep_line = band_p(1:length(band_p)/2,1);
nk = 500;
k = linspace(1,length(band_d)/2,nk);
Ed = interp1(1:length(band_d)/2,Ed_line,k,'spline');
Ep = interp1(1:length(band_p)/2,Ep_line,k,'spline');
nw = 1000;
%kx = linspace(1:length(band_d)/2,nw);
w = linspace(-1,0.2,nw);
Gammar1 = 0.01;
Gammar2 = 0.01;
delta = 0.04;
Ak_d = zeros(nw,nk);
Ak_p = zeros(nw,nk);
for i=1:nw
for j=1:nk
sigma_d = -1i*Gammar1+delta*delta/(w(i)+Ed(j)+1i*Gammar2);
sigma_p = -1i*Gammar1+delta*delta/(w(i)+Ep(j)+1i*Gammar2);
Ak_d(i,j) = imag(sigma_d)/((w(i)-Ed(j)-real(sigma_d))^2+imag(sigma_d)^2);
Ak_p(i,j) = imag(sigma_p)/((w(i)-Ep(j)-real(sigma_d))^2+imag(sigma_d)^2);
end
end
[X,Y] = meshgrid(k,w);
mesh(X,Y,-Ak_d);
hold on
mesh(X,Y,-Ak_p);
M和K点的Gap也能拟合出来