ABACUS 随机与混合DFT上手
Si2真实纯随机、混合随机与KS-DFT,对应完整输入、单卡提交和能量/电荷检查。
阅读本篇目录
随机DFT以随机轨道估计电子迹,混合方法再加入一部分显式Kohn–Sham轨道。本篇在同一个固定晶胞的Si双原子模型上实际计算纯随机、混合随机和常规KS-DFT,重点是如何设置、提交并识别输出。
1. 下载与提交#
下载全部输入、真实原生结果和绘图脚本,解压进入run.sh所在目录:
sbatch submit.slurm
脚本面向P100核时分区,一张GPU、一个MPI进程和一个线程,依次完成全部22个小条件。套餐用户用yskit生成自己的分区脚本,保留bash run.sh作为实际执行命令;不要在登录节点直接启动DFT。已有work时会停止,重算请重新解压到新目录。
ABACUS3.10.1 P100版由GNU13.3、HPC-X2.50/OpenMPI5.0.10rc2、CUDA12.8和OpenBLAS0.3.30构建。后处理加载ASE3.29.0,使用NumPy与Matplotlib。
不需要重算时,直接分析附件中已经完成的结果:
bash analyze.sh
参考图和CSV分别写入reference/figures、reference/analysis;自己的新计算结果对应work/figures与work/analysis。

这是固定晶胞、高电子温度的演示,不运行离子MD、不代表室温平衡硅。Fermi–Dirac参数smearing_sigma 0.6单位为Ry,本例对应约8.1634 eV的电子kBT、约9.47万K的电子温度;不要把这个数直接当作离子温度。Si质量在用户输入中使用28.0855,本例静态电子计算不依赖质量。
2. 三种方法怎么选#
| 方法 | esolver_type | nbands | nbands_sto | 本例含义 |
|---|---|---|---|---|
| 纯随机SDFT | sdft | 0 | 64 | 不求显式确定性轨道,使用随机迹 |
| 混合SDFT | sdft | 4或8 | 32/64/128/256 | 低能确定性子空间与随机部分结合 |
| 常规KS-DFT | ksdft | 128或192 | 不使用 | 显式能级与占据,作为本例同温度参照 |
nbands_sto不是KS能带数,也不是k点数。nbands与nbands_sto控制两部分不同的轨道。纯随机例已核对实际输出中的nbands=0,没有把自动补出的KS能带当作纯随机。
输入定义参考ABACUS官方参数说明及资料包对应的3.10.1设置。上游latest新增参数应按版本另行确认。
3. 完整输入与关键参数#
下面是混合方法mix4-chi64-seed11的完整输入。本例沿用官方Si2随机DFT模型的几何、赝势、2×2×2网格与电子展宽,仅将种子、随机轨道数、确定性子空间与Chebyshev阶数分组对照。
展开完整INPUT、STRU、KPT
INPUT#
INPUT_PARAMETERS
suffix tutorial
calculation scf
basis_type pw
ecutwfc 60
scf_thr 1e-6
scf_nmax 150
ks_solver cg
device gpu
precision double
symmetry 1
smearing_method fd
smearing_sigma 0.6
cal_force 1
cal_stress 1
pseudo_dir ../../PP_ORB
orbital_dir ../../PP_ORB
out_chg 1
nbands 4
esolver_type sdft
method_sto 1
initsto_freq 0
nbands_sto 64
nche_sto 100
seed_sto 11
STRU#
#This is the atom file containing all the information
#about the lattice structure.
ATOMIC_SPECIES
Si 28.0855 Si.pz-vbc.UPF #Element, Mass, Pseudopotential
LATTICE_CONSTANT
10.2 #Lattice constant
LATTICE_VECTORS
0.5 0.5 0.0 #Lattice vector 1
0.5 0.0 0.5 #Lattice vector 2
0.0 0.5 0.5 #Lattice vector 3
ATOMIC_POSITIONS
Cartesian #Cartesian(Unit is LATTICE_CONSTANT)
Si #Name of element
0.0 #Magnetic for this element.
2 #Number of atoms
0.00 0.00 0.00 1 1 1
0.25 0.25 0.25 1 1 1
KPT#
K_POINTS
0
Gamma
2 2 2 0 0 0
method_sto 1采用内存需求较低的算法;nche_sto 100控制Chebyshev展开阶数,数值收敛另做200和300阶对照。seed_sto 11固定随机样本;同一例还分别使用22和33。不要用时间生成的默认种子来比较“只改一个参数”的效果。initsto_freq 0保留设置,本篇只有静态SCF。
本包22次SCF包括三种随机方法的种子重复、随机轨道数变化、两份KS能带截断控制和两份更高Chebyshev阶数。它们共同服务于少数方法示例,不代表22种材料性质。
4. 完成后看什么#
对于自己的完整计算,在附件根目录检查一个条件:
grep -E 'convergence is achieved|!FINAL_ETOT_IS' work/cases/mix4-chi32-seed11/OUT.tutorial/running_scf.log
head -4 work/analysis/conditions.csv
要同时看到原生SCF收敛和有限的最终能量,再检查电子数与输入是否符合预期。脚本读取每份原生电荷密度cube,积分应接近8个价电子;原生输入中两个Si赝势各四个价电子。
混合方法的istate.info只列出确定性部分的能级占据,求和通常小于8;纯随机例没有确定性占据。不能据此认定计算丢了电子,更不能给部分占据再乘一个任意因子凑8。完整电荷来自确定性和随机两部分,结合cube与原生电子数检查。
5. 这些输出适合怎样解读#
这里比较的是同一固定晶胞、同一电子温度下包含−TS项的原生能量,不是0K结构能。本例采用晶体对称性,原子力为零不能证明随机力已经精确;高电子温度下压力很大,也不是室温硅的平衡压力。后续请看随机误差和确定性子空间,以及能带数与Chebyshev阶数。