CP2K专题

CP2K Monte Carlo:水与氩的小体系实操

用真实27原子例子说明经典MC输入、拓扑、260次移动尝试和末端坐标能量读取。

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

本系列用鸢算科技集群实际完成的三个CP2K入口,说明传统Monte Carlo、Tree Monte Carlo和温度加速Monte Carlo的输入、提交与结果读取。它们解决的问题和计数方式不同,不能只改RUN_TYPE名字就互换。

下载完整输入、实际输出与绘图工具,保存为example.zip:

python3 -m zipfile -e example.zip .
cd cp2k-special-sampling-examples
bash results.sh
bash read.sh
bash plot.sh

以上只读已经完成的结果,不启动新计算。程序为cp2k/2026.2-8173m,Intel oneAPI 2024.2/ifx、Intel MPI 2021.13、MKL构建。原始方法输入改编自固定CP2K 2026.2官方示例,附GPL许可;三种例子均为小规模操作参考,不据此报告相平衡、扩散时间或收敛自由能。

要重算整套小例子,在新的解压目录提交:

sbatch run.slurm
squeue -u "$USER"
# 完成后
bash read.sh work analysis-new
bash plot.sh analysis-new figures-new work

CPU入口按集群规则申请整节点56核,实际按每个步骤分别用1、4或2个MPI进程,OpenMP为1;这不是56核性能测试。work/已经存在时脚本会保留它,避免覆盖结果。

1. 体系与一次“步”的含义#

本例是13.5 Å立方周期盒中的7个水分子加6个Ar,共27颗原子,采用输入内定义的经典FIST势。NSTEP=20为外层MC步,本例涉及13个分子/单原子对象,原生结果实际记录260次移动尝试;它们没有对应普通MD的260个物理时间步。

cat inputs/water-Ar-MC/input.inp
cat inputs/water-Ar-MC/topology_fist_WAT.psf
cat inputs/water-Ar-MC/topology_fist_ARG.psf
完整MC输入:展开查看力场、坐标与移动概率
&GLOBAL
  PRINT_LEVEL LOW
  PROJECT H2O_MC
  RUN_TYPE MC
&END GLOBAL

&MOTION
  &MC
    BOX2_FILE_NAME MC_Fist_box2.inp
    ENSEMBLE TRADITIONAL
    ETA 0.0 0.0
    IPRINT 1
    LBIAS no
    LSTOP no
    NMOVES 1
    NSTEP 20
    PRESSURE 1.013
    RESTART no
    RESTART_FILE_NAME mc_restart_1
    TEMPERATURE 298.0
    VIRIAL_TEMPS 300.0
    &AVBMC
      AVBMC_ATOM 1 1
      AVBMC_RMAX 5.0 5.0
      AVBMC_RMIN 1.0 1.0
      PBIAS 0.5 0.5
    &END AVBMC
    &MAX_DISPLACEMENTS
      &BOX_DISPLACEMENTS
        RMVOLUME 500.0
      &END BOX_DISPLACEMENTS
      &MOL_DISPLACEMENTS
        RMANGLE 10.0 5.0
        RMBOND 0.074 0.07
        RMDIHEDRAL 3.0 1.0
        RMROT 26.0 16.0
        RMTRANS 0.58 0.55
      &END MOL_DISPLACEMENTS
    &END MAX_DISPLACEMENTS
    &MOVE_PROBABILITIES
      PMAVBMC 0.0
      PMHMC 0.0
      PMSWAP 0.0
      PMTRAION 0.33
      PMTRANS 0.67
      PMVOLUME 0.0
      &BOX_PROBABILITIES
        PMHMC_BOX 1.0
        PMVOL_BOX 1.0
      &END BOX_PROBABILITIES
      &MOL_PROBABILITIES
        PMAVBMC_MOL 0.5 1.0
        PMROT_MOL 1.0 1.0
        PMSWAP_MOL 0.5 1.0
        PMTRAION_MOL 1.0 1.0
        PMTRANS_MOL 0.5 1.0
      &END MOL_PROBABILITIES
    &END MOVE_PROBABILITIES
    &MOVE_UPDATES
      IUPTRANS 100
      IUPVOLUME 100
    &END MOVE_UPDATES
  &END MC
&END MOTION

#CPQA INCLUDE MC_Fist_box2.inp
#CPQA  DEPENDS GEMC_swap_box1.inp
#      this dependency rule is fake: the reason is that MC is the only module as of Today that writes
#      hard-coded output files, which are then read in the subsequent steps. Once modernized, these
#      dependencies for CPQA can be deleted.
&FORCE_EVAL
  METHOD FIST
  &MM
    &FORCEFIELD
      &BEND
        ATOMS H O H
        K 0.05
        THETA0 1.82422
      &END BEND
      &BOND
        ATOMS O H
        K 0.05
        R0 0.97572
      &END BOND
      &CHARGE
        ATOM Ar
        CHARGE 0.0
      &END CHARGE
      &CHARGE
        ATOM O
        CHARGE -0.8476
      &END CHARGE
      &CHARGE
        ATOM H
        CHARGE 0.4238
      &END CHARGE
      &NONBONDED
        &LENNARD-JONES
          ATOMS Ar Ar
          EPSILON 60.0
          RCUT 5.0
          SIGMA 2.5
        &END LENNARD-JONES
        &LENNARD-JONES
          ATOMS Ar O
          EPSILON 70.0
          RCUT 5.0
          SIGMA 2.8
        &END LENNARD-JONES
        &LENNARD-JONES
          ATOMS Ar H
          EPSILON 0.0
          RCUT 5.0
          SIGMA 2.5
        &END LENNARD-JONES
        &LENNARD-JONES
          ATOMS O O
          EPSILON 78.19580
          RCUT 5.0
          SIGMA 3.1655
        &END LENNARD-JONES
        &LENNARD-JONES
          ATOMS O H
          EPSILON 0.0
          RCUT 5.0
          SIGMA 3.1655
        &END LENNARD-JONES
        &LENNARD-JONES
          ATOMS H H
          EPSILON 0.0
          RCUT 5.0
          SIGMA 3.1655
        &END LENNARD-JONES
      &END NONBONDED
      &SPLINE
        EMAX_SPLINE 1000000.0
      &END SPLINE
    &END FORCEFIELD
    &POISSON
      &EWALD
        ALPHA .40
        EWALD_ACCURACY 1.0E-2
        EWALD_TYPE ewald
        GMAX 11
      &END EWALD
    &END POISSON
  &END MM
  &SUBSYS
    &CELL
      ABC 13.5 13.5 13.5
    &END CELL
    &COORD
      O      11.667599837210      7.964352234664      0.059453614019
      H      10.873359634781      8.005423314626      0.665667823055
      H      11.364979095795      7.770411108906     -0.873716837951
      O       2.314161441602      5.011228167767      2.784706973673
      H       1.663128370368      5.686998340596      3.130381117447
      H       2.659721328394      5.306531429441      1.893985965664
      O      10.262864742466      5.548805003571     11.360725453725
      H      10.424041748648      4.666485986338     11.802918991113
      H       9.436479204754      5.494708086386     10.800225647804
      O       5.937092785694     12.752770338234      7.554822749656
      H       6.459679552548     12.731874699056      8.407152758147
      H       6.560379344025     12.890048310674      6.784973290144
      O       1.052476316752      3.192494253568      0.284763135867
      H       1.009686510209      3.892635795528      0.997483876183
      H       1.385134340137      3.601676794269     -0.564888471374
      O      11.621014134223      7.899470257763      6.835708666826
      H      10.723243819476      8.290315257093      7.038806299646
      H      12.107936378358      8.496446358905      6.198114886544
      O       3.255054397643      5.532098285916     13.500752220167
      H       3.169785700155      4.860242146843     12.764995074351
      H       3.889107504717      6.253294143532     13.221731148935
      Ar      1.43   3.54   6.24
      Ar      4.43   10.54   9.24
      Ar      11.43   3.54   6.24
      Ar      11.43   3.54   2.24
      Ar      2.43   5.54   6.24
      Ar      10.43   5.54   5.24
    &END COORD
    &TOPOLOGY
      CONNECTIVITY MOL_SET
      &MOL_SET
        &MOLECULE
          CONN_FILE_NAME topology_fist_WAT.psf
          NMOL 7
        &END MOLECULE
        &MOLECULE
          CONN_FILE_NAME topology_fist_ARG.psf
          NMOL 6
        &END MOLECULE
      &END MOL_SET
    &END TOPOLOGY
  &END SUBSYS
&END FORCE_EVAL

ENSEMBLE TRADITIONAL与移动概率定义实际采样方式。平移、转动、内坐标和交换等移动需要相应分子拓扑;不能把不同组分的分子数、拓扑文件和坐标顺序拆开修改。

输入保留了官方示例的模型参数,用于学习如何组织文件;改变水模型或混合规则时应重新检查参数单位和物理适用范围,不把这套短例当成经过标定的混合溶液模型。

2. 单独运行一个目录#

配套总脚本会管理完整流程。若自己只做MC,可先将相应inputs/water-Ar-MC/复制到新的作业目录,并在已申请的CPU资源中运行:

module purge
module load cp2k/2026.2-8173m
export OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1
mpirun -np 1 cp2k.psmp -i input.inp -o output.log

同一目录里的MC_Fist_box2.inp、两个PSF也需保留。程序会写出一些固定名字的MC文件,所以并行跑不同参数时必须用不同目录。

3. 看能量和坐标#

head reference-results/water-Ar-MC/mc_energies
tail reference-results/water-Ar-MC/mc_energies
head reference-results/water-Ar-MC/mc_coordinates
cat analysis-read/CP2K-sampler-endpoints.csv

实际260次MC尝试的能量及最终结构

mc_energies含初始值、逐次记录与最终值;mc_coordinates有初始、过程中写出的坐标和最后FINAL BOX 1。本例最终能量约0.471833537833 Hartree。配套程序另取最后接受构型做单点,差约2.79×10⁻¹¹ Hartree,核对坐标与能量的对应。

原生坐标文件把氩写作AR;make_endpoints.py接受这个大小写形式,转为标准的Ar后再生成新输入。读取多帧时必须按每帧的原子数取完整坐标,不能遇到不认识的元素就跨到下一帧继续凑数。

能量随尝试下降并不证明已达到平衡;正式采样需要热化、独立重复和目标观测量的统计。下一篇见Tree Monte Carlo。

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

查看配图

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

100%查看原图 ↗