为了成功运行VASP计算任务,我们至少需要4个文件:INCAR、POSCAR、POTCAR及KPOINTS,INCAR是告诉 VASP算什么任务,怎么算的控制文件;POSCAR是包含晶格信息,原子坐标信息和原子速度信息(MD用)的文件;POTCAR是赝势文件,也就是将内层电子用势函数表示;KPOINTS(可包含在INCAR内,不推荐省略)包含了倒易空间内K点信息,波函数会在这些点上积分得到电荷密度。
vaspkit
将KPOINTS、POTCAR和INCAR文件生成整合到了功能1
:VASP Input Files Generator
中。
==================== VASP Input Files Options ===================
101) Customize INCAR File
102) Generate KPOINTS File for SCF Calculation
103) Generate POTCAR File with Default Setting
104) Generate POTCAR File with User Specified Potential
105) Generate POSCAR File from cif (no fractional occupations)
106) Generate POSCAR File from Material Studio xsd (retain fixes)
107) Reformat POSCAR File in Specified Order of Elements
108) Successive Procedure to Generate VASP Files and Check
109) Submit Job Queue
下面展示怎么使用vaspkit
进行一个VASP计算任务。
POSCAR一般由软件生成或者从数据库中获得,简单体系可自己搭建。本例中从数据库(http://www.catalysthub.net/)中获得**纤锌矿ZnO**的POSCAR文件(也可以下载CIF文件,然后通过`VTST`脚本`cif2pos.pl`或者`VESTA`转化成POSCAR文件,只是原子位置分数占据的问题需要注意)。在`catalysthub`中检索`ZnO`,检索结果如下所示。纤锌矿ZnO的为六方晶系,空间群为`P63mc`。因此下载第二行的POSCAR,下载的文件名为`ZnO-1811117.vasp`。置于`vaspkit.0.72/examples/ZnO_optimization`目录下。
The following shows the results (4) for: ZnO
Full formula Space group HM HALL Lattice system Band gap Structure file
Zn1O1 216 F-43m F -4 2 3 Cubic 0.63110 eV CIF | POSCAR | LAMMPS
Zn2O2 186 P63mc P 6c -2c Hexagonal 0.73170 eV CIF | POSCAR | LAMMPS
Zn1O1 225 Fm-3m -F 4 2 3 Cubic 0.71940 eV CIF | POSCAR | LAMMPS
Zn1O1 221 Pm-3m -P 4 2 3 Cubic 0.00000 eV CIF | POSCAR | LAMMPS
接下来进行晶格优化得到合理的结构。将其改名为POSCAR文件。
cp -f ZnO-1811117.vasp POSCAR
我们采用vaspkit
预设的INCAR组合
生成所需的INCAR文件。在有POSCAR的目录下运行vaspkit
,输入1
选择功能VASP Input Files Generator
,然后输入101
选择Customize INCAR File
,会得到以下的显示信息:
+-------------------------- Warm Tips --------------------------+
You MUST Know What You Are Doing
Some Parameters in INCAR File Neet To Be Set/Adjusted Manually
+---------------------------------------------------------------+
======================== INCAR Options ==========================
ST) Static-Calculation SR) Standard Relaxation
MG) Magnetic Properties SO) Spin-Orbit Coupling
D3) DFT-D3 no-damping Correction H6) HSE06 Calculation
PU) DFT+U Calculation MD) Molecular Dynamics
GW) GW0 Calculation BS) BSE Calculation
DC) Elastic Constant EL) ELF Calculation
BD) Bader Charge Analysis OP) Optical Properties
EC) Static Dielectric Constant PC) Decomposed Charge Density
FD) Phonon-Finite-Displacement DT) Phonon-DFPT
NE) Nudged Elastic Band (NEB) DM) The Dimer Method
FQ) Frequence Calculations LR) Lattice Relaxation
0) Quit
9) Back
------------>>
Input Key-Parameters (STH6D2 means HSE06-D2 Static-Calcualtion)
LR
输入LR
,就会得到一个预设好的用于做晶格弛豫任务的INCAR(有些模板需要手动修改。比如DFT+U的U值设定,NEB的IMAGES数目等)。如果已经有INCAR文件,则原来的INCAR文件会被覆盖。你可以编辑~/.vaspkit
更改INCAR的输出设置。只需将最后一行的SET_INCAR_WRITE_MODE
由默认的OVERRIDE
更改为 APPEND,BACK-UP-OLD,BACK-UP-NEW
中的一个,分别对应于新的内容增加到原有的INCAR后面,备份原有的INCAR再写入新的INCAR和写入到新的INCAR.new里面。
接下来生成KPOINTS文件。对于非能带计算,只需用程序自动撒点的方式,但是需要用户选择撒点方式和K点密度。具体内容可以参考李强的教程Learn VASP The Hard Way (Ex1): VASP基本输入文件的准备
。启动vaspkit
,输入1
选择功能VASP Input Files Generator
,然后输入102
选择功能Generate KPOINTS File for SCF Calculation
,接下来输入2
选择Gamma Scheme
撒点方式(稳妥的选择),会得到以下的显示信息:
-->> (1) Reading Lattices & Atomic-Positions from POSCAR File...
+-------------------------- Warm Tips --------------------------+
* Accuracy Levels: (1) Low: 0.06~0.04;
(2) Medium: 0.04~0.03;
(3) Fine: 0.02-0.01.
(4) Gamma-Only: 0.
* 0.04 is Generally Precise Enough!
+---------------------------------------------------------------+
Input KP-Resolved Value (unit: 2*PI/Angstrom):
------------>>
根据提示0.04
已经足够精确了,因此输入0.04
,将会得在当前目录下得到KPOINTS和POTCAR(自动生成)文件。
-->> (2) Written KPOINTS File!
-->> (3) Written POTCAR File with the Recommended Potential!
KPOINTS内容如下:
K-Mesh Generated with KP-Resolved Value : 0.040
0
Gamma
9 9 5
0.0 0.0 0.0
Learn VASP The Hard Way Ex19 谁偷走的我的机时?(三)
提到了一个简单的K点数目判断准则,对于半导体k点数目乘实空间对应晶矢量大于20Å(参考下图),本例中ka=29.62Å已经符合经验规律。刘锦程提到对于非正交体系 ,倒格矢长度和晶常数不满足反比关系,所以采用ka≈kb≈kc的经验准则并不能保证 K点密度在各个方向长相等。而vaspkit
严格计算了倒空间晶格矢量比例,选用经验“步长”(倒空间长度除以K点数目)0.03~0.04,vaspkit
就能根据所选的K点密度自动生成各个方向的K点数,此时倒空间K点的resolution 为
生成KPOINTS的同时,会根据POSCAR中的元素类型从赝势库中提取并组合生成POTCAR,前提是你在~/.vaspkit
里正确设置了PBE_PATH
的路径,并根据POTCAR_TYPE
选择是生成GGA-PW91、LDA还是PBE的赝势。值得注意的是提示信息Written POTCAR File with the Recommended Potential!
,意味着vaspkit
根据VASP官网的推荐从PBE的赝势库中选择赝势。
PBE的赝势分为几种,无后缀、_pv,_sv,_d
和数字后缀,_pv,_sv,_d
就是说semi-core
的p,s
或者d
也当做价态处理了。因为有些情况下,次外层电子也参与了成键。刘锦程提到进行Bader
电荷分析,需要采用带_pv,_sv
的赝势。特别地,官网提到Important Note: If dimers with short bonds are present in the compound (O2 , CO, N2 , F2 , P2 , S2 , Cl2 ), we recommend to use the _h potentials. Specifically, C_h, O_h, N_h, F_h, P_h, S_h, Cl_h.
常用的做法是:用两种赝势测试一下对自己所关心的问题的影响情况。在影响不大的情况下,选用不含后缀的赝势,毕竟包含更多的价电子,截断能上升很多,计算量明显增大。
如果需要手动生成POTCAR,可以通过功能104
手动选择每个元素的赝势类型。本例中演示给Zn选择Zn_pv
的PBE
赝势。选择功能104
,依次输入需要设定的赝势类型O
和Zn_pv
,如果设定的赝势目录下没有你选择的赝势类型,将会提示你重新输入。
-->> (1) Reading Structural Parameters from POSCAR File...
Auto detected POTCAR_TYPE is O, please type the one you want!
O
Auto detected POTCAR_TYPE is Zn, please type the one you want!
Zn_pv
-->> (2) Written POTCAR File with user specified Potential!
通过命令grep TIT POTCAR
可以看到POTCAR中的赝势为O
和Zn_pv
,满足我们的需求。
为了取得有意义的结果,需要满足INCAR中的ENCUT大于POTCAR中的所有元素的ENMAX。通过以下命令可以查看所有元素的ENMAX:
grep ENMAX POTCAR
可以看到默认的INCAR参数中ENCUT=400eV
被注释掉了,但是保留了PREC = Normal
,程序会自动将ENCUT
设为max(ENMAX)
。当然也可以自行设置ENCUT
参数,只要参数大于所有元素的ENMAX
,这时候以自己设定的ENCUT
参数为准。注意在优化晶胞常数时,需要用较高的ENCUT
(Learn VASP The Hard Way (Ex36):直接优化晶格常数
),因此LR
任务(优化晶格常数)模板生成的INCAR中默认设置了PREC=High
,VASP程序会自动将ENCUT
设为max(ENMAX)*1.3
。乐平老师提到,为了确保相同体系的ENCUT
一致,VASP最新的官方手册已经不推荐使用PREC=High
了,它推荐设置为PREC=Accurate
并手动设置ENCUT
的值。
提交VASP计算任务,可以发现任务很快就失败了。错误日志如下:
running on 16 total cores
distrk: each k-point on 16 cores, 1 groups
distr: one band on 1 cores, 16 groups
using from now: INCAR
vasp.5.4.4.18Apr17-6-g9f103f2a35 (build Apr 07 2018 02:38:49) complex
POSCAR found type information on POSCAR O
ERROR: the type information is not consistent with the number of types
通过分析发现,VASP只读出了O的元素和赝势,Zn没有从POSCAR中读出,因此报错。原因在于,从数据库下载的POSCAR中空格的分隔符是制表符\t
,VASP不能正确读出以\t
为分隔符的字符串。同样的问题也会在INCAR中出现。另外在WINDOWS系统下生成的POSCAR或INCAR在VASP中可能会出现非常奇怪的错误。最致命的是VASP不会自动检查POSCAR中的元素类型是否与POTCAR元素类型是否一致,也就是你算石墨烯也可以用H的赝势,并不会报错,但是结果一定是错的!因此vaspkit 0.71
以后的版本加入了格式纠正和赝势元素检查的功能109
。
输入
109
,vaspkit
会自动进行INCAR和POSCAR的格式纠正,并检查赝势元素是否一致。
-->> (1) Reading Structural Parameters from POSCAR File...
All Files Needed Exist.
Element type in POSCAR may be not corresponding to POTCAR
POTCAR:Zn_pv
POSCAR:Zn
执行检查之后,再次提交任务。此时任务已经能正确运行。
为了方便用户,在乐平老师的建议下,我们设置了功能108
:Successive procedure to generate VASP files and check
。先设置INCAR,再设置K点密度,生成KPOINTS和POTCAR,最后再调用功能109
自动检查所有的文件是否存在问题。我们的目标是,VASP之前,先KIT一下。
如果您使用VASPKIT,请记得引用哦。
V. Wang, N. Xu, J.-C. Liu, G. Tang, W.-T. Geng, VASPKIT: A User-Friendly Interface Facilitating High-Throughput Computing and Analysis Using VASP Code, Computer Physics Communications 267, 108033, (2021), https://doi.org/10.1016/j.cpc.2021.108033
「感觉有帮助?一键投喂 牛奶/咖啡/冰阔乐!」
(๑>ڡ<)☆哇~太棒了!
使用微信扫描二维码完成支付