VASP软件中文保姆级教程手册 | 第六章:INCAR 文件的常用设置

VASP软件中文保姆级教程手册 | 第六章:INCAR 文件的常用设置

VASP是备受专业技术人员认可的DFT计算软件每年发表论文超过1万篇,至2022年底,文章总量已超过11万篇。其计算结果不仅可以验证实验,更能够预测实验结果,指导实验路线。
VASP软件中文保姆级教程手册 | 第六章:INCAR 文件的常用设置
本文为华算科技朱老师技术团队的Cilver老师和Ravi老师制作的《VASP官方入门手册》第六篇:INCAR 文件的常用设置。本教程将详细介绍VASP软件及其计算方法,帮助大家快速入门VASP计算,搞定顶刊技能!

表1: 铜表面计算的INCAR文件

SYSTEM = Rhodium surface calculation

Start parameter for this Run:
ISTART = 0 job : 0-new 1-cont 2-samecut
ICHARG = 2 charge: 1-file 2-atom 10-const

INIWAV = 1 electr: 0-lowe 1-rand

Electronic Relaxation 1
ENCUT = 200.00 eV
IALGO = 18 algorithm NELM = 60; NELMIN= 0; NELMDL= 3 # of ELM steps m
EDIFF = 1E-04 stopping-criterion for ELM 

BMIX = 2.0

Ionic Relaxation
EDIFFG = -0.01 stopping-criterion for IOM
NSW = 9 number of steps for IOM
IBRION = 2 conjugate gradient for IOM 

POTIM = 1.0 time-step for ion-motion

DOS related values:

SIGMA = 0.2; ISMEAR = 1 broad. in eV, -4-tet -1-fermi 0-gaus

INCAR 文件

INCAR 文件是 VASP 的核心输入文件。它决定 “做什么和怎么做”,并且可以包含相对较多的参数大多数参数都有方便的默认值,不了解其含义的用户不应更改任何默认值。在处理 INCAR 文件时要非常小心,它是错误和错误结果的主要来源!

INCAR 文件是一个标签无格式的 ASCII 文件:每行由一个标签(即字符串)、等号”=”和若干数值组成。如果每个参数对之间用分号”; “隔开,则可以在一行中给出多个参数对 ( tag = values )。如果一行以反斜线结束,下一行将被视为续行。注释前通常有符号 “#”,但在大多数情况下,注释可以附加到参数-值对中,而不用 “#”。在这种情况下,注释中应避免使用分号。

下文将介绍 INCAR 文件中给出的参数。

尤其是初始化过程可能会有点复杂,请仔细阅读第 6.2 节;其中给出了一些初始化参数如何交互以及如何一起使用的提示。

6.1 所有参数(至少为大部分参数)

下面是目前支持的所有参数的简要概述。经常使用的参数会被特殊显示。

NGX, NGY, NGZ 轨道的FFT网格 (参见 6.3,6.11)
NGXF,NGYF,NGZF 电荷的FFT网格 (参见6.3,6.11)
NBANDS 计算中包含的能带数 (参见6.5)
NBLK 阻止某些BLAS调用(参见6.6)
SYSTEM 体系名称
NWRITE 详细写入标签(写入的数量)
ISTART 任务开始: 0-new 1-cont 2-samecut
ICHARG 电荷: 1-file 2-atom 10-const
ISPIN 自旋极化计算 (2-yes 1-no)
MAGMOM 初始化磁矩/原子
INIWAV 初始化电荷波函数: 0-lowe 1-rand
ENCUT 截断能(单位eV)
PREC 过程: medium, high or low
PREC VASP.4.还包括: normal, accurate
NELM, NELMIN and NELMDL 电子步的nr.
EDIFF 电子步的停止标准
EDIFFG 离子步的停止标准
NSW 离子步步数
NBLOCK and KBLOCK inner block; outer block
IBRION 离子弛豫: 0-MD 1-quasi-New 2-CG
ISIF 计算应力及需要弛豫的部分
IWAVPR 平面波预测: 0-non 1-charg 2-wave 3-comb
ISYM 对称性: 0-nonsym 1-usesym
SYMPREC 对称性路径过程
LCORR 力的Harris校正
POTIM 离子位移的时间步长 (fs)
TEBEG, TEEND 运行温度
SMASS Nose质量参数(am)
NPACO and APACO 距离及nr. of slots for P.C.
POMASS 离子质量(am)
ZVAL 离子价态
RWIGS Wigner-Seitz半径
NELECT 电子总数
NUPDOWN 将自旋磁矩固定为指定值
EMIN, EMAX DOSCAR文件的能量范围
ISMEAR 部分占据: -5 Blochl -4-tet -1-fermi 0-gaus ¿0 MP¨
SIGMA 展宽(eV) -4-tet -1-fermi 0-gaus
ALGO 算法: Normal (Davidson) — Fast — Very Fast (RMM-DIIS)
IALGO 算法: use only 8 (CG) or 48 (RMM-DIIS)
LREAL 实空间的非局域投影
ROPT 实空间的非局域投影的网格数
GGA xc类型: e.g. PE AM or 91
VOSKOWN 使用Vosko, Wilk, Nusair 插值
DIPOL 偶极子晶胞中心
AMIX, BMIX 混合标签
EBREAK, DEPER 特殊控制标签
TIME 特殊控制标签
LWAVE,LCHARG, LVTOT, LVHAR 生成WAVECAR/CHGCAR/LOCPOT
LELF 生成ELFCAR
LORBIT 生成PROOUT
NPAR 带间并行
LSCALAPACK 关闭scaLAPACK
LSCALU 关闭LU 分解
LASYNC 将计算与通信重叠

6.2 INCAR 文件中的常用设置

6.2.1 静态计算

只需删除 WAVECAR 文件并从头开始,INCAR 文件中无需设置任何参数。某些参数的默认值为

ISTART = 0 # startjob: no WAVECAR file
ICHARG = 2 # charge: from atoms
INIWAV = 1 # random initialization for wf.
NELM = 40 # maximum of 40 electronic steps
NELMIN = 2 # minimum of two steps
NELMDL = -5 # no update of charge for 3 steps
EDIFF = 10E-4 # accuracy for electronic minimization
6.2.2       续算

在某些情况下,从旧的 WAVECAR 文件开始计算是有意义的(例如,继续弛豫或继续增加截断能 ENCUT)。在这种情况下,只需保留 WAVECAR 文件并启动 VASP 即可。再次强调,也可使用一个空的 INCAR 文件。现在的默认值是:

ISTART = 1 # continue from WAVECAR file
ICHARG = 0 # charge from orbitals
NELM = 40 # maximum of 40 electronic steps
NELMIN = 2 # minimum of two steps
NELMDL = 0 # immediately update charge

如果存在旧的 CHGCAR 文件,可以手动设置 ICHARG=1。与默认设置相比,在电荷变化剧烈的情况下,可以节省几步。若要从以前的计算开始继续弛豫,请将 CONTCAR 文件复制到 POSCAR。

6.2.3    建议的最低设置

尽管可以使用空 INCAR 文件执行前面的计算,但建议始终手动设定几个参数:

PREC = Normal # precision normal
ENCUT = 300 # cutoff used throughout all calculations
LREAL = .FALSE. or Auto # real space projection yes / no

ISMEAR = 0 or 1 or -5 # method to determine partial occupancies

所有计算都应包含这四个参数。它们完全控制着计算的技术精度,尤其是基组(ENCUT),以及是否使用实空间投影方法。如果两个计算的前三个参数设置相同,则两个计算的总能量只能进行比较和相减。理想情况下,ISMEAR 参数也应在所有计算中保持一致(但在某些情况下可能很难做到)。

6.2.4   从不合理的初始猜测进行高效弛豫

如果想从一个偏离能量最小值的构型开始进行有效弛豫,请在 INCAR 文件中设置以下值(为了简洁起见,建议的手动设置请参见第 6.2.3 节):

NELMIN = 5 # do a minimum of four electronic steps
EDIFF = 1E-2 # low accuracy
EDIFFG = -0.3 # accuracy of ions not too high
NSW = 10 # 10 ionic steps in ions
IBRION = 2 # use CG algorithm

该方法只在开始的几步精度较低,但由于至少要进行 5 步电子运算,因此计算出的电子基态的精度会逐渐提高。如果您是较高级用户,也可以使用阻尼 MD 算法,它通常比 CG 算法更有效:

IBRION = 1 ; SMASS = 0.4 # damped MD

POTIM = 0.4 # time step needs to chosen with care

这种情况下,过大的 POTIM 会导致不收敛。

6.2.5   从预收敛的起始猜测进行高效弛豫

在接近局部最小值时,可变尺度(RMM-DIIS 算法)最为有效。INCAR 文件((为了简洁起见,建议的手动设置请参见第 6.2.3 节):

NELMIN = 8 # do a minimum of ten electronic steps
EDIFF = 1E-5 # high accuracy for electronic groundstate
EDIFFG = -0.01 # small tolerance for ions
NSW = 20 # 20 ionic steps should do
MAXMIX = 80 # keep dielectric function between ionic movements
IBRION = 1 # use RMM-DIIS algorithm for ions

NFREE = 10 # estimated degrees of freedom of the system

现在需要非常精确的作用力(EDIFF 较小)。此外,在每次离子位置更新之间至少要进行 8 个电子步,这样电子基态的计算才会非常精确。NELMIN=8 仅适用于电荷波动严重的体系,这种体系很难进行电子收敛。对于大多数体系,NELMIN=4 和 NELMIN=6 之间的值就足够了。

6.2.6     分子动力学

请参见第 9.7 节。

6.2.7     加快计算速度

在 INCAR 文件中使用以下几行,可提高大型体系的 VASP 效率:

ALGO = Fast # RMM-DIIS algorithm for electrons

LREAL = A # evaluate projection operators in real space NSIM = 4 # blocked algorithm update, four bands at a time

此外,还可以尝试设置 MAXMIX 标签。

6.3     NGX、NGY、NGZ 和 NGXF、NGYF、NGZF-标签

NGX、NGY、NGZ 控制 FFT 网格中沿三个晶格向量方向的网格点数量。X 对应第一个网格矢量,Y 对应第二个网格矢量,Z 对应第三个网格矢量(X、Y 和 Z 与笛卡尔坐标无关,不要被历史上的命名惯例所误导)。

NGXF、NGYF、NGZF 控制第二精细 FFT 网格的网格点数量。如果使用超软(US)Vanderbilt电势或 PAW 方法,则在该网格上表示局域增量电荷。此外,如果(也只有在)使用 US 赝势,还可以在第二精细的 FFT 网格上计算局域电势(交换相关电势、Hartree势和离子电势)。

注意:如果不使用 US 赝势或 PAW 方法,则无需将 NGXF 设置为大于 NGX 的值。在这种情况下,电荷密度和局域电势都不会在精细网格上设置。唯一的结果就是浪费大量存储空间。在这种情况下,只需将 NGXF、NGYF、NGZF 设置为 1。

在 VASP.4.X 中,所有参数都在运行时确定,或者使用默认值(第 6.11 或 5.23 节),或者从 INCAR 文件中读取 NGX 等(见第 6.3 节)。

6.4    KSPACING 标签和 KGAMMA 标签

KSPACING = [real]

KGAMMA = [logical]

默认值:

KSPACING = 0.5
KGAMMA = .TRUE.

如果没有 KPOINTS 文件(见第 5.5 节),标签 KSPACING 将决定 k 点的数量。KSPACING 是 k 点之间允许的最小间距,单位为VASP软件中文保姆级教程手册 | 第六章:INCAR 文件的常用设置。当间距减小时,k 点的数量会增加。第一、第二和第三倒晶格矢量方向上的 k 点数由以下公式决定:

VASP软件中文保姆级教程手册 | 第六章:INCAR 文件的常用设置

这些值四舍五入到下一个整数。生成的网格要么以 Γ 点为中心(例如包括 Γ 点)(KGAMMA=.TRUE.),要么像Monkhorst Pack网格的做法那样偏离 Γ 点(KGAMMA=.FALSE.)(参阅章节 5.5.3)。默认情况下,网格包括 Γ 点。

6.5    NBANDS标签

NBANDS = [integer]

默认值:

NBANDS = NELECT/2 + NIONS/2 (non-spinpolarized)

= 0.6*NELECT + NMAG (spin-polarized)

NBANDS 决定计算中的实际能带数。

选择 NBANDS 时,计算中应包含相当数量的空带。至少需要一个空带。否则,VASP 将发出警告。

从技术角度来看,NBANDS 也很重要:在迭代矩阵对角化方案中,接近计算向量数最大值的特征向量收敛速度要比最低特征向量慢得多。如果计算中没有包含足够的空带,可能会导致性能大幅下降。因此我们建议将 NBANDS 设置为 NELECT/2 + NIONS/2,这也是 makeparam 工具和 VASP.4.X 的默认设置。在某些情况下,大型体系也可以在不降低性能的情况下将附加带的数量减少到 NIONS/4,但另一方面,过渡金属需要更多的空带(最多 2*NIONS)。

为了检查这一参数,请在固定电位(ICHARG=12)下进行多次计算,同时增加空带数量(例如,从 NELECT/2 + NIONS/2 开始)。迭代 10-15 次后,精度应达到 10-6。注意 RMM-DIIS 方案(IALGO=48)比默认 CG 算法(IALGO=38)对能带数更为敏感。

6.6    NBLK标签

NBLK = [integer]

默认值:

NBLK = -1 VASP.4.6

= 256 in VASP.5.2, if dfast

这决定了许多 BLAS 第 3 级例程的阻塞因子。

在某些情况下,VASP 必须对当前轨道进行单元变换。这需要使用工作数组 CBLOCK 和以下 FORTRAN 代码来完成:

DO 100 IBLOCK=0,NPL-1,NBLK

ILEN=MIN(NBLK,NPL-IBLOCK)

DO 200 N1=1,N
DO 200 M=1,ILEN
CBLOCK(M,N1)=C(M+IBLOCK,N1)
C(M+IBLOCK,N1)=0

200 CONTINUE

C C(IBLOCK+I,N)=SUM_(J,K) CH(I,K) CBLOCK(K,N)
CALL ZGEMM (’N’, ’N’, ILEN, N, N, (1.,0.), CBLOCK, NBLK, CH, N,
& (1.,0.), C(IBLOCK+1,1), NDIM)

100 CONTINUE

ZGEMM 是 BLAS 软件包中的矩阵 × 矩阵乘法命令。该调用执行的任务由写在 ZGEMM 调用上方的注释行表示。一般来说,NBLK=16 或 32 对于超标量机器来说已经足够大了。在矢量机器上,为了获得最佳性能,可能需要一个较大的值(NBLK=128)。

6.7 SYSTEM标签

SYSTEM = [string]

默认值:

SYSTEM = SYSTEM=unknown system.

SYSTEM 标签后是一个可能包含空格的字符串。’title’字符串仅供用户使用,为帮助用户确定要对该特定输入文件做什么。请尽可能详细。字符串被读入并写入主输出文件 OUTCAR。

6.8 NWRITE标签

NWRITE= 0 | 1 | 2 | 3 | 4

默认值: NWRITE=2

该标签决定向文件 OUTCAR 写入多少内容(”verbosity flag”)。

VASP软件中文保姆级教程手册 | 第六章:INCAR 文件的常用设置

f+l 第一个和最后一个离子步
f 第一个离子步
i 每个离子步
e 每个电子步

X 可应用时

对于长时间的分子动力学运行,使用 NWRITE=0 或 NWRITE=1。对于短时间运行,使用 NWRITE=2。如果出现问题,NWRITE=3 可能会提供信息。NWRITE=4 仅用于调试。

6.9 ENCUT标签

ENCUT= [real]

默认值

ENCUT = largest ENMAX from POTCAR-file

平面波基组的截断能,单位为 eV。所有动能小于 Ecut 的平面波都包含在基组中即:

VASP软件中文保姆级教程手册 | 第六章:INCAR 文件的常用设置

每个 k 点的平面波数量都不相同,因此在能量-体积计算等方面具有更优越的性能。如果体积增大,平面波的总数会发生相对平滑的变化。标准 |G| cut(即每个 k 点的基组相同)会导致非常粗糙的能量-体积曲线,一般来说,这会使能量收敛速度较慢。

从 VASP 3.2 版开始,POTCAR 文件包含默认的 ENMAX(和 ENMIN)行,因此原则上无需在 INCAR 文件中指定 ENCUT。对于有多个种类的计算,将使用最大截断值(ENMAX 或 ENMIN)进行计算(见下文第 6.11 节)。出于一致性考虑,我们仍然建议在 INCAR 文件中手动指定截断值,并在整组计算中保持不变。

6.10 ENAUG标签

ENAUG= [real]

默认值:

ENAUG = EAUG from POTCAR file

增量电荷的动能截断,该行确定了NGXF、NGYF和NGZF(另请参见6.11节)。

VASP入门捷径
“实验+计算”的模式已成为顶刊标配!还在苦于看不懂论文的计算部分?不会分析相关结果?不会回复审稿意见?错失顶刊?
朱老师带你零基础轻松入门DFT计算,提升论文档次,发顶刊快人一步!
学员已发表Nature、Nature Energy、Nature Materials、Angew..、JACS、AM、AEM等期刊。

声明:如需转载请注明出处(华算科技旗下资讯学习网站-学术资讯),并附有原文链接,谢谢!
(0)
上一篇 19小时前
下一篇 19小时前

相关推荐