CP2K专题

CP2K MetaD完整重启与输出整理

用400步加600步的真实续算演示原子、速度、恒温器与高斯历史的恢复,以及不同输出的时间对齐。

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

MetaD续算需要延续高斯历史,同时恢复原子位置、速度和恒温器状态。只复制坐标,或者只把一份HILLS文本接到新任务前面,都不能替代完整的动力学续算。本篇使用与原生MetaD教程相同的真实Ar₂轨迹,演示完整检查点的使用。

1 下载与运行#

下载原生MetaD完整操作包,保存为cp2k-metadynamics.zip。普通作业解压后可执行sbatch job.slurm;以下命令用于已经分配的CPU资源内。

python3 -m zipfile -e cp2k-metadynamics.zip .
cd cp2k-metadynamics
bash setup.sh
bash run.sh
bash verify.sh
bash plot.sh

脚本依次运行无偏置、普通MetaD、Well-Tempered MetaD、400步前半段与600步续算,再调用原生graph.psmp处理检查点。结果在results/cases/,图片在plots/。使用CP2K2026.2 CPU模块cp2k/2026.2-8173m,Intel ifx2024.2.1、IntelMPI2021.13、MKL2024.2;1个MPI进程、1线程,分析脚本使用集群已有Python/NumPy环境。

2 先保存完整检查点#

示例开启原生重启输出:

&RESTART
 BACKUP_COPIES 0
 &EACH
  MD 20
 &END EACH
&END RESTART

这是MOTION/PRINT里的设置。计算完成后,standard-half-1.restart包含原子、速度、Nose恒温器与MetaD高斯历史。把这份完整文件与对应模型一并保存;正式任务应根据自己的恢复需求保留历史副本,不要照搬示例的BACKUP_COPIES 0当作备份策略。

3 从400步继续到1000步#

前半段运行400步,续算输入引用其检查点:

&EXT_RESTART
 RESTART_FILE_NAME ../standard-half/standard-half-1.restart
 RESTART_DEFAULT TRUE
&END EXT_RESTART

本例MD续算输入再设置STEPS 600,最终到第1000步。这里展示的是CP2K MD的400+600行为;不要把这个写法机械套用到其他软件或实时电子传播的步数定义上。

保持相同的原子顺序、力场、时间步长、CV、宽度、沉积周期、温度与恒温器参数。路径使用两个并列结果目录;不要将新输出直接写进旧目录覆盖历史文件。

4 实际对照结果#

一次连续1000步,与400步后从完整检查点继续600步,最终均得到50个高斯,末步距离为4.127451935 Å。本次输出精度下,拼接轨迹的全部原子坐标与连续轨迹一致;能量、力和高斯历史也逐项比较。

实际完整重启、偏置高度与连续轨迹对比

这说明这份小模型的完整续算操作可以复现对应连续轨迹,不代表任意并行数、软件版本或随机恒温器都保证长轨迹逐位相同。正式任务应先用小段续算检查时间、体系和偏置历史是否衔接。

python3 -c "import json; v=json.load(open('results/VALIDATION.json')); print([x for x in v['items'] if x['name'].startswith('full_vs_')])"

5 拼接时按实际时间对齐#

前半段MD坐标和能量记录第0–400步,共401帧;续算MD记录401–1000步,共600帧,直接按顺序接起来是1001帧。

但本版本续算的COLVAR还先记录一次400 fs检查点,因此COLVAR有601行。需要和续算MD坐标/能量逐行比较时,应按实际时间连接,保留400 fs这行作为起点记录,再对401–1000 fs比较;不能把第一个COLVAR值错误配给401 fs坐标。

附件将完整COLVAR保存在fields.npz的COLVAR_all_rows中,按MD时间对齐的部分另存为COLVAR_native。没有插值,也没有丢弃其他时间点。

6 检查高斯历史与原生工具输出#

不要仅检查最后一行坐标。至少确认总步数、时间步长、已有高斯数量,以及新增高斯的起始时间。附件对连续和续算的完整高斯位置、宽度、保存高度分别比较;graph.psmp读取的是完整重启文件,不依赖打印成五位小数的HILLS高度。

source env.sh
"$YS_PY" -c "import numpy as np; a=np.load('results/cases/standard/fields.npz'); b=np.load('results/cases/standard-resume/fields.npz'); print('hills:', len(a['hill_times_fs']), len(b['hill_times_fs'])); print('last step:', a['steps'][-1], b['steps'][-1])"
ls -lh results/cases/standard/native-fes.dat results/cases/well-tempered/native-fes.dat

修改CV定义或体系后,应建立新的采样任务,不能把原偏置历史当作通用启动文件。若目的是利用已有偏置进行固定偏置采样,也应明确采用对应输入,而不是把它与继续沉积高斯混称为同一种续算。

完整续算输入:

展开附件实际执行的standard-resume/input.inp
&GLOBAL
 PROJECT standard-resume
 RUN_TYPE MD
 PRINT_LEVEL MEDIUM
 SEED 20261109
&END GLOBAL
&EXT_RESTART
 RESTART_FILE_NAME ../standard-half/standard-half-1.restart
 RESTART_DEFAULT TRUE
&END EXT_RESTART
&MOTION
 &MD
  ENSEMBLE NVT
  STEPS 600
  TIMESTEP [fs] 1.0
  TEMPERATURE 10
  &THERMOSTAT
   TYPE NOSE
   &NOSE
    TIMECON [fs] 100
   &END NOSE
  &END THERMOSTAT
  &PRINT
  &ENERGY
   FILENAME =energy.dat
   &EACH
    MD 1
   &END EACH
  &END ENERGY
  &END PRINT
 &END MD
 &FREE_ENERGY
  METHOD METADYN
  &METADYN
   DO_HILLS TRUE
   NT_HILLS 20
   WW 0.000002
   
   &METAVAR
    COLVAR 1
    SCALE 0.2
   &END METAVAR
   &PRINT
    &COLVAR ON
     FILENAME =COLVAR.dat
     COMMON_ITERATION_LEVELS 1
     &EACH
      MD 1
     &END EACH
    &END COLVAR
    &HILLS ON
     FILENAME =HILLS.dat
     COMMON_ITERATION_LEVELS 1
    &END HILLS
   &END PRINT
  &END METADYN
 &END FREE_ENERGY
 &PRINT
  &TRAJECTORY
   FORMAT XYZ
   FILENAME =trajectory.xyz
   &EACH
    MD 1
   &END EACH
  &END TRAJECTORY
  &FORCES
   FORMAT XYZ
   UNIT hartree/bohr
   FILENAME =forces.xyz
   &EACH
    MD 1
   &END EACH
  &END FORCES
  &RESTART
   BACKUP_COPIES 0
   &EACH
    MD 20
   &END EACH
  &END RESTART
 &END PRINT
&END MOTION
&FORCE_EVAL
 METHOD FIST
 &MM
  &FORCEFIELD
   &SPLINE
    EPS_SPLINE 1E-10
   &END SPLINE
   DO_ELECTROSTATICS .FALSE.
   SHIFT_CUTOFF .TRUE.
   &CHARGE
    ATOM Ar
    CHARGE 0.0
   &END CHARGE
   &NONBONDED
    &LENNARD-JONES
     ATOMS Ar Ar
     EPSILON [K_e] 119.8
     SIGMA [angstrom] 3.405
     RCUT [angstrom] 7.5
    &END LENNARD-JONES
   &END NONBONDED
  &END FORCEFIELD
  &POISSON
   &EWALD
    EWALD_TYPE NONE
   &END EWALD
  &END POISSON
 &END MM
 &SUBSYS
 &COLVAR
  &DISTANCE
   ATOMS 1 2
  &END DISTANCE
 &END COLVAR
  &CELL
   ABC 30 30 30
   PERIODIC NONE
  &END CELL
  &COORD
   Ar 10 10 10
   Ar 13.82203 10 10
  &END COORD
  &TOPOLOGY
   CONN_FILE_FORMAT OFF
  &END TOPOLOGY
 &END SUBSYS
 &PRINT
  &FORCES ON
  &END FORCES
 &END PRINT
&END FORCE_EVAL

参考:CP2K MetaD重启参数、COLVAR输出定义。

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

查看配图

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

100%查看原图 ↗