CREST:构象搜索中断后继续计算
从正庚烷短搜索演示3.0.2检查点续算,保留工作目录并读取最终构象。
阅读本篇目录
构象搜索运行到一半中断时,应先确认原任务已停止,再检查工作目录中的原生检查点。本篇使用公共 CREST 3.0.2,对正庚烷的一次短搜索实际中断、续算并读取最终构象。
1. 先查看完整例子#
下载完整输入、实际输出、读取和绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd crest-public302-search-restart
bash read.sh
bash plot.sh
默认读取附带结果,CSV写入 analysis-read,图片写入 figures。这些命令不会重新提交计算。

2. 原始输入怎么写#
cat inputs/search-repair/input.xyz
cat inputs/search-repair/input.toml
23原子的正庚烷结构:
23
C -0.0214226343 0.0610928844 0.0937648138
C 1.2876172961 0.8329966369 0.0249984710
C 2.5249888468 -0.0707134932 0.0108247918
C 2.6369673687 -0.9354883870 -1.2453525155
C 3.9028444262 -1.7927546229 -1.2674081829
C 4.0148477519 -2.6623824829 -2.5205763428
C 5.2750899653 -3.5134230878 -2.5353432233
H -0.0500806252 -0.5899906584 0.9699426236
H -0.1611794722 -0.5731309582 -0.7835568207
H -0.8867632476 0.7261855020 0.1517202371
H 1.2979444407 1.4734619381 -0.8673659344
H 1.3483199958 1.5281785931 0.8747797568
H 3.4349407850 0.5366700244 0.1071546206
H 2.5175763922 -0.7162350609 0.8979744316
H 1.7574520302 -1.5844461449 -1.3332005190
H 2.6096165089 -0.2959425286 -2.1364522527
H 4.7867739519 -1.1477625111 -1.1863141415
H 3.9326445536 -2.4287442808 -0.3737652301
H 3.1252523715 -3.3021672759 -2.5987405659
H 3.9808870397 -2.0207292346 -3.4115873426
H 5.3444440308 -4.1303236822 -3.4347440836
H 5.3091241286 -4.1841331566 -1.6741651083
H 6.1721185710 -2.8919186153 -2.4939024615
对应的TOML:
input = "input.xyz"
runtype = "imtd-gc"
threads = 2
[calculation]
elog = "energies.log"
optlev = "vtight"
[[calculation.level]]
method = "gfnff"
chrg = 0
uhf = 0
[dynamics]
length = 0.3
tstep = 1.0
dump = 10.0
temp = 300.0
hmass = 1.00794075
shake = 0
printstep = 10
imtd-gc 指定构象搜索;GFN-FF用于本例的快速势能与梯度计算。length=0.3 是短演示的动力学时长设置,tstep=1.0 为1fs步长,dump=10.0 为10fs输出间隔。正式研究应按照分子的柔性与目标精度增加采样,不能将本例的一条最终构象理解为全局最低点已被穷尽。
原任务的核心命令为:
module load crest/3.0.2 xtb/6.7.1
crest input.toml --quick --mdlen 0.3 --mddump 10 --keepdir > search.log 2>&1
应在Slurm分配的CPU资源内运行。公共3.0.2程序与外部xTB 6.7.1配套;本例不要求改动公共软件或用户配置。
3. 中断后先保留整个工作目录#
squeue -u "$USER"
ls -lh crest.restart crest_dynamics.trj
cp -a calculation calculation-backup
最后一条在该计算目录的上一级执行,calculation 换成自己的目录名。确认原任务已退出再备份、续算,避免两个程序同时写同一份检查点。应保留原来的输入、检查点以及生成的子目录,不能只复制一个 crest.restart 就假定所有上下文齐全。
附带的历史 interrupted-snapshot 只保存了当时的顶层文件,用于展示真实检查点;实际续算发生在保留了子目录的原工作目录。资料包的新任务脚本会备份整个算例目录。
4. 只增加restart设置#
在原工作目录执行:
{ printf 'restart = true\n'; cat input.toml; } > restart.toml
保留相同版本、分子、电荷、自旋、模型、采样设置和其余命令参数,在新的Slurm任务中运行:
crest restart.toml --quick --mdlen 0.3 --mddump 10 --keepdir > resumed.out 2>&1

5. 怎样确认真的读取了检查点#
grep -E 'READING crest.restart|Target restart step|FINISHED READING' resumed.out
tail -20 resumed.out
head -25 crest_conformers.xyz
本次实际保存的检查点阶段编号为2,含4254条完整的Fortran记录、153920字节,旁边已有174帧MTD轨迹。恢复日志明确读取该检查点,并以 CREST terminated normally. 结束,最终得到1条正庚烷构象。阶段编号是CREST内部流程编号,不是Slurm作业号。
最终电子能为 −3.29018655Eh;相同几何的独立GFN-FF单点与其相差约2.71×10⁻⁸Eh。CSV包含原生能量、单点能与检查点统计:下载结果表。
6. 从资料包提交自己的新计算#
bash submit.sh
该入口在 work-new 中执行短搜索、在检查点可读取且已有轨迹后中断自身启动的进程组,再恢复自己的计算,用于演示可恢复流程。它不会选择或取消已有的其他作业。计算完成后:
bash read.sh work-new
bash plot.sh
实际故障恢复不必人为中断第二次;按第3至5步,在保留的原目录直接续算即可。
7. 哪些续算不能混为一谈#
本例证明的是3.0.2构象搜索的阶段检查点恢复,不保证随机采样逐位重现,也不等同于完整恢复每条MTD轨迹的偏置历史。普通MD、批量优化与QCG已完成阶段的复用方式见CREST续算总览。其他版本需要分别确认其检查点实现,不能直接套用3.0.2的结论。