跳至主要内容

VASP的能带计算与绘图


使用的软件:VASP, Origin, EidtPlus
辅助分析计算的小程序:gk.x, pbnf.x

一 能带计算

1 结构优化

建立opt文件夹,编辑以下文件:

INCAR

SYSTEM=x # x为注释名
ISTART=0
ENCUT=350
EDIFF=1E-5
IBRION=2
POTIM=0.25
NSW=100
EDIFFG=-1E-2
ISMEAR=0
SIGMA=0.05
PREC=ACCURATE
ISIF=2
NPAR=4
LWAVE=FALSE
LCHARG=FALSE
LREAL=Auto
IALGO=48
ISYM=0

KPOINTS

auto
0
Monkhorst
x y z # x y z 为K点选取
0 0 0

POSCAR

导入在 Materials Studio 中转换的坐标信息

POTCAR

导入赝势库中的原子信息,例:GeS
cat ~/xxx/PBE/Ge/POTCAR > POTCAR # ~/xxx 为赝势库存放路径
cat ~/xxx/PBE/S/POTCAR >> POTCAR # 原子赝势导入顺序以POSCAR中为准
如果是集群,还需提交作业的脚本 vasp.job 如下
#!/bin/bash
#PBS -N vasp
#PBS -o job.log
#PBS -e job.err
#PBS -q batch
#PBS -l walltime=100:00:00
#PBS -l nodes=1:ppn=8

source ~/.bashrc
cd ~/xxx # ~/xxx 为文件路径
mpirun -np 8 vasp > out </dev/null
提交作业
qsub vasp.job
计算结束后,cat out 查看体系是否收敛,如收敛则进入下一步计算。

2 静态自洽计算

在 opt 文件夹下建立 scf 文件夹,编辑以下文件

INCAR

SYSTEM=x
ISTART=0
ENCUT=350
EDIFF=1E-5
IBRION=2
POTIM=0.25
NSW=0 # 修改
EDIFFG=-1E-2
ISMEAR=0
SIGMA=0.05
PREC=ACCURATE
ISIF=2
NPAR=4
#LWAVE=FALSE # 修改
#LCHARG=FALSE # 修改
LREAL=Auto
#IALGO=48 # 修改
ISYM=0

KPOINTS

auto
0
Monkhorst
x y z # 较opt选取,k值增大
0 0 0

POSCAR和POTCAT

cp ../CONTCAR POSCAR
cp ../POTCAR .
提交作业,产生WAVECAR进行下一步计算

3 能带计算

在 opt 文件夹下拷贝建立 band 文件夹
cp -rf scf band
编辑 band 下文件

INCAR

SYSTEM=x
ISTART=1 # 修改
ICHARG=11 # 从CHGCAR中读入电荷分布,并且在计算中保持不变
LORBIT=10 # 增加
ENCUT=350
EDIFF=1E-5
IBRION=2
POTIM=0.25
NSW=0
EDIFFG=-1E-2
ISMEAR=0
SIGMA=0.05
PREC=ACCURATE
ISIF=2
NPAR=4
LWAVE=FALSE # 修改
#LCHARG=FALSE
LREAL=Auto
#IALGO=48
ISYM=0

KPOINTS

1. 设置环境变量

vi ~/.bashrc
alias gk="~/software/ktool/gk.x"
alias pb="~/software/ktool/pbnf.x"
alias f="grep E-fermi OUTCAR"
alias lv="grep -A3 'lattice vectors' OUTCAR"
source ~/.bashrc

2. 编辑syml文件,例:

5 # 高对称点数目
20 20 20 20 # 高对称点间隔取点数目
G 0.0    0.0    0.0
M 0.5    0.0    0.0
K 0.5    0.0    0.5
Z 0.0    0.0    0.5
G 0.0    0.0    0.0 # 高对称点选取
    12.840000153  0.000000000  0.000000000     0.077881619  0.000000000  0.000000000
     0.000000000 10.406299591  0.000000000     0.000000000  0.096095638  0.000000000
     0.000000000  0.000000000 39.669998169     0.000000000  0.000000000  0.025207967 # 实坐标与虚坐标
-20.0 20.0 # 取值范围
-0.0460 # 费米能级
实坐标与虚坐标通过命令lv得到,费米能级通过命令f得到,高对称点可查阅参考文献选取。

4 KPOINTS的获取与编辑

输入命令gk获取KOINTS文件,若文件后有多行零,则删去,且第二行数据减去相应删去行数。
提交作业,计算结束后生成 EIGENVAL 文件,输入命令pb得到能带数据文件 bnd.dat 和 highk.dat,将数据导入Origin绘图。

二 能带绘图

将能带数据文件 bnd.dat 和 highk.dat 导入Origin, 前两列为 bnd.dat 数据,后两列为 highk.dat 数据,格式如图,可使用 EditPlus 进行数据编辑。

评论

此博客中的热门博文

vasp计算问题小结

本文转载自博主 一个人就是一个叠加态  ,有部分删减修改,文中对相关概念方法做了详细的总结,留坑待填… 1. 第一原理计算的一些心得 1. 第一性原理 第一性原理其实是包括基于密度泛函的从头算和基于Hartree-Fock自洽计算的从头算,前者以电子密度作为基本变量(霍亨伯格-科洪定理),通过求解Kohn-Sham方程,迭代自洽得到体系的基态电子密度,然后求体系的基态性质;后者则通过自洽求解Hartree-Fock方程,获得体系的波函数,求基态性质 2. 交换关联泛函 DFT中密度泛函的Functional, 包括LDA,GGA,杂化泛函等等 一般LDA为局域密度近似,在空间某点用均匀电子气密度作为交换关联泛函的唯一变量,多数为参数化的CA-PZ方案; GGA为广义梯度近似,不仅将电子密度作为交换关联泛函的变量,也考虑了密度的梯度为变量,包括PBE,PW,RPBE等方案,BLYP泛函也属于GGA; 还有一些杂化泛函,B3LYP等 3. 赝势 在处理计算体系中原子的电子态时,有两种方法,一种是考虑所有电子,叫做全电子法,比如WIEN2K中的FLAPW方法(线性缀加平面波);此外还有一种方法是只考虑价电子,而把芯电子和原子核构成离子实放在一起考虑,即赝势法,一般赝势法是选取一个截断半径,截断半径以内,波函数变化较平滑,和真实的不同,截断半径以外则和真实情况相同,而且赝势法得到的能量本征值和全电子法应该相同。 赝势包括模守恒和超软,模守恒较硬,一般需要较大的截断能,超软势则可以用较小的截断能即可。另外,模守恒势的散射特性和全电子相同,因此一般红外,拉曼等光谱的计算需要用模守恒势。 赝势的测试标准应是赝势与全电子法计算结果的匹配度 ,而不是赝势与实验结果的匹配度,因为和实验结果的匹配可能是偶然的。 4. 收敛测试 Ecut,也就是截断能,一般情况下,总能相对于不同Ecut做计算,当Ecut增大时总能变化不明显了即可;然而,在需要考虑体系应力时,还需对应力进行收敛测试,而且应力相对于Ecut的收敛要比总能更为苛刻,也就是某个截断能下总能已经收敛了,但应力未必收敛。 K-point,即K网格,一般金属需要较大的K网格,采用超晶胞时可以选用相对较小的K网格,但实际上还是要经过测试。 5. 磁性 一般何时考虑自旋

VASP的差分电荷密度计算及图像处理

使用的软件:VASP, VESTA, SshClient Definition 差分电荷密度 (deformation charge density) : 成键后的电荷密度与对应的点的原子电荷密度之差。通过差分电荷密度的计算和分析,可以清楚地得到在成键和成键电子耦合过程中的电荷移动以及成键极化方向等性质。 二次差分电荷密度 (difference charge density) :指同一个体系化学成分或者几何构型改变之后电荷的重新分布。 一 差分电荷密度计算 Charge density difference of system AB: ∆ρ = ρAB − ρA − ρB NOTE: AB, A, B 需放在相同大小的空间格子。 In calculation of the latter two quantities, the atomic positions are fixed as those they have in the AB system. Some NGX NGY NGZ 结构优化后 的自洽计算 mkdir AB mkdir A mkdir B INCAR file SYSTEM=X ISTART=0 ENCUT=350 EDIFF=1E-5 IBRION=-1 POTIM=0.25 NSW=0 # Only electronic-SC loops are performed EDIFFG=-1E-2 ISMEAR=0 SIGMA=0.05 PREC=ACCURATE ISIF=2 NPAR=4 #LWAVE=FALSE #LCHARG=FALSE # CHGCAR is written LREAL=Auto #IALGO=48 ISYM=0 NGX=x # 增加 NGY=y # 增加 NGZ=z # 增加 NGZ NGY NGZ 的获取:在结构优化的 OUTCAR 文件中搜索,设置环境变量后输入 ngx 获得 vi ~/.bashrc alias ngx="grep -A3 'NGX' OUTCAR" source ~/.bashrc POSCAR file cp opt/CONTCAR POSCAR A, B 各自保留优化后的 POSCAR