VTST路径预处理:IDPP插值、加密、插入与约束
用实际NH₃氮反转几何路径演示3个中间像、5到9加密、5到6插入及固定原子。
阅读本篇目录
NEB计算前,需要准备相同元素顺序、相同晶胞的两端结构和中间像。本篇用NH₃的N穿过H平面的几何示例,演示VTST的IDPP初始路径及后续编辑。这里生成的是初始几何路径,没有计算VASP能量、鞍点或势垒。
1. 先看实际路径#
下载完整输入、原生结果和绘图包,保存为example.zip:
python3 -m zipfile -e example.zip .
cd vtst-python-geometry-paths
bash results.sh
bash read.sh
bash plot.sh
这些命令直接读取随包实算结果;reference-results/存原生输出,data/存CSV,figures/存图片。read.sh和plot.sh默认使用集群ASE环境的Python,无需重新计算。自己的Python须安装NumPy、ASE和Matplotlib,可用YS_ANALYSIS_PYTHON指定解释器。

两端取随包NH₃与把N相对H平面镜像后的几何结构;后者是演示构造,不是新做DFT优化的稳态。3个H在前、N在最后,端点原子一一对应。
2. 生成3个中间像#
py=/public/toolkit/miniconda3/envs/ase-3.29.0/bin/python
"$py" prepare.py
root="$PWD"
mkdir -p manual/path
cp inputs/POSCAR manual/path/initial.vasp
cp inputs/inverted-N.vasp manual/path/final.vasp
cd manual/path
"$py" "$root/compat-run.py" "$root/.private-scripts/nebmake.py" initial.vasp final.vasp 3
ls 0*/POSCAR
cd "$root"
数字3是中间像数量,所以生成00到04共5个目录。00、04是固定两端。该1040 Python脚本先线性插值,再进行IDPP几何优化。本例IDPP相对直线插值的最大笛卡尔调整为0.0356755 Å,端点保持不变。
IDPP通过原子对距离构造辅助目标,不需要DFT能量。它改善初猜,不能代替端点优化、NEB力收敛或过渡态频率检查。
3. 5个像加密为9个#
cp -r manual/path manual/path-double
cd manual/path-double
"$py" "$root/compat-run.py" "$root/.private-scripts/nebdouble.py"
ls 0*/POSCAR
cd "$root"
旧像保留在偶数目录,新像插在相邻旧像的中点,得到00到08共9个像。目录数量包括两端,因此对应7个中间像。
4. 只插入一个像#
cp -r manual/path manual/path-insert
cd manual/path-insert
"$py" "$root/compat-run.py" "$root/.private-scripts/nebinsert.py" 02
ls 0*/POSCAR
cd "$root"
02表示在原01和02之间插入中点,后续编号顺延,5像变6像。它不是向原02后追加。路径局部加密后间距不再均匀,不能仅用目录编号当作相同物理反应坐标。

5. 把模板约束应用到路径#
cp -r manual/path manual/path-fixed
cp inputs/template.vasp manual/path-fixed/template.vasp
cd manual/path-fixed
"$py" "$root/compat-run.py" "$root/.private-scripts/nebconstrain.py" template.vasp 00 04
head -n 14 02/POSCAR
cd "$root"
模板固定索引0的H,其余原子自由。本例5个像坐标不变,都继承该固定原子设置;没有固定N。生产NEB中要根据表面底层、支撑原子等实际需求制作模板,保持约束与所用优化器一致。
6. 后续接VASP#
准备两端优化和NEB公共INCAR/KPOINTS/POTCAR,根据所用NEB优化器设置IMAGES等参数,再通过Slurm提交;不要把本篇IDPP目标当作电子能量画势垒。
head data/VTST-IDPP-and-path-editing.csv
随包数据是N相对H平面的高度、最小原子间距和几何位移,单位Å;没有伪造NEB能量列。