ABACUS NEP:64原子NVE与NVT分子动力学
使用同一Si NEP4模型运行短NVE和NVT轨迹,说明结构、随机速度、输出字段与能量温度提取。
阅读本篇目录
本篇从上一组Si₈结构作2×2×2复制,得到64个Si原子,演示设置初速度、运行NEP分子动力学以及读取能量、温度、力和速度。复制晶胞只是生成MD初态,不会新增训练数据或改变模型精度。
unzip abacus-NEP-MD-wave675-*.zip
cd abacus-NEP-MD
bash results.sh
bash plot.sh
以上两步读取本集群已完成的参考数据并重绘,不启动计算。inputs/存放完整输入,reference-data/是参考表,新计算写入work/,新提取表写入results/。每个资料包都附独立环境的编译脚本;已有本篇环境时可复用,无需反复编译。
运行前先按NEP独立环境编译本地工具链。若工具链已在相邻的abacus-beta10-NEP目录中:
bash use-toolchain.sh ../abacus-beta10-NEP/toolchain/install
sbatch job.slurm
第一套资料包本身使用自己的toolchain/install,无需再选择路径。脚本申请cpu-8173m的56核独占整节点;本例内部按需要使用1、2或4个MPI进程,仍按整节点计费。CPU资源暂不可用时可以先看参考数据,待可用后提交。本文结果不作为CPU节点性能测试。
本组统一使用固定ABACUS 3.11.0-beta10(源码提交40e7ce8c575abb2ae7fc0df1bd6ec4b48a695d2d)和NEP_CPU 629ec5d,oneAPI 2024.2的icx/icpx/ifx、Intel MPI 2021.13、顺序MKL 2024.2,面向AVX512 CPU。此独立构建启用PW和NEP_CPU,关闭LCAO、ELPA、LibRI、Libxc、MLALGO、CUDA和OpenMP;不是覆盖全部电子结构功能的通用构建。公共ABACUS 3.10.1模块不提供这里使用的新接口。
1. 查看初始结构与完整NVE设置#
head -n 24 inputs/nve80/STRU
cat inputs/nve80/INPUT
INPUT_PARAMETERS
suffix nep
calculation md
esolver_type nep
pot_file nep.txt
ntype 1
basis_type pw
cal_force 1
cal_stress 1
md_type nve
md_thermostat nhc
md_nstep 80
md_dt 0.5
md_tfirst 300
md_tlast 300
md_seed 6741
init_vel 0
md_dumpfreq 1
md_restartfreq 5
md_out_force 0
dump_force 1
dump_vel 1
init_vel 0表示生成初速度,md_seed固定该步骤的随机性;md_dt单位fs。NVE不通过恒温器固定温度,文件里的md_thermostat nhc不是说此时启用了NVT。改成md_type nvt才是本组另一个Nose–Hoover链恒温例。
dump_force/dump_vel决定轨迹帧中是否写出力和速度,md_out_force控制人可读日志中的力表;这些不是同一个开关。不要使用此版本不识别的md_dump_force/md_dump_vel名称。
2. 一次提交三个短例#
sbatch job.slurm
cat results/MD-timeseries.csv
脚本依次运行nve40、nve80和nvt80。md_nstep 80在此版本生成编号0–79的80帧,最后一帧时刻为39.5 fs;不要把它写成已经输出了40.0 fs帧。40帧例最后为19.5 fs。
head -n 14 work/nve80/OUT.nep/MD_dump
grep -A3 'Energy (Ry)' work/nve80/OUT.nep/running_md.log | head -n 12
MD_dump明确写出位置Å、力eV/Å、速度Å/fs和维里/应力kbar;日志的总能、势能、动能表为Ry。脚本乘13.605698换成eV,并把横坐标统一为dump_step × 0.5 fs。不要把轨迹速度与STRU重启文件中原子单位的速度混为一谈。
3. 能量和温度应该怎样看#
| 例子 | 唯一帧数 | 最后时刻 / fs | 实际温度范围 / K | 总能相对首帧最大变化 / eV·atom⁻¹ |
|---|---|---|---|---|
| NVE40 | 40 | 19.5 | 281.73–304.88 | 1.063×10⁻⁶ |
| NVE80 | 80 | 39.5 | 234.93–304.88 | 1.063×10⁻⁶ |
| NVT80 | 80 | 39.5 | 255.14–304.61 | 3.906×10⁻³ |
NVE中温度起伏、势能与动能交换是正常现象;NVT中恒温器交换能量,总能不再适用同一NVE守恒判断。几十fs只演示输入和数据读取,不能据此声称300 K平衡、扩散系数或热导率已经收敛。

4. 调整到自己的任务#
先确认NEP覆盖目标元素和结构,再修改初态、温度和步长,适当延长平衡与生产过程。保留重启输出,调整打印频率以控制轨迹体积。需要延长同一段轨迹时,按照NEP续算读取检查点,而不是重新抽取一套速度。