matlab 局域態密度電子密度的視覺化程式

2021-08-26 12:44:56 字數 1153 閱讀 7490

這個程式結合超胞能帶計算技巧,對局域態密度和電子密度進行視覺化

nx=30;  % 

ny=8; % 體系寬度(y方向的長度)

[x,y]=zigzag_graphene(nx,ny);

n=4*nx*ny; % 原子總數

xx=x(n/3+1:n*2/3,1); % 取出中間device區域的座標

yy=y(n/3+1:n*2/3,1); % 取出中間device區域的座標

%plot(x,y,'.','markersize',20)

t1=-2.7;

t2=0.0038/3/sqrt(3);

h=hamiltonian_nn_graphene(x,y,t1);

hsp=hamiltonian_haldane(x,y,sqrt(3),t2);

h=h+hsp;

n=length(h);

hdl=h(n/3+1:n*2/3,1:n/3);

hd=h(n/3+1:n*2/3,n/3+1:n*2/3);

hdr=h(n/3+1:n*2/3,n*2/3+1:n);

n = length(hd);

kx=3;

hk=hdl*exp(-1i*kx*nx/3)+hd+hdr*exp(1i*kx*nx/3);

[v,e]=eig(hk);

plot(diag(e))

ans=v(:,n/2);

local_density = v(:,n/2).*conj(v(:,n/2));

m = length(xx);

zs=0; % 總的局域電子密度

sigma=0.5; % 高斯函式的標準差

du=0.01; % x方向取樣間隔

dv=0.01; % y方向取樣間隔

u=min(xx)-0.5:du:max(xx)+0.5;

v=min(yy)-0.5:dv:max(yy)+0.5;

[x,y]=meshgrid(u,v);

for i=1:m

z=real(local_density(i))*exp(-((x-xx(i))/sigma).^2-((y-yy(i))/sigma).^2);

zs=z+zs;

endmesh(x,y,zs)

R 多元正態密度函式計算

r中計算多元正態密度函式可以使用mvtnorm包中的dmvnorm函式。dvnorm x,mu,sigma,log t f x為服從多元正態分佈的隨機向量 mu和sigma分別為多元正態均值和協方差陣 可以是對角陣或者非對角陣 log t時,對密度取自然對數 當x為維時,輸出結果與dnorm相同 可...

Matlab 概率密度函式

以下函式均是對應分布模型的概率密度函式 函式函式功能 y binopdf x,n,p 產生引數為n,p的二項分布,x為取值點,y為對應的值 y poisspdf x,lambda 泊松分布,引數為lambda y geopdf x,p 幾何分布,引數為p y unidpdf x,m 離散型均勻分布,...

用VASP求矽的電子態密度和能帶

1 生成4個輸入檔案 poscar potcar incar kpoints 2 優化晶格引數,求出能量最低所對應的晶格引數 3 固定晶格引數,求出能態密度 doscar 確定費公尺能量 4 修改kpoints和incar輸入檔案,固定電荷密度,做非自洽計算,得到輸出檔案eigenval 5 提取資...