ABACUS 专题

ABACUS QO能带与插值

同一导出密度上的直接QO、完整NAO和27点插值,区分两类误差。

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

下载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 先得到密度,再走两条独立路径#

先运行si-qo-szv-sp-k3,输出SPIN1_CHG.cube。接着五个NSCF读取同一份实际导出的cube:完整NAO直接路径、sp/spd直接QO路径,以及sp/spd的3×3×3均匀QO网格。脚本自动检查依赖和传递文件;不用手动复制不同精度的密度混在一起。

直接路径为Γ–X–W–L–Γ,每段20个间隔,包含最后端点共81个点。它是本例指定的fcc硅原胞坐标路径,不是任意晶胞通用坐标。

2 查看直接路径输入#

以下为si-qo-path-sp的完整INPUT和KPT,STRU与QO实操相同。

INPUT_PARAMETERS
suffix tutorial
pseudo_dir ../../PP_ORB
orbital_dir ../../PP_ORB
ntype 1
basis_type lcao
calculation nscf
ecutwfc 80
nbands 14
ks_solver genelpa
symmetry -1
device cpu
precision double
scf_thr 1e-7
scf_nmax 100
smearing_method fixed
cal_force 0
cal_stress 0
out_chg 0
out_mat_hs 1 12
out_wfc_lcao 1
qo_switch 1
qo_basis szv
qo_strategy sp
qo_thr 1e-8
qo_screening_coeff 0.1
init_chg file
out_band 1
K_POINTS
5
Line
0 0 0 20
0.5 0 0.5 20
0.5 0.25 0.75 20
0.5 0.5 0.5 20
0 0 0 1

init_chg file读固定密度;out_band 1写原生BANDS。LCAO NSCF可能没有istate.info,此时读取BANDS_1.dat:前两列为序号和路径坐标,后面才是以eV计的各带本征值。

head -n 3 reference/cases/si-qo-direct-bands/OUT.tutorial/BANDS_1.dat

3 直接QO与完整NAO比较#

同一密度的直接能带对比

全部曲线使用完整NAO价带顶作为共同零点,没有分别平移后再比较。前4条占据态由构造保留;在全部81点、前8条能带上,8个QO的RMS误差为1.574786eV,18个QO为0.277164eV。只比较第5–8条导带,分别为2.227084和0.391970eV。这是本例实际模型误差,不是所有体系的精度承诺。

4 再做均匀网格到路径的插值#

后处理同时调用官方k_extrapolation和独立傅里叶求和:27个k点对应R∈{−1,0,1}³,正反归一化匹配;读取QO矩阵头部15位分数k坐标,避免普通kpoints报告8位小数引入回变换误差。保留原始矩阵,不通过强制厄米化、截负本征值或丢掉k点修饰曲线。

python - <<'PY'
import csv
with open('reference/analysis/qo-interpolation.csv') as f:
    for r in csv.DictReader(f):
        print(r['name'], '直接模型误差/eV',r['representation_RMS8_eV'],
              '插值相对直接QO误差/eV',r['interpolation_RMS8_vs_directQO_eV'],
              '总误差/eV',r['total_RMS8_vs_NAO_eV'])
PY
模型 直接模型RMS/eV 插值相对直接QO RMS/eV 插值相对完整NAO RMS/eV
8 QO sp 1.574786 2.008329 2.816803
18 QO spd 0.277164 0.812757 0.752192

这三个RMS不是可以直接相加的标量;逐点误差可能互相增强或抵消。

分别展示模型与插值误差

逐点插值重叠矩阵诊断

3³网格下两模型全部81点S仍为正定,最小本征值分别约0.09608和0.02087,但能带误差仍明显。因此正定只意味着这个广义本征值问题可解,不代表粗网格插值已经收敛。用于自己的体系时,先独立增加QO空间和直接参考带,再加密均匀网格;不要仅凭曲线顺滑就引用有效质量或精确带隙。

方法实现见3.10.1官方QO后处理。

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

查看配图

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

100%查看原图 ↗