VASP约束动力学:准备结构与提交多窗口
用五个H—H距离、两套随机种子演示ICONST、完整VASP输入和一窗一GPU的提交方法。
阅读本篇目录
本系列用鸢算科技集群实际完成的H₂短轨迹,演示固定键长的约束分子动力学、Blue Moon平均力积分与保留完整状态续算。五个距离,每个距离两条不同随机种子的轨迹;各200步、步长0.5 fs,另有五个独立静态力参照和一条100步续算。
下载输入、原始输出与绘图脚本,保存为example.zip:
python3 -m zipfile -e example.zip .
cd vasp-blue-moon-radial-example
bash results.sh
bash read.sh
bash plot.sh
这三条bash命令读取已经完成的实际结果,不提交新计算。生成的图片在figures/,结果表在analysis-read/。集群环境为VASP 6.6.1标准GPU版,NVHPC 25.3、CUDA 12.8、HPC-X 2.22.1、MKL 2023.2;PBE PAW64 H,ENCUT=520 eV、EDIFF=1E−6,Γ点。P100和V100 16G各承担一套随机种子的窗口,一张卡一个任务。
这是经典原子核的教学模型,使用300 K固定体积、Nosé–Hoover恒温器;100 fs窗口用于展示操作,不能据此宣称任意体系的自由能已经收敛。分子零点能、量子核运动和解离反应势垒不在本例内。
1. 固定的是什么,扫描的是什么#
普通AIMD让原子随受力运动;约束动力学则保持某个集体坐标不变。本例的集体坐标是两颗H的距离,依次固定为0.70、0.75、0.80、0.85、0.90 Å,其他允许的运动仍随时间演化。每个距离是一个独立窗口,不是每一步都把键长再增大。

2. 看懂四个输入文件#
以0.80 Å、第一随机种子为例:
cat inputs/NH-r0.80-s1/INCAR
cat inputs/NH-r0.80-s1/POSCAR
cat inputs/NH-r0.80-s1/KPOINTS
cat inputs/NH-r0.80-s1/ICONST
INCAR:
SYSTEM=H2 constrained BlueMoon
ENCUT=520
EDIFF=1e-6
PREC=Accurate
ALGO=Normal
NELM=100
LREAL=.FALSE.
LASPH=.TRUE.
ISYM=0
ISPIN=1
NBANDS=16
ISMEAR=0
SIGMA=.01
IBRION=0
NSW=200
POTIM=.5
ISIF=2
MDALGO=2
SMASS=0
TEBEG=300
TEEND=300
RANDOM_SEED=789101 0 0
LBLUEOUT=.TRUE.
SHAKETOL=1e-8
SHAKEMAXITER=1000
LWAVE=.FALSE.
LCHARG=.FALSE.
LH5=.FALSE.
IBRION=0开启MD;POTIM=0.5单位为fs;NSW=200对应100 fs。MDALGO=2、SMASS=0选择此例的Nosé–Hoover设置;ISIF=2固定晶胞。LBLUEOUT要求程序写出Blue Moon相关列,SHAKETOL控制约束迭代。这里没有做结构优化,因此不要把力0.02 eV/Å当成每个MD帧的停止条件。
POSCAR:
H2 constrained radial coordinate
1
10 0 0
0 10 0
0 0 10
H
2
Cartesian
5 5 4.600000000000
5 5 5.400000000000
KPOINTS:
H2 Gamma
0
Gamma
1 1 1
0 0 0
ICONST:
R 1 2 0
R 1 2 0表示以POSCAR的原子编号1、2定义距离,并约束这个距离;目标值由各窗口的初始结构决定。改变反应坐标、原子编号或周期跨界方式时,应重新检查定义,不能仅改窗口名字。
3. 提交你自己的窗口#
先准备本人有权使用、且与本例相匹配的PAW64 PBE H势文件,在实例包根目录命名为POTCAR_H。附件不提供POTCAR。
ls POTCAR_H
python3 prepare.py
sbatch windows-p100.slurm
squeue -u "$USER"
也可在另一个全新解压目录选择V100 16G:
sbatch windows-v100.slurm
两个提交入口选一个即可。每个作业数组运行10个窗口,最多同时3个,一窗一张GPU;第一种子同时完成该距离的静态受力参照。脚本保留已有工作目录,防止重复覆盖。阵列编号与目录对应关系:
cat CASES.json
cat windows-p100.slurm
不能在窗口尚未完成时就读取全部结果;完成后继续第二篇的平均力与自由能分析。
4. 检查轨迹实际在做什么#
grep 'b_m>' work/NH-r0.80-s1/REPORT | head
grep 'tmprt>' work/NH-r0.80-s1/REPORT | head
grep 'General timing' work/NH-r0.80-s1/OUTCAR

每窗先舍弃50步,也就是25 fs,再对后150步取平均。图中的瞬时温度有明显涨落;二原子体系并不适合把温度的一帧数值当作宏观热平衡证据。将这个流程用于表面反应、溶液或扩散体系时,要检查热化长度、约束坐标和窗口重叠,再增加采样。
参数定义见VASP约束分子动力学及LBLUEOUT。