GPUMD 联用 PLUMED:MetaD 与 WTMetaD
写出完整 MetaD 输入,查看 HILLS,使用原生 sum_hills 生成偏置与自由能估计,并理解短采样的边界。
阅读本篇目录
本篇接距离与谐偏置。仍使用 Si64 的第 1、5 个 Si 原子距离,分别实际运行普通 MetaD 和 WTMetaD。它们适合演示从输入到 HILLS、再到自由能估计的操作,不用于宣称 Si 键解离势垒或长时间扩散性质。
下载完整输入、真实结果与绘图程序。先在新目录解压并运行 bash view.sh,或按前篇提交资料包中的 GPU 作业。
1 普通 MetaD:按固定间隔加入偏置#
工作目录内放好 model.xyz、nep.txt、run.in 和 plumed.dat。普通 MetaD 的完整 plumed.dat 为:
UNITS LENGTH=A TIME=fs ENERGY=eV
d: DISTANCE ATOMS=1,5
m: METAD ARG=d SIGMA=0.02 HEIGHT=0.0005 PACE=50 TEMP=300 FILE=HILLS
PRINT ARG=d,m.bias FILE=COLVAR STRIDE=10 FMT=%24.16e
SIGMA=0.02 是沿距离 CV 的宽度,单位 Å;HEIGHT=0.0005 是每次加入的高斯高度,单位 eV。PACE=50 表示每 50 个 MD 步沉积一次,配合本例 0.25 fs 步长,相隔 12.5 fs。
普通 MetaD 会在已经访问过的 CV 附近逐步堆积偏置,帮助体系离开已访问区域。选 CV 时要让它能描述关注的慢过程;仅仅记录一个距离,不保证已经描述了所有相关慢自由度。
2 WTMetaD:偏置越积越高时,逐渐降低新高斯高度#
本例 WTMetaD 的完整输入只多一个 BIASFACTOR:
UNITS LENGTH=A TIME=fs ENERGY=eV
d: DISTANCE ATOMS=1,5
m: METAD ARG=d SIGMA=0.02 HEIGHT=0.0005 PACE=50 TEMP=300 FILE=HILLS BIASFACTOR=10
PRINT ARG=d,m.bias FILE=COLVAR STRIDE=10 FMT=%24.16e
BIASFACTOR=10 对应 γ=10。WTMetaD 会随已有偏置降低后续沉积高度,使偏置增长逐渐减慢。它改变偏置更新方式,不会自动证明 2 ps 已足够收敛。
两种方法均使用下面的 run.in:
potential nep.txt
velocity 300 seed 13579
ensemble nvt_bdp 300 300 100
time_step 0.25
plumed plumed.dat 1 0
dump_thermo 10
dump_xyz 10 trajectory.xyz velocity force precision double
run 8000
如果只想单独跑一种方法,按前篇建立干净工作目录,复制对应四个输入,再提交 job.slurm。不要把已有 HILLS、COLVAR 或轨迹一并复制成新任务输出。
3 先检查沉积次数和时间#
任务结束后进入对应目录,例如资料包的参考结果:
cd reference-results/p100/wtmetad
head HILLS
tail HILLS
awk '!/^#/ {n++} END {print n}' HILLS
head COLVAR
本例有 160 次真实沉积,时间从 12.5 fs 到 2000 fs。HILLS 表头为:
#! FIELDS time d sigma_d height biasf
#! SET multivariate false
#! SET kerneltype stretched-gaussian
其中 d 是沉积中心,sigma_d 是宽度。普通 MetaD 的 height 一直为 0.0005 eV;WTMetaD 的 HILLS 高度采用了用于自由能重建的缩放约定,不应直接把 HILLS 的高度列当成输入 HEIGHT。
本例 WTMetaD 第一条存储高度为 0.000555556 eV,即 0.0005×10/9。P100 最小存储高度约 0.000513673 eV,V100 16G 约 0.000512455 eV;这些是实际文件值,保留当前短采样和偏置增长的范围。
4 用原生 sum_hills 输出自由能估计#
在 HILLS 所在目录执行:
source /etc/profile
module load gpumd/5.9.1-p100
PLUMED="$GPUMD_PLUMED_ROOT/bin/plumed"
"$PLUMED" sum_hills --hills HILLS --outfile fes.dat \
--min 2.20 --max 2.55 --bin 175 --mintozero
head fes.dat
这里的上下限和网格用于本例距离坐标;换 CV 或采样范围后要重新选择。--mintozero 只选定自由能零点,不改变曲线的物理可信度。
普通 MetaD 和 WTMetaD 都使用这个默认入口。WTMetaD 中,还可以单独输出负偏置作对照:
"$PLUMED" sum_hills --hills HILLS --outfile negative-bias.dat \
--min 2.20 --max 2.55 --bin 175 --mintozero --negbias
对于本例 γ=10,采用相同零点约定后,默认自由能估计与负偏置满足 F = (10/9) × (-V)。程序的默认 WTMetaD 重建已经考虑这一关系,不需要再次手工乘 10/9。
当前 PLUMED 2.10.1 的普通 MetaD 文件采用 biasf=-1,不要把上面的 --negbias 命令直接套给普通 MetaD。 本教程普通 MetaD 使用默认 sum_hills;--negbias 对照限于 WTMetaD。
5 画图时看的是实际采样和偏置估计#
回到资料包根目录:
bash view.sh
ls analysis/figures
head analysis/p100/wtmetad/independent-kernel-check.csv


左图只展示固定舍去前 0.5 ps 后的实际 COLVAR 样本;右图由完整 160 条 HILLS 重建,不是同一段距离样本的简单直方图。
资料包还根据原生 stretched-gaussian 核逐项独立求和,并检查导数。两种显卡、两种 MetaD 的重建能量最大差均小于 4×10⁻¹⁷ eV,说明这些文件的读取、单位和核求和彼此一致。这个数值核对不等于材料自由能已经收敛。
正式研究应延长采样、检查多段时间窗口下的 FES 变化、使用多个独立起点,并确认 CV 覆盖了相关状态。不要从本例局部距离曲线直接读取反应势垒、迁移率或速率常数。随时间变化的 MetaD 偏置,也不能直接使用下一篇固定谐偏置的重加权公式。
参数和工具说明可对照 PLUMED sum_hills 与 MetaD 说明。