第四节 输入文件详解(一):INCAR参数详解
各位同学,今天我们来啃一块硬骨头——INCAR文件。说实话,我刚学VASP那会儿,看到INCAR里密密麻麻的参数,头都大了。但后来我发现,只要抓住几个核心参数,剩下的都是锦上添花。今天我就带大家把这几个关键参数掰开揉碎了讲清楚。
4.1 INCAR是什么?
INCAR,全称是Input CARds,说白了就是VASP的"控制面板"。你告诉VASP想算什么、怎么算、算多准,全写在这个文件里。我习惯把INCAR比作做菜的菜谱——材料(POSCAR)准备好了,工具(POTCAR)就位了,但火候多大、加多少盐、炖多久,这些都得看INCAR。
核心要点:INCAR文件控制计算的每一个细节,从精度到算法,从收敛标准到输出内容。
4.2 SYSTEM参数——给你的计算起个名字
SYSTEM这个参数,说白了就是个标签。它不影响计算本身,但能帮你区分不同的任务。我个人的习惯是这么写的:
SYSTEM = Fe_bcc_ENCUT_500
这样一看就知道,这是体心立方铁的算例,截断能设了500 eV。你想想看,当你同时跑十几个任务时,这个命名习惯能救你的命。
小技巧:SYSTEM字符串会出现在OUTCAR文件的开头,方便你快速定位。
4.3 ENCUT参数——计算精度的"命根子"
ENCUT,全称Energy Cutoff,就是平面波基组的截断能。这个参数直接决定了计算的精度。为什么这么说?因为VASP用的是平面波基组,理论上需要无穷多个平面波才能精确描述电子波函数。但现实中我们只能取有限个,截断能就是那个"砍一刀"的位置。
我记得刚入行时,有个师兄跟我说:"ENCUT设得越高越准。"这话没错,但也不全对。ENCUT太高,计算慢得让你怀疑人生;太低呢,结果又不可靠。那怎么选?
我的经验法则:
- 对于大多数体系,取POTCAR中ENMAX值的1.3倍
- 做结构优化时,至少取1.3倍
- 做精确的电子结构计算(如DOS、能带),建议取1.5倍
# 典型设置
ENCUT = 520 # 对于大多数3d过渡金属,520 eV是个安全值
# 或者
ENCUT = 1.3 * ENMAX # 自动读取POTCAR中的推荐值
注意:千万不要把ENCUT设得比ENMAX还低!我曾经犯过这个错误,算出来的晶格常数差了5%,白跑了一周。
4.4 ISMEAR和SIGMA——处理费米面的艺术
这两个参数要放在一起讲,因为它们是一对"好基友"。ISMEAR控制的是如何对电子占据数进行展宽,SIGMA则是展宽的宽度。
ISMEAR的取值:
| ISMEAR值 | 方法 | 适用场景 |
|---|---|---|
| -5 | 四面体方法 | 静态计算、DOS计算(半导体和绝缘体) |
| 0 | 高斯展宽 | 通用,但需要小心SIGMA |
| 1 | Methfessel-Paxton 1阶 | 金属体系的结构优化 |
| 2 | Methfessel-Paxton 2阶 | 金属体系,比1阶更稳定 |
为什么会这样?因为不同体系的费米面附近电子态密度不一样。金属在费米面处有大量电子态,需要平滑处理;半导体和绝缘体在费米面处是带隙,用四面体方法更准。
SIGMA怎么设?
- 对于金属(ISMEAR=1或2):SIGMA通常取0.1~0.2 eV
- 对于半导体/绝缘体(ISMEAR=-5):SIGMA可以设0.05,但实际用不到
- 结构优化时:SIGMA取0.2左右,让电子收敛更稳定
避坑指南:我曾经算一个磁性体系,ISMEAR设了-5,结果死活不收敛。后来换成ISMEAR=1,SIGMA=0.2,一步就收敛了。记住:结构优化时别用ISMEAR=-5!
4.5 常用参数模板
下面我给出几个常用的INCAR模板,都是我在项目中反复验证过的。你可以直接拿来用,但记得根据体系微调。
模板一:结构优化(金属体系)
SYSTEM = Metal_optimization
ENCUT = 520
ISMEAR = 1
SIGMA = 0.2
EDIFF = 1E-5
EDIFFG = -0.02
NSW = 100
IBRION = 2
ISIF = 3
PREC = Normal
LREAL = Auto
LORBIT = 11
模板二:静态自洽计算(获取准确能量和电荷密度)
SYSTEM = Static_SCF
ENCUT = 600
ISMEAR = -5
SIGMA = 0.05
EDIFF = 1E-6
NSW = 0
IBRION = -1
PREC = Accurate
LREAL = False
LORBIT = 11
模板三:能带结构计算
SYSTEM = Band_structure
ENCUT = 600
ISMEAR = -5
SIGMA = 0.05
EDIFF = 1E-6
NSW = 0
IBRION = -1
PREC = Accurate
LREAL = False
LORBIT = 11
ICHARG = 11
个人经验:能带计算时,ICHARG=11表示读取之前的CHGCAR文件,这样能保证能带和自洽计算的电荷密度一致。我刚开始不懂,直接从头算能带,结果费米能级对不上,折腾了两天。
4.6 参数之间的"化学反应"
INCAR里的参数不是孤立的,它们之间会相互影响。举个例子:
- ENCUT和PREC:PREC=Accurate会自动提高ENCUT到1.3倍,还会改变FFT网格密度
- ISMEAR和SIGMA:SIGMA太大,能量会偏高;太小,电子收敛困难
- EDIFF和EDIFFG:EDIFF控制电子步收敛,EDIFFG控制离子步收敛,两者要匹配
你想想看,如果EDIFF设了1E-4,但EDIFFG设了-0.01,那离子步收敛时电子步还没收敛,结果肯定不准。我一般让EDIFF比EDIFFG对应的能量精度高一个数量级。
4.7 本章知识体系
下面这张图帮你理清INCAR参数的核心逻辑:
4.8 写在最后
INCAR参数看起来多,但核心就那几个。我建议你从模板开始,然后根据计算结果逐步调整。刚开始别追求完美,先跑通一个算例再说。嗯,这里要注意:每次只改一个参数,这样出了问题才知道是哪个参数搞的鬼。
好了,这一节的内容就到这里。INCAR里还有很多其他参数,比如ISPIN、MAGMOM、LDAU等,我们后面会专门讲。先把今天这几个吃透,你的第一性原理计算就算入门了。
公众号:蓝海资料掘金营,微信deep3321