PLUMED专题

PLUMED几何与函数:虚拟原子、配位数和向量操作

从32帧四原子坐标逐步计算距离、角度、回转半径、配位数、函数与向量归约,给出完整输入。

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

需要把距离、角度、配位数等组合成自己的集体变量时,可以先在小坐标文件上运行plumed driver,确认数值和单位,再接入正式MD。本篇用32帧预先指定的四原子坐标演示操作;这些坐标用于教学,不是某种材料的真实动力学轨迹。

1. 先看输入和结构#

下载四原子几何与偏置资料包,保存为example.zip:

python3 -m zipfile -e example.zip .
cd plumed-geometry-bias-chain
bash results.sh
bash read.sh
bash plot.sh

先用保存的真实结果查看图表,不需要重新计算。figures/是图片,data/是CSV,reference-results/是原生结果。

head -12 inputs/scan.xyz
cat inputs/plumed.dat

四原子坐标与几何量

每帧是标准XYZ的“原子数、说明、坐标”三部分。距离单位为nm,角度与二面角为rad。图中的CENTER是四个原子的几何中心,FIXEDATOM是坐标原点处的固定虚拟点;两者都不是新加入的真实原子。

2. 完整PLUMED输入#

UNITS LENGTH=nm ENERGY=kj/mol TIME=ps
c: CENTER ATOMS=1-4
f: FIXEDATOM AT=0,0,0
r: DISTANCE ATOMS=1,2 NOPBC
a: ANGLE ATOMS=1,2,3 NOPBC
t: TORSION ATOMS=1,2,3,4 NOPBC
rg: GYRATION ATOMS=1-4 TYPE=RADIUS NOPBC
n: COORDINATION GROUPA=1 GROUPB=2,3,4 R_0=0.25 NN=6 MM=12 NOPBC
cd: DISTANCE ATOMS=1,c NOPBC
fd: DISTANCE ATOMS=f,c NOPBC
custom: CUSTOM ARG=r,a FUNC=x*x+0.1*cos(y) PERIODIC=NO
combo: COMBINE ARG=r,a COEFFICIENTS=2,-0.1 PARAMETERS=0,0 POWERS=1,1 PERIODIC=NO
vec: CONCATENATE ARG=r,rg
lessvec: LESS_THAN ARG=vec R_0=0.2 NN=6 MM=12
less: SUM ARG=lessvec PERIODIC=NO
high: HIGHEST ARG=vec
low: LOWEST ARG=vec
b: RESTRAINT ARG=r,a,t,rg,n,cd,fd,custom,combo,less AT=0.12,1.4,1.2,0.15,1.5,0.1,0.15,0.02,0.1,0.7 KAPPA=3,2,1,4,1.5,2,1,2,1,1
PRINT ARG=r,a,t,rg,n,cd,fd,custom,combo,less,high,low,b.bias FILE=COLVAR STRIDE=1 FMT=%.12g

逐段阅读:

  • CENTER ATOMS=1-4建立几何中心;若想计算质量中心,应另外选择适当的质量加权定义。
  • DISTANCE、ANGLE、TORSION分别计算距离、三原子角与四原子二面角;二面角具有周期性。
  • GYRATION TYPE=RADIUS计算回转半径;本例未启用质量加权。
  • COORDINATION计算1号原子对2、3、4号原子的平滑配位数,R_0=0.25使用nm。它通常不是整数。
  • CUSTOM计算r²+0.1cos(a),COMBINE计算2r−0.1a。这里用于展示自定义函数,组合值的定义及其约束常数需要由用户为实际问题选定。
  • CONCATENATE把两个标量拼成向量;LESS_THAN逐元素作用,再用SUM求和。当前2.10.1构建不能直接把本例的标量r交给该LESS_THAN入口。
  • HIGHEST、LOWEST返回向量中的最大值和最小值。
  • RESTRAINT叠加谐偏置,计算力的方法见下一篇。

本例明确使用NOPBC。自己的周期体系要结合盒子、跨边界分子重构和物理定义选择边界处理,不能照搬这一设置。

3. 自己运行一次driver#

计算部分通过Slurm提交:

sbatch run.slurm

脚本申请CPU整节点56核资源,实际单线程运行;这是计费与资源申请方式,不是56线程性能测试。若CPU资源暂不可用,可以先阅读资料包中的结果。

脚本中的核心终端操作是:

source /etc/profile.d/lmod.sh
module purge
module load cp2k/2026.2-8173m
plumed_prefix=/public/software/cp2k/deps/2026.2/8173m/plumed-2.10.1
export LD_LIBRARY_PATH="$plumed_prefix/lib:${LD_LIBRARY_PATH:-}"
"$plumed_prefix/bin/plumed" driver   --plumed plumed.dat --ixyz scan.xyz   --length-units nm --box 1,1,1   --dump-forces forces.xyz --dump-forces-fmt %.12e   --debug-forces derivative-check.dat

这些命令由run.sh在work/中执行,不必手动重复。XYZ说明行不等于PLUMED已读到盒子;因此脚本显式给出--box,同时各几何量使用NOPBC。

完成后:

head work/COLVAR
bash read.sh work analysis-new
bash plot.sh analysis-new figures-new work

run.sh要求work/尚不存在。再次运行请在新的解压目录操作,避免覆盖已有结果。

4. 得到什么结果#

同一组坐标的角度与函数输出

COLVAR首行给出字段名,后续32行是每帧的原生输出。距离、角度、二面角、回转半径、配位数、虚拟点距离及函数值,都与独立几何公式逐帧对应;本例最大绝对差约5×10⁻¹²,不同字段采用各自输入单位,不能把它们视为同一种量纲。

RATIONAL开关在本版本默认带有限截断及拉伸。本包的独立读取程序按PLUMED 2.10.1对应源代码处理,不能一律用未经截断拉伸的简单分式代替原生值。

运行环境为CP2K配套的PLUMED 2.10.1,Intel oneAPI 2024.2、Intel MPI 2021.13、GSL 2.8和MKL顺序库。它与较早的独立PLUMED模块分开;查本版本关键词可用Actions查找工具。

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

查看配图

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

100%查看原图 ↗