CREST键长扫描:目标值、实际几何和能量
水分子实际做3点O–H软约束扫描,说明输入Bohr单位、实际键长偏差及清除扫描势后的电子能。
阅读本篇目录
键长扫描让结构沿指定坐标变化,其余自由度同时优化。本篇用水分子O–H键做3个点,演示CREST原生scan输入,并区分目标键长、实际键长和比较用的电子能。
1. 下载与实际结构和能量#
下载完整输入、原生结果、独立能量梯度对照与绘图包,保存为example.zip:
python3 -m zipfile -e example.zip .
cd crest-search-scan-workflows
bash results.sh
bash read.sh
bash plot.sh
这些命令直接读取随包真实计算,不必为了看图重新搜索。CSV在data/,原生输出在reference-results/,图在figures/。分析默认使用集群ASE环境Python,可用YS_ANALYSIS_PYTHON指定含NumPy、ASE和Matplotlib的解释器。

本例只是3点小范围键长扫描,不用于声称反应势垒、解离能或完整势能面。
2. 完整输入#
cat inputs/water-bond-scan/input.xyz
cat inputs/water-bond-scan/input.toml
input = "input.xyz"
runtype = "scan"
threads = 2
[calculation]
elog = "energies.log"
optlev = "extreme"
[[calculation.level]]
method = "gfn2"
chrg = 0
uhf = 0
accuracy = 0.01
[[calculation.scans]]
bond = [1.0,2.0,1.75,1.95,3.0]
bond=[1.0,2.0,1.75,1.95,3.0]指定原子1与2,目标从1.75到1.95,共3个点。这个原生扫描路径的距离单位是Bohr,不是Å;1 Bohr约0.529177 Å。前三个目标实际为1.75、1.85和1.95 Bohr。
3. 提交#
本批用未经算法修改的维护者CREST3.0.3独立构建,GCC/GFortran13与Intel MKL2024.2;公共默认CREST3.0.2保持。独立能量/梯度由xTB6.7.1重新计算。不要只按新版手册假定不同安装入口完全相同。
有相同3.0.3程序时设置CREST_EXAMPLE_BIN指向它;资料包也提供复用实际构建过程的build-private.sh,默认安装到个人~/.local/ys-crest-qcg,需要外网、Git、CMake与相应编译环境。在允许编译的CPU资源中执行:
bash build-private.sh
export CREST_EXAMPLE_BIN="$HOME/.local/ys-crest-qcg/bin/crest"
之后在新解压目录通过Slurm提交整个流程:
sbatch run.slurm
脚本申请56核整节点,主CREST任务用2线程,独立xTB逐项用1线程。实际搜索、优化、MD和单点通过计算作业执行。结束后读取自己的结果:
bash read.sh work analysis-new
bash plot.sh analysis-new figures-new work
4. 目标和实际为何不同#
当前路径采用软约束,优化时物理受力与扫描约束共同作用,实际键长不必严格等于目标。读取输出XYZ后得到:
| 点 | 目标/Bohr | 目标/Å | 实际/Å |
|---|---|---|---|
| 1 | 1.75 | 0.92606 | 0.94273 |
| 2 | 1.85 | 0.97898 | 0.96956 |
| 3 | 1.95 | 1.03190 | 0.99934 |
cat data/CREST-water-soft-bond-scan.csv
本次最大目标差约0.0615 Bohr。因此画能量曲线时要说明横坐标是目标值还是从结构算出的实际值,不能把它们混用。图中横坐标使用实际O–H键长。
5. 读取物理能量#
cat reference-results/water-bond-scan/scanfiles/scan.xyz
cat reference-results/water-bond-scan/scanfiles/scan.elog
本例扫描输出的比较能量由清除新增扫描势后的同一GFN2计算取得,并与独立xTB单点核对。三点相对最低值约为0.09527、0和0.71526 kcal/mol。
受约束几何的无约束力通常非零,不能按自由最低点的零梯度条件判断它是否合理。约束是否满足、自由方向是否优化、用什么能量比较,需要分别理解。
6. 长度不要从scan.grid直接取#
此版本的scan.grid写出路径对键长也套用了角度变换,数值约280、286、292;它们不是本例的Å或Bohr键长。本文配套读取器从明确输入目标和实际XYZ坐标计算CSV,避免误画横轴。
bash read.sh
bash plot.sh
换扫描原子、范围或其他坐标时,先检查该版本的单位和文件定义;不要把一个扫描坐标的路径当作已经找到真正最小能量反应路径。