VTST能量与受力收敛提取
用真实Si两原子优化输出,演示vef.pl提取、E0与相对能量、力阈值及固定原子的区别。
阅读本篇目录
优化进行时,先看原子力是否下降,再看结构是否达到自己设定的目标。本例用已经完成的Si两原子LBFGS优化输出,演示vef.pl的实际用法。
1. 下载与参考结果#
下载完整输入、原生输出、CSV与绘图脚本,保存为example.zip:
python3 -m zipfile -e example.zip .
cd vtst-real-trajectory-tools
module load ase/3.29.0
bash read.sh
bash plot.sh
这一步读取本包保存的数据,在analysis-read/生成结果表、在figures/生成图片。新运行后处理时使用bash run.sh,输出写入新建的work-new/;它不运行VASP,也不提交新作业。
原计算为VASP6.6.1、VTST revision214,GPU构建采用NVHPC25.3、CUDA12.8、HPC-X2.22.1和MKL2023.2;PBE PAW64,ENCUT450 eV、EDIFF1E−6,自由原子力目标0.02 eV/Å。完整结构、INCAR与方法比较见VTST优化器选择。这里不重新计算该结构。
2. 在分析副本提取#
module load vtstscripts/1040
mkdir force-copy
cp inputs/Si-LBFGS-OUTCAR force-copy/OUTCAR
cd force-copy
vef.pl 0
cat fe.dat
参数0关闭旧gnuplot绘图,仅提取数据。省略它会按默认方式尝试绘制EPS。原生四列分别是调用编号、最大原子力、E0、相对首次调用的E0。
本例摘录:
0 2.56377900 -10.024028 0
1 2.49702300 -10.036852 -0.0128235
2 0.93769600 -10.198440 -0.174412
3 0.13934100 -10.225950 -0.201922
4 0.06326600 -10.226469 -0.202441
5 0.01705700 -10.226593 -0.202565
原生编号从0开始,这里一共6次真实DFT受力调用。E0是OUTCAR中的energy(sigma->0),不是把自由能F、无熵能和E0混为一列;原生输出会舍入。
3. 重画清晰的图#
cd ..
bash read.sh
bash plot.sh
head analysis-read/VTST-Si-LBFGS-vef.csv

本例末次自由Si原子力约0.017057 eV/Å,达到0.02目标。E0另与vasprun.xml的离子步结果对照,避免把每次电子迭代中的中间能量误当成新的结构步。
4. 固定原子和不同输出格式#
vef.pl读取最大原子力摘要,不会替你判断哪些原子被固定。自己的模型有约束时,还应按允许移动的原子与方向检查最终受力,并检查CONTCAR结构。
某些动力学输出没有此脚本所查找的力摘要,可能生成空fe.dat。空文件表示这一提取入口没有读到对应数据,不能理解为力全为零。轨迹处理中的具体例子见H₂轨迹抽帧。