ABACUS 原子轨道基组控制
真实Si2的半径、SZV/DZP/TZDP比较,区分两套赝势泛函和基组误差。
阅读本篇目录
下载15个原生步骤、完整输入、矩阵和绘图脚本,解压进入附件根目录。先读取已有结果:
bash analyze.sh
结果表在reference/analysis,高清图在reference/figures。如需重新计算,在新解压的目录提交:
sbatch submit.slurm
脚本先生成教学基组,再按依赖运行10个SCF和5个NSCF步骤,最后提取、比较和画图;新的输出在work。已有work时请新解压,脚本不会覆盖已计算目录。
采用ABACUS3.10.1模块abacus/3.10.1-p100,GNU13.3、HPC-X2.50/OpenMPI5.0.10rc2,1个MPI进程、1线程、CPU双精度;ASE3.29.0、NumPy和SciPy用于后处理。模板分配P100主机资源,但这些接口实际走CPU路径,不代表GPU加速,也不是Intel Xeon 8173M性能测试。不要在登录节点直接运行DFT计算。
1 先固定比较条件#
基组控制应保持几何、赝势、交换关联泛函、k点和SCF设置一致。总能量差只在同一套物理模型里比较,不能将LDA与PBE的绝对能量拼在一起。本例分成两个独立系列:
- LDA:相同
Si.pz-n-nc.UPF、2³完整k网格,生成的6/8/10Bohr最小SZV,与8Bohr库DZP比较。 - PBE:相同
Si_ONCV_PBE-1.0.upf、3³完整k网格,库6Bohr DZP、8Bohr DZP和8Bohr TZDP比较。
所有体系均为同一Si2固定晶胞、80Ry辅助网格。DZP/TZDP中的zeta是径向函数数量,极化函数增加角向表达能力;它们不是仅增加截断半径。
2 查看完整轨道选择#
各目录完整INPUT/STRU/KPT都在附件inputs。STRU的NUMERICAL_ORBITAL行决定实际轨道文件;例如PBE TZDP使用3s3p2d,每个原子22轨道,Si2共44个,DZP为2s2p1d、每个13、合计26。生成的最小SZV为1s1p、合计8。
python - <<'PY'
from pathlib import Path
for name in ['si-nao-6au-k3','si-qo-szv-sp-k3','si-nao-tzdp-k3']:
s=(Path('inputs')/name/'STRU').read_text()
print(name,s.split('NUMERICAL_ORBITAL',1)[1].split('LATTICE_CONSTANT',1)[0].strip())
PY
注意轨道文件名中的50/100Ry等是库文件的生成标签;本次实际辅助网格截断能由INPUT的ecutwfc 80决定,两者不能互相替代。
3 提取本例实际总能量#
python - <<'PY'
import csv
names=['si-generated-6au','si-generated-8au','si-generated-10au',
'si-lda-library-dzp','si-nao-6au-k3','si-qo-szv-sp-k3','si-nao-tzdp-k3']
with open('reference/analysis/conditions.csv') as f:
for r in csv.DictReader(f):
if r['name'] in names:
print(r['XC_family'],r['name'],'NAO数',r['NAO_dimension'],'E/eV',r['E_eV'])
PY
| 系列 | 轨道 | 轨道数/Si2 | 实际总能量/eV |
|---|---|---|---|
| LDA | 生成SZV 6Bohr | 8 | -256.823197960 |
| LDA | 生成SZV 8Bohr | 8 | -259.140849047 |
| LDA | 生成SZV 10Bohr | 8 | -259.495261048 |
| LDA | 库DZP 8Bohr | 26 | -259.596966087 |
| PBE | 库DZP 6Bohr | 26 | -211.940551465 |
| PBE | 库DZP 8Bohr | 26 | -213.494651344 |
| PBE | 库TZDP 8Bohr | 44 | -213.742760484 |

生成SZV从8到10Bohr,总能仍变化约0.3544eV/Si2;10Bohr与匹配库DZP相差约0.1017eV/Si2。因此“文件可读、SCF收敛”不能等同于“基组足够准确”。PBE库DZP从6到8Bohr变化约1.5541eV/Si2;8Bohr DZP到TZDP还变化约0.2481eV/Si2。库基不一定严格嵌套,本例能量下降不能推广为任意轨道标签都保证单调。
4 用自己的体系怎么做#
先选匹配的成熟赝势和轨道库,固定结构后按实际目标比较能量差、力、应力及所需电子性质,再分别收敛k点与辅助网格。最终用于优化时,还要确认基组改变没有让结构或力发生不可接受的变化;本篇没有计算力/结构收敛,不给统一“8Bohr一定足够”的结论。
如果要构造小QO模型,先完成NAO基础计算的数值控制,再独立检查QO模型和插值误差。增加QO数不能弥补源SCF基组本身不足。