VTST给定模式的结构动画
由POSCAR和归一化MODECAR生成八帧XYZ,解释模式幅度与几何变化。
阅读本篇目录
已有位移方向时,可用dimmode.pl生成沿该方向往复变化的结构。模式的频率或曲率应从对应计算获得,本篇只演示给定方向的几何动画。
下载输入、实际输出、CSV和脚本,先查看已完成的结果:
python3 -m zipfile -e vtst-geometry-cube-modes-wave968-*.zip .
cd vtst-geometry-cube-modes
bash read.sh
bash plot.sh
这两步只读取和绘图,不重新执行工具。版本为VTST scripts1040;Perl模块由vtstscripts/1040提供,数据读取使用ASE3.29.0与NumPy。结构是可公开重建的Si₂斜晶胞教学例,没有新增DFT能量计算。
需要自己重新执行整套小例子时,使用新的解压目录:
module load vtstscripts/1040
python3 setup_cube.py
python3 prepare.py
bash run.sh
bash read.sh work-new
bash plot.sh
setup_cube.py在个人目录生成匹配版本的三次Cube取样脚本,不改变公共安装。已有work-new时保留结果、换新目录。本例为小规模文件处理,大网格处理应按集群规则申请CPU资源。
1 准备模式#
cat inputs/mode/POSCAR
cat inputs/mode/MODECAR
-0.466494398737268 -0.385716147873672 -0.365521585157773
0.466494398737268 0.385716147873672 0.365521585157773
每个原子一行、三个分量,整个模式范数为1。本例两原子相向伸缩,用于演示文件,不据此判断它是实际负曲率方向。
2 生成八帧#
该版本文件使用CRLF行尾,明确通过Perl运行:
perl "$VTSTSCRIPTS_ROOT/dimmode.pl" POSCAR MODECAR 8 0.2
8是帧数,0.2是整个归一化模式的最大位移幅度,单位Å。结果为dimmode.xyz:
head -n 12 work-new/mode/dimmode.xyz
第n帧按以下方式生成:
r(n) = r(0) + 0.2 × sin(2πn/8) × mode
各原子实际位移取决于自己的模式分量。本例每个原子最大位移约0.1414 Å,并非都移动0.2 Å。
3 查看实际帧#

横轴是帧序号,不是时间。这些帧用于展示,不是分子动力学轨迹,也没有对应温度或振动周期。
head -n 15 analysis-read/VTST-native-tool-geometry.csv
可用ASE、OVITO或支持多帧XYZ的结构软件查看dimmode.xyz。原周期晶胞需要单独保存。
4 换成自己的模式#
保持原子顺序一致,确认MODECAR行数等于原子数,先归一化整个向量,再选择合适展示幅度。周期边界附近应检查是否跨边界跳动。
模式来自实际二聚体或振动计算时,沿用同样处理步骤,其科学含义以那次计算的输出为准。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。