VTST专题

VTST:沿路径方向投影原子受力

用nebforces提取实际CI-NEB结构的切向受力,解释固定原子、方向符号和力的单位。

更新于 2026-11-14约 2 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载完整输入、原生输出与绘图资料包,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd vtst-path-seeds
module load ase/3.29.0 vtstscripts/1040
bash read.sh
bash plot.sh

本例调用 VTST scripts 1040 的 Perl 工具,NumPy/ASE 3.29.0/Matplotlib 用于读取和绘图。输入沿用Al(100) CI-NEB 实算的最终结构及 OUTCAR,未重新计算 VASP。体系为 13 个 Al 原子,底部 8 个固定;00、01、02 依次为初态、中间点、末态。

1. 选出定义方向的两个结构#

nebforces.pl 的前两个参数是定义构型方向的结构,第三个是提供受力的 OUTCAR。三者原子顺序、原子数和晶胞应一致:

mkdir projection-new
cd projection-new
cp -a ../inputs/* .
perl "$VTSTSCRIPTS_ROOT/nebforces.pl" \
  00/POSCAR 02/POSCAR 01/OUTCAR > projection.txt
cat projection.txt
cd ..

实际输出约为 4.34848×10⁻⁹ eV/Å。本例使用已收敛、对称跳迁路径的中间点,沿所选方向的投影接近零,不能据此认为所有原子总力都等于零。

2. 明白方向与约束#

脚本使用周期最小像坐标差,并转为笛卡尔位移;随后对全部原子组成的 3N 向量统一归一化,计算 F·t。本版本的方向约定为“第二个输入结构指向第一个输入结构”;调换前两个文件会翻转符号。

固定原子的受力会按结构中的 Selective dynamics 标记屏蔽。本例底部 8 个 Al 固定,因此不能把它们的反作用力直接加进投影。请保留 T/F 标记,并让两份结构使用一致的约束。

输出是一个有符号的力投影,单位 eV/Å。它不是能量差、势垒、最大原子力、NEB 收敛误差,也不是对某个原子的单独 x 方向受力。

3. 对照 CSV 和原始数据#

cat analysis-read/force.json
grep -n 'TOTAL-FORCE' inputs/01/OUTCAR | tail

资料包保留实际中间 OUTCAR,读取脚本独立解析最后的原子受力、屏蔽固定原子并计算同一笛卡尔投影;force.json 同时记录工具值和独立计算值。

使用自己的数据时,不要只复制终端最后一个浮点数:先核对最后一步、原子数、周期最小像和约束。需要完整离散能量与路径曲线时,继续使用NEB 结果提取工具。

4. 重读自己生成的结果#

bash run.sh
bash read.sh work-new analysis-new
cat analysis-new/force.json

该流程只操作数据副本,不重新启动路径优化。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗