VTST专题

VTST相邻帧速度与单位

从真实200帧H2轨迹提取199组前向差分速度,解释采样间隔、周期边界、动能和约束自由度。

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

xdat2vdat.pl用相邻保存坐标的差计算速度。这适合学习轨迹文件与单位,但它不等于积分器保存的瞬时速度;做动力学谱时需要分清两者。

1. 下载并读取已有结果#

下载完整输入、原生输出、CSV与绘图脚本,保存为example.zip:

python3 -m zipfile -e example.zip .
cd vtst-real-trajectory-tools
module load ase/3.29.0
bash read.sh
bash plot.sh

这一步读取本包保存的数据,在analysis-read/生成结果表、在figures/生成图片。新运行后处理时使用bash run.sh,输出写入新建的work-new/;它不运行VASP,也不提交新作业。

2. 单独运行原生速度工具#

在本包根目录:

module load vtstscripts/1040
mkdir velocity-copy
cp inputs/XDATCAR inputs/OUTCAR velocity-copy/
cd velocity-copy
xdat2vdat.pl
head -n 20 VDATCAR

脚本从XDATCAR读晶胞和分数坐标,从OUTCAR读取POTIM与POMASS。本例为固定10 Å立方盒、POTIM=0.5 fs、每个H的实际质量参数1.000 amu。不能看到元素H就把文件中的质量自行换成另一数值。

核心计算是:

相邻分数坐标差 -> 周期最小位移 -> 晶胞转换为Å -> 除以帧间隔fs

因此输出速度单位是Å/fs。200帧产生199个相邻帧区间,每个区间有两个原子的三个速度分量。

3. 看实际速度和动能#

相邻保存帧推得的速度与动能

图中时间相对第一条保存记录定义,速度画在两个记录之间的中点;不是在图上重新拼接另一段MD。速度与独立坐标差分逐分量一致,最大差约5×10⁻¹⁶ Å/fs。

cd ..
head analysis-read/VTST-H2-forward-difference-velocity.csv

kinetic_eV按同一差分速度和文件质量计算;它不是从恒温器日志直接复制的瞬时动能。

4. VDATCAR里的温度为什么要另看#

原生脚本使用3N−3个自由度换算TEMP EFF。对两个原子是3,但本例还固定了一条H–H键,在扣除整体平移后仅有2个相对运动自由度。

因此,文件中的TEMP EFF不能直接当作本例约束体系的真实恒温器温度。CSV同时给出按2自由度换算同一差分动能的数值,用于说明这个区别;实际MD温度仍应结合REPORT、OSZICAR和使用的约束定义阅读。

5. 换成自己的轨迹前检查三件事#

  • 脚本直接用OUTCAR中的POTIM作间隔。本例每步保存;若隔多步才保存一次,实际帧间隔更大,不能照搬该结果,应在自己的分析中使用正确采样间隔。
  • 本例固定晶胞,且相邻帧没有超过半个盒长的位移。变胞轨迹或采样过稀时,简单的分数坐标最小位移可能不足以还原运动。
  • 速度相关函数、扩散和频谱需要合适的采样长度、系综与统计。本篇短H₂轨迹不用于拟合材料扩散系数。

需要了解原生MD保存的速度可继续看py4vasp动力学速度,结构抽帧见XDATCAR与XYZ。

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

查看配图

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

100%查看原图 ↗