ABACUS 专题

ABACUS 随机与混合DFT上手

Si2真实纯随机、混合随机与KS-DFT,对应完整输入、单卡提交和能量/电荷检查。

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

随机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。

固定Si2模型和真实价电子密度切片

这是固定晶胞、高电子温度的演示,不运行离子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阶数。

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

查看配图

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

100%查看原图 ↗