VTST专题

VTST Lanczos搜索:NH₃反转过渡态

完整INCAR、POSCAR、MODECAR与Slurm操作,从近鞍点NH₃结构找到平面反转结构。

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

本篇从接近反转鞍点的NH₃结构出发,用VTST的Lanczos最小模跟随寻找过渡态。它优化原子位置,不优化晶胞。12 Å真空盒固定;本例起点已接近鞍点,不能理解为任意稳定结构都能自动找到所需反应路径。

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/,与参考数据分开。

NH₃稳定最低点、实际起点与最终平面结构 蓝色是H,橙色是N。inputs/minimum.vasp是已有稳定构型参考,真正搜索从inputs/POSCAR开始。元素顺序为H、N,数量3、1。MODECAR给出反转方向,按所有原子笛卡尔分量的整体范数归一化,不是每个原子分别归一化。

2. 输入文件怎么准备#

本例完整INCAR:

SYSTEM = nh3-vtst-lanczos
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
EDIFFG = -0.02
NSW = 100
ISIF = 2
ISMEAR = 0
SIGMA = 0.05
LREAL = .FALSE.
LASPH = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
NELM = 150
ALGO = Normal
ISYM = 0
IBRION = 3
POTIM = 0
ICHAIN = 3
IOPT = 7
Sdr = 0.001
SLTOL = 0.01
SNL = 10
MAXMOVE = 0.02
TIMESTEP = 0.02

POSCAR:

H  N                                    
    1.000000000000000     
    12.0000000000000000    0.0000000000000000    0.0000000000000000
     0.0000000000000000   12.0000000000000000    0.0000000000000000
     0.0000000000000000    0.0000000000000000   12.0000000000000000
   H    N 
     3     1
Direct
0.4999999993207838 0.5640506507416372 0.4998603134632862
0.572432858505433 0.4386033291705689 0.4998605160344502
0.4275671293526156 0.4386033229234896 0.4998605167989078
0.5000000128211661 0.4804317804976301 0.4970853203700251

KPOINTS:

Gamma
0
Gamma
1 1 1
0 0 0

MODECAR:

0 0 0.288675134594813
0 0 0.288675134594813
0 0 0.288675134594813
0 0 -0.866025403784439

EDIFF=1E-6为电子收敛标准;EDIFFG=-0.02对应力阈值。ISIF=2固定晶胞优化原子。IBRION=3、POTIM=0把离子更新交给VTST;ICHAIN=3选择Lanczos最小模跟随,IOPT=7使用FIRE。Sdr=0.001 Å用于内部曲率/力差分,不是核位置整体优化步长。MAXMOVE限制位移,TIMESTEP是该优化器参数,不能当成分子动力学的物理时间。

3. 提交计算#

集群使用VASP 6.6.1的P100 VTST专用构建,集成VTST revision 214;分析使用ASE 3.29.0。普通VASP模块不能直接替代VTST模块。资料包不分发POTCAR;脚本按H、N顺序从集群授权赝势目录准备。

bash submit.sh
squeue -u "$USER"

submit.sh先建立work-new/,然后向P100分区申请一张卡。不要重复运行覆盖已有目录。任务内部的步骤为:先搜索,确认OUTCAR出现收敛标记,再切换普通Gamma版VASP计算最终结构及沿模式正负位移的单点能。

#!/bin/bash
#SBATCH --job-name=NH3-Lanczos
#SBATCH --partition=gpu-8p100-hs
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --gres=gpu:p100-16g:1
#SBATCH --mem=8G
#SBATCH --time=00:30:00
#SBATCH --output=slurm-%j.log
set -eo pipefail
source /etc/profile
module purge
module load vasp/6.6.1-p100-vtst
export OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1
ulimit -s unlimited
work="$PWD"
cd lanczos
mpirun --bind-to none -np 1 vasp_std > stdout.log 2>&1
echo 0 > native.exit
grep -q 'reached required accuracy' OUTCAR
cd "$work"
python3 ../prepare_checks.py
module purge
module load vasp/6.6.1-p100
for folder in lanczos/independent-final final-mode-curvature/plus final-mode-curvature/minus; do
  cd "$work/$folder"
  mpirun --bind-to none -np 1 vasp_gam > stdout.log 2>&1
  echo 0 > native.exit
done

4. 结束后看什么#

grep 'reached required accuracy' work-new/lanczos/OUTCAR
tail -15 work-new/lanczos/OSZICAR
bash read.sh work-new analysis-new
bash plot.sh analysis-new figures-new work-new

本例实际使用62次DFT力计算,形成21个中心点和20次完成的Lanczos模式求解。普通VASP对最终结构独立计算,最大原子力为 0.018155 eV/Å,N相对三H平面的高度约 0.0000912 Å;最终能量−19.34456998 eV。

模式不是完整振动谱。下一篇说明如何通过保存的模式和正负位移能量判断鞍点方向。对自己的体系仍需确定起始反应方向、约束及目标鞍点,必要时结合NEB或振动分析。

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

查看配图

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

100%查看原图 ↗