INCAR 中的常用标签
INCAR 中的常用标签
整理一些常用的碰到的 tags,没有的依然是返回 VASP 手册咯;整理了的都是最简单的信息,更多信息也是查手册咯。分类和顺序按 OUTCAR 描述的。
标签名似乎也有一些规律,如以 L 开头的几乎都是逻辑(Logic)标签,取值都是布尔;
与常规编程不同,INCAR 中所有标签的取值,字符串类型无需加引号,如 SYSTEM = O2_geo
;布尔类型应在两端加上 .
,如 LWAVE = .FALSE.
;
几种必要的数据类型(仅是为了方便我理解,这个并不用会):
类型 | 中文名 | 值域 | 备注 |
---|---|---|---|
INT | 16 位整型 | -32768~+32767 | VASP 的 int 类型通常指定了仅有的几种取值 |
REAL | 实型 | -2^128 ~ 2^128 | |
BOOL | 布尔 | 0 或 1 | VASP 中用 .TURE. 和 .FALSE. |
Start Parameters
SYSTEM
取值:字符串。缺省值:unknown system
描述:用来备注计算的体系,其值会被写入 OUTCAR
中。
ISTART
取值:0 | 1 | 2 | 3
缺省值:如果 WAVECAR
存在,则为 1
,否则为 0
描述:是否读取 WAVECAR
ISTART | Function |
---|---|
0 | 从头开始 |
1 | 从 WAVECAR 读取轨道 |
2 | |
3 | . |
ISPIN
取值:1(缺省) | 2
描述:自旋极化。
ISPIN = 1 :不自旋
ISPIN = 2 :自旋
需要考虑自旋极化一般来说有以下几种:
- 单原子的计算,
- O2 分子 (基态为三重态)
- 自由基相关的计算
- 含 Fe,Co, Ni 的体系
- 要计算的体系具有磁性:顺磁,铁磁,反铁磁等,要打开自旋极化。
- 当关注体系的电子性质时,且自己不知道加或者不加的时候,建议加上。
与 MAGMOM
结合,可以研究共线磁性。
Ex12 VASP 中 MAGMOM 的简单设定 | Learn VASP The Hard Way
ICHARG
取值:0 | 1 | 2 | 4
缺省:ICHARG=2 if ISTART=0,=0 else
描述:决定 VASP 如何构造初始电荷密度
ICHARG | Function |
---|---|
0 | 从初始波函数计算电荷密度。如果因为无效 WAVECAR 导致 ISTART 重置,则 ICHARG 会被设置为 2。 |
1 | 从 CHGCAR 读取电荷密度,使用原子电荷密度的线性组合从旧位置(在 CHGCAR 上)外推到新位置。 |
2 | 原子电荷密度叠加 |
4 | |
+10 | 非自洽计算 |
I/O Flags
Parameters | Default | Describe |
---|---|---|
LWAVE | .TRUE. | 是否将波函数写入 WAVECAR |
LCHARG | .TRUE. | 是否将电荷密度写入 CHGCAR 和 CHG |
Electronic Relaxation
ENCUT
截断能
ENCUT 值越大,计算的越精确,花费的时间也就越多;
ENCUT 的取值与体系中所有的元素有关;
- A)体系中含有不同元素的时候,查看这些元素 POTCAR 中的 ENMAX 值,找出最大的那个;
- B)ENCUT 的最小值为所有元素中 ENMAX 的最大值!
- C)也就是说,找到最大的 ENMAX(max), ENCUT 值大于等于 ENMAX(max)。
EDIFF
取值:real。缺省值:1E-4
描述:控制电子步(自洽)的收敛标准。多数情况下 1E-4 足以胜任,没必要采用其他数值。
GGA
GGA = 91 | PE | RP | PS | AM
缺省:POTCAR 中的
GGA 指定希望使用的广义梯度近似的类型。
Ionic Relaxation
EDIFFG
取值:real。缺省值: EDIFF x10
描述:离子弛豫的收敛标准
如果为正,表示两个离子步骤之间的总(自由)能变化小于 EDIFFG
时停止弛豫。一般取 0.0001 ~ 0.001 即可。
如果为负,则原子所受最大力小于 |EDIFFG|
时停止弛豫。一般取值 -0.01 ~ -0.05(-0.01 对于力收敛已经是个很严格的要求了)
取值范围引自大师兄科研网:https://www.bigbrosci.com/2017/12/02/ex09/
NSW
取值:int。缺省值:0
描述:离子步的最大步数
IBRION = 0 时,NSW 给出了所有从头开始的 Molecular Dynamics 运行的步骤数,因此必须提供它,否则 VASP 在启动后立即崩溃。
IBRION != 0 时,在所有最小化算法(准牛顿,共轭梯度和阻尼分子动力学)中,NSW 定义了最大离子步数。
IBRION
取值: -1 | 0 | 1 | 2 | 3 | 5 | 6 | 7 | 8 | 44
缺省:IBRION = -1 for NSW = -1 or 0 , =0 else
描述:决定离子如何移动
IBRION | Function |
---|---|
-1 | 静电自洽。此时 NSW 应为 0。 |
0 | 分子动力学 |
1 | 离子弛豫(RMM-DIIS) 小范围内的稳定结构搜索 |
2 | 离子弛豫(共轭梯度算法) 常用 |
3 | 离子弛豫(damp 分子动力学)初始结构很差时 |
5 | 频率计算。5-8 都是,但常用 5. |
44 | 改进的 dimmer 方法 |
IBRION=5 and 6: second derivatives, Hessian matrix and phonon frequencies (finite differences). 对于 IBRION=5 时,所有原子都在三个笛卡尔方向上移动,即使对于中等大小的高对称系统,也需要大量的计算工作。对于 IBRION = 6,仅考虑对称不等价位移,并使用对称性考虑填充其余的 Hessian 矩阵。IBRION=5 支持选择性弛豫,6 不支持。
IBRION=7 and 8: second derivatives, Hessian matrix and phonon frequencies (perturbation theory).
ISIF
取值:ISIF = 0
| 1
| 2
| 3
| 4
| 5
| 6
| 7
缺省值:0
(当 IBRION=0,分子动力学时;否则为 2
)
描述:1 有哪些需要算,2 有哪些自由度可以优化。
决定是否计算应力张量,以及允许哪些主要自由度改变弛豫和分子动力学。
ISIF | calculate | degrees-of-freedom | |||
---|---|---|---|---|---|
forces | Stress tensor | positions | cell shape | cell volume | |
0 | yes | no | yes | no | no |
1 | yes | trace only | yes | no | no |
2 | yes | yes | yes | no | no |
3 | yes | yes | yes | yes | yes |
4 | yes | yes | yes | yes | no |
5 | yes | yes | no | yes | no |
6 | yes | yes | no | yes | yes |
7 | yes | yes | no | no | yes |
ISYM
是否考虑对称性。取值:0 | 1 | 2(默认) 0-nonsym 1-usesym 2-fastsym
POTIM
time-step(MD),单位 fs;step width scaling (ionic relaxations).
缺省:if IBRION=0(MD),无缺省,必须用户指定,否则崩溃。
if IBRION=1,2,3(弛豫),缺省 0.5。所有最小化算法(1 准牛顿,2 共轭梯度和 3 阻尼 damped 分子动力学)中,POTIM 均用作步长的缩放常数。特别是准牛顿算法对此参数的选择很敏感。
if **IBRION=5(频率),缺省 0.015。**In frozen phonon calculations, POTIM gives the width of the displacement of each ion to calculate the Hessian Matrix.
VASP.5.1 and newer releases: 如果给的值不合理(过大),会被重置为 0.015 Å.
在
IBRION=2
时(这是前提!!),如果初始结构很差,设置较小的POTIM
可以有效的避免过度矫正。初始结构越好,POTIM
的选择也就越随意。
DOS related values
ISMEAR
ISMEAR 这一项,目前需要记住的是:
- 不同的值对应的是不同的展宽方法;
- 对于分子,原子的计算用 0。
下面是 VASP 官网的一些解释,新手暂时看不懂不要紧,把需要记住的这两条死死记住就可以了。
- 对于半导体和绝缘体体系,ISMEAR 的值取绝对不能大于 0, 一般用 0;
- 对所有体系,如果想获取更加精确能量的时候用 -5:但使用 -5 的时候,K 点数目小于 3 则程序会罢工;
- K 点少,半导体或者绝缘体,那么只能用 ISMEAR = 0;
- 在 DOS 能带计算中,使用 ISMEAR= -5 用于获取精确的信息。
- 对于金属来说,ISMEAR 的取值一般为 0,1;
- 保守地说,ISMEAR = 0 (Gaussian Smearing) 可以满足大部分的体系(金属,导体,半导体,分子);
- 如果不知道怎么取 ISMEAR,1)直接用 0;2)测试不同的值对计算的影响。
SIGMA
SIGMA 的取值和 ISMEAR 息息相关,也就是和 ISMEAR 这个参数同时出现,设定。下面是一些基本的介绍:
如果用了 ISMEAR = -5; SIGMA 的值可以忽略,也可以不管。(对于所有体系都适用);
对于金属: ISMEAR = 1 或者 0,非金属: ISMEAR= 0 的时候,一般取 SIGMA = 0.10 即可,默认值是 0.20。不放心的话,用 0.05。
对于气体分子,原子体系(也就是你把分子或者原子放到一个 box 里面):死死记住下面组合就可以了, ISMEAR = 0; SIGMA = 0.01。
设置一个较小的 SIGMA 值会使收敛变慢。
半导体和绝缘体:
1) K 点小于 4 的时候,用
ISMEAR=0
,SIGMA
取值小一些;比如 SIGMA=0.05; 此时用 ISMEAR = -5 会出错;2)K 点数目大于 4 的时候,可以使用
ISMEAR= -5
;
不过很多人都不放心,为了保险想测试一番。标准是: SIGMA 的取值要保证 OUTCAR 中的 entropy T*S 这一项,平均到每个原子上,要小于 1-2 meV。检查的时候可以用这个命令:
grep 'entropy T' OUTCAR
**注意 1:**这里有两个单引号,不要输入的时候漏掉。
用这个命令,得出的能量除以体系中原子的数目(也就是平均到每个原子上),然后再和 0.001 eV 比较。如果小于,SIGMA 取值 OK,如果大于,再换个小点的数值进行测试。
**注意 2:**这里的说的 entropy,是因为 ISMEAR 展宽这个计算方法引入的,跟我们物理化学书里面的 entropy 完全是两码事。后面我们会介绍如何通过频率分析计算物理化学里面的 Entropy。
摘抄自大师兄网站:https://www.bigbrosci.com/2017/10/15/ex1_02_vasp_preparation_input_incar/