VTST:局部位移自由度与模式比较
按中心原子半径生成DISPLACECAR,比较不同选择,并分清模式幅度与归一化重叠。
阅读本篇目录
下载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官方文档。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。