ABINIT 单原子计算 SCF 收敛问题排查:开壳层占据与混合参数优化

May 1, 2026
Published in 科学计算

Abstract

在使用 ABINIT 进行单原子参考能计算时,O 和 S 两种开壳层原子出现了 SCF 自洽迭代不收敛的问题。本文记录从问题发现到最终解决的完整排查过程,涵盖输入文件设置、根因分析和修正方案。

Keywords: ABINIT, DFT, SCF收敛, 开壳层, 计算化学, 第一性原理

计算目标

本次计算用于获得六种元素(C、H、N、O、S、Si)的单个原子参考能量 $E_{\mathrm{atom}}$,作为后续吸附能 $\Delta E_{\mathrm{ads}}$ 计算的基准。每个体系采用单原子超胞模型——在一个足够大的晶胞中心放置一个孤立原子,进行自旋极化单点能计算。

基本输入设置

单原子结构与晶胞

每个输入文件中只包含一个原子,置于晶胞中心:

natom 1
ntypat 1
typat 1
xred
  0.5  0.5  0.5

计算采用固定正交超胞,XYZ 三边分别约为 $9.38$、$10.83$、$83.21$ Bohr,模拟孤立原子环境:

acell  9.3761834869E+00  1.0826684213E+01  8.3211636133E+01 Bohr
rprim
  1.0  0.0  0.0
  0.0  1.0  0.0
  0.0  0.0  1.0
chkprim 0

截断能与 k 点

  • 平面波截断能统一使用 ecut 30 Ha
  • 单原子超胞仅使用 $\Gamma$ 点:kptopt 0, nkpt 1, kpt 0.0 0.0 0.0
  • 不做离子弛豫和晶胞优化:optcell 0, ionmov 0

自旋极化

所有单原子计算均开启自旋极化:

nsppol 2
nspinor 1
nspden 2
nsym 1

其中 nsym 1 显式关闭对称性分析,避免对开壳层原子的占据和磁矩施加额外的对称性限制。

初始 SCF 设置

初始的 SCF 参数为:

nstep 100
iscf 7
toldfe 1.0d-10
  • iscf 7:ABINIT 默认的 Pulay mixing 方案
  • toldfe 1.0d-10:以总能量变化为收敛判据,收敛阈值设置得极为严格
  • nstep 100:最多 $100$ 个电子步

问题现象

O 原子未收敛

calc/O/run.abo 中输出:

nstep=100 was not enough SCF cycles to converge
maximum energy difference=1.023E-04 exceeds toldfe=1.000E-10

O 原子跑满 $100$ 个 SCF 步后总能量变化仍高达 $\sim 10^{-4}\ \mathrm{Ha}$,远未达到 $10^{-10}$ 的收敛阈值。

S 原子类似

calc/S/run.abo 同样出现未收敛警告:

nstep=100 was not enough SCF cycles to converge
maximum energy difference=1.883E-06 exceeds toldfe=1.000E-10

S 原子的振荡幅度($\sim 10^{-6}\ \mathrm{Ha}$)比 O 轻得多,但同样无法满足 $10^{-10}$ 的严格标准。

根因分析

开壳层 p^4 电子组态

O 和 S 都是开壳层 $p^4$ 原子。初始输入使用整数占据(integer occupation),以 O 为例:

occ
  1.0  1.0  1.0  1.0  0.0  0.0  0.0  0.0
  1.0  1.0  0.0  0.0  0.0  0.0  0.0  0.0

这等价于强行指定某一个 p 轨道被双占据,而另外两个 p 轨道为空或单占据。对于孤立原子,三个 $p$ 轨道近似简并,整数占据会人为打破这种简并,导致 SCF 过程中轨道占据在简并态之间来回跳变,引发能量震荡。

收敛阈值过于严格

toldfe 1.0d-10 Ha 对单原子参考能计算偏严。当占据在简并轨道间存在微弱震荡时,即使震荡幅度在物理上可以忽略,也会被判定为未收敛。

混合方案不够稳健

iscf 7(Pulay mixing)在开壳层体系中面对占据跳变时缺乏足够的阻尼能力,对 SCF 震荡的抑制效果有限。

解决方案

修改 O 和 S 的占据方式:引入分数占据

将 O 和 S 的 spin-down 通道中 p 电子改为分数占据:

occ
  1.0  1.0  1.0  1.0  0.0  0.0  0.0  0.0
  1.0  0.3333333333  0.3333333333  0.3333333333  0.0  0.0  0.0  0.0

物理含义:

自旋通道轨道占据说明
spin-up$1s$, $2s$, $2p_x$, $2p_y$, $2p_z$各 $1.0$共 $5$ 个电子
spin-down$1s$$1.0$
spin-down$2p_x$, $2p_y$, $2p_z$各 $1/3$剩余 $1$ 个 p 电子均分

这描述了孤立 $p^4$ 原子的球对称平均态(spherically averaged state),避免 SCF 在简并 p 轨道之间跳变。

优化 SCF 混合参数

对 O 和 S,将 SCF 参数修改为:

nstep 300
iscf 17
diemix 0.2
diemac 1.0
toldfe 1.0d-8

各参数的作用:

参数旧值新值目的
nstep$100$$300$允许更多电子步完成收敛
iscf$7$$17$切换到更稳定的 SCF 混合方案
diemix默认$0.2$降低电荷密度混合比例,抑制震荡
diemac默认$1.0$适合孤立原子/分子体系
toldfe$10^{-10}$$10^{-8}$稍宽松但仍足够严格,避免因微幅震荡误判

保留磁矩设置

O 和 S 保留初始自旋设置:

spinat
  0.0  0.0  2.0

对应总磁矩约 $2\ \mu_B$,符合 $p^4$ 开壳层原子的高自旋基态($S=1$)。

修正结果

修改输入文件后重新提交计算:

O 原子

deltae = -1.840E-10
Delivered 0 WARNINGs

S 原子

deltae = -8.104E-10
Delivered 0 WARNINGs

两个原子均成功收敛,无任何警告信息。

总结

本次 O 和 S 原子 SCF 不收敛的根本原因不是 ecut 不足或赝势问题,而是开壳层单原子的占据方式和 SCF 混合参数不够稳定。

核心修复措施:

  1. 分数占据:对 $p^4$ 开壳层原子,将 spin-down 的 p 电子均分到三个简并 p 轨道上(各 $1/3$),保留简并态的平均占鄠,消除占据跳变;
  2. 稳健的混合方案iscf 17 + diemix 0.2 + diemac 1.0,增强 SCF 迭代的阻尼能力;
  3. 合理的收敛标准toldfe 1.0d-8 Ha 对单原子参考能计算已足够精确。

这套参数配置对于其他开壳层原子的孤立体系计算也具有参考价值。

References

  1. Gonze, Xavier, et al. "The ABINIT project: Impact, environment and recent developments." Computer Physics Communications, vol. 248, 2020, 107042. link
  2. Kresse, G., and J. Furthmüller. "Efficient Iterative Schemes for Ab Initio Total-Energy Calculations Using a Plane-Wave Basis Set." Physical Review B, vol. 54, no. 16, 1996, pp. 11169–11186. link
  3. Payne, M. C., et al. "Iterative Minimization Techniques for Ab Initio Total-Energy Calculations: Molecular Dynamics and Conjugate Gradients." Reviews of Modern Physics, vol. 64, no. 4, 1992, pp. 1045–1097. link