VTST Lanczos结果:力、模式与负曲率
读取21个中心点与20个模式,并用最终结构正负位移的真实单点能量检查负曲率。
阅读本篇目录
Lanczos最小模跟随的结果需要同时看最终力与模式曲率。只看到一段“收敛”文字,不能代替确认目标结构及负曲率方向。
1. 读取实算数据#
下载完整输入、实际输出、数据与绘图脚本,保存为example.zip:
python3 -m zipfile -e example.zip .
cd vtst-lanczos-nh3
module load ase/3.29.0
bash read.sh
bash plot.sh
这两条脚本默认读取资料包已有结果,在analysis-read/生成CSV,在figures/出图。新计算单独写入work-new/,与参考数据分开。

本篇沿用完整计算流程。VTST-Lanczos-NH3-central-points.csv按中心点记录力,native-modes.csv记录完成的模式,final-mode-energy.csv保存最终结构及正负位移的三点能量。
head -5 analysis-read/VTST-Lanczos-NH3-central-points.csv
cat analysis-read/VTST-Lanczos-NH3-final-mode-energy.csv
2. 为什么21个中心点只有20个模式#
最终第21个中心点的物理力已达到停止条件,程序在下一次模式求解之前结束。因此最后一次完整原生模式属于第20个点,不能说它就是在最终CONTCAR上重新求得的模式。
本例保存的模式与NH₃反转方向投影为0.999980。为判断它在最终几何处的曲率,另外进行了普通Gamma VASP正、负0.01 Å位移单点计算,中心能量直接使用已有最终结构单点,不重复计算。
3. 正负位移如何生成#
prepare_checks.py读取CONTCAR与NEWMODECAR,按整体笛卡尔范数归一化后,生成中心、正位移、负位移三个目录。该准备脚本针对本包无约束4原子Direct结构;自己的复杂约束结构应保留相应坐标和约束含义。
cd work-new
python3 ../prepare_checks.py
ls lanczos/independent-final final-mode-curvature/plus final-mode-curvature/minus
cd ..
上面的准备步骤已包含在提交脚本中;手动查看时不要在同一次新计算里重复执行。三个单点沿用550 eV、Γ点、EDIFF=1E-6,并设静态计算,不再做结构优化。
4. 看三点曲率结果#
| 位置 | 总能E0(eV) |
|---|---|
| 模式−0.01 Å | −19.34494330 |
| 最终结构 | −19.34456998 |
| 模式+0.01 Å | −19.34495240 |
按[E(+h)+E(-h)-2E(0)]/h²,得到 −7.5574 eV/Ų。负号说明沿该方向离开中心,能量降低。最后一次原生模式曲率为−7.79921 eV/Ų,两者相差约3.1%,它们对应的结构点与差分定义并不完全相同。
该曲率没有做质量加权,单位不是cm⁻¹,不能直接作为虚频数值。三点沿模检查也不等于完整Hessian,更不能直接给出反应速率。实际扩展时要对步长、起点和其他模式作针对性检查;本例只展示已达到0.02 eV/Å标准的这一条近鞍点搜索。