LAMMPS 专题

LAMMPS 伞形采样:窗口到WHAM自由能

11个窗口、两套种子共22个实际短任务,提供终端提交、原始采样和WHAM拼接。

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

1. 下载并看参考结果#

下载完整输入、22个窗口的实际采样、WHAM脚本和图片,保存为 example.zip:

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

本例使用LAMMPS30Sep2026 Intel CPU MPI构建,模块 lammps/30Sep2026-8173m;后处理用集群 ase/3.29.0 中的NumPy、SciPy、Matplotlib。实际采样采用兼容CPU上的同一程序,不把小模型耗时当作CPU节点性能数据。

2. 先确定反应坐标和原势#

一个粒子只沿x运动,约化温度T=0.2,原势为 U(x)=16*((x-1.5)^2-0.25)^2。两势阱x=1和2、势垒x=1.5,解析势垒为1。它是一维教学模型,不是材料力场或真实离子对;没有球坐标r²测度,也就没有额外径向Jacobian修正。

窗口中心从0.9到2.1、间隔0.12,共11个;每个窗口添加 0.5*K*(x-x0)^2,K=40。这里的K与某些命令直接写 K*(x-x0)^2的约定不同,不能混用。

variable V atom 16*((x-1.5)^2-0.25)^2
variable Fx atom -64*(x-1.5)*((x-1.5)^2-0.25)
fix external all addforce v_Fx 0 0 energy v_V
fix_modify external energy yes
fix umbrella all spring tether 40.0 0.90000000 NULL NULL 0.0
fix_modify umbrella energy yes
fix planar all setforce NULL 0.0 0.0
fix integrate all nve
fix bath all langevin .2 .2 .2 74511 zero no
timestep .002
run 10000
reset_timestep 0
variable X equal x[1]
fix samples all ave/time 10 1 10 v_X f_umbrella &
    file samples.dat format " %.16g"
run 200000

完整输入还创建粒子、定义一维温度和输出,直接查看:

cat inputs/w00-s74511/in.lmp

每窗先平衡10000步,再采样200000步,每10步保存一次。原生文件还写入time=0这一行;分析明确去掉它,每窗使用20000个生产样本,两套种子共440000个样本。

3. 提交各窗口#

cat job.slurm
sbatch job.slurm
squeue -u "$USER"

数组0–21对应11个窗口的两套种子,最多两个同时运行。CPU分区按现行56物理核规则申请,小模型只启动1个MPI进程;资源繁忙时按Slurm排队,不要直接在登录终端运行整组任务。各窗口写到独立 work/wXX-sYYYYY,不会混用文件。

4. 先看重叠,再拼接#

参考数据已随包给出,马上可以重算后处理:

module purge
module load ase/3.29.0
python3 collect.py
head -n 8 reference-results/analysis/umbrella-pmf.csv

自己22个窗口都完成后:

python3 collect.py --data-root work
head -n 8 work/analysis/umbrella-pmf.csv

WHAM使用0.8–2.2范围、0.01间隔的直方图,同时考虑各窗口偏置和样本数,迭代求出无偏概率P(x),再算 F(x)=-T*ln(P(x))+常数。不能把各窗口的 -ln(histogram)直接首尾相接。

实际窗口重叠及WHAM和独立解析曲线比较

左图只显示一套种子的11个直方图;右图的主曲线使用两套共22窗。自由能零点通过一个共同常数对齐解析曲线,只移动纵轴,不能改变势垒或曲线形状。

5. 这次得到什么#

数据范围 WHAM势垒/LJ能量 曲线RMS偏差/LJ能量
两套合并 1.008215 0.007059
种子74511 1.025858 0.011051
种子74529 0.990789 0.008649
各窗前半段 1.007042 0.013665
各窗后半段 1.009818 0.009367

解析参考势垒为1.000;RMS在x=0.98–2.02的已采样区间计算。两套种子势垒差约0.0351,说明只看一条平滑曲线会隐藏采样差异。

每窗前后半段得到的自由能曲线比较

这个短例子可用于学会全流程。真实材料还需要有意义的反应坐标、足够平衡、窗口重叠、相关时间和误差估计;距离坐标、角度或约束坐标应使用对应的测度约定。自由能势垒本身也不等于反应速率。偏置定义可查LAMMPS spring。

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

查看配图

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

100%查看原图 ↗