cndaqiang Web Linux DFT

VASP输入文件总结

2018-01-21
cndaqiang
DFT
RSS

整理备查 vasp的manual值得一读
看资料遇到陌生的参数,查manual就好了
INCAR输入参数推荐苏长荣老师的vasp安装和使用说明(后面有索引可以直接查)和官方manual

说明

输入文件POSCAR,KPOINT,POTCAR,INCAR等,用#注释

POTCAR 赝势

产生

来源VASP官网提供
直接拼接赝库,顺序同POSCAR

cat POTCAR_AL POTCAR_N > POTCAR

说明

VASP赝势文件夹中包含两个压缩文件:potpaw_LDA和potpaw_PBE
potpaw_LDA ==> PAW, LDA
potpaw_PBE ==> PAW, GGA, PBE

  • 赝势的种类要一致
  • 赝势使用的泛函要与INCAR中选择的泛函一致(PBE的泛函要选择 PBE的赝势)
    即:POTCAR中的LEXCH与INCAR中GGA的设置对应
    LEXCH=CA(LDA赝势) GGA不设置 VOSKOWN不设置
    LEXCH=91(PW91赝势) GGA=91 VOSKOWN=1
    LEXCH=PE GGA=PE VOSKOWN不设置

ENMAX截断能

KPOINTS K点

是KPOINTS,不是KPOINT

  • 布里渊区K点采样方式
  • K点越多计算消耗的内存越大,在个人笔记本上计算时一定要先用小点的 K点数目试算一下,内存占用大容易死机

产生

自动

Automaticmesh  首行注释
0              0表示自动产生K点
M/G            M表示采用Monkhorst-Pack方法生成K点坐标,G表示一定会取到Γ点
K1 K2 K3       K-mesh取K1xK2xK3网格,
0 0 0            原点平移大小

bbs.推荐用G

  • K1 K2 K3的取值,使得K1xa=K2xb=K3xc,a,b,c为POSCAR中基失长度
  • 二维材料(c方向上只有一层原子)结构优化和自恰计算时K点可选取NxNx1

Line-mode(一般仅在计算能带结构时使用):

例:

k-pointsforMgO(100)(title) 注释
21             下面两个高对称K点之前插入的K点数目
Line-mode      L表示Line-mode
Rec           字母R打头表示为倒易空间坐标,否则为实空间的坐标)
0.0 0.0 0.0 !Γ   各高对称K点的以及权重
0.5 0.0 0.0 !Z
0.5 0.0 0.0 !Z
0.5 -0.5 0.0 !K
0.5 -0.5 0.0 !K
0.0 -0.5 0.0 !L
0.0 -0.5 0.0 !L
0.0 0.0 0.0 !Γ

高对称K点的选取:
可以参考High-throughput electronic band structure calculations: challenges and tools
小木虫-【原创】k点设置的学习心得
如六角晶格的高对称点
对应的KPOINTS文件

Line-mode        #注释
60               #每两个高对称点间产生的K点数
L                #使用Line-mode
Rec              #使用倒格点坐标
0 0 0            #G点/Γ点
-1/3 2/3 0       #M点
-1/3 2/3 0       #M点
1/2 0 0          #K点
1/2 0 0          #K点
0 0 0            #G点/Γ点

LH师兄.自己的结构可能因为角度等不同和参考文献中的K点有些不同,可以使用POSCAR->VESTA->cif后导入MS,使用MS的Tools/Brillouin Zone Path功能识别高对称K点,然后对比上面参考文献中的方法,手动添加K点坐标看是否符合自己的结构,如图CoCl2识别的加上我添加的K(0.333 0.333 0)

说明

  • 只要原胞时一样的,超胞如何构建,高对称点坐标不变

手动定义各K点的坐标(一般仅在计算HSE能带结构时使用):

说明

bbs.与结构优化相比,算DOS的时候,需要用到更多的K点数目,这是因为K点越多,画出来的DOS图质量越高
一般来说,K * a = 45 左右之间完全可以满足要求

POSCAR 晶格参数原子位置

产生

  • 文献
  • MS建模-cif-VESTA-POSCAR
  • 数据网站

格式

必须前面有Selective dynamics之后的T、F才会生效

AlN bulk (Title) 首行注释
1.0   缩放系数
3.11  0.00  0.00    第一个平移矢量a方向
-1.56   2.69  0.00  第二个平移矢量b方向
0.00    0.00  4.98  第三个平移矢量c方向
Al    N 原子种类
2   2   单胞内原子数目
Selective dynamics [可选]有对构型(原子坐标)进行部分优化,没有,则全优化
Direct  Direct分数坐标,Car实际坐标单位为埃
0.667   0.333     0.000    T   T   T  T表示对此方向优化,F表示对此方向不优化
0.333   0.667     0.500    T   T   T
0.667   0.333     0.382    T   T   T
0.333   0.667     0.882    F   F   F

INCAR

计算的方式和内容
可以内容为空保持默认,但不能没有该文件

system=xxx

注释

ISTART ICHARG INIWAV

  • ISTARTT初始波函数产生方法
    默认存在WAVECAR时取1,否则0
    ISTART=0,根据INIWAV决定初始波函数的产生方法
    ISTART=1,波函数从WAVECAR文件读入
  • INIWAV初始波函数产生方法
    尽在ISTARTT=0生效
    0 凝胶波函数
    1[默认]随机数
  • ICHAGE初始电荷密度产生方法
    默认ISTART=0取2否则取0
    0从初始波函数计算
    1从CHGCAR(上次输出的电荷密度)读入
    +10非自洽运算,电荷密度在计算过程中保持不变
    如1+10=11时,电荷密度保持CHGCAR中的值不变,适用于给定电荷密度求能级本征值(计算能带,输出EIGENVAL文件)和态密度(DOS,输出DOSCAR文件),用于能带计算

初次计算

ISTART=0 ICHARG=2

程序终止,恢复计算

ISTART=1 ICHARG=1

计算能带最后进行自洽时

ISTART=1 ICHARG=11

EDIFF EDIFFG

EDIFF,EDIFFG 是控制收敛标准的两个参数。

  • EDIFF 电子自洽过程(单个离子步内),能量的差别取值为1E-4或者1E-5即可
  • EDIFFG 结构优化的过程
    力作为收敛标准,此时EDIFFG为负值。一般来说取值在-0.01到-0.05之间
    在做NEB过渡态计算时,使用VTST的优化算法,EDIFFG需要取负值
    使用能量作为标准:此时,EDIFFG 为正值,一般为0.001-0.0001
    如EDIFFG=-0.03或EDIFF=0.001,常EDIFF=1E-5,EDIFFG=1E-4,EDIFFG=-0.02

ISPIN MAGMOM

由体系决定
ISPIN=0(默认) 不考虑自旋
ISPIN=2 考虑自旋,电子分为α,β电子计算计算,考虑磁性
当ISPIN=2时,可指定体系的初始磁矩MAGMOM

  • 格式
    MAGMOM=原子种类1*自旋磁矩 原子种类2*自旋磁矩 ...
    
  • 对于简单体系来说,MAGMOM可以采用默认值;
  • MAGMOM设置的时候,初始值不要求与实验值完全一致,一般取大些(1.5倍)比较好

IBRION NFREE NSW ISIF

如果体系不收敛,或者计算不符合物理图像时,进行结构优化,调整IBRION的值

  • IBRION=3:你的初始结构很差的时候;
  • IBRION=2:共轭梯度算法,很可靠的一个选择,一般来说都用它。(用于结构优化)
  • IBRION=1:BFGS准牛顿方法(quasi-Newton RMM-DIIS),用于小范围内稳定结构的搜索
  • IBRION=5,6等参考VASP_manual配合NFREE,POTIM用于计算震动频率,IBRION = 6和ISIF=3 用于计算弹性常数等
    NFREE 确定每个方向和离子使用多少个位移,POTIM确定步长。如果在输入文件中提供的值太大,则步长POTIM默认为0.015(VASP.5.1)

NSW 控制几何结构优化的步数
默认为0不进行优化,所以结构优化时必须设置

  • NSW=最大优化步数
    一般来说,简单的体系200步内就可以正常结束。初始结构很差,或者设置了很严格的收敛标准,可取NSW=500或者更大
  • 输出文件OSZICAR可以看到最终优化的步数,若优化步数小于NSW值表明达到收敛标准,- 若优化步数大于等于NSW值,可能
    1. NSW设置的偏小;
    2. 初始结构不合理,计算需要更多的离子驰豫过程;
    3. 设置的收敛标准太严格, 比如:-0.01 或者 -0.001;
    4. 结构很复杂,每一离子步中的电子步骤收敛很困难
    5. 刚好收敛,可以通过OUTCAR中是否有reached required accuracy - stopping structural energy minimisation判断

ISIF控制离子运动中计算应力张量,IBRION=0时默认0,其他情况默认2,常用2,3

NELM

对应NSW为结构优化步数,NELM为电子优化步数,默认为60
OSZICAR中,DAV: 后面跟着电子计算步数,若达到60停止计算,结果基本上无不符合物理规律

优化总结:

  • 电子步(SCF): EDIFF精度 <====> NELM计算步数
  • 离子步(结构优化):EDIFFG 精度<====> NSW计算步数

bbs.如果达到最大优化步数60

  • 1.如果第一个离子步中:SCF(也就是电子步)的计算不收敛,尝试下增加NELM的值;可以疯狂些: NELM = 500或者更高;

  • 2.检查下初始结构是否合理(比如与实验值差太大,原子距离过小),如果合理,且加大NELM后依然不收敛,尝试下改变AMIX,BMIX,官网推荐的参数如下:

  • 3.第一个离子步收敛了,后面的不收敛,能量变的极大,首先应该想到的是去检查结构,一般在结构不合理的时候会出现类似的情况;调整结构再提交任务。
    第一直觉是去看结构而不是想着调节参数去怎么解决这个错误!!!
    结构不合适,调大了也没用

POTIM

在结构优化IBRION=2时,尝试移动原子的位置大小有POTIM决定
默认值是0.50,可能造成过度移动最后没法矫正回来,可以设置的参数小一些如0.2
初始结构不合理时,缩小POTIM的值可以降低过渡优化结果不符的可能

搭建好初始模型才是最省心的

ENCUT 平面波截断能

例,单位eV

ENCUT=250

侯:推荐手动输入
bbs.计算多个元素进行对比时,建议统一固定一个值 bbs.如果计算时体积发生了变化,我们需要增加ENCUT的值,比如说:
ENCUT = 1.3 * max(ENMAX) 即取POTCAR中ENMAX最大元素的ENMAX值。

PREC计算精度

决定ENCUT,FFT的网格大小和ROPT的默认值

PREC=Low|Medium|High|Normal|Accurate

GGA VOSKOWN

POTCAR中的LEXCH与INCAR中GGA的设置对应
LEXCH=CA(LDA赝势) GGA不设置 VOSKOWN不设置
LEXCH=91(PW91赝势) GGA=91 VOSKOWN=1
LEXCH=PE GGA=PE VOSKOWN不设置

ISMEAR SIGMA

ISMEAR

ISMEAR用来确定如何确定电子的部分占有数。

  • ISMEAR = -5,表示采用Blochl修正的四面体方法
    侯(侯柱峰老师).进行任何的静态计算或态密度计算,且k点数目大于4时,取ISMEAR = -5
    bbs.对所有体系,更加精确的时候用-5
    在DOS能带计算中,使用ISMEAR=-5画出的图形更平滑
    结构优化时不能使用ISMEAR=-5,计算DOS,结构保持不变可以使用ISMEAR=-5(半导体或绝缘体的计算(不论是静态还是结构优化)K点大于4,可取ISMEAR = -5)
  • ISMEAR = -4,表示采用四面体方法,但是没有Blochl修正。
  • ISMEAR = -1,表示采用Fermi-Dirac smearing方法。
  • ISMEAR = 0,表示采用Gaussian smearing方法。
    原胞较大而k点数目较少(小于4个)时,取ISMEAR = 0,SIGMA取小一些如0.05
    一般说来,无论是对何种体系,进行何种性质的计算,采用ISMEAR =0,并选择一个合适的SIGMA值都能得到合理的结果
    bbs. 对于半导体和绝缘体体系,K点小于4, 一般用0
    对于分子,原子体系(也就是你把分子或者原子放到一个box里面),K点只有一个Γ点取ISMEAR=0,SIGMA必须要用很小的值,如0.01
  • ISMEAR = N,表示采用N阶Methfessel-Paxton smearing方法,N为正整数


【整理自好友lpf文章】用VASP计算能量态密度(DOS)和能带文中提到
非自洽计算能带:金属用ISMEAR=1;半导体或绝缘体,用ISMEAR=0
计算DOS,用ISMEAR=-5更精确

bbs.使用ISMEAR=-5和较多K点可用于计算DOS,以下情况不能使用ISMEAR=-5

  • 模型很大=>K点少(小于4个)
  • 结构优化时不能取-5,(优化后计算DOS可设为-5)

bbs.不能使用ISMEAR=-5时

  • 增加K点(简单推荐)
  • 半导体绝缘体使用ISMEAR= 0(GS方法)(半导体绝缘体绝对不能大于0)
  • 金属,可以使用GS方法 ISMEAR = 0,也可以使用MP方法ISMEAR = 1, 2….N,一般来说,ISMEAR =0和 1 基本就可以了。(金属可以等于0,也可大于0)


bbs.对所有的体系四面体方法(ISMEAR = -5)不适合计算能带

SIGMA

SIGMA的取值和ISMEAR息息相关

  • ISMEAR = -5 (对于所有体系),SIGMA的值可以忽略,也可以不管(VASP会自动略过)
  • SIGMA的取值和KPOINTS密切相关,Kpoints确定之后,测试SIGMA取值合理性。标准是: grep ‘entropy T’ OUTCAR 得出的能量除以体系中原子的数目,小于0.001 eV 合格
  • 对于分子,原子体系(也就是你把分子或者原子放到一个box里面),K点只有一个Γ点取ISMEAR=0,SIGMA必须要用很小的值,如0.01
  • MP方法(ISMEAR=1..N):SIGMA取值太大,计算出来的能量可能不正确;SIGMA取值越小,计算越精确,需要的时间也就越多
    从经验上来说:对于金属体系,使用MP方法(ISMEAR=1..N)时,SIGMA= 0.10 足够了,官网给的参考值是0.20。

  • 对于高斯展宽Gaussian Smearing (ISMEAR = 0),
    对于大部分的体系都能得到理想的结果
    SIGMA取值比较大的时候会得到与MP方法相近的误差;但是误差多大,GS方法不可以得到,而MP方法可以。从这一点上来说,MP要比GS好些;
    使用GS方法的时候(ISMEAR=0),SIGMA的数值要测试下,保证grep "entropy T" OUTCAR |tail -1结果平均到每个原子上小于0.001 eV也就是1meV。不想测试,对于金属体系:SIGMA=0.05是一个很安全的选择
    对于半导体和绝缘体,SIGMA取值要小,SIGMA = 0.01 – 0.05 之间也是很安全的。

计算DOS的时候,KPOINTS设置的要大一些,ISMEAR要用-5。
Kpoints因计算硬件限制不能设置的很大,数目小于3的时候,

  • 对于金属,非金属体系均可以使用ISMEAR=0,SIGMA的数值需要测试一下,一般来说在0.01-0.05之间足够了。
  • 金属体系还可以用ISMEAR=1..N,官网建议SIGMA为0.20,太小的SIGMA值对收敛会产生影响。使用0.01-0.10的数值都是很安全的选择。

非DOS计算的时候,对于金属来说ISMEAR不能等于 -5,优先使用ISMEAR= 1。非金属来说(半导体和绝缘体),不能 > 0 。对于所有的体系, ISMEAR= 0 则是一个很安全的选择,但SIGMA的数值要测试一下。

在进行能带计算时ISMEAR,SIGMA保持默认就好

NCORE NPAR

Learn VASP The Hard Way (Ex21):谁偷走的我的机时?(五)看完还是不清楚,仅确定
NCORE:控制多少个核同时计算;(?单个节点上的核)
NPAR:如何把计算任务分配到计算资源上面计算(?使用的节点数)
它们之间的关系是:NCORE= 计算使用的核数(mpirun分配?) / NPAR
注意:这两个参数只能选取一个来使用
bbs.NPAR实在不懂的话,直接设置NCORE=单节点的核数,单节点的核数/2,单节点的核数/4…….
师兄.我们组服务器不设置NCORE等并行参数,保持默认就好

NWRITE

决定OUTCAR中文件的信息,默认2
对计算结果不影响,可选
详细信息NWRITE_tag

PREC

截图自苏长荣老师的VASP安装和使用说明

LCHARG 是否输出CHG,CHGCAR

默认 LCHARG= .TRUE. 输出
自洽计算LCHARG= .TRUE.输出CHG
下一步非自洽计算时设置ICHAGR=11使用CHG计算DOS

LWAVE 是否输出WAVECAR

默认 LWAVE= .TRUE. 输出
(WAVECAR占空间比较大时,可以选中不输出)
读取上一步计算的WAVECAR可以减少该步(自洽/非自洽)的计算时间,所以推荐输出
使用ISTART=1使用上一步计算的WAVECAR(默认就是读取WAVECAR)

LORIBT 是否输出投影波函数到PROCAR PROOUT

  • LORBIT = 10
    把态密度分解到每个原子以及原子的spd轨道上面,称为为局域态密度,Local DOS (LDOS)
  • LORBIT =11
    在10的基础上,还进一步分解到px,py,pz等轨道上,称为投影态密度(Projected DOS)或者分波态密度(Partial DOS),即PDOS。
    所以LORBIT = 11可以提供我们更多的信息,计算DOS时设置为11

本文首发于我的博客@cndaqiang.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!


目录

访客数据