py4vasp专题

py4vasp MD速度与温度

读取Si16真实四步续算速度,说明切片、单位及与原生动能和温度对应的时间层。

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

读取Si16真实四步续算速度,说明切片、单位及与原生动能和温度对应的时间层。下面按准备、读取、核对与画图的顺序操作。

1. 下载数据,先提取再画图#

下载响应与激子终端实操包,解压后先看现成数据:

unzip py4vasp-response-practical-wave290-*.zip
cd py4vasp-response-practical-wave290
bash preview.sh

再完整运行读取、原生工具与绘图:

bash run.sh
ls results/data
ls plots/figures

run.sh依次执行prepare.sh、extract.sh、tools.sh、plot.sh。结果写入results/data/,原生数据报告和视图矢量在tools-output/,七张PNG在plots/figures/;输出目录受保护,重复运行请换一个新解压目录。随包的figures/可直接查看。

后处理用py4vasp/0.11.3的Python3.11环境,静态图用pymatgen/2026.9.24环境的NumPy2.3.5、Matplotlib3.11.2,只需已分配资源内1个CPU,不重新运行VASP。carriers/保存实际计算导出的自有数值与字段配方;运行时在work/重建最小HDF读取载体,不是原始完整VASP输出。这里全部选定数组保留完整分辨率,无插值、无抽样,不包含PAW、波函数或程序。

inputs/保留本例完整INCAR、POSCAR、KPOINTS。真实GPU计算使用VASP6.6.1/HDF5、NVHPC25.3、CUDA12.8、P100或V10016G;BSE使用VASP6.6.1 CPU/HDF5、Intel oneAPI2024.2、MPI、HDF51.14.6。提取工具不替代VASP求解。

2. 从已保存速度的结构续算#

本例接在真实Si16、300 K的80步AIMD轨迹之后,只新运行4步,每步0.5 fs。原子、晶胞及速度从先前CONTCAR传入;450 eV、Gamma2³、NBANDS=48、EDIFF=1E−6,Nosé–Hoover使用MDALGO=2、SMASS=0。

IBRION = 0
NSW = 4
POTIM = 0.5
MDALGO = 2
SMASS = 0
VELOCITY = .TRUE.

VELOCITY=.TRUE.使实际离子速度写入HDF。续算应保留CONTCAR的速度和热浴相关段,不能只取最上面的原子坐标后重新随机初始化。

mkdir Si-MD-next
cp inputs/Si16-MD-velocity/{INCAR,POSCAR,KPOINTS} Si-MD-next/
# 本例POSCAR已包含实际前一段轨迹的续算信息
# 自己的任务可将自己的上一段CONTCAR复制为POSCAR

3. 最后一步、所有步与切片#

module load py4vasp/0.11.3
python - <<'PYCODE'
import numpy as np
import py4vasp
c = py4vasp.Calculation.from_path('work/Si16-MD-velocity')
print('最后一步:', c.velocity.to_numpy().shape)
v = c.velocity[:].to_numpy()
print('全部4步:', v.shape)
print('第1步:', c.velocity[0].to_numpy().shape)
print('中间两步:', c.velocity[1:3].to_numpy().shape)
np.save('velocities-A-fs.npy', v)
PYCODE

速度单位是 Å/fs。c.velocity默认读最后一步,c.velocity[:]读所有帧;本例对应(16,3)与(4,16,3)。转换m/s时乘10⁵。

4. 与VASP温度比较时,先对齐时间层#

这份MDALGO=2轨迹在HDF与CONTCAR中保存的是步进后的半时刻速度。原生温度和动能使用相邻半时刻速度平均得到的中心时刻速度:

module load py4vasp/0.11.3
python - <<'PYCODE'
import numpy as np
p = np.load('results/data/Si16-velocities.npz')
v = p['velocities_A_fs']
v0 = p['initial_POSCAR_velocity_A_fs']
previous = np.concatenate([v0[None], v[:-1]])
centered = 0.5*(previous+v)
# 保留该VASP版本原生常数,以便逐项核对其打印结果
amu_kg, eV_J, kB = 1.6605402e-27, 1.60217733e-19, 8.6173857e-5
kinetic = 0.5*28.085*(centered**2).sum(axis=(1,2))*amu_kg*1e10/eV_J
temperature = 2*kinetic/(45*kB)
print('动能/eV:', kinetic)
print('温度/K:', temperature)
PYCODE

16原子去除质心平移后有3N−3=45个自由度。本例中心时刻温度依次为 316.9314、315.2088、312.4636、308.7874 K,动能约0.6145020、0.6111620、0.6058393、0.5987114 eV,与原生输出对应。最后CONTCAR速度和最后HDF帧也一致。若换其他MD算法、约束或热浴,应重新确认时间层和自由度,不能普遍假定相同处理。

实际四步速度的时间层与动能温度对照

直接对保存的半时刻速度求动能,会得到图中的另一条曲线;这是时间层不同,不能立刻判断能量公式错了。

head -5 results/data/Si16-velocity-temperature.csv
ls tools-output/native-velocity-arrow-vectors.npy

tools.sh还实际调用velocity.to_view(),该版本用200倍速度长度绘制箭头;这是可视化缩放,不是原子真实位移。四步轨迹只演示续算与读取,不用于扩散、平衡或时间相关函数的收敛结论。

将自己的输入提交到Slurm#

前文解压重画不需要提交VASP。若要新计算,在自己的计算目录提供匹配PAW,将下面内容保存为submit.sh:

#!/bin/bash
#SBATCH --partition=gpu-8p100-hs
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --gres=gpu:p100-16g:1
#SBATCH --time=00:30:00
set -eo pipefail
source /etc/profile
module purge
module load vasp/6.6.1-p100-hdf5
ulimit -s unlimited
export OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1
mpirun --bind-to none -np 1 vasp_std > vasp.log
sbatch submit.sh
squeue -u "$USER"

完成后先确认OUTCAR有正常结束信息、电子步满足EDIFF,再从自己的目录调用本篇接口。两个位移目录需分别提交;输出的vaspout.h5保存对应本例真实数组后才可读取。

完整计算输入#

PAW和前置文件按正文自行提供;下列输入也在下载包中,不会由后处理脚本自动提交。

Si16-MD-velocity#

INCAR(完整)
SYSTEM=Si16-MD-velocity
ENCUT=450
PREC=Accurate
EDIFF=1E-6
IBRION=0
NSW=4
POTIM=0.5
MDALGO=2
SMASS=0
TEBEG=300
TEEND=300
ISIF=2
ISYM=0
NBANDS=48
KPAR=1
ISPIN=1
ISMEAR=0
SIGMA=0.05
ALGO=Normal
NELM=160
LREAL=.FALSE.
LASPH=.TRUE.
LWAVE=.TRUE.
LCHARG=.TRUE.
VELOCITY=.TRUE.
POSCAR(完整)
Si                                      
    1.000000000000000     
     0.0000000000000000    5.4299999999999997    5.4299999999999997
     5.4299999999999997    0.0000000000000000    5.4299999999999997
     5.4299999999999997    5.4299999999999997    0.0000000000000000
  Si            
    16
Direct
     0.0113661885331957   -0.0031349292722918    0.0050132341861828
     0.1264654341120804    0.1357203529487100    0.1261680732775972
     0.0033580189383363    0.0024909171429076    0.5008590338469046
     0.1437575245248596    0.0981754650834316    0.6371641691218567
     0.0054663848795665    0.5081377626207593    0.0064577344289510
     0.1277827993543630    0.6225245977788940    0.1502867281604470
    -0.0099846568032713    0.4713252780584856    0.5228894868397068
     0.1030404380092879    0.6233240779039672    0.6328043726130245
     0.4969824019379306   -0.0142494268289858   -0.0128637381330601
     0.6285359926548079    0.1248689960555792    0.0967850323301152
     0.5160003693478975    0.0133167086877408    0.4807547113075363
     0.6254974210111015    0.1424723077253332    0.6169890474378646
     0.5029979416880442    0.5018022547872227   -0.0017928986262028
     0.6311658526421889    0.6171522334969857    0.1280624489089939
     0.4778453155902298    0.5151055555358228    0.4968884482211502
     0.6097225735793806    0.6409678482754372    0.6135341160789312
 
  0.85940112E-03 -0.16674255E-02 -0.50943033E-02
  0.27688664E-02  0.16818900E-02  0.30434753E-02
 -0.23435065E-02  0.11620025E-02 -0.32033239E-02
  0.21105510E-02  0.49053458E-03 -0.11078122E-02
  0.36426852E-03  0.34388501E-02  0.41985150E-02
  0.85400986E-03  0.26151170E-02  0.62003468E-04
 -0.23170528E-03 -0.78315963E-03 -0.53071443E-02
  0.59551182E-02 -0.41498298E-02 -0.24097115E-02
  0.21313909E-02  0.31358397E-03 -0.85984509E-03
 -0.18301365E-02  0.18126118E-02  0.43480553E-03
 -0.64464341E-02 -0.89096703E-03  0.84386865E-02
 -0.14634990E-02 -0.38394441E-02  0.42733307E-02
 -0.41715221E-02 -0.42822243E-02  0.69318996E-03
 -0.60063471E-04  0.70093223E-03 -0.21100083E-02
 -0.16112638E-02  0.12751709E-03  0.56917343E-04
  0.31145248E-02  0.32700111E-02 -0.11087751E-02
 
            1
   0.5000000000000000     
 -0.38031413E+00  0.64342802E-02  0.57123470E-02 -0.38638744E+00
  0.11015308E-01  0.99674686E+00  0.52105767E-02
  0.12655551E+00  0.13591052E+00  0.12623287E+00
  0.33719317E-02  0.21820390E-02  0.50095212E+00
  0.14363193E+00  0.98199047E-01  0.63733493E+00
  0.58012420E-02  0.50818951E+00  0.64395302E-02
  0.12786674E+00  0.62244637E+00  0.15044359E+00
  0.98974561E+00  0.47110632E+00  0.52308711E+00
  0.10246426E+00  0.62367837E+00  0.63299843E+00
  0.49685912E+00  0.98579468E+00  0.98728842E+00
  0.62872373E+00  0.12472130E+00  0.96764207E-01
  0.51664467E+00  0.13449454E-01  0.48002837E+00
  0.62558478E+00  0.14277844E+00  0.61654815E+00
  0.50302476E+00  0.50183927E+00  0.99778597E+00
  0.63110374E+00  0.61702005E+00  0.12818910E+00
  0.47792799E+00  0.51502812E+00  0.49681752E+00
  0.60967868E+00  0.64090964E+00  0.61387911E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
  0.00000000E+00  0.00000000E+00  0.00000000E+00
KPOINTS(完整)
Si16 electronic mesh
0
Gamma
2 2 2
0 0 0

继续阅读#

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

查看配图

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

100%查看原图 ↗