View Categories

常用INCAR参数




ICHARG = 0,从初始波函数(WAVECAR)计算电荷密度。若WAVECAR文件无效或缺失,VASP会自动修正为ICHARG = 2。适用于续算场景,但若波函数文件不匹配(如截断能或晶胞尺寸改变),可能导致收敛问题!一般结构优化不推荐输出WAVECAR,因此ICHARG = 0不常用
ICHARG = 1,从CHGCAR文件读取电荷密度,并通过原子电荷密度的线性组合方法从旧位置(CHGCAR中的)外推至新位置。适用于结构微调后的续算(如弛豫或分子动力学),可加速收敛,但是一般结构优化不推荐输出CHGCAR,因此ICHARG = 1不常用
ICHARG = 2,使用原子电荷密度的叠加作为初始电荷密度,当ISTART=0(或者没有WAVECAR文件时),VASP会默认采用此模式。ICHARG = 2适用于全新计算,常用!
ICHARG = 4,从POT文件读取势场(需LVTOT=.TRUE.生成该文件),常用于优化有效势(OEP)方法
ICHARG = 5,外部电荷密度更新模式,允许在SCF过程中通过GAMMA文件修正KS占据数,用于DFT+DMFT等自洽计算,需配合vasp.lock文件控制流程
ICHARG = 10 | 11 | 12 ,通过给ICHARG值加10(也就是0、1、2变为10、11、12),在保持ICHARG=0、1、2的功能前提下可使电荷密度在整个电子最小化过程中保持恒定,用于非自洽计算。适用场景:
ICHARG=10,常用于HSE计算能带结构;
ICHARG=11,常用于基于CHGCAR给定电荷密度计算能带结构和态密度;
ICHARG=12,原子电荷密度叠加的非自洽计算(遵循Harris-Foulkes泛函原理),可正确计算应力和力,支持基于该泛函的从头算分子动力学。


LREAL=.FALSE.​​投影算符在​​倒易空间​​(reciprocal space)中进行计算。这是默认设置,适用于高精度计算,但计算量较大
​​LREAL=Auto或A​​投影算符在​​实空间​​(real space)中进行计算,且​​完全自动优化​​投影算符(无需用户干预,推荐使用)
​​LREAL=On 或 O​​投影算符在​​实空间​​中进行计算,但需​​手动优化​​投影算符(不推荐使用)。与.TRUE.的区别在于是否使用King-Smith算法优化
​​LREAL=.TRUE.​​投影算符在​​实空间​​中进行计算,直接使用文件中存储的投影算符(不推荐使用)。可能导致精度下降,尤其对复杂体系

超过20个原子的体系直接用LREAL = Auto即可,平衡效率与精度
原子数超过100,LREAL = Auto的计算速度会比LREAL = .FALSE.快很多倍!


强烈建议始终在INCAR文件中手动指定截断能ENCUT,否则,默认的ENCUT可能会在不同的计算中有所不同,从而导致总能量无法比较(例如,用于计算内聚能)。
对于截断能的选取建议自己手动做收敛性测试,实在不想测试可以按经验选择一个保守的截断能,也就是:1.3×ENMAX
通过命令:grep ENMAX POTCAR 抓取POTCAR中所有的ENMAX,然后选取最大的ENMAX,设置ENCUT = 1.3×ENMAX
下面我用一个由O、C、Co元素组成的体系为例

可以看到最大的ENMAX是400eV,因此ENCUT不经过收敛性测试直接设置为1.3×400=520eV(即ENCUT = 520)较为合适


ISMEAR > 0​​:采用Methfessel-Paxton方法,阶数为ISMEAR值,展宽宽度由SIGMA决定。注意:这种方法可能导致绝缘体的部分占据数不物理
ISMEAR = 0​​:采用高斯展宽方法,展宽宽度由SIGMA决定
ISMEAR = -1​​:采用费米展宽方法,展宽宽度由SIGMA决定
ISMEAR = -2​​:从WAVECAR中读取部分占据数并在整个计算过程中保持不变。或者可以通过INCAR文件中的FERWE(和ISPIN=2时的FERDO)标签设置占据数
ISMEAR = -3​​:对INCAR文件中SMEARINGS参数提供的值进行循环计算
​ISMEAR = -4​​:无展宽的四面体方法
​ISMEAR = -5​​:带Blöchl修正的无展宽四面体方法
ISMEAR = -14​​:带费米-狄拉克展宽(SIGMA)的四面体方法
ISMEAR = -15​​:带Blöchl修正和费米-狄拉克展宽(SIGMA)的四面体方法

不同的ISMEAR值适用于不同的体系
对于孤立的分子或原子体系,ISMEAR = 0;SIGMA = 0.01
对于周期性体系,不知道是绝缘体、半导体还是金属,使用ISMEAR = 0和SIGMA = 0.03~0.05
ISMEAR = 0加上测试好的SIGMA值是一个万能的设置,不管什么体系,都可用于结构优化、频率计算和热力学校正
对于半导体和绝缘体体系,ISMEAR的值取绝对不能大于0, 一般用0;对于金属体系,ISMEAR的取值一般为 ≥ 0 的数值(0,1)
对于电子结构中DOS计算部分,ISMEAR = -5,此时K点要 ≥ 3,VASP才能正常运行
四面体方法(ISMEAR = -4, -5, -14, -15)需要配合gamma-center的K点模式使用


SIGMA的取值和ISMEAR息息相关,一般情况下SIGMA会和ISMEAR这个参数同时设定(ISMEAR = -5时,不需要写SIGMA
对于金属: ISMEAR = 1 或者0,SIGMA = 0.1~0.2即可
对于非金属: ISMEAR= 0 的时候,一般取 SIGMA = 0.10 即可,不放心的话,用0.05。
对于孤立的气体分子,原子体系(也就是你把分子或者原子放到一个box里面):牢记ISMEAR = 0和SIGMA = 0.01
测试标准是: SIGMA的取值要保证OUTCAR 中的 entropy T*S 这一项,平均到每个原子上,要小于 1-2 meV。
检查的时候可以用这个命令:grep ‘entropy T’ OUTCAR
注意1:这里有两个单引号,不要输入的时候漏掉。
用这个命令,得出的能量除以体系中原子的数目(也就是平均到每个原子上),然后再和 0.001 eV 比较。如果小于,SIGMA取值OK,如果大于,再换个小点的SIGMA值进行测试。
注意2:这里的说的entropy,是因为ISMEAR展宽这个计算方法引入的,跟我们物理化学书里面的通过振动频率计算的entropy完全是两码事。后面我们会介绍如何通过频率分析计算物理化学里面的Entropy。千万别把这个数值当成频率所对应的entropy。
注意3: 结合上一点强调下:vasp没有内置热力学相关的计算模块,我们需要计算频率来获得。


PREC会为以下各项设置默认值:
1. 能量截断能 ENCUT
2. FFT 网格大小 (NGX, NGY, NGZ) 和 (NGXF, NGYF, NGZF)
3. 实空间投影算子的精度 ROPT(仅在 LREAL=.TRUE. 时生效)。
由 PREC 设定的参数值(例如 ENCUT),可以通过在 INCAR 中显式指定该参数来覆盖,具体的默认值设置详见下方表格

推荐使用 PREC=Normal 或 PREC=Accurate。Normal 和 Accurate 模式均采用双网格技术:表示增强电荷的精细网格 (NGXF, NGYF, NGZF) 大小是表示赝势轨道的主网格 (NGX, NGY, NGZ) 的两倍。PREC=Accurate 会略微增加内存需求,但在需要高精度结果时(例如:高精度力计算、声子谱、应力张量,或广义上的二阶导数计算),建议结合增大的ENCUT一起使用。有时,通过设置ADDGRID=.TRUE.可以进一步提高力的精度


​​ALGO=Normal​​:​​相当于IALGO = 38,采用Blocked-Davidson算法,通用且稳健的算法,适用于大多数情况
​​ALGO=VeryFast​​:相当于IALGO = 48,采用​​RMM-DIIS算法,更快的算法,但稳定性有所降低,VASP6版本增强了这个算法的鲁棒性,HSE06计算不要选择这个算法
​​ALGO=Fast​​​​:混合算法,初始使用Blocked-Davidson算法(IALGO=38),后续切换至RMM-DIIS算法(IALGO=48)
ALGO=Conjugate或All​​:选择IALGO=58(all band simultaneous update of orbitals),推荐搭配ISEARCH=1(improved line-search算法)使用

常规计算​​:推荐ALGO = Normal,在实际应用中,有时会遇到某些结构优化步骤在使用ALGO = Normal时无法收敛的情况,此时可以尝试切换到Fast或VeryFast来解决问题
​​金属氧化物使用DFT+U遇到电子步难收敛的问题,可以使用ALGO = ALL,能够加快收敛
含​​f轨道电子​​(如镧系元素)时,必须设置LMAXMIX=6以确保收敛


当两步迭代之间的总能(自由能)变化以及能带能量变化(本征值变化)都小于 EDIFF(单位 eV)时,电子自由度的弛豫会停止。
如果设置 EDIFF = 0,则会严格执行 NELM 步电子自洽迭代,不提前收敛。
在大多数情况下,电子收敛是二次收敛,因此额外迭代的计算成本很小。
为了得到充分收敛的计算结果,强烈建议将 EDIFF 设置为1×10⁻⁶。
对于有限差分计算(如声子谱),为获得精确结果,甚至可能需要设置EDIFF = 1×10⁻⁷。
可以通过设置 NWRITE = 2, 3 查看每一步电子迭代的详细信息。


1. 通常无需修改NELM默认值,如果自洽循环在 40 步内仍未收敛,那么大概率也无法收敛,若你想手动设置,必须将其设为大于 100,否则 VASP 会忽略该输入值并采用默认设置
2. NELMIN通常也无需修改,在某些计算中,例如分子动力学(MD)计算或离子弛豫 / 结构优化时,建议将 NELMIN 增大到 4~8 之间


​​ISYM=1 | 2 | 3​​:​​启用对称性​​;ISYM=0 | -1​​:​​关闭对称性​​
​​ISYM=2​​:采用​​高效电荷密度对称存储​​,显著降低内存需求(相比于ISYM = 1)
​​ISYM=3​​:不直接对称化电荷密度,而是通过对布里渊区不可约k点的轨道应用对称操作来构造电荷密度,此模式专为杂化泛函计算设计
​​ISYM=0​​:不启用对称性,但假设波函数满足Ψk*-k,从而减少布里渊区采样。​​推荐用于分子动力学计算(IBRION=0)
​​ISYM=-1​​:​​完全关闭对称性​​,适用于自旋轨道耦合(SOC)或强对称性破缺体系,但会降低计算效率
启用对称性时,VASP会按以下步骤分析对称性(结果写入OUTCAR文件):
1. 确定晶格的点群对称性​​(基于POSCAR中的结构)。
​​2. 检测基矢是否破坏对称性​​,移除不满足的对称操作。
​​3. 检查初始速度是否破缺对称性​​。
​​4. 验证MAGMOM设置的磁矩是否破坏对称性​​,并确定磁对称群

常规晶体计算​​:推荐ISYM=2(平衡效率与精度)
​​分子动力学/表面计算​​:设为ISYM=0以充分弛豫
​​磁性或SOC体系​​:关闭对称性(ISYM=-1)
通过在INCAR中设置NWRITE = 3可在OUTCAR中输出对称操作详情


LWAVE = .TRUE.,写入 WAVECAR;LWAVE = .FALSE.,不写入 WAVECAR


LCHARG = .TRUE.,写入 CHGCAR和CHG 文件;LCHARG = .FALSE.,不写入 CHGCAR和CHG 文件


total charge
# of ion       s       p       d       tot
------------------------------------------
    1        1.514   0.000   0.000   1.514

当 LAECHG=.TRUE. 时,VASP 会重构三种不同的全电子密度:
1. 芯密度(core density)
2. 类原子价密度(proto-atomic valence density,重叠的原子电荷密度)
3. 自洽价密度(self-consistent valence density)
它们分别被写入文件:AECCAR0、AECCAR1、AECCAR2。
前两个文件在计算开始时写入,最后一个文件在计算达到自洽后于结束时写入


LELF 用于控制是否生成 ELFCAR 文件。
该文件包含电子定域化函数(ELF,electron localization function)。
注意:如果设置 LELF=.TRUE.,必须在 INCAR 中同时显式设置 NPAR=1


若设置 LVTOT=.TRUE.
总局域势Vtot会写入 LOCPOT 文件,同时写入 POT 文件,POT 文件会额外包含 augmentation(增强)部分


提示:
1. 长时分子动力学(MD)计算,建议使用 NWRITE = 0 或 1
2. 短时间计算,使用 NWRITE = 2
3. 计算出错排查时,可使用 NWRITE = 3 获取更多信息
注意!NWRITE = 4 仅用于调试!


​​IBRION=-1​​:​​不进行结构更新(避免在 NSW>0 时设置 IBRION=-1,否则会重复计算同一结构 NSW 次)
​​IBRION=0:分子动力学模拟
​​IBRION=1:结构优化(RMM‑DIIS 算法),收敛快,适合大体系
IBRION=2:结构优化(共轭梯度法),最稳健、最常用默认
IBRION=3:结构优化(阻尼分子动力学),适合结构烂、离基态很远的体系
IBRION=5:声子谱计算(有限差分法,不利用对称性)
IBRION=6:声子谱计算(有限差分法,利用对称性)
IBRION=7:声子谱计算(微扰理论,不利用对称性)
IBRION=8:声子谱计算(微扰理论,利用对称性)
IBRION=40:过渡态搜索,内禀反应坐标(IRC)计算
IBRION=44:过渡态搜索,改进二聚体方法
IBRION=11:用户交互式修改结构,从标准输入读取结构
IBRION=12:用户交互式修改结构,通过 Python 插件修改结构

只算能量,不动原子IBRION=-1 ;结构弛豫、找最稳定结构IBRION=2 或 1 ;跑分子动力学IBRION=0


涉及体积变化的计算,必须提高截断能,ENCUT = 1.3 × max(ENMAX),并设置 PREC = High
ISIF=8 仅从 VASP.6.4.1 版本开始支持


1. 当 IBRION = 0 时(分子动力学)
NSW 表示分子动力学的总步数。该参数必须设置,否则 VASP 启动后会立即退出。
对于含从头算的长时 MD 任务,建议拆分成多个任务,每个任务的 NSW 不超过约 20000 步。如果使用机器学习力场(ML_MODE=run),可以设置更大的 NSW,但建议同时设置 ML_OUTBLOCK 控制输出。
2. 当 IBRION ≠ 0 时(结构优化等)
在所有极小化算法中(准牛顿、共轭梯度、阻尼分子动力学),NSW 定义最大离子弛豫步数。
每个离子步内最多执行 NELM 步电子步迭代;如果提前满足 EDIFF 收敛判据,则电子步会提前结束。每个离子步都会根据 ISIF 的设置计算力和应力。


当 EDIFFG 为正值时:相邻两步离子步之间的总能量变化小于 EDIFFG 时,弛豫停止。
当 EDIFFG 为负值时:所有原子的受力的模均小于 |EDIFFG| 时,弛豫停止。这是更常用、更推荐的设置方式。
若 EDIFFG = 0:离子弛豫在运行 NSW 步后强制停止。
警告:EDIFFG 不适用于分子动力学(MD)模拟。
提示:可以通过 NWRITE = 2、3 在每步电子步输出详细信息。


POTIM 在分子动力学中设置时间步长,在离子弛豫中设置迭代步长。
1. 当 IBRION=0(从头算分子动力学 MD)POTIM 为时间步长,单位是 fs(飞秒)。必须手动设置,否则 VASP 启动后会直接崩溃。
2. 当 IBRION=1、2、3(准牛顿、共轭梯度、阻尼 MD 弛豫)POTIM 作为步长缩放系数,控制每一步离子移动的幅度。其中准牛顿法对该参数特别敏感。
3. 当 IBRION=5、6(有限位移法计算声子)POTIM 是原子位移幅度,用于计算 Hessian 矩阵。


​​ISPIN=1​​:执行​​非自旋极化​​计算(默认值),适用于非磁性体系,所有电子轨道自旋向上和向下的占据数相同。
​​ISPIN=2​​:执行​​自旋极化​​计算(共线磁性),可结合MAGMOM参数研究铁磁、反铁磁等共线磁性行为

磁性材料​​:如过渡金属(Fe、Co、Ni)或含d/f电子的体系,需设置ISPIN=2并合理定义MAGMOM
​​非磁性体系​​:如半导体或绝缘体,通常使用ISPIN = 1以节省计算资源
使用ISPIN = 2会比使用ISPIN = 1多使用将近一倍的内存/显存,同时也会增加计算时间,在使用显卡加速节点时尤其要注意这一点
使用非共线磁性计算时(LNONCOLLINEAR=.TRUE.),ISPIN这个参数会被忽略。但是在VASP.6.5.0版本以上的计算中,若同时设置LNONCOLLINEAR=.TRUE.和ISPIN = 2和MAGMOM,VASP会报错


​​输入格式示例​​:
​​自旋极化计算(ISPIN=2)​​
反铁磁Cr单胞(2原子)

非共线计算(LNONCOLLINEAR=.TRUE.)​​
16原子体系(前8原子磁性)

在从头计算(ISTART=0)时,MAGMOM定义每个原子的初始磁矩,并降低体系对称性(若磁矩分布破坏晶体对称性)。
对于磁性计算(自旋极化或非共线磁性),初始磁矩的合理设置可加速收敛并避免陷入局部极小值。推荐值为实验磁矩的1.2-1.5倍


能带结构计算注意事项
CHGCAR 文件中仅保存角量子数 l≤LMAXMIX 范围内的单中心 PAW 占据矩阵信息。若计算中读取 CHGCAR 并固定电荷密度(ICHARG=11),计算结果必然与自洽计算不一致;这种偏差在 DFT+U 计算中通常会很大。
因此,使用 DFT+U 计算能带结构时,必须严格按以下规则在INCAR中设置 LMAXMIX:
d 区元素(l=2):LMAXMIX = 4
f 区元素(l=3):LMAXMIX = 6


LDAUTYPE=1:Liechtenstein 等人提出的旋转不变性 DFT+U。
LDAUTYPE=2:Dudarev 等人提出的简化旋转不变性 DFT+U(即用 U-J 形式的 DFT+U,最常用)
LDAUTYPE=3:Cococcioni 等人提出的线性响应方法,用于自动计算U值
注意:对于 LDAUTYPE=3,参数 LDAUU 和 LDAUJ 分别表示作用在自旋向上、自旋向下子空间的球对称势强度
LDAUTYPE=4:与 LDAUTYPE=1 相同,但不包含交换劈裂
LDAUTYPE=1、2、3 可用于非自旋极化计算(ISPIN=1)



总能量依赖于 U(LDAUU)和 J(LDAUJ)参数,因此不同 U、J 参数下的总能量无直接可比性
对于 Dudarev 方法(LDAUTYPE=2),不同 U−J 值对应的总能量不能直接比较
当使用 LDAUTYPE=3(线性响应方法)时:
LDAUU 表示作用在自旋向上子空间的球对称势强度(单位:eV)
LDAUJ 表示作用在自旋向下子空间的球对称势强度(单位:eV)


使用 DFT+U 计算能带结构时,必须严格设置:
d 区元素:LMAXMIX = 4
f 区元素:LMAXMIX = 6
考虑非共线磁性的 SDFT 计算通常也需要将自旋密度混合阶数提高到:
d 元素:4
f 元素:6
以实现快速收敛。


​​ALGO=Normal​​:​​相当于IALGO = 38,采用Blocked-Davidson算法,通用且稳健的算法,适用于大多数情况
​​ALGO=VeryFast​​:相当于IALGO = 48,采用​​RMM-DIIS算法,更快的算法,但稳定性有所降低,VASP6版本增强了这个算法的鲁棒性,HSE06计算不要选择这个算法
​​ALGO=Fast​​​​:混合算法,初始使用Blocked-Davidson算法(IALGO=38),后续切换至RMM-DIIS算法(IALGO=48)
ALGO=Conjugate或All​​:选择IALGO=58(all band simultaneous update of orbitals),推荐搭配ISEARCH=1(improved line-search算法)使用

常规计算​​:推荐ALGO = Normal,在实际应用中,有时会遇到某些结构优化步骤在使用ALGO = Normal时无法收敛的情况,此时可以尝试切换到Fast或VeryFast来解决问题
​​金属氧化物使用DFT+U遇到电子步难收敛的问题,可以使用ALGO = ALL,能够加快收敛
含​​f轨道电子​​(如镧系元素)时,必须设置LMAXMIX=6以确保收敛