|
|
¶î¡£¡£¡£Íü¼ÇÉÏ´«ÎļþÁË~
¸ãÁ˺ܾã¬ÉÏ´«²»Á˰¡~
ÎÒ°Ñ´úÂëÌùÔÚÕâÀïÀ²~
ÎļþÓë´¦Àí³ÌÐò£¬ÎļþÃûΪdataeigenval£¬ÎļþÃû²»Òª¸ã´íÁ˰¡£¬´ý»á¶ùÒªµ÷Óõģ¡£¡£¡
clc;
flag = 0;
ef=input('ÇëÊäÈë·ÑÃ×Äܼ¶:');
[filename path] = uigetfile('*.*','Ñ¡ÔñEIGENVALÎļþ');
if filename == 0
disp('ÇëÑ¡ÔñEIGENVALÎļþ£¡');
flag = 1;
return;
end
files = [path filename];
file = fopen(files);
if file == -1
disp('Îļþ´ò¿ªÊ§°Ü£¡£¡£¡');
return;
end
temp = fgetl(file);
temp = str2num(temp);
ispin = temp(4);
for i=1:4
fgetl(file);
end
temp = fgetl(file);
temp = str2num(temp);
nn = temp(1);
nk = temp(2);
nbands = temp(3);
e=zeros(nk,nbands);
k=zeros(nk,3);
if ispin==2
for i=1:nk
fgetl(file);
temp = fgetl(file);
temp = str2num(temp);
for j=1:3
k(i,j)=temp(j);
end
for j=1:nbands
temp = fgetl(file);
temp = str2num(temp);
eup(i,j)=temp(2);
edn(i,j)=temp(3);
end
end
% temp = fgetl(file);
% temp = str2num(temp);
% for n=1:nbands
% e(i,n)=temp(n);
% end
else
for i=1:nk
fgetl(file);
temp = fgetl(file);
temp = str2num(temp);
for j=1:3
k(i,j)=temp(j);
end
for j=1:nbands
temp = fgetl(file);
temp = str2num(temp);
e(i,j)=temp(2);
end
end
end
fclose(file);
file2 = fopen('bnd.dat','w');
for j=1:nbands
dk = 0;
for i=1:nk
if i==1
k0 = k(i, ;
end
a = k(i, -k0;
dk = dk+sqrt(dot(a,a));
if ispin==2
fprintf(file2,'%f %f %f\n',dk,eup(i,j)-ef,edn(i,j)-ef);
else
fprintf(file2,'%f %f\n',dk,e(i,j)-ef);
end
k0=k(i, ;
end
fprintf(file2,'\n');
end
fclose(file2);
clear a ans dk e ef file file2 i ispin j k k0 nn temp
×÷ͼ³ÌÐò£¬²åÖµ·¨~
ÎļþÃû£ºeigenvaluesman
clc;
dataeigenval;%µ÷ÓÃdataeigenval£¬Êý¾ÝÔ¤´¦Àí
if flag == 1
return;
end
X=load('bnd.dat');%¶ÁÈ¡dataeigenvlaÖвúÉúµÄÊý¾Ý£¬Ò²¾ÍÊÇKµã¸úÄÜÁ¿µÄÊý¾Ý£¬¿ÉÓÃtxtÎļþ³ÌÐò´ò¿ª~
xi=X(1,1) X(nk,1)-X(1,1))/200:X(nk,1);
figure;
for i=1:nbands
yi=interp1(X((i-1)*nk+1:i*nk,1),X((i-1)*nk+1:i*nk,2),xi,'spline');
plot(X((i-1)*nk+1:i*nk,1),X((i-1)*nk+1:i*nk,2),'.',xi,yi,'linewidth',1)
hold on;
end
title('The Bands');
xlabel('K Points');
ylabel('Energy(eV)');
ͻȻ·¢ÏÖͼƬÉÏ´«´íÎóÁËÒ»ÕÅ£¬ÔÎËÀ~
²¹ÉÏÁË~
![]()
ÔÙ²¹³äÏ£¬³ÌÐòÖÐµÄ £¬ÔÚ¸´ÖƵ½´úÂëÖÐÊÇðºÅ¼ÓÉÏ×óСÀ¨ºÅ£¬ ÊÇðºÅ¼ÓÓÒСÀ¨ºÅ£¬ÕâÊÇÍøÒ³´úÂëת»»³åÍ»ÁË~ÁíÍ⣬ÓÐÎÊÌâ¿ÉÒÔÎÊÎÒ~
[ Last edited by fdd096030079 on 2012-12-3 at 09:45 ] |
|