CREST专题

CREST:构象搜索中断后继续计算

从正庚烷短搜索演示3.0.2检查点续算,保留工作目录并读取最终构象。

更新于 2026-11-13约 5 分钟阅读按任务与环境选择适用配置
阅读本篇目录

构象搜索运行到一半中断时,应先确认原任务已停止,再检查工作目录中的原生检查点。本篇使用公共 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的结论。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗