LAMMPS 专题

LAMMPS 超动力学:偏置势与加速时间

用两套真实短轨迹说明hyper/global的偏置、跃迁检查和时间积分,提供完整输入。

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

下载输入、势表、原生输出与绘图脚本,保存为 example.zip,先查看已有结果:

python3 -m zipfile -e example.zip .
cd lammps-rare-event-examples
bash results.sh
bash plot.sh

实例采用LAMMPS30Sep2026 CPU MPI版,Intel oneAPI/Intel MPI与配套MKL,集群模块 lammps/30Sep2026-8173m。数据使用同一CPU程序在兼容CPU上实际运行;不是CPU计算节点的性能测试。重新计算通过 sbatch 申请CPU资源,模板按集群CPU分区的56物理核规则申请,微型例子本身只使用1或4个MPI进程。

模型和事件判定#

这是自定义教学模型:两粒子质量均为1,初始位置为 (-0.5,0,0) 和 (0.5,0,0)。使用LJ约化单位,径向势为:

U(r) = 16 * ((r - 1.5)^2 - 0.25)^2
r = 1 与 r = 2:两个势阱,U = 0
r = 1.5:鞍点,U = 1

两粒子的y、z方向各有弹簧约束,抑制绕行;弹簧能量计入总势能。势表包含20001点,覆盖r=0.4–3.5。它不对应具体材料,也不是离子对的真实力场。

fix transverse all spring/self 100 yz
fix_modify transverse energy yes
compute event all event/displace .3

每次事件检查前先最小化,比较的是势阱位置而非瞬时热振动。两阱之间每个原子的平衡位移为0.5,本例用0.3作为事件阈值。换实际体系时,应重新选择阈值、势函数和温度。

两粒子双势阱与解析势垒

1. 检查输入,再提交#

cat inputs/hyper-s74411/in.lmp
cat run.slurm
sbatch run.slurm hyper-s74411

脚本在新的 work/hyper-s74411 下计算;已有目录时拒绝覆盖。不要在没有资源分配的登录终端直接运行生产任务。

核心输入如下;两套种子为74411、74429,其余参数相同。

velocity all create .2 74411 mom yes rot no dist gaussian
timestep .002
fix integrate all nve
fix bath all langevin .2 .2 .2 74411 zero yes
run 2000
reset_timestep 0
compute event all event/displace .3
fix HG all hyper/global 2.2 .2 .4 .2
fix_modify HG energy yes
thermo 1
thermo_style custom step temp pe v_r f_HG f_HG[1] f_HG[10] f_HG[2]
thermo_modify norm no format float %.16g
hyper 60000 100 HG event min 1e-10 1e-6 300 3000

v_r在完整输入中定义为两粒子距离。hyper每100步进行一次势阱检查;生产MD为60000步、步长0.002,总MD时间120。

2. 偏置如何影响时间#

本例的cutbond=2.2、最大相对应变q=0.2、Vmax=0.4、温度T=0.2。对满足范围的键,偏置为 Vmax*(1-(strain/q)^2),范围外为0;加速因子为 exp(Vbias/T)。两阱到解析鞍点的相对应变分别约0.5和0.25,均在偏置范围之外,鞍点偏置为0。

f_HG是偏置能,f_HG[1]是瞬时加速因子,f_HG[10]是累积加速时间。pe已经通过 fix_modify HG energy yes 包含偏置,不能把它当成未加偏置的原势能。

head -n 6 reference-results/hyper-s74411/hyper-plot.csv
python3 results.py

3. 本次实际结果#

种子 实际事件检查中发生跃迁的次数 MD时间 累积hyper时间 平均时间倍率
74411 4 120 617.148285 5.142902
74429 3 120 564.038835 4.700324

两条实际距离轨迹与积分时钟

倍率来自偏置时间积分,不是运行速度的实测加速比。几次跃迁也不足以证明逃逸速率收敛。

4. 读取输出时容易混淆的地方#

原生日志混有MD、quench最小化以及同一步重新建键后的初始化输出。积分时只取MD块,并在重复步号处保留第一条MD记录;后面的记录可能已经使用新键和新偏置。包中保留全日志和用于绘图的降采样CSV,不能拿降采样点代替逐步积分。

这些加速命令会在内部改变时间步进,输入中不要搭配依赖连续累计时间的 fix ave/time 等观察器;本例用原生thermo逐步输出。命令参数可对照LAMMPS hyper与hyper/global。

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

查看配图

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

100%查看原图 ↗