CREST分子动力学续算
完整复制时间、坐标和速度,把40fs与60fs续算拼接,并与连续100fs轨迹逐帧比较。
阅读本篇目录
续算MD需要恢复运动状态,只有XYZ坐标还不够。本例把同一个水分子的100 fs普通MD拆成40 fs和60 fs,再与连续100 fs结果比较。它介绍的是3.0.2原生 .mdrestart,与构象搜索二进制检查点不同。
1. 跑完整示例#
使用MD、偏置和续算资料包,在 crest-md-mtd 目录提交 sbatch job.slurm。或者在已经分配的CPU作业内执行:
bash run.sh
脚本先完成 md-half,把其实际生成的完整checkpoint复制到 md-resume/continue.mdrestart,再启动续算;原checkpoint不覆盖。
2. 看懂checkpoint#
head -n 4 cases/md-half/crest_*.mdrestart
cat CONTINUATION-PREPARATION.json
第一行为时间40 fs,后面每个原子一行六列:坐标与原生半步速度。复制记录中的两个SHA应相同。不能把速度列删掉,也不能用XYZ末帧代替完整checkpoint后称为精确续算。
手工操作时,先将短段输出的真实 .mdrestart 原样复制到另一个新目录,并保留原子顺序、方法、时间步长、质量及恒温设置。新目录中的 input.toml 为:
input = "structure.xyz"
runtype = "md"
threads = 1
[[calculation.level]]
method = "gfn2"
chrg = 0
uhf = 0
accuracy = 0.0001
[dynamics]
length = 0.06
tstep = 0.25
dump = 0.25
temp = 300.0
hmass = 1.00794075
shake = 0
printstep = 10
restart = "continue.mdrestart"
length=0.06 是还要运行60 fs,不是重新指定到60 fs结束;restart 指向刚复制的文件。随后在该新目录运行 crest input.toml > native.out 2>&1。
3. 拼接时补上40fs边界#
40 fs短段有159帧(0.25–39.75 fs),续算有239帧(40.25–99.75 fs)。正确拼接是 159帧 + 40 fs checkpoint坐标 + 239帧 = 399帧,再与连续MD的399帧比较。直接拼接两个XYZ会缺少中间边界。
cat results/SUMMARY.json
本次原始实算最大坐标差约 1.0×10⁻¹⁰ Å,势能差约 1.0×10⁻¹² Eh,最终半步速度差约 3.1×10⁻¹³ 原子单位。这些是这套固定条件的结果,不是所有体系、平台或并行设置的通用精度保证。

图右比较连续轨迹与正确拼接轨迹的逐帧最大笛卡尔差。40 fs边界的势能来自该checkpoint结构的独立原生单点。
4. 重新提取结果与适用范围#
python -B verify.py
本例验证普通MD的时间、坐标和速度连续性。RMSD偏置MD还有已沉积参考构型及其历史,不能仅复制普通 .mdrestart 就声称恢复完整偏置历史;随机恒温器、改时间步长或改电子方法也需要分别判断。
计算其他体系时另建输入目录,不直接使用水分子的固定参考文件。需要了解每个设置时,先阅读普通MD输入教程;版本行为可核对3.0.2动力学源码。