固体与表面-从零学习vasp计算(4)-输入文件1

固体与表面-从零学习vasp计算(4)

欢迎回来vasp实战教学课程,同时在b站(av32743274)更新****。在理论计算化学研习社QQ群(905699144)里更新各种科研资料,欢迎感兴趣的朋友加入讨论。由于笔者知识水平有限,教程中的错误和不完善之处请大家多多指教,共同学习进步。

Setting up a VASP calculation

VASP requires 4 input files to run a calculation:
• INCAR
• POSCAR
• KPOINTS
• POTCAR
Vasp所有文件的介绍:
http://cms.mpi.univie.ac.at/vasp/guide/node50.html#SECTION00070000000000000000
注意:VASP的文件名没有后缀,用纯文本编辑器可以打开查看,如sublime,notepad++,editplus等。
VASP计算只需要4个输入文件吗?
不是!VASP的输入文件类型非常多。常用的有CHGCAR(电子密度),WAVECAR(波函数信息),其他的暂时不需要知道。
一些复杂的计算需要额外的输入文件,
比如:metadynamics(ICONST,PENALTYPOT)
DIMER寻找过渡态(MODECAR)
各向异性优化晶胞(OPTCELL)

INCAR

The INCAR file is the central input file of VASP. It determines “what to do and how to do it”. There is a relatively large number of parameters that may be set by means of tags in the INCAR file.
INCAR就是告诉vasp算什么怎么算:
比如下面我们用的第一个计算例子(计算Si的primitive cell能量):
System = fcc Si
ISTART = 0 ; ICHARG = 2
ENCUT = 240
ISMEAR = 0; SIGMA = 0.1
一般建议给INCAR里的关键词加注释
#或者!为注释,VASP不识别#后面的内容,#是写出来给自己看的,不是给程序看的
至于为什么要加注释,好多初学者都苦恼这么多关键词根本记不住。加注释就是为了让自己记住每个关键词是干什么的。注释用中英文都可以,但是考虑到服务器的编码问题,最好用英文。

#### initial parameters #####
SYSTEM = Al2O3 Cell opt
ISTART = 1 # whether or not to read the WAVECAR file.
ICHARG = 1 # how VASP constructs the initial charge density.
#### SCF parameters ####
ENCUT = 600 # cutoff energy for the planewave basis set in eV
ISMEAR = 1 # how the partial occupancies are set for each orbital.
SIGMA = 0.2 # the width of the smearing in eV.

INCAR的注意事项:

1)INCAR准备的原则是,越简单越好。 任何计算程序都是越简单越好!
那些把输入文件写的天花乱坠又说不出来为什么的都是菜鸟。因为默认参数都是适用于绝大多数体系的合理选择.
2)每添加一个关键词都应该清楚的了解这个关键词是干什么的。
3)格式:关键词 = 参数(可能是一个或多个整数,浮点数,.True., .False.)
4) INCAR里的参数学习非常重要,时常翻阅VASPwiki对进步十分有帮助(vasp PDF手册已于2016年停止更新)。好多VASP的老玩家也常常搞不清楚一些参数的用法。
5)本课程会对用到的参数做详细的讲解,并且给出使用建议,如果不想花时间学习具体用法,可以直接看每个关键词的“建议”部分。

关键词讲解: SYSTEM

默认:SYSTEM = unknown system
就是自己给计算任务起个名字,可以随便写任何内容。
建议:一个体系用一个名称就可以。比如:SYSTEM = Fe3/Al2O3
用处不大,在科研中建议用目录的名称给计算任务的起名分类。

关键词讲解: ISTART = 0 | 1 | 2 | 3

默认:ISTART = 1 if a WAVECAR file exists
= 0 else
是否读取波函数:(WAVECAR是保存计算波函数信息的文件,每个计算都会生成一个WAVECAR文件)
0由程序初猜产生。
1从WAVECAR里读取,如果没有WAVECAR,或者WAVECAR里信息和当前计算使用的参数不兼容,则波函数由初猜产生。
2读取WAVECAR并使用同样的基组,只在计算(体积-能量)相关曲线的时候用的到。
3在重启分子动力学计算的时候使用,同时需要WAVECAR和TMPCAR文件。
建议:用ISTART = 1是稳妥的办法。除非特殊说明。但是要注意读取的WAVECAR的计算和要开始的计算体系必须一样或者很接近,否则不如不读取,一般我们经常需要续算,所以=1是个比较方便的选择,但是出了问题要知道为什么。

关键词讲解: ICHARG = 0 | 1 | 2 | 4 |10|11|12

默认:ICHARG = 2 if ISTART=0
= 0 else
Vasp的电荷密度初猜:(CHGCAR是保存电荷密度信息的文件,每个计算都会生成一个CHGCAR文件)
0由WAVECAR计算电荷信息。如果没有WAVECAR则自动ICHARG = 2.
1从CHGCAR里读取外推,如果没有CHGCAR,则进行初猜产生。
2初猜,通过原子电荷密度叠加产生。
3在重启分子动力学计算的时候使用,同时需要TMPCAR文件。
10|11|12做非自洽计算的时候使用,电荷密度读CHGCAR保持不变,DOS和能带计算的时候使用。
建议:用ICHARG = 1是稳妥的办法。除非由特殊说明做非自洽计算。例如做DOS和band structure。

关键词讲解: ENCUT = [float]

默认:ENCUT= largest ENMAX on the POTCAR file
控制平面波的截断能。啥是平面波的截断能呢?
如图, 由三个正弦函数可以叠加得到下面的函 数,想要描述更精确的波函数,显然平面波的 基组越大越好,但同时计算量也会增大。ENCUT就是 控制使用的平面波基组的大小,也就是平面波的截断能。
固体与表面-从零学习vasp计算(4)-输入文件1
默认用POTCAR(赝势文件)给出的建议范围的最大值(ENMAX)。
建议:根据自己的计算机资源水平取,一般400 eV对计算表面科学足够了,在优化晶胞或者做要求高精度计算时需要提高ENCUT。

关键词讲解: ISMEAR = -5 | -4 | -3 | -2 | -1 | 0 | [integer]>0

默认:ISMEAR = 1
SIGMA = [real]
默认: SIGMA = 0.2
非常重要:控制vasp如何处理费米能级附近,分数占据的轨道。为了快速收敛到积分的精确解。
推荐阅读vaspwiki:
http://cms.mpi.univie.ac.at/wiki/index.php/ISMEAR
想要了解原理的玩家推荐阅读:
https://docs.quantumwise.com/v2017/manuals/technicalnotes/occupation_methods/occupation_methods.html
ISMEAR=N (N>0): method of Methfessel-Paxton order N. (可能导致负占据数)
ISMEAR=0: Gaussian smearing.
ISMEAR=−1: Fermi smearing.
ISMEAR=−2: partial occupancies are read in from the WAVECAR or INCAR file, and kept fixed throughout run. To set the occupancies, specify.
ISMEAR=−4: tetrahedron method
(use a Γ-centered k-mesh).
ISMEAR=−5: tetrahedron method with
Blöchl corrections (use a Γ-centered k-mesh).
固体与表面-从零学习vasp计算(4)-输入文件1
注意:会引入电子熵S, F[n]=E[n]−TS。这里暂时不详细讲了。
建议:
金属(没有带隙的体系): ISMEAR=1;SIGMA = 0.2 。注意entropy term should be less than 1 meV per atom。 检查的时候可以用这个命令: grep ‘entropy T’ OUTCAR (这里有两个单引号,不要输入的时候漏掉) 得出的能量除以体系中原子的数目,然后再和 0.001 eV 比较,如果小于,SIGMA取值OK,如果大于,再换个测试。
绝缘体或半导体:ISMEAR = 0 ;SIGMA = 0.05。
DOS计算,或要求高精度的能量计算: ISMEAR = -5,SIGMA的值可以忽略,也可以不管(VASP会自动略过)。如果粗略定性分析DOS,ISMEAR也可以用其他值。
分子计算: ISMEAR = 0 ;SIGMA = 0.01

INCAR关键词总结晶体单点能的计算:
金属(如Pt):

ISTART = 1
ICHARG = 1
ENCUT = 400
ISMEAR = 1
SIGMA = 0.2
EDIFF = 1E-6

非金属(如Si):

ISTART = 1
ICHARG = 1
ENCUT = 400
ISMEAR = 0
SIGMA = 0.05
EDIFF = 1E-6

EDIFF以后详细讲,是scf迭代的收敛精度,默认值是1×10-4eV,作为练习可以。
实际科研计算需要更高的收敛精度。比如表面优化计算1E-5,过渡态1E-6,频率计算1E-7. 不同计算需要的收敛精度不一样。