ABACUS 专题

ABACUS 无轨道DFT密度优化与收敛

TN、CG1、CG2的真实优化历史,区分能量变化阈值和势范数阈值。

更新于 2026-10-29约 3 分钟阅读按任务与环境选择适用配置
阅读本篇目录

OFDFT中的密度优化停止条件,和原子结构优化的力阈值不是同一件事。本篇用固定Al原胞的真实WT计算说明:能量变化已经很小,势范数仍可能没有达到目标。

1. 复现图表#

下载原生迭代记录与脚本,在附件根目录执行:

bash analyze.sh

这一步不启动DFT。想重算全部条件,使用动能泛函实操中的CPU提交流程。

三种优化算法及不同停止条件的原生历史

图中每个点均来自原生日志,不是人工构造的收敛曲线。右图虚线对应输入的of_tolp=1e-5;势范数为软件定义的优化量,不是eV/Å的原子力。

2. 三种算法与三种停止条件#

of_method可选tn、cg1、cg2,分别为Truncated Newton、Polak–Ribière CG和Hager–Zhang CG。本例固定同一赝势、60 Ry截断与晶胞,只改变相应设置。

of_method tn
of_conv both
of_tole 1e-6
of_tolp 1e-5

of_tole单位为Ry,本例约1.36×10⁻⁵ eV;of_tolp控制势范数判据。of_conv energy按能量变化停止,potential按势范数停止,both同时要求两项。原生实际结果如下:

算法/停止条件 最终能量,eV 最后能量变化,Ry 最后势范数
TN / energy -57.9338550898 5.070e-10 2.746e-05
CG1 / energy -57.9337919991 4.622e-07 2.381e-03
CG2 / energy -57.9337917832 4.784e-07 2.351e-03
TN / potential -57.9338550951 3.890e-10 1.963e-06
TN / both -57.9338550951 3.890e-10 1.963e-06

CG1/CG2按能量条件结束时,势范数约2.4×10⁻³;TN按能量条件结束时约2.7×10⁻⁵;TN采用potential或both后约2.0×10⁻⁶。这说明“程序按当前设置收敛”需要结合具体判据理解,不能自动解释成所有优化量都同样精确。

3. 自己检查日志#

完整新计算结束后,在附件根目录查看一例:

grep -E 'norm of potential|convergence is achieved|!FINAL_ETOT_IS' work/cases/wt-conv-both/OUT.tutorial/running_scf.log

不重算时直接读取参考汇总:

python - <<'PY'
import csv
with open('reference/analysis/conditions.csv') as f:
    for r in csv.DictReader(f):
        if r['name'] in ['wt-cut60', 'wt-method-cg1', 'wt-method-cg2',
                         'wt-conv-potential', 'wt-conv-both']:
            print(r['name'], r['E_eV'], r['last_energy_change_Ry'],
                  r['last_potential_norm'])
PY

需要比较很小的能量差时,先让停止条件与目标精度相称,再研究截断和体积。一个原胞的微型演示不用于比较优化器的普遍性能,也不把固定高对称结构的零原子力当作电子密度已经充分收敛。

本构建OFDFT电荷导出限制及完整输入,见五类动能泛函实操。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗