



很多 VASP 初学者第一次看到收敛参数时,会把 EDIFF 和 EDIFFG 看成同一类开关:一个数小一点,结果就更可靠一点。这个理解只对了一半。二者都和收敛有关,但所在位置完全不同。EDIFF 管电子自洽循环,EDIFFG 管离子弛豫循环。前者决定每一个离子构型里的电子密度和总能是否继续迭代,后者决定几何结构是否已经优化到可以停止。
把这两个量分清楚,结构优化排错会轻松很多。电子步没有收敛,力和能量就可能带着数值噪声进入下一轮离子移动;离子步没有达到停止条件,即使每一步电子步都算得很准,结构也仍然可能停在离目标构型较远的位置。因此,EDIFF 和 EDIFFG 不是谁替代谁,而是一个在内层循环,一个在外层循环。

图1 几何优化过程中构型、相对能量、最大力与界面偶极的变化。它直观显示离子弛豫不是只看能量降低,还要关注剩余力是否真的降到目标范围。DOI: 10.1039/d0cp06605b。




VASP 做结构优化时,每一个离子步都会先固定原子位置,然后求这个固定构型下的电子基态。也就是说,程序先在给定原子坐标下反复更新电荷密度、波函数和总能,直到电子自洽循环满足停止条件。这个内层过程对应 EDIFF。它关心的是相邻电子迭代之间总能和能带能量变化是否足够小,而不是原子受力是否已经足够小。
可以把一次结构优化看成嵌套循环:外层是离子坐标更新,内层是电子自洽。对第 k 个离子构型,电子步会从 n = 1, 2, 3 一直迭代;当能量变化低于 EDIFF,程序才认为这个构型的电子结构足够明确,随后才能计算力并决定下一次原子怎么移动。如果把 EDIFF 理解成结构优化的最终力阈值,就会把内层电子问题错放到外层几何问题上。
|E_n – E_{n-1}|
离子步处理的是原子坐标如何改变。每完成一个电子自洽循环,VASP 会得到当前构型的能量、力和应力,然后按照 IBRION、POTIM、ISIF 等设置更新坐标或晶胞。这个外层过程对应 EDIFFG。它回答的问题是:几何优化是否已经达到停止条件。
EDIFFG 的符号很关键。若 EDIFFG 为正值,停止条件按离子步之间的能量变化判断;若 EDIFFG 为负值,停止条件按所有原子上的力判断,常见写法如 EDIFFG = -0.03,含义是最大力低于 0.03 eV/Angstrom 后停止。对吸附构型、表面 slab、过渡金属氧化物和缺陷体系,通常更推荐用负值力阈值,因为几何合理性首先要看原子是否还承受明显驱动力。
max |F_i|

图2 吸附高度改变时总能与 z 方向力同步变化。能量面附近看似变平,不代表力阈值一定满足,因此 EDIFFG 的力判据对吸附结构判断很重要。DOI: 10.1039/d0cp06605b。




EDIFF 出现在电子自洽循环里。一个离子步开始后,VASP 会在 OSZICAR 中记录电子迭代的能量变化,例如 DAV 或 RMM 行。若相邻电子步之间的变化已经低于设定阈值,电子自洽就停止,程序进入力计算和离子更新。这个时候,EDIFF 只说明当前坐标下的电子结构已达到设定精度,并不说明结构优化已经完成。
实际计算中,EDIFF 设得太松,会让力带有更明显的电子噪声。表面吸附、弱相互作用、磁性体系和过渡金属体系尤其容易受到影响,因为能量差本来就小,局域电子态又可能比较敏感。VASP 官方说明也强调,更精确的力和声子相关计算通常需要更严格的电子收敛。对催化吸附优化,EDIFF = 1E-5 常作为起点;若要做频率、差分电荷、Bader 或精细能量差比较,可进一步收紧到 1E-6。
离子优化依赖力,而力来自已经自洽的电子结构。如果电子步没有可靠收敛,程序仍可能给出一个力,但这个力会夹杂内层循环没有消除的数值误差。外层优化器拿到这样的力,就可能走出摇摆、慢收敛或假停滞的路径。此时盲目改 EDIFFG 并不能解决根因,因为离子步收到的输入本身已经不够干净。
因此,遇到结构优化不顺时,检查顺序应先看电子步是否每个离子步都正常收敛,再看离子步是否接近力阈值。若 OSZICAR 中频繁达到 NELM 上限,或者 OUTCAR 中电子收敛反复失败,优先调整电子部分,例如 ALGO、NELM、AMIX、BMIX、ISMEAR、SIGMA 或初始磁矩,而不是直接把 EDIFFG 改得更松。EDIFF 是给力和能量打底的精度阈值,不是结构优化的终点判据。

图3 分子在金属表面平移时的势能面。离子弛豫是在这样的能量地形中寻找局部极小点,电子步精度不足会让能量和力的地形带入噪声。DOI: 10.1039/d0cp06605b。




EDIFFG 为正时,停止条件是相邻离子步总能变化小于设定值。例如 EDIFFG = 1E-4 表示两次离子步能量变化足够小就停止。这种写法看起来直观,但对表面吸附不一定可靠,因为某些方向能量曲线很平,能量变化很小,力却仍可能没有达到目标。对于软模、滑移、弱吸附和大超胞,这种差异更明显。
EDIFFG 为负时,停止条件改为力阈值。比如 EDIFFG = -0.03 表示所有未固定原子的受力都要低于 0.03 eV/Angstrom。这更贴近结构优化的物理目标:原子不再受到明显驱动力,构型才可以认为接近局部极小点。对于吸附能、反应中间体和表面位点比较,负值 EDIFFG 通常比正值能量阈值更清楚。
常见做法是几何优化阶段使用 EDIFF = 1E-5、EDIFFG = -0.03 或 -0.02。若只是初筛大量构型,-0.05 可以作为较宽松起点;若要比较相近吸附能、做频率或过渡态端点,-0.02 甚至 -0.01 更合适。不要只记一个固定答案,关键要看体系柔软程度、目标能量差和后续分析精度。
需要特别注意固定原子。若 slab 底层被固定,EDIFFG 的力判据只应主要关注允许弛豫的原子。固定层上如果保留较大力,不应简单拿来否定优化;但吸附物、活性位和表面可动层如果仍有大力,说明结构还没有充分放松。检查 OUTCAR 中 TOTAL-FORCE 区块时,最好同时看最大力来自哪个原子、哪个方向,而不是只看最后一行是否出现 stopping 语句。

图4 不同 k 点、范德华校正和基底固定策略得到的优化构型差异。EDIFFG 只定义何时停止,不能替代模型自由度和计算策略本身的合理设置。DOI: 10.1039/d0cp06605b。




如果 EDIFF 设得很严格,比如 1E-7,而 EDIFFG 设为 -0.10,电子结构确实每一步都算得很细,但几何结构可能过早停止。这样的结果常见表现是单点能看起来很精确,吸附键长、表面重构或中间体取向却仍未放松到位。后续再做静态计算时,能量精度很好,但构型误差仍然存在。
这类错误在吸附能比较中很隐蔽。两个构型如果都用很松的力阈值停止,能量差可能包含不同程度的几何残余应力。尤其当差值只有几十 meV 时,未收敛几何带来的偏差可能足以改变位点排序。电子能量算得很精细,不等于原子坐标已经合理。
反过来,如果 EDIFFG 设为 -0.01,但 EDIFF 太松,或电子步经常达到 NELM 上限,离子优化器会用带噪声的力追逐一个不稳定目标。表面过渡金属、磁性氧化物、带缺陷体系中,这种情况尤其常见。表面看是离子步难收敛,根部问题可能是电子态在不同占据或不同磁矩之间跳动。
这种情况下继续收紧 EDIFFG 往往只会增加步数。更合适的处理是先让电子自洽稳定下来,再谈力阈值。可检查每个离子步电子迭代是否收敛、磁矩是否突变、费米能级附近是否有尖锐态,并根据体系调整展宽、混合参数、初始磁矩或算法。EDIFFG 需要建立在可信的电子步结果之上。

图5 同一吸附界面在不同几何优化和电子结构处理下的投影态密度。几何构型与电子结构会互相影响,EDIFF 和 EDIFFG 分别守住不同层级的可信度。DOI: 10.1039/d0cp06605b。




下面这个示例适合常规表面吸附结构优化的起步设置。它不代表所有体系都必须照搬,而是把两个阈值放在正确位置:EDIFF 给电子步,EDIFFG 给离子步。若体系含强磁性、强关联、很大的真空层或弱吸附,需要再结合电子收敛和力收敛表现调整。
SYSTEM = slab_ads_relax
ENCUT = 520
EDIFF = 1E-5
EDIFFG = -0.03
IBRION = 2
NSW = 120
ISIF = 2
NELM = 120
# 示例说明:EDIFF 控制每个离子步内的电子自洽;EDIFFG 为负时控制几何优化的最大力阈值。
第一,看 OSZICAR 中每个离子步是否完成电子收敛。如果某些离子步达到 NELM 上限,要先处理电子步。第二,看 OUTCAR 或 CONTCAR 对应的最终力,确认最大力是否已经低于 |EDIFFG|。第三,看结构是否有明显异常,例如吸附物漂移到不合理位置、表面原子穿插、键长突变或磁矩突然翻转。输出检查顺序应从电子步到离子步,再到结构化学合理性。
还有一个容易忽略的点:优化结束后最好用最终 CONTCAR 做一次静态单点,保持较严格 EDIFF,并关闭离子移动。这样得到的能量、DOS、差分电荷或 Bader 分析更适合作为后处理基础。结构优化阶段的目标是找到合理构型;静态阶段的目标是用固定构型获得更干净的电子结构。两步的任务不同,参数也可以有层次。




要点:EDIFF 是电子自洽循环的停止条件,主要约束每个固定离子构型下的电子能量变化。
要点:EDIFFG 是离子弛豫循环的停止条件;为负值时按最大力判断,常用于表面吸附和催化结构优化。
要点:EDIFF 很紧不能替代 EDIFFG,电子步精确不等于几何结构充分放松。
要点:EDIFFG 很紧也不能弥补电子步失败,电子自洽不可靠会让力和离子更新带入噪声。
要点:常规吸附优化可从 EDIFF = 1E-5、EDIFFG = -0.03 起步;精细能量差、频率和端点结构需要按体系收紧并复查输出。
