通過代碼平移方法畫二維費米麪

以下代碼,通過平移的方法,將平行四邊形計算得到的費米麪平移爲六邊形費米麪,想要好看,還是需要手動調整

clc
clear 
kx_mesh = load('KX.grd');      
ky_mesh = load('KY.grd'); 
band_d = load('BAND.B9.grd');
band_p = load('BAND.B8.grd');
hold on

nx = length(kx_mesh);
ny = length(ky_mesh);
G1x = kx_mesh(nx,nx);
G1y = ky_mesh(nx,1);
G2x=0;
G2y=sqrt(G1x*G1x+G1y*G1y);

K1x = G1x;
K1y = ky_mesh(nx,nx);

M = [G1x/2,G1y/2];
%plot(M(1),M(2),'.','MarkerSize',20,'color','k')
ek = [K1x,K1y]/sqrt(K1x^2+K1y^2);
K = ek*sqrt(M(1)^2+M(2)^2)*2/sqrt(3);
%plot(K(1),K(2),'.','MarkerSize',20,'color','k');
a = sqrt(K(1)*K(1)+K(2)*K(2));
theta = linspace(0,2*pi,7);
Px = a*cos(theta);
Py = a*sin(theta);
P3x = Px + ones(1,7)*G1x;
P3y = Py + ones(1,7)*G1y;

G1=[G1x,G1y];
G2=[G2x,G2y];
q1 = 1/5*(2*G1+G2);
q2 = 1/5*(2*G2-G1);
plot(G1x,G1y,'.','MarkerSize',20,'color','r');
plot(q1(1)+G1x,q1(2)+G1y,'.','MarkerSize',20,'color','r');
plot(q2(1)+G1x,q2(2)+G1y,'.','MarkerSize',20,'color','r');
plot(G2(1)/4+G1x,G2(2)/4+G1y,'.','MarkerSize',20,'color','r');

%plot(Px,Py,'k-');
plot(P3x,P3y,'k-');

contour(kx_mesh,ky_mesh,band_d,[-0,-0],'ShowText','off');
contour(kx_mesh+G1x*ones(100,100),ky_mesh+G1y*ones(100,100),band_d,[-0,-0],'ShowText','off');
contour(kx_mesh-G2x*ones(100,100),ky_mesh-G2y*ones(100,100),band_d,[-0,-0],'ShowText','off');
contour(kx_mesh+(G1x-G2x)*ones(100,100),ky_mesh+(G1y-G2y)*ones(100,100),band_d,[-0,-0],'ShowText','off');

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章