CREST单点、优化与电子能量权重
完整乙醇XYZ、原生能量/梯度文件、结构优化,以及两个温度下真实构象能量的权重计算。
阅读本篇目录
CREST3.0.2除构象搜索外,也能单独计算能量、梯度和优化结构。本例先用同一乙醇结构完成单点和优化,再把三份实际优化能量整理成表,演示电子能量权重计算。
1. 提交与查找输出#
将资料包保存为crest-tools.zip,解压到新目录:
unzip crest-tools.zip -d crest-tools
cd crest-tools
sinfo
sbatch job.slurm
模板使用CPU分区,实际最多8个单线程工具并发;提交前确认分区可用。环境为CREST3.0.2官方GNU12 CPU构建和xTB6.7.1;该单点/优化走CREST的GFN2计算接口。NumPy/Matplotlib由sisl0.16.4环境提供。
ls cases/standalone-sp
ls cases/standalone-opt
cat analysis/SUMMARY.json
2. 完整XYZ与单点#
本例的参考结构已经经过一次xTB优化,适合展示输出和再次优化;它不是任意拼接的未优化分子。XYZ如下:
9
energy: -11.394339009463 gnorm: 0.000182894148 xtb: 6.7.1 (edcfbbe)
C 1.20003820919234 -0.40811579900941 -0.00400158273974
C 0.00076743532174 0.53385819196878 -0.02287197932838
O -1.23052236883051 -0.14996101732902 -0.00002503486621
H -1.25502003462677 -0.76449143973302 -0.74232219635282
H -0.00240670620014 1.16124173210083 0.87125759755794
H 0.05631989978618 1.18898154678766 -0.90551962578295
H 2.12246852846417 0.16429507934842 0.03639076345276
H 1.15006709448426 -1.05845598849926 0.86596337251828
H 1.21377754580873 -1.02691797793497 -0.90034563835890
在已申请的CPU资源内,可用新目录单独运行:
module load crest/3.0.2
mkdir ethanol-sp
cp cases/standalone-sp/reference.xyz ethanol-sp/ethanol.xyz
cd ethanol-sp
crest ethanol.xyz --gfn2 --sp -T 1 > sp.out
cat crest.engrad
cd ..
crest.engrad包含原子数、总能量/Eh和每个原子的三个梯度分量/Eh·bohr⁻¹。力等于梯度的负值;转换为eV/Å时还要乘Hartree→eV、除bohr→Å,不能只改单位标签。
本次总能量为−11.394339014879328Eh,梯度范数约1.82561e-4 Eh/bohr,最大原子受力约0.006644eV/Å。与同坐标的原xTB能量一致到约5.4e-9 Eh,不是把两个不同几何的能量拿来比较。
3. 再进行结构优化#
mkdir ethanol-opt
cp cases/standalone-opt/reference.xyz ethanol-opt/ethanol.xyz
cd ethanol-opt
crest ethanol.xyz --gfn2 --opt -T 1 > opt.out
ls crestopt.xyz crestopt.log crest.engrad
grep 'converged' opt.out
cd ..
最终结构在crestopt.xyz,迭代轨迹在crestopt.log。本例起始结构已经接近极小值,因此只进行了很小调整:最终能量约−11.394339014970422Eh,最大原子受力约0.006683eV/Å。应同时检查优化器结束、能量变化与梯度,不能只因生成XYZ就认定优化完成。
4. 从真实能量文件计算权重#
以下三行分别来自三个不同起始O–H扭转角优化后的能量,每行第二列简并度为1,没有加入文件处理示例中的那条重复记录。
-11.394339009463 1
-11.394339009463 1
-11.391867310820 1
将文件保存为energies.dat,或直接使用包内文件:
mkdir weights-example
cp cases/boltz-298/energies.dat weights-example/
cd weights-example
crest --printboltz energies.dat 298.15
cat energies.dat.out
cd ..
要比较另一个温度,用新目录避免覆盖前一个输出:
mkdir weights-600
cp cases/boltz-600/energies.dat weights-600/
cd weights-600
crest --printboltz energies.dat 600
cat energies.dat.out
cd ..
| 温度/K | −60°起始优化结果 | +60°起始优化结果 | 180°起始优化结果 |
|---|---|---|---|
| 298.15 | 0.482407 | 0.482407 | 0.035186 |
| 600.0 | 0.440091 | 0.440091 | 0.119819 |

这里按g×exp(−ΔE/RT)归一化,不是根据搜索中某构象出现的次数计概率。若合并真正等价的状态,应有明确简并度依据;不能把重复复制的XYZ记录当作额外物理简并。
5. 单位换算与结果范围#
3.0.2这个辅助例程采用627.5905作Eh→kcal换算,和常用现代换算值627.509474…略有差别。为复现本版原生输出,图和独立核对保留其实际常数;analysis/SUMMARY.json另外列出采用现代常数的权重。本例两种换算的最大绝对权重差约1.8e-5,没有静默改写原生数据。
本篇仅比较三个气相优化构象的电子能量,没有构象穷尽、溶剂、振动/转动自由能或采样收敛,因此不能把表中权重直接称为实验或溶液平衡构象比例。开始正式自由能研究时应按目标条件加入相应贡献。
module load sisl/0.16.4
python analyze.py
配套集合处理见RMSD、拆分、比较与原子顺序;输入功能按CREST官方说明及所选安装版本使用。