ABACUS TDOFDFT:基态密度到实时传播
用四个固定Al原子与高速质子小胞,实际串起OFDFT基态密度、初态参考、实时传播与动力学输出。
阅读本篇目录
TDOFDFT通过传播Madelung波函数,得到随时间变化的电子密度。本篇使用本集群实际运行的Al₄周期胞与一个运动的裸质子,展示先求宿主基态密度 → 读取同一密度初始化 → 实时传播 → 取回离子轨迹和电子密度。
这是4.05 Å小胞、20阿秒的操作例。周期有限尺寸、带电背景、初始插入瞬态和短时间都明显影响结果,不能直接给出材料的收敛电子阻止本领。
unzip abacus-tdofdft-wave681-*.zip
cd abacus-tdofdft
bash results.sh
bash plot.sh
以上仅读取已完成的参考数据并重绘,未启动新计算。reference-data/是本集群实算参考,重新执行的原生结果放在work/、提取的数值和图片放在analysis/。每次完整重算使用新解压的目录,避免覆盖已有结果。
本组使用独立CPU环境。先编译一次,再在本资料包目录选择它:
bash use-toolchain.sh ../abacus-ml-env/toolchain
程序为固定ABACUS 3.11.0-beta10;编译器icx/icpx/ifx 2024.2、Intel MPI 2021.13、顺序MKL 2024.2,链接现有PyTorch 2.8.0+cu126,本文实际使用CPU。公共3.10.1模块保持原用途。计算脚本通过cpu-8173m申请56核独占整节点,小例内部采用少量进程,仍按整节点计费;本篇不作CPU节点性能对照。CPU资源暂不可用时可先查看参考数据。
1. 先看结构#
四个Al位于FCC常规胞,全部固定;质子从空隙位置出发,沿z方向初速度1.3原子单位。质量输入为1.008 u,实际速度约28.43997 Å/fs,初始动能约42.250 keV。
cat inputs/td-CD/STRU
ATOMIC_SPECIES
Al 26.981539 al.lda.lps blps
H 1.008 H.pz-vbc.UPF 1/r
LATTICE_CONSTANT
7.653393854986138
LATTICE_VECTORS
1 0 0
0 1 0
0 0 1
ATOMIC_POSITIONS
Direct
Al
0
4
0 0 0 0 0 0 v 0 0 0
0 0.5 0.5 0 0 0 v 0 0 0
0.5 0 0.5 0 0 0 v 0 0 0
0.5 0.5 0 0 0 0 v 0 0 0
H
0
1
0.5 0.5 0.5 1 1 1 v 0 0 1.3
Al采用局域blps势,H采用1/r点电荷势。总电子数固定为12,即四个Al的价电子数;质子不额外加入一个电子。由此形成周期带电小模型,要和宏观中性靶材区分。Al的冻结标记为0 0 0,H为1 1 1。
2. 先做Al₄基态#
cat inputs/gs/INPUT
INPUT_PARAMETERS
suffix td
calculation scf
esolver_type ofdft
basis_type pw
ntype 1
nspin 1
nelec 12
ecutwfc 44
scf_nmax 160
symmetry 0
cal_force 1
cal_stress 1
pseudo_rcut 16
of_kinetic tf+
of_method tn
of_conv energy
of_tole 1e-6
of_full_pw 1
of_full_pw_dim 1
out_chg 1 12
nbspline 10
nx 45
ny 45
nz 45
采用TF+VW动能泛函、44 Ry截断及45³ FFT网格,能量停止阈值of_tole=1E-6。这里的TF+VW是本篇指定的无轨道近似,不等同于普通Kohn–Sham结果。
out_chg 1 12要求输出CUBE密度并保留12位小数精度参数,方便积分和比较。三维网格显式固定,避免不同阶段自动选择不同网格。
3. 再做实时传播#
cat inputs/td-CD/INPUT
INPUT_PARAMETERS
suffix td
calculation md
esolver_type tdofdft
basis_type pw
ntype 2
nspin 1
nelec 12
ecutwfc 44
scf_nmax 160
symmetry 0
cal_force 1
cal_stress 1
pseudo_rcut 16
of_kinetic tf+
of_method tn
of_conv energy
of_tole 1e-6
of_full_pw 1
of_full_pw_dim 1
out_chg 1 12
nbspline 10
of_cd 1
of_mcd_alpha 1
init_vel 1
init_chg file
read_file_dir ./
md_restart 0
md_type nve
md_nstep 41
md_dt 0.0005
md_dumpfreq 1
md_restartfreq 0
dump_force 1
dump_vel 1
md_out_force 0
nx 45
ny 45
nz 45
init_chg file读取前一步的chg.cube,read_file_dir ./指向当前目录。程序进入每个实时目录前,配套脚本会复制宿主基态密度。init_vel 1读取STRU中的速度;md_dt=0.0005 fs,即0.5 as。
md_nstep=41实际保存编号0–40的41帧,最后时刻0.020 fs,即20 as。td-zero只输出一帧,保留相同程序和网格下的初始密度参考。
4. 一次提交完整流程#
sbatch job.slurm
脚本内部依次完成gs → td-zero → td-noCD → td-CD → td-MCD → 数据提取,每个原生计算使用2个MPI进程、每进程1线程。
ls work/gs/OUT.td/chg.cube
head -n 12 work/td-CD/OUT.td/MD_dump
cat analysis/TDOFDFT-summary.csv
MD_dump写出位置Å、力eV/Å、速度Å/fs。日志中的通用“SCF IS CONVERGED”文字不能作为“每个实时步都重新进行Kohn–Sham自洽”的依据;本例的求值器为tdofdft,具体传播方式由该接口决定。

下一篇电流修正与数据提取说明CD/MCD参数、原生辅助工具和电子密度图。方法与流程参考固定ABACUS源码中的TDOFDFT例子。