DeePMD接入ASE与短NVE轨迹
16个Si原子实跑100步,核对能量力应力和总能漂移。
阅读本篇目录
下载结构、标签、完整JSON、冻结模型、参考结果和脚本。解压到自己的工作目录,以下命令从附件根目录开始。预处理可交互操作;训练、批量预测和MD在申请的计算资源内运行。所有新结果进入work,不覆盖reference。
1. 在计算资源中运行#
module load deepmd-kit/3.2.0
python -B ase_md.py
DeePMD环境包含训练依赖;脚本追加现有ASE模块的纯Python路径,不覆盖DeePMD本身的NumPy、PyTorch,也不修改公共安装。结果在work/ase-md:initial.xyz、trajectory.xyz、thermo.csv与VALIDATION.json。
2. 关键操作#
from ase import units
from ase.io import read
from ase.md.verlet import VelocityVerlet
from ase.md.velocitydistribution import MaxwellBoltzmannDistribution, Stationary
from deepmd.calculator import DP
import numpy as np
atoms = read('labels/test.xyz', index=0).repeat((2, 2, 2))
atoms.calc = DP(model='reference/dpa1-1500/model.pth')
print(atoms.get_potential_energy())
print(atoms.get_forces())
print(atoms.get_stress(voigt=False))
MaxwellBoltzmannDistribution(atoms, temperature_K=20,
rng=np.random.RandomState(20261028))
Stationary(atoms)
dynamics = VelocityVerlet(atoms, 0.1 * units.fs)
dynamics.run(100)
完整脚本在计算前用DeepPot原生接口逐项对照ASE。E最大差0,F最大差4.45E-16eV/Å,ASE应力与−W/V最大差1.63E-17eV/ų。
3. 看实际轨迹#
| 设置/结果 | 数值 |
|---|---|
| 原子 | Si₁₆,2×2×2重复 |
| 初始热分布目标 | 20K,移除质心运动 |
| 步长 | 0.1fs |
| 步数/总时间 | 100步/10fs |
| 总能相对首帧最大偏移 | 6.34E-8eV/atom |
| 瞬时温度范围 | 11.12–30.81K |

小体系温度会振荡,NVE不通过热浴维持20K。本例只说明接口、单位和这一短时轨迹的数值稳定性;不能据10fs总能稳定就证明势对真实声子、扩散或热导率可靠。
LAMMPS/GPUMD需要各自与模型格式匹配的接口和构建,不能将pth直接重命名成NEP文本。本例未把ASE轨迹当作这两种程序已跑通,相关集成另按对应教程。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。