VTST专题

VTST:局部位移自由度与模式比较

按中心原子半径生成DISPLACECAR,比较不同选择,并分清模式幅度与归一化重叠。

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

下载VTST几何与模式完整示例,保存为example.zip:

python3 -m zipfile -e example.zip .
cd vtst-geometry-mode-examples
bash results.sh
bash plot.sh

这几步读取参考数据并画图。自己执行这些短工具时,运行bash run.sh;结果在work/,已有目录会保留。bash read.sh work核对新结果。这里不启动VASP,也不进行结构优化或MD;结构来自前面的真实NH₃翻转实例,脚本为已安装的VTST scripts1040,使用系统Perl及配套模块,不需要MPI/CUDA编译。

1. 按空间半径选择位移自由度#

使用近邻教程同一份四原子NH₃输入,中心为第4个N:

module load vtstscripts/1040
mkdir displacement-demo
cp inputs/POSCAR displacement-demo/
cd displacement-demo
dymselsph.pl POSCAR 4 1.2 0.01
cp DISPLACECAR DISP-all
dymselsph.pl POSCAR 4 0.2 0.01
cp DISPLACECAR DISP-N

参数依次是输入文件、中心原子编号、选取半径Å、位移量Å。半径1.2 Å包含N和三个H,共12个笛卡尔自由度;0.2 Å只包含N,共3个自由度。输出行前3列是三个方向的位移选择,后面的原子编号、距离是辅助信息。

# 半径0.2 Å时,前三列的选择
0    0    0
0    0    0
0    0    0
0.01 0.01 0.01

局部自由度与模式方向比较

它只准备局部有限位移输入,尚未计算Hessian、频率或速率。只动局部原子意味着固定其余自由度;所得频率不能直接称作整个体系的全部振动。

2. 找出两个选择中不同的部分#

dymcmpdisp.pl DISP-all DISP-N > DISP-difference
cat DISP-difference

本例三个H保留0.01 Å,N变为0,表示两种选择共同的N自由度被排除。这个工具比较的是位移选择,不是在求两个Hessian之差,也不是对坐标做相减。

3. MODECAR的长度和方向分开看#

回到下载包根目录后,准备独立副本:

mkdir mode-demo
cp inputs/MODECAR mode-demo/
cd mode-demo
modemag.pl MODECAR
modedot.pl MODECAR MODECAR

本例MODECAR整体模约1。modedot.pl会先分别归一化两个向量再求点积,因此同方向的向量,即使第二个放大2倍,输出仍为+1。

awk '{printf "%.12f %.12f %.12f\n",2*$1,2*$2,2*$3}' MODECAR > MODECAR.twice
modemag.pl MODECAR.twice
modedot.pl MODECAR MODECAR.twice

前一个约2,后一个为1。模式重叠是方向关系,不是位移幅度;反向模式为−1,正交方向为0。不要用零向量做归一化比较。

本例文件来自NH₃翻转方向;换体系前必须保持原子顺序和3N分量对应。真正的dimer与频率计算见VTST完整流程及振动与前因子。

脚本说明:VTST官方文档。

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

查看配图

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

100%查看原图 ↗