【VASP】INCAR文件
前言
一、4个常用的输入文件INCAR、POSCAR、POTCAR、KPOINTS
INCAR: 计算任务类型是什么?怎么计算?
KPOINTS: 包含了倒易空间点网格的坐标和权重。
POSCAR: 包含元胞的原子坐标信息以及初始速度等信息。
POTCAR: 超软赝势或PAW势函数(有一个赝势库)。
一、INCAR文件介绍
- INCAR中主要的格式是tag=value的形式。
- 其中tag为VASP规定的关键词,而value则是用户输入并且符合VASP规定的值。不同的tag之间可以有空行,而且没有先后顺序的要求。但是如果同一个tag在INCAAR中多次出现,VASP只认第一次出现的值。
- 每一行可以有多个参数,但是中间需要用 “;” 隔开。
- #号之后的文字都为注释,不起任何作用,但是实际上在没有歧义的情况下,注释前也可以不加#号。
- INCAR中的内容不区分大小写。
二、VASP 参数分类
该文件控制 VASP 进行何种性质的计算,并设置了计算方法中一些重要的参数,这些参数主要包括以下几类:
* 对所计算的体系进行注释: SYSTEM
* 定义如何输入或构造初始的电荷密度和波函数: ISTART, ICHARG
* 定义电子的优化:
平面波切断动能和缀加电荷时的切断值: ENCUT, ENAUG
电子部分优化的方法: ALGO, IALGO, LDIAG
电荷密度混合的方法: IMIX, AMIX, AMIN, BMIX 等
自洽迭代步数和收敛标准: NELM, NELMIN, NELMDL, EDIFF
* 定义离子或原子的优化
原子位置优化的方法和步数: IBRION, NSW
离子弛豫收敛标准: EDIFFG
* 定义态密度积分的方法和参数
smearing 方法和参数: ISMEAR, SIGMA
计算态密度时能量范围和点数: EMIN, EMAX, NEDOS
计算分波态密度的参数: RWIGS, LORBIT
* 其它
计算精度控制: PREC
磁性计算: ISPIN, MAGMOM, NUPDOWN
交换关联函数: GGA, VOSKOWN
计算 ELF 和总的局域势: LELF, LVTOT
结构优化参数: ISIF
初始化输入输出、电子步scf 、离子步等分类
INCAR中的关键词如此之多,如果不进行分类,就会显得比较混乱,容易出错。因此需要合理分类,于是把INCAR分成3+n个部分,3是3个一定有的部分,分别是初始化输入输出、电子步scf 、离子步 以及n个部分的其他参数。
- 初始化输入输出
- 电子步参数
- 离子步参数
- 其它参数
三、初始参数
1.SYSTEM
注释体系以说明;一旦写了不可写错,比如说写成了 RYSTEM,那么可能计算出的能量全是正值
2.ISTART
如果计算目录中有WAVECAR文件,则默认值为1,否则为0。决定是否读入WAVECAR
0:开始新的计算,按 INIWAV 初始化波函数
1:接着计算,读取已有的WAVECAR,用于电子结构计算
2:接着计算,用于希望保持基矢不变的计算
3:接着计算,读入上一次计算得到的电荷密度和波函数,不推荐用
3.ICHARG
若ISTART=0,则默认值为2,否则为0,决定如何构造初始电荷密度
- 0:从初始波函数构造
- 1:从CHGCAR读入,并同原子密度进行线性插值
- 2:构造原子电子密度线性组合(LCAO),初始的电子密度由赝势来决定
- 11:读入自洽的CHGCAR,并进行能带计算或态密度的非自洽计算
- 12:非自洽的原子密度计算
ISTART和ICHARG:分别定义了初始的波函数和电荷密度、读入上一次的波函数和电荷密度
推荐做法:
进行能带结构性质的计算时:ISTART=1 ,ICHARG=11
其他情况(比如结构优化和静态计算):ISTART=0 ,ICHARG=2。
静态计算和计算态密度时可以设置成 ISTART=1 ,ICHARG=1,节省核时。
4.PREC
确定计算精度,可设为Low, Med, High, Normal, Single, Accurate
默认值Med, 一般Normal就够了,Accurate精度最高,我一般使用。
四、自洽迭代(电子优化,电子自洽,SCF,单点能)
(一)、电子优化
三个正弦函数可以叠加得到下面的波函数,若想要描述更精确的波函数,需要的平面波基组越大越好,但同时计算量也会增大。ENCUT 就是控制使用的平面波基组的大小,也就是平面波的截断能。
5.NELM
允许电子自洽迭代的最大步数。默认值为60。如果超过了40步还没有收敛的话,推荐对IALGO、LDIAG和混合参数进行手动设置到合理的值。
6.EDIFF(SCF迭代的收敛精度)
EDIFF是电子自洽收敛标准参数。默认值为1E-4 eV。当连续两次迭代中总能和本征值的变化都小于EDIFF时,则电子自洽迭代循环停止。
实际科研计算需要更高的收敛精度。比如表面优化计算1E-5,过渡态1E-6,频率计算1E-7. 不同计算需要的收敛精度不一样。
7.ENCUT
确定平面波截断能,默认值从POTCAR中读入单位eV,一般为 POTCAR 中 ENMAX 参数值的 1.0 到 1.3 倍。一般设置为500.
8.ALGO
确定电子优化的算法:
Normal: ALGO=38,blocked Davidson方法
VeryFast: ALGO=48,RMM-DIIS 算法
Fast:上面两种算法混合使用
9.ADDGRID
增加网格,帮助GAA收敛,一般结构优化(.FALSE) 电子结构高精度(.TURE)
10.LDIPOL
偶极校正,打开(.TURE)
11.IDIPOL
1,2,3分别代表在X,Y,Z方向上进行校正,4代表在所有方向上进行校正
12.ISYM:
是否打开对称性,0=不打开,2=使用一种高效节省内存的电荷密度对称性,3=仅考虑应力张力对称性,电荷密度非对称
(二)、原子弛豫
IBRION:
IBRION决定了原子如何移动或迟豫。如果NSW=0或1,则默认值为一1,否则为0。可赋予值为 -1|0|1|2|3|5。
IBRION=O表示进行分子动力学模拟。为-1表示原子不移动。
为其他值设置结构优化的方法。
- -1:原子位置不移动
- 0:标准的分子动力学模拟。采用verlet算法来积分原子的牛顿运动方程。
通过POTIM来控制时间步长(单位是fs)。SMASS控制系综的设置 - 1:采用准牛顿算法来优化原子的位置
- 2:采用共辄梯度算法来优化原子的位置
- 3:采用最速下降算法来优化原子的位置
- 5:用来计算Hessian矩阵和体系的振动频率
13.ISIF
ISIF决定是否计算应力以及如何对结构进行优化。当IBRION=0时,默认值为0,否则为2。
POTIM:
当IBRION= 1,2或3时,是力的一个缩放常数(相当于确定原子每步移动的大小),默认值为0.5。当IBRION=O时,是MD的时间步长,无默认值,必须手动设置。
14.NSW:(原子弛豫的最大步数)
原子弛豫的最大步数(IBRION=1、2)和分子动力学的步数(IBRION=0),默认值为0。在每一部步内,电子进行自洽计算,并精确计算原子所受的 H-F力和应力。
15.EDIFFG:(原子弛豫收敛的标准)
原子弛豫收敛的标准,默认值为EDIFF*10。若值为正则前后两次总自由能只差小于EDIFFG,原子停止弛豫;若为负,则源自所受的最大的力小于EDIFFG的绝对值,原子停止弛豫。
NFREE:
相当于设置的自由度。当IBRION=5,NFREE=2或4决定了原子的移动,推荐设置为2。该参数在计算频率和进行选择性原子弛豫时需要设置。
16.SMASS:确定分子动力学中原子的速度,默认值为-3。
-3:微正则系综(总的自由能守恒)
-2:保持初始速度不变,计算体系总能随原子位置的变化情况
-1:在每NBLOCK步之后对初始速度进行放缩
0或者>0,正则系统,对温度进行Nose调控
TEBEG:分子动力学模拟时的初始温度,默认为0。
TEEND: 分子动力学模拟时的末态温度,默认为TEBEG。
PSTRESS:设置加到体系的应力张量上的应力大小。
(三)、态密度积分和参数
smearing方法和参数
确定 smearing 方法 ISMEAR 和展宽 SIGMA 的参数,默认为1和0.2,决定了如何确定每个波函数的占有数。
ISMEAR = -5 | -4 | -3 | -2 | -1 | 0 | 控制vasp如何处理费米能级附近,分数占据的轨道。为了快速收敛到积分的精确解。
ISMEAR赋值:
- -1:fermi smearing 方法
- 0:Gaussian smearing方法(氧化物,半导体)
- N:Methfessel-Paxton N阶smearing方法
- -2:在INCAR中通过FERWE和FERD0关键词手动设置;
- -3:采用一个循环的计算来确定smearing的参数,在每一步中的smearing设置通过SMEARINGS=smearing1 smearing2 smearing3…来设置。此时IBRION=-1,NSW设置为SMEARINGS的值的个数
- -4:没有Bloch修正的四面体方法
- -5:有Bloch修正的四面体方法
smearing方法和参数建议
- 进行任何的静态计算或态密度计算,且K点数目大于4时,取ISMEAR=-5
- 当原胞较大而K点数目较少(小于4个)时,取ISMEAR=O,并取一个合适的SIGMA值。
- 对半导体或绝缘体的计算(无论是静态或结构优化),取ISMEAR=-5;
当结构呈现金属性时,取 ISMEAR=1和2,以及设这一个合适的SIGMA值。大多
数情况下,1和2给出的结果很相似。 - 进行能带结构计算,ISMEAR 和 SIGMA用默认值就好。
- 无论是对何种体系,进行何种性质的计算,采用 ISMEAR=0,并选择一个合适
的SIGMA都能得到合理的结果。 - 在计算大体系的总能和DOS时,建议采用blochl校正的四面体方法,即
ISMEAR=-5.但是这个方法没有对电子的部分占据进行变分计算,所以对金属的力的计算误差较大,而对半导体的影响不大。金属的弛豫计算可采用Methfessel-Paxton方法。 - *结构呈现金属性时,取ISMEAR=1和2,以及设一个合适的SIGMA值,一般结果相同。
- 在除金属以外的体系进行任何静态或者态密度计算,取ISMEAR=-4或-5,要求k点数目必须大于3。
18.SIGMA:展宽。如果用了ISMEAR = -5 , 可以忽略,需要注释掉。
对于金属:ISMEAR = 1 ;非金属:ISMEAR = 0 的时候,一般取0.15或者采用默认值 0.20 即可.
对于气体分子,原子体系,ISMEAR = 0; SIGMA = 0.01(标配)
绝缘体或半导体:ISMEAR = 0 ;SIGMA = 0.05。
DOS计算,或要求高精度的能量计算: ISMEAR = -5,SIGMA的值可以忽略,也可以不管(VASP会自动略过)。如果粗略定性分析DOS,ISMEAR也可以用其他值。
计算态密度相关参数
18.EMIN和EMAX:计算态密度时的能量范围
19.NEDOS:DOS点的个数
20.LORBIT:控制非自洽计算的形式
LORBIT:同RWIGS一起设置,决定了PROCAR或PROOUT文件是否输出。也
就是对每个能带的波函数进行spd和site分解或投影。默认值为.FALSE也就是0。
LORBIT含义:
21.NBANDS:
给出计算中实际的总能带数。取值:整数,缺省值:NELECT/2+NIONS/2(非自旋),0.6*NELECT+NMAG(自旋)
注:
- NBANDS的取值应使计算中包含相当数量的空带。因为计算需要大量的空
带,至少要求1个空带(否则VASP会给出警告)。NBANDS对于解决内存需求非常重要。一般NBANDS在NELECT/2+NIONS/2以上可以得到较为精确的结果,但如果内存不够就只能减少NBANDS,在牺牲精度和体系大小之间平衡。
2.从前一步的outcar中可以读取。+20%-半导体材料
通常在非自洽计算过程中需要用到,可以在非自洽计算之前的自洽计算OUTCAR或EIGENVAL文件中读取。
五、其它参数
(一)、磁性计算
22.ISPIN:
确定是否进行自旋极化的计算,默认值为1,表示不进行自旋计算,为2表示进行自旋计算。
23.MAGMOM:
每类原子的初始磁矩,默认值为Nion*磁矩
24.VOSKOWM:
确定交换关联函数的关联部分是否采用Vosko-Wilk-Nusair内插方法。默认值为0。一般用在自旋极化GGA的计算中,设置为1。
(二)、逻辑参数和体系参数
25LREAL:确定投影算法是否在实空间或倒空间计算。默认值为.FALSE.,可设置为.FALSE./.TURE./On/Auto
26.LWAVE:确定是否在WAVECAR文件中输出波函数,默认为.TURE.
27.LCHARG:确定是否在CHGCAR和CHG中输出电荷密度,默认值为.TURE.
(三)、强关联体系L(S)DA+U
28.LDAU:控制计算中是否考虑在位库伦校正相,即+U,打开设置为TURE
29.LDAUTYPE:具体加U方法1/2/4,取2默认
30.LDAUL:
控制具体在哪个角量子数l轨道上加U;-1—不加,1—对p轨道加U,2—对d轨道加U, 3—对f轨道加U
LDAUU:U1,U2,…制定有效在位库伦相互作用的参数
LDAUJ:j1,j2,…指定有效在位交换相互作用的参数
注意:LDAU,DAUU,LDAUJ这三个参数必须对体系中所有源自都要定义,包括加U和不加U的原子。
杂化计算(HSE06)
31LHFCALC:确定是否进行杂化计算。取值:.TURE./.FALSE.
32HFSCREEN:选择HSE06泛函。
33LMAXFOCK:杂化计算中角动量最大数目,取值为整数,默认值为4.
34PRECFOCK:Fast/Normal/Accurate需要计算速度快一点时选择Fast,如果要求能量和力非常精确,可选择Normal和Accurate
关键参数总结
设置经验
(1) 结构弛豫(EDIFF和EDIFFG)的一些经验:
结构弛豫的判据一般有两种选择:能量和力。这两者是相关的,理想情况下,能量收敛到基态,力也应该是收敛到平衡态的。但是数值计算过程上的差异导致以二者为判据的收敛速度差异很大,力收敛速度绝大部分情况下都慢于能量收敛速度。这是因为力的计算是在能量的基础上进行的,能量对坐标的一阶导数得到力。计算量的增大和误差的传递导致力收敛慢。
结构优化分电子迭代和离子弛豫两个嵌套的过程。电子迭代自洽的速度,有四个响很大的因素:初始结构的合理性,K点密度,是否考虑自旋和高斯展宽(SIGMA);离子弛豫的收敛速度,有三个很大的影响因素:弛豫方法(IBRION),步长(POTIM)和收敛判据(EDIFFG)。
(2) IBRION设置的一些经验:
如果结构已经比较接近最优结构了,也就是说采用的初始结构是实验测定的或者别人优化过的,那不妨使用IBRION=1。
IBRION=2是属于“通用型”的参数,对于比较难优化的结构可以采用这个共轭梯度算法。如果初始结构参数比较离谱的话不妨使用IBRION=3的阻尼分子动力学。
不过推荐的还是IBRION=2的设置,即便这个有些问题,也可以拿它的结果作为粗略结果,再用IBRION=1进行更精确的优化。
(3) ISMEAR设置的一些经验
ISMEAR决定了如何确定每个波函数的占有数 ,通俗点讲:就是说电子在费米面附近占据数从0突变到1,这是个deta函数,为了计算方便,用一个平滑点的函数在费米面附近代替这个deta函数,这样计算就不容易振荡,易于收敛。ismear就是控制这种平滑函数的。
进行任何的静态计算或态密度计算,且K点数目(从IBZKPT文件中读取)大于4时,取ISMEAR=-5;当由于原胞较大而K点数目较少(小于4个)时,取ISMEAR=0,并设置一个合适的SIGMA值。另外对半导体或绝缘体的计算(不论是静态还是结构优化),取ISMEAR=-5;当体系呈现金属性时,取ISMEAR=1和2,以及设置一个合适的SIGMA值。在进行能带结构计算时,ISMEAR 和SIGMA用默认值就好。一般说来,无论是对何种体系,进行何种性质的计算,采用ISMEAR=0 ,并选择一个合适的SIGMA值都能得到合理的结果。
注:for very accurate DOS and total energy calculations ISMEAR=-5 always should be used.
(4) ICHARG 设置的一些经验
关于官网给出的解释:
ICHARG= 0 Calculate charge density from initial orbitals.
ICHARG= 2 Take superposition of atomic charge densities.
ICHARG= 1 Read the charge density from file CHGCAR , and extrapolate from the old positions
(on CHCGAR) to the new positions using a linear combination of atomic
charge densities.
ICHARG= 11 to obtain the eigenvalues (for band structure plots) or the DOS for a given charge density read from CHGCAR.
0和2从官网语句中就能看出不同,一个是从初始轨道推导计算出电荷密度,另一个是利用叠加原理直接拿原子电荷密度重叠作为电荷密度,不过要具体了解这两种方法是怎么操作的那还得问开发者啦,1读取的是已有的CHARGCAR文件,这三种选择CHARGCAR在后续计算中都有迭代更新;而选择11则电荷密度从始至终都是采用已有的CHARGCAR文件进行计算,这是计算DOS和BAND时的常用办法。
参考文献与学习文献:
https://blog.csdn.net/qq_45721524/article/details/127734420
https://zhuanlan.zhihu.com/p/151725218
https://zhuanlan.zhihu.com/p/330260235
https://blog.csdn.net/wwxy1995/article/details/103324178
关于每个参数的详细含义可以参考VASP手册:
文章评论