24小时热门版块排行榜    

查看: 1215  |  回复: 3

fdd096030079

新虫 (小有名气)

[交流] vasp_bnd的Matlab改进版,更方便~ 已有1人参与

今天看到一个帖子是关于vasp_bnd的matlab版本,我看了下,里面不能直接输入费米能,需要手动修改;另外就是需要把文件放到Matlab的同一个工作目录下才能运行,我这个程序只需要通过一个对话框来选择文件即可~需要强调的是,我这个程序在绘图时,利用了数值插值来绘图,画出来的图像更光滑~
我这个程序,是自己前几个星期写的,当时没想到这个也可以分享,有什么需要改进的,还望大家向我提出~
另外,我想说明的是,我这个是参照网上一个Fortran的程序改编过来的,不知为什么,自旋的还不能处理,谅解啊~
运行程序后,要求输入费米能级:

之后,弹出一个对话框,请选择EIGENVAL文件

进行插值绘图

对于K点较少的能带图,插值出来的图像很光滑的,K点较多,看起来会有点杂,当然自己可以对绘图部分进行修改~
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chuzhaonan

铁杆木虫 (著名写手)

第一性原理计算大师

资源在哪
玩第一性原理就如看大片
2楼2012-12-02 13:31:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fdd096030079

新虫 (小有名气)

额。。。忘记上传文件了~
搞了很久,上传不了啊~
我把代码贴在这里啦~
文件与处理程序,文件名为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 ]
3楼2012-12-03 09:21:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

171713294

木虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
麻烦楼主传一下,分享分享呗
坚持,不放弃
4楼2012-12-03 09:33:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fdd096030079 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料专硕306英一数二 +8 z1z2z3879 2026-03-16 10/500 2026-03-18 00:01 by 星空星月
[考研] 070300化学319求调剂 +4 锦鲤0909 2026-03-17 4/200 2026-03-17 18:21 by 重科小霸王
[考研] 材料工程专硕调剂 +5 204818@lcx 2026-03-17 5/250 2026-03-17 17:27 by Little-xue
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +6 大火山小火山 2026-03-16 8/400 2026-03-17 15:05 by 无懈可击111
[考研] 考研调剂 +3 淇ya_~ 2026-03-17 5/250 2026-03-17 09:25 by Winj1e
[考研] 0703化学调剂,求各位老师收留 +8 秋有木北 2026-03-14 8/400 2026-03-16 15:21 by 哦哦123
[考研] 0856求调剂 +3 刘梦微 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
[考博] 东华理工大学化材专业26届硕士博士申请 +6 zlingli 2026-03-13 6/300 2026-03-15 20:00 by ryzcf
[考研] 080500,材料学硕302分求调剂学校 +4 初识可乐 2026-03-14 5/250 2026-03-14 21:08 by peike
[考研] 255求调剂 +3 李嘉慧, 2026-03-12 4/200 2026-03-14 16:58 by 有只狸奴
[考研] 297求调剂 +4 学海漂泊 2026-03-13 4/200 2026-03-14 11:51 by 热情沙漠
[考研] 材料080500调剂求收留 +3 一颗meteor 2026-03-13 3/150 2026-03-14 10:54 by peike
[考研] 331求调剂(0703有机化学 +5 ZY-05 2026-03-13 6/300 2026-03-14 10:51 by Jy?
[考研] 招收0805(材料)调剂 +3 18595523086 2026-03-13 3/150 2026-03-14 00:33 by 123%、
[考研] 311求调剂 +3 冬十三 2026-03-13 3/150 2026-03-13 20:41 by JourneyLucky
[考研] 求调剂 +5 一定有学上- 2026-03-12 5/250 2026-03-13 18:31 by ms629
[考研] 307求调剂 +5 超级伊昂大王 2026-03-12 5/250 2026-03-13 15:56 by 棒棒球手
[考研] 085600材料与化工 309分请求调剂 +7 dtdxzxx 2026-03-12 8/400 2026-03-13 14:43 by jxchenghu
[考研] 289求调剂 +3 李政莹 2026-03-12 3/150 2026-03-13 11:02 by 求调剂zz
[考研] 081200-11408-276学硕求调剂 +3 崔wj 2026-03-12 4/200 2026-03-12 19:33 by 求调剂zz
信息提示
请填处理意见