PLUMED 移动限制与拉伸功
用真实受控移动轨迹查看中心、偏置、力和功,区分非平衡功与自由能。
阅读本篇目录
MOVINGRESTRAINT 按预定步数改变目标位置,适合学习受控拉伸和构型准备。它输出的单条非平衡轨迹功,不能直接当作平衡自由能差。

1. 完整输入#
下载本例输入、实际数据和绘图程序。本例仍在 二维解析势 上运行,初始 x=−1,1000 步内把目标移动到 +1。步长 0.005,总时间为 5 个无量纲时间单位。
cat inputs/restraints/moving/input.dat
cat inputs/restraints/moving/plumed.dat
UNITS NATURAL
d: DISTANCE ATOMS=1,2 COMPONENTS
u: MATHEVAL ARG=d.x,d.y VAR=x,y FUNC=4*(x*x-1)^2+0.5*y*y PERIODIC=NO
physical: BIASVALUE ARG=u
b: MOVINGRESTRAINT ARG=d.x STEP0=0 AT0=-1 KAPPA0=20 STEP1=1000 AT1=1 KAPPA1=20
PRINT ARG=d.x,d.y,u,b.* STRIDE=1 FILE=COLVAR FMT=%24.16e
STEP0/STEP1 是动力学步编号,不是时间。AT0/AT1 是对应目标位置,KAPPA0/KAPPA1 是对应力常数。本例两端都为 20,中间目标线性变化;它并不要求粒子坐标每步都恰好等于目标。
2. 运行和查看#
完整包在已分配 CPU 任务内一条命令完成所有例子:
bash sample.sh
head -n 5 work/restraints/moving/COLVAR
tail -n 5 work/restraints/moving/COLVAR
如果只想单独运行移动限制,在新目录准备文件:
module load plumed/2.9.4-oneapi2024.2
mkdir moving-only
cp inputs/restraints/moving/{input.dat,plumed.dat} moving-only/
cd moving-only
plumed pesmd < input.dat > native.log
b.* 打印偏置能、力平方、移动中心、分量功、力常数和总功。本例实际字段包含 b.d.x_cntr、b.d.x_work、b.d.x_kappa 和 b.work;不要照搬其他集体变量名称的输出列。
3. 先看轨迹是否跟得上目标#
图中虚线是目标位置,蓝线是原生轨迹。目标移动时,实际坐标会受基础势、热噪声、摩擦和弹簧共同影响,允许出现滞后。实际偏置始终按 κ[x−x₀(t)]²/2 计算。
独立检查使用每一步实际 x 和目标位置核对偏置能、力平方,并用相邻步的限制力作梯形积分,得到与原生 b.work 一致的功。对应分析结果保存在:
head -n 8 work/analysis/restraints.csv
bash plot.sh work/analysis own-figures
4. 后续怎么使用#
快速移动的结果可作为下一阶段采样的初始构型。需要自由能时,可在不同目标位置充分平衡并做 伞形采样与WHAM,或者采用明确满足条件的非平衡估计方法并做足够多的独立重复。单条拉伸曲线或一次功积分不是完整的自由能计算。
只修改分析和图形时,使用 bash analyze.sh work new-analysis,保留已经成功的轨迹。更改基础势、温度、目标日程、力常数或时间步后,则需要重新进行对应动力学。