VTST:原子间倒距离矩阵
实际运行alchardness并核对周期距离,说明输出为几何1/r矩阵,不能当作电子响应硬度。
阅读本篇目录
下载原始输入、工具输出、CSV 和绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd vtst-core-potential
module load ase/3.29.0 vtstscripts/1040
bash read.sh
bash plot.sh
工具版本为 VTST scripts 1040,使用 Perl;ASE 3.29.0、NumPy 和 Matplotlib 用于后处理。数据来自真实 NH₃ 原生振动计算,原子顺序 H、H、H、N;本篇只处理现有文件,不重新提交电子结构计算。
1. 工具名和实际输出要分清#
alchardness.pl 的名称中带有 hardness,但当前 scripts 1040 的实现只读取结构,计算非对角元素 1/rᵢⱼ,对角元素置零。它没有调用 VASP,不读取电荷密度,也没有对核电荷或电子数求能量导数。
因此本篇把输出称为几何倒距离矩阵。单位为 Å⁻¹;没有乘库仑常数或电子电荷平方,不能直接当作 eV 单位的相互作用能,更不能当成完整化学硬度/炼金术 DFT Hessian。
2. 处理真实 NH₃ 结构#
本例使用有限位移扫描开始前的参考 POSCAR,与静电势提取篇读取最后一组日志的构型范围不同。
mkdir geometry-new
cd geometry-new
cp ../inputs/minimum/POSCAR .
perl "$VTSTSCRIPTS_ROOT/alchardness.pl" \
POSCAR inverse-distance.mat
cat inverse-distance.mat
cd ..
参数依次是输入结构和输出文件。省略时默认读取 CONTCAR,输出 hardness.out。最小点实际结果:
0.00000000 0.61103265 0.61103265 0.97925848
0.61103265 0.00000000 0.61102351 0.97924281
0.61103265 0.61102351 0.00000000 0.97924286
0.97925848 0.97924281 0.97924286 0.00000000
行列依次为 H1、H2、H3、N4。矩阵对称、对角为零,H–N 倒距离约 0.97925 Å⁻¹,对应约 1.021 Å 的键长。倒距离较大意味着两原子在几何上较近,不自动代表成键更强。
3. 对照另一份结构#
mkdir saddle-geometry-new
cd saddle-geometry-new
cp ../inputs/saddle/POSCAR .
perl "$VTSTSCRIPTS_ROOT/alchardness.pl" \
POSCAR inverse-distance.mat
cat inverse-distance.mat
cd ..
鞍点参考构型中 H–N 项约 0.9963–0.9966 Å⁻¹,H–H 项约 0.57525–0.57528 Å⁻¹。这里反映 NH₃ 翻转相关的几何差异,不是通过该工具重新确定鞍点。

4. 周期边界与使用范围#
脚本对分数坐标差做周期折回,再换算笛卡尔距离。本例使用 12 Å 立方盒,分子远离边界,并独立枚举相邻晶胞核对距离。
对高度倾斜晶胞,逐分量折回不一定等同于全局最短晶格像;不要把这个小例子的适用性直接扩展到任意斜晶胞。周期复制重合的原子也会让 1/r 不可用,先检查结构。
head -n 8 analysis-read/inverse-distances.csv
head -n 6 analysis-read/reference-geometry.csv
CSV 保留原生与独立周期距离结果,以及原子坐标。若需要真实电子电荷、键合或反应响应,继续采用对应的电子结构后处理方法。
5. 重做本例工具处理#
bash run.sh
bash read.sh work-new analysis-new
bash plot.sh analysis-new
本流程在新工作目录处理两份既有结构和日志,不提交新的量子化学计算;run.sh 已存在同名结果目录时停止。