View Categories

输入文件-INCAR简介

一、INCAR 文件概述 #

1.1 INCAR 文件是什么 #

INCAR 是 VASP 的“控制参数文件”,决定“算什么、怎么算”。VASP 运行需要四个输入文件:INCAR(控制参数)、POSCAR(结构)、POTCAR(赝势)、KPOINTS(K 点)。INCAR 告诉 VASP 执行什么类型的计算(结构优化、静态自洽、能带、态密度、磁性、分子动力学、声子、过渡态等)、采用什么算法、收敛标准、计算精度、输出内容等。可以说,INCAR 直接决定了计算的物理模型与数值精度,是四个输入文件中最核心、最需要花心思的一个。

1.2 INCAR 文件的格式与语法 #

(1)INCAR 是纯文本文件,文件名必须为 INCAR(无扩展名,大小写严格),每个参数一行,格式为“参数名 = 数值”,例如 ISTART=0、ENCUT=520。

(2)等号前后可以有空格也可以没有,不影响读取;参数名不区分大小写,但建议统一大写,数值类型(整数、实数、字符串、逻辑值)由 VASP 自动识别。

(3)以 # 或 ! 开头的内容为注释;行内 # 之后的内容也被视为注释(例如 “NSW=50 # 离子步数” 可正常读取 NSW=50)。注意:一定不要使用 Tab 键分隔,应使用空格。

(4)布尔型参数用 .TRUE. / .FALSE.(也可简写 .T. / .F.),如 LWAVE = .FALSE.。

(5)VASP 对未写出的参数使用内置默认值;对拼写错误或无法识别的标签给出警告并忽略(OUTCAR 中会有提示)。因此参数名务必拼写正确,写之前先查 VASP Wiki。

(6)推荐原则:只写自己理解的参数,与当前计算无关的参数一律不写,标签越少越好(减少出错与干扰)。Rubbish in, Rubbish out!

1.3 编辑器选择 #

所有输入文件都是文本文件。Windows 推荐 notepad++(注意将换行符转为 LF、编码保持 UTF-8 无 BOM 或 ASCII),Linux 推荐 vim 或 nano。任何时候都不推荐在 Windows 系统上直接编辑 VASP 输入文件再上传集群,容易出现换行符(CRLF)与编码问题导致报错。

二、参数分类简介 #

2.1 系统与总体控制参数 #

SYSTEM:任务名称,仅作备注,不影响计算(如 SYSTEM = Si_bulk)。

ISTART:是否读取 WAVECAR 作为波函数初值。0 表示从头开始(默认,不读 WAVECAR);1 表示读取 WAVECAR 并继续迭代;2 表示完全读取 WAVECAR(不重新优化波函数,一般用于能带等后续计算)。修改体系结构后必须设 ISTART=0 或删除 WAVECAR。

ICHARG:电荷密度初值来源。0 表示由波函数计算(与 ISTART 配合);1 表示从 CHGCAR 读取电荷密度;2 表示由原子电荷密度叠加得到(默认,从头计算常用);10、11、12 为读取 CHGCAR 后保持不变的“非自洽”模式(能带、态密度计算常用 ICHARG=11)。

PREC:计算精度,取值 Low、Medium、High、Accurate。决定默认的平面波截断能(ENCUT 相关)、FFT 网格、力与应力收敛标准等。一般推荐 High 或 Accurate;金属体系或高精度计算常用 Accurate。

ENCUT:平面波截断能(eV),影响精度与速度的最重要参数之一。原则上应不小于 POTCAR 中推荐的 ENMAX,一般取 ENMAX 的 1.2~1.5 倍(常见 400、450、500、520、600 eV)。正式计算前应做 ENCUT 收敛性测试(能量差小于 1 meV/原子)。

GGA:交换关联泛函类型。PE(PBE,默认)、PS(PBEsol)、RP(revPBE)、AM(AM05)、91(PW91)、RE(revPBE 变体)等。磁性、吸附能等计算中泛函选择很重要,如吸附能常用 PBE + 范德华修正。

ADDGRID:是否在电荷密度计算时使用更密的 FFT 网格(.TRUE./.FALSE.),对含 d、f 电子的体系精度有帮助,默认 .FALSE.。

2.2 电子步(自洽迭代 SCF)参数 #

EDIFF:电子步能量收敛标准(eV),默认 1E-4(旧版本)或 1E-5。高精度计算建议 1E-5~1E-6;注意 EDIFF 与 EDIFFG 的区别:EDIFF 是电子步收敛,EDIFFG 是离子步收敛。

NELM:最大电子步数,默认 60。若电子步在 NELM 内未收敛,VASP 会停止并报错(需增大 NELM 或调整收敛参数)。

NELMIN:最小电子步数,默认 2,一般无需修改。

NELMDL:开始电荷混合前不更新的电子步数,默认 -5(自动)。若计算初期出现电荷密度振荡可适当增大。

ALGO:电子步迭代算法。Normal(默认,Davidson+RMM-DIIS 混合)、Fast、VeryFast(更快但更激进)、Exact(精确对角化,小体系用)、Damped(旧版阻尼算法,收敛困难时尝试)、Conjugate(共轭梯度,适用于难收敛体系)。若默认算法不收敛,可尝试 ALGO=VeryFast 或 Damped。

AMIX / AMIN:电荷密度混合参数(默认 AMIX=0.4、AMIN=0.1)。电子步收敛困难时,可降低 AMIX(如 0.2)并配合 AMIN(0.01~0.05)帮助收敛。

BMIX:自旋密度混合参数(默认 1.0),磁性体系收敛困难时可降低(如 0.3~0.5)。

LREAL:是否使用实空间投影。.FALSE. 表示倒空间计算(更精确,推荐小体系与高精度计算);.TRUE. 表示实空间投影(更快,适用于大体系,如数百原子);Auto 表示自动判断(推荐,速度与精度折中)。

LWAVE、LCHARG:见 2.6 输出控制。

2.3 离子步(结构优化)参数 #

IBRION:离子运动方式。-1 表示离子不动(静态计算);0 表示分子动力学(与 MDALGO 配合);1 表示 RMM-DIIS 准牛顿算法(默认,适用于较平滑的势能面,速度快);2 表示共轭梯度算法(更稳健,势能面复杂时推荐);3 表示阻尼分子动力学(旧版默认,已被 1/2 取代);5、6、7、8 为有限差分/声子相关模式(见 2.9)。

ISIF:控制优化的自由度:0 只优化原子位置(晶胞固定,常用于表面、分子、吸附体系);1 优化原子位置+晶胞体积(形状不变,常用于各向同性压力);2 优化原子位置+晶胞形状(体积不变);3 优化原子位置+晶胞形状+体积(全弛豫,晶体最常用);4、5、6、7 为只优化晶胞或固定离子的特殊情形(一般不常用)。注意:对于只优化原子位置的计算,ISIF 必须设为 0 或 2。

NSW:最大离子步数。NSW=0 表示不做结构优化(只做电子自洽);结构优化一般设 50~200;分子动力学设 1000 以上。

EDIFFG:离子步收敛标准。若为正值,表示能量差(eV),如 EDIFFG=1E-3;若为负值,表示力的收敛标准(eV/Å),如 EDIFFG=-0.02 表示所有原子受力最大值小于 0.02 eV/Å 时收敛。工程上推荐用力的标准(-0.02 或 -0.01),更严格更可靠。

POTIM:离子步长(默认 0.5),IBRION=1 或 2 时一般不用修改;若优化振荡可减小(如 0.1~0.2)。

IOPT:IBRION=1 时选择优化算法(0 为默认,1 为 FIRE,2 为 LBFGS 等),一般保持默认。

2.4 电子态占据与展宽参数 #

ISMEAR:能带占据数的展宽方法,是新手最容易出错的地方。-5 为四面体法(Blöchl 修正,仅适用于半导体/绝缘体的静态计算与态密度计算,且 K 点要足够密);-4 为未修正的四面体法;-3、-2 为其他变体;-1 为费米展宽;0 为高斯展宽(通用,金属和半导体都可用,但金属用 1/2 更好);1 和 2 为 Methfessel-Paxton 方法(金属体系推荐 1,结构优化推荐);正数越大展宽越平滑。

SIGMA:展宽宽度(eV),默认 0.2。金属体系常用 0.1~0.2(配合 ISMEAR=1);半导体/绝缘体用 ISMEAR=-5 时 SIGMA 不影响结果;SIGMA 太小难收敛,太大能量误差增大(应外推至 SIGMA→0 或使用四面体法)。

LORBIT:是否输出投影态密度。0 不输出(默认);1 输出 DOSCAR 的总态密度;2 输出角动量分辨的态密度;10/11 输出 DOSCAR 中的投影态密度和 PROCAR 文件(用于画分波态密度、轨道成分分析),推荐 11。

2.5 磁性计算参数 #

ISPIN:是否考虑自旋极化。1 为非自旋极化(默认);2 为自旋极化,磁性体系(铁磁、反铁磁、顺磁等)必须设置。

MAGMOM:每个原子(或按元素顺序)的初始磁矩(单位 μB)。写法如 MAGMOM=5 5 -5 -5(依次对应各原子)或 MAGMOM=4*0(4 个原子均为 0)。合理的初值(接近预期磁矩)有助于磁性体系收敛到正确的磁序;金属如 Fe、Co、Ni 常用 5、2、1 等初值。

LNONCOLLINEAR:是否考虑非共线磁性(.TRUE./.FALSE.),用于自旋方向随位置变化的体系(如螺旋磁性、拓扑磁性)。

LSORBIT:是否考虑自旋轨道耦合(SOC,.TRUE./.FALSE.),重元素体系、拓扑材料、磁各向异性计算需要开启,计算量显著增大。

LMAXMIX:写 CHGCAR 时投影到球谐函数的最高角动量(默认 2),磁性、SOC 计算建议设为 4(d 电子)或 6(f 电子),否则续算时磁矩信息可能丢失。

2.6 输出控制参数 #

LWAVE:是否写 WAVECAR 文件(默认 .TRUE.)。WAVECAR 体积很大,若后续不需要续算可设 .FALSE. 节省磁盘。

LCHARG:是否写 CHGCAR 文件(默认 .TRUE.),后续能带、态密度、电荷分析等计算常需读取 CHGCAR,一般保持 .TRUE.。

LVTOT:是否写 LOCPOT 文件(静电势,.TRUE./.FALSE.),功函数、静电势分析需要。

LELF:是否写 ELFCAR 文件(电子局域函数,.TRUE./.FALSE.),化学成键分析常用。

NWRITE:输出详细程度(0~3),默认 2;调试时可设 1 或 0 减少输出。

2.7 范德华力修正参数 #

IVDW:范德华力修正方法。0 表示关闭(默认);10/11 为 DFT-D2(Grimme);12 为 DFT-D3(Grimme 零阻尼);202/204 为 DFT-D3(BJ)(Becke-Johnson 阻尼,推荐);13/14 为 DFT-D4。含分子晶体、层状材料(石墨烯、MoS2 等)、吸附体系(分子在表面)强烈建议开启 D3 或 D3(BJ),否则层间距、吸附能会严重偏低。

2.8 DFT+U 修正参数 #

LDAU:是否开启 DFT+U(.TRUE./.FALSE.),用于强关联体系(过渡金属氧化物、稀土化合物等)局域轨道(d、f 电子)的库仑修正。

LDAUTYPE:+U 方法类型,1 为 Liechtenstein(原子球近似),2 为 Dudarev(默认,只用一个有效 U 值,写法简单),3 为 DFT+U 的 Liechtenstein 全形式。常用 LDAUTYPE=2。

LDAUL:每个元素的角动量通道(-1 不修正,0 为 s,1 为 p,2 为 d,3 为 f),按元素顺序排列,如 LDAUL=2 表示第一个元素加 d 通道 U。

LDAUU / LDAUJ:每个元素的 U 值和 J 值(eV)。Dudarev 方法(LDAUTYPE=2)中有效 U 为 U-J,直接写 LDAUU 即可。常见取值:过渡金属氧化物 U≈3~7 eV(如 Ni 6.2、Co 4.0、Fe 4.0 等),需参考文献或做 U 值测试。

2.9 杂化泛函(HSE06)参数 #

LHFCALC:是否开启杂化泛函(.TRUE./.FALSE.),如 HSE06。计算量大(比 PBE 慢一两个数量级),一般先用 PBE 做结构优化,再用杂化泛函算能带、带隙、态密度等电子性质。

HFSCREEN:杂化泛函的屏蔽参数。HSE06 用 0.2(Å⁻¹);PBE0 用 0(全局杂化);HF 为 1E-6 等。

AEXX:Hartree-Fock 交换比例(HSE06 为 0.25,PBE0 为 0.25)。

PRECFOCK:Fock 交换部分的 FFT 网格精度(Low/Medium/High/Fast),建议与 PREC 一致或 High。

2.10 分子动力学(MD)参数 #

MDALGO:分子动力学算法。0 表示不进行 MD(默认);1 表示 NVT 系综(Nose-Hoover 恒温器);2 表示 NVT 系综(Andersen 恒温器);3 表示 NpT 系综(Langevin 恒温器+恒压);11、21 等为 NVE 系综变体。常用 MDALGO=1(NVT)。

TEBEG / TEEND:MD 的起始/结束温度(K),如 TEBEG=300、TEEND=300(恒温),或退火时 TEEND 不同。

SMASS:Nose-Hoover 恒温器质量参数(-1 表示 NVE 系综;0 表示 Anderson 恒温器只改变速度;正数控制温度耦合强度)。

POTIM:MD 的时间步长(fs),如 POTIM=1 或 2(fs);注意 MD 时 POTIM 单位是飞秒。

NBLOCK:每隔多少步写一次轨迹(默认 1)。

2.11 声子、弹性常数等有限差分参数 #

IBRION=5 / 6 / 7 / 8:5 表示有限差分法计算力常数(配合 Phonopy 用 IBRION=8 或单独);6 表示有限差分计算弹性常数(配合 ISIF=3、NFREE=2 或 4);7 表示 DFPT 声子计算(VASP 内置,配合 NWRITE=3 输出);8 表示有限位移法声子计算(供 Phonopy 使用,配合 POTIM=0.01~0.02 的位移)。

NFREE:弹性常数计算中每个方向扰动的位移数(2 或 4)。

2.12 并行计算参数 #

NCORE:每个“组”使用的核数(共享内存并行),推荐 NCORE=每个节点核数(如 8、16、32)。NCORE 与 NPAR 不能同时设置。

NPAR:并行 band 数(旧参数),一般 NPAR=总核数开平方(如 64 核用 8)。VASP 6 建议用 NCORE 替代。

KPAR:K 点并行数,K 点很多时设置(如 2、4),不能超过 K 点数。

LPLANE:平面波数据按平面分布(.TRUE./.FALSE.),大体系可改善内存分布。

2.13 特殊与进阶参数 #

NELECT:手动指定体系总电子数(默认由赝势自动确定),用于带电体系、缺陷电荷态计算,如 NELECT=总电子数-1 表示体系带一个正电荷。

IDIPOL / LDIPOL:偶极修正参数,用于表面、界面、分子吸附等存在净偶极的体系(消除周期性镜像相互作用)。LDIPOL=.TRUE. 开启;IDIPOL 指定偶极方向(1、2、3 对应 x、y、z)。

VOSKOWN:Vosko-Wilk-Nusair 插值方案(0/1),一般保持默认。

NEDOS:DOSCAR 中的能量点数(默认 301),画平滑的态密度可增大(如 1000~2000)。

LOPTICS:是否计算光学性质(介电函数,.TRUE./.FALSE.),需要较大的 NBANDS(建议默认的 2 倍)和密集 K 点。

NBANDS:计算能带数(默认由体系自动确定),光学、GW 等计算需增大。

三、不同计算类型的 INCAR 模板 #

以下模板整理自全网教程与 VASPKIT 生成模板,实际使用时请结合体系特点与文献微调。

3.1 结构优化(晶体,全弛豫) #

SYSTEM   = Relax
ISTART   = 0
ICHARG   = 2
PREC    = Accurate
ENCUT   = 520
EDIFF   = 1E-5
EDIFFG   = -0.02
IBRION   = 2
ISIF      = 3
NSW       = 100
ISMEAR   = 0
SIGMA    = 0.05
LREAL    = Auto
LWAVE    = .FALSE.
LCHARG   = .TRUE.

3.2 静态自洽计算(结构优化后的单点计算) #

SYSTEM   = Static
ISTART   = 0
ICHARG   = 2
PREC    = Accurate
ENCUT    = 520
EDIFF    = 1E-6
IBRION   = -1
NSW     = 0
ISMEAR   = -5
LREAL    = .FALSE.
LWAVE    = .FALSE.
LCHARG   = .TRUE.
LORBIT   = 11

3.3 能带计算(非自洽,读取自洽的 CHGCAR) #

SYSTEM   = Band
ISTART   = 1
ICHARG   = 11
PREC    = Accurate
ENCUT    = 520
EDIFF    = 1E-6
IBRION   = -1
NSW     = 0
ISMEAR   = 0
SIGMA    = 0.05
LREAL    = .FALSE.
LWAVE    = .FALSE.
LCHARG   = .FALSE.

说明:能带计算需要先做静态自洽得到 CHGCAR,再复制 CONTCAR 为 POSCAR,KPOINTS 改为高对称 K 点路径(Line-mode)。

3.4 态密度计算(高密度 K 点网格) #

SYSTEM   = DOS
ISTART   = 1
ICHARG   = 11
PREC    = Accurate
ENCUT    = 520
EDIFF    = 1E-6
IBRION   = -1
NSW     = 0
ISMEAR   = -5
LORBIT   = 11
LREAL    = .FALSE.
LWAVE    = .FALSE.
LCHARG   = .FALSE.
NEDOS    = 1000

3.5 磁性计算(以铁磁金属为例) #

SYSTEM   = Magnetic
ISTART   = 0
ICHARG   = 2
PREC    = Accurate
ENCUT    = 520
EDIFF    = 1E-5
ISPIN    = 2
MAGMOM   = 5 5 5 5
IBRION   = 2
ISIF    = 3
NSW     = 100
ISMEAR   = 1
SIGMA    = 0.1
LREAL    = Auto
LWAVE    = .FALSE.
LCHARG   = .TRUE.

3.6 分子动力学(NVT 系综) #

SYSTEM   = MD
ISTART   = 0
ICHARG   = 2
PREC    = Normal
ENCUT    = 400
EDIFF    = 1E-4
IBRION   = 0
ISIF    = 2
NSW     = 1000
MDALGO   = 1
SMASS    = 2
TEBEG    = 300
TEEND    = 300
POTIM    = 1
ISMEAR   = 0
SIGMA    = 0.1
LREAL    = Auto
LWAVE    = .FALSE.
LCHARG   = .FALSE.

四、常见问题与收敛技巧 #

4.1 ISMEAR 与 SIGMA 的选择 #

(1)金属:ISMEAR=1(Methfessel-Paxton)或 0(高斯),SIGMA=0.1~0.2;禁止用 -5(四面体法)做金属的优化或能量计算(能量不准确)。

(2)半导体/绝缘体:静态计算与态密度用 ISMEAR=-5(四面体法),K 点需足够密;结构优化可用 0(高斯)+ 较小 SIGMA(0.05)。

(3)含空带较多的体系(如能带、光学、GW 计算)建议 ISMEAR=0 配合适当 SIGMA。

(4)SIGMA 收敛测试:对金属可比较不同 SIGMA(0.05/0.1/0.2/0.4)的总能,取稳定区间的值。

4.2 电子步不收敛怎么办 #

(1)检查结构:POSCAR 中原子间距是否合理(不能过近)、初始磁矩 MAGMOM 是否合理。

(2)调整混合参数:降低 AMIX(0.2~0.1)和 AMIN(0.05~0.01);磁性体系降低 BMIX(0.5~0.3)。

(3)更换算法:ALGO=VeryFast 或 Damped(旧体系)、Exact(小体系)。

(4)增大 NELM(如 100~200)并提高 EDIFF(1E-4)先粗收敛,再逐步收紧。

(5)增大 SIGMA 帮助收敛(金属),或先用粗 K 点/低 ENCUT 预收敛再提高精度。

(6)查看 OUTCAR 中每个电子步的能量变化与振荡情况,判断是振荡还是缓慢下降。

4.3 结构优化不收敛怎么办 #

(1)先做低精度预优化:降低 ENCUT、用较粗 K 点、EDIFFG=-0.05,再提高精度精优化。

(2)更换算法:IBRION=1 换 2,或反之;减少 POTIM(0.1~0.3)。

(3)检查 ISIF 是否合理:晶胞与原子同时优化时若初始结构偏离过大,可先 ISIF=2(固定体积)优化原子,再 ISIF=3 全弛豫。

(4)增大 NSW;若在 NSW 内未收敛但能量已在振荡,取 CONTCAR 中最优构型继续优化。

4.4 参数拼写与常见低级错误 #

(1)参数名拼写错误会被 VASP 忽略并警告(OUTCAR 中可查),如 ISMEAR 写成 ISMEAR=、IBRION 写成 IBRON 等。提交前检查 OUTCAR 开头读取的参数列表。

(2)逻辑值必须用 .TRUE./.FALSE.(或 .T./.F.),不能写 TRUE/FALSE。

(3)不要用 Tab 键缩进;文件末尾保留换行;检查文件编码与换行符(Linux 下用 file、dos2unix 检查)。

(4)修改 ENCUT、ISMEAR、结构等关键设置后,删除 WAVECAR(必要时 CHGCAR)再计算,避免旧数据干扰。

(5)磁性计算必须设 ISPIN=2 并检查 OUTCAR 中磁矩是否符合预期;非磁性体系误开 ISPIN=2 会浪费一倍算力。

(6)结构优化后务必把 CONTCAR 复制为 POSCAR 再继续下一步计算(静态、能带等)。

4.5 收敛性测试规范 #

正式计算前建议完成:① ENCUT 收敛测试(400/450/500/550/600 eV,能量差小于 1 meV/原子);② K 点收敛测试(网格逐级加密,能量差小于 1 meV/原子);③ SIGMA 收敛测试(金属体系)。这是保证计算结果可靠的基本规范,也是论文审稿人最常关注的点。