CREST:单次优化与压缩采样
用水二聚体实际比较带拓扑检查的试优化和受限空间搜索,解释优化成功为何不等于找到最低能构型。
阅读本篇目录
同一个初始结构,单次优化和构象搜索可能得到不同结果。本篇用一个中性水二聚体演示:--trialopt 先做一次局部优化,--compress 再通过受限空间采样寻找其他候选结构。
1. 先读取实际结果#
下载完整输入、实际结果、CSV和读取绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd crest-compression-trialopt
bash read.sh
bash plot.sh
默认读取 reference-results,生成 analysis-read 和 figures。数据也可单独下载:CREST-compression-energies.csv、CREST-compression-frames.csv。
本例使用独立 CREST 3.0.3,GNU Fortran 与 MKL 编译,配套 xTB 6.7.1。需要重算且尚未建立个人 3.0.3 程序时,在已分配的 CPU 作业内先运行 bash build-private.sh;首次构建需访问源码仓库。程序放在 ~/.local/ys-crest-tools/bin/crest,其他本专题使用此入口的教程可以共用。已有该入口则直接使用。CPU 提交模板申请 56 核整节点,实际使用 2 线程。

体系只有 6 个原子,O₂H₄,电荷0,使用 GFN2-xTB。它是操作示例,不是高精度水二聚体结合能研究。
2. 准备完整输入#
6
Own neutral water-dimer teaching input
O 0 0 0
H .758 0 .504
H -.758 0 .504
O 2.90 0 0
H 3.658 0 .504
H 2.142 0 .504
水分子初始朝向会影响局部优化落入哪个区域。不要仅把氧氧距离设成某个数就认为已经得到了氢键最优结构。
3. 先做带拓扑检查的试优化#
在已分配的 CPU 作业中,核心命令是:
~/.local/ys-crest-tools/bin/crest input.xyz --trialopt --gfn2 --T 2
--trialopt 调用初始几何优化并检查拓扑。本次日志给出 Geometry successfully optimized. 与 Geometry ok!,但末态两个氧的距离约 4.640 Å,两个分子趋于分离。
这说明“优化正常结束”和“已覆盖其他取向及能谷”是不同的判断。拓扑检查通过也不表示氢键构象已经找全。
tail -24 reference-results/trialopt/native.log
tail -8 reference-results/trialopt/crestopt.log.xyz
4. 再做压缩搜索#
另开目录放入相同的 input.xyz,执行:
~/.local/ys-crest-tools/bin/crest input.xyz --compress --gfn2 --mdlen 0.2 --T 2 --keepdir
本例从实际搜索中得到两个候选,较低能结构的 O-O 距离约 2.836 Å,比单次试优化末态低约 5.69 kcal/mol。这是本次找到的结构之间的能量差,不能当作相对于两个独立优化水分子的结合能。
另一个候选已明显分离,O-O约 11.261 Å;后续几何优化可以离开原来的压缩排布,因此不能把它也称作紧密的氢键构型。
程序施加的是人工球形边界和搜索偏置;找到更低能候选,不代表已证明全局最低能。
5. 一次提交两种方法#
bash submit.sh
# Slurm作业结束后
bash read.sh work-new analysis-read
bash plot.sh
结果分别在 work-new/trialopt、work-new/compress-02ps。提交脚本在相同几何上额外调用 xTB 单点,读取脚本据此核对最终能量;参考结构与独立单点的最大差小于 1×10⁻⁶ Eh。
head -8 analysis-read/CREST-compression-energies.csv
ls work-new/compress-02ps/crest_*.xyz
更具体的文件、采样长度及边界含义见压缩采样工作流。
参数参考:该固定版本附带的CREST命令手册。具体操作和结果见上面的实际输入。