CP2K专题

CP2K常规MP2与GPW实现

同一水分子、同一HF参考,实际比较canonical、GPW MP2与RI-MP2。

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

CP2K中的MP2不只有RI_MP2一个入口。本篇使用同一水分子和HF参考,实际运行DIRECT_CANONICAL和MP2_GPW,再与RI-MP2的数值结果对照,认识方法入口、积分表示和辅助基组的区别。

下载完整输入、实际日志、提取与绘图脚本,解压进入run.sh目录。CP2K2026.2 P100双精度构建:GNU13.3、MPICH5.0.1、CUDA12.9、OpenBLAS0.3.33、ScaLAPACK2.2.3;分析ASE3.29.0。

1 先跑这组小例子#

sbatch submit.slurm

核时模板申请一张P100、一个CPU核,每个计算一个MPI进程、一个OpenMP线程;默认运行五个条件,再提取画图。其中常规MP2、GPW MP2、SOS8点和SOS16点为本次新计算,RI-MP2参照来自RI-MP2教程的同一条件,公开流程也会重新计算它。

套餐用户用yskit生成所属分区脚本,在已分配资源中保留bash run.sh。已分配多卡时按可见GPU与CPU亲和范围每卡安排一个任务,不自动申请资源。不要在登录节点计算,已有work时重新解压。reference存本文原始日志;work存新结果。单条件可在sbatch命令后附CASES.json中的名称;完整对照图需要整组。

2 固定模型,再更换实现#

沿用水分子振动教程的实际优化几何,保持内部坐标不动并居中。14 Å非周期WAVELET盒,DZVP-GTH轨道基组与GTH-HF赝势,DFT网格300/50 Ry,EPS_SCF=1E-7。各实现的HF参考能在本次数值精度内一致。

RI-MP2另使用RI_DZVP-GTH辅助基组;常规canonical与MP2_GPW不依靠这个RI辅助展开,所以两个新输入去掉KIND中的RI_AUX。不要为了“对齐基组”把轨道基组也换掉。

3 常规canonical完整输入#

完整input.inp:water-mp2-canonical#

&GLOBAL
  PRINT_LEVEL MEDIUM
  PROJECT RI_MP2_H2O
  RUN_TYPE ENERGY
  &TIMINGS
    THRESHOLD 0.01
  &END TIMINGS
&END GLOBAL

&FORCE_EVAL
  METHOD Quickstep
  &DFT
    BASIS_SET_FILE_NAME ../DATA/HFX_BASIS
    POTENTIAL_FILE_NAME ../DATA/POTENTIAL
    &MGRID
      CUTOFF 300
      REL_CUTOFF 50
    &END MGRID
    &POISSON
      PERIODIC NONE
      POISSON_SOLVER WAVELET
    &END POISSON
    &QS
      EPS_DEFAULT 1.0E-12
      EPS_PGF_ORB 1.0E-18
      METHOD GPW
    &END QS
    &SCF
      EPS_SCF 1.0E-7
      MAX_SCF 100
      SCF_GUESS ATOMIC
    &END SCF
    &XC
      &HF
        FRACTION 1.0000000
        &SCREENING
          EPS_SCHWARZ 1.0E-8
          SCREEN_ON_INITIAL_P FALSE
        &END SCREENING
      &END HF
      &WF_CORRELATION
        MEMORY 200.
        NUMBER_PROC 1
        &MP2
          METHOD DIRECT_CANONICAL
        &END MP2
      &END WF_CORRELATION
      &XC_FUNCTIONAL NONE
      &END XC_FUNCTIONAL
    &END XC
  &END DFT
  &SUBSYS
    &CELL
      ABC [angstrom] 14.0 14.0 14.0
      PERIODIC NONE
    &END CELL
    &KIND H
      BASIS_SET DZVP-GTH
      POTENTIAL GTH-HF-q1
    &END KIND
    &KIND O
      BASIS_SET DZVP-GTH
      POTENTIAL GTH-HF-q6
    &END KIND
    &TOPOLOGY
      COORD_FILE_FORMAT xyz
      COORD_FILE_NAME H2O_gas.xyz
      &CENTER_COORDINATES
      &END CENTER_COORDINATES
    &END TOPOLOGY
  &END SUBSYS
&END FORCE_EVAL

在WF_CORRELATION中用MP2子块并选择DIRECT_CANONICAL。它与RI_MP2是不同入口;本例canonical输入不保留无关的WFC_GPW积分截断段。

4 GPW MP2完整输入#

完整input.inp:water-mp2-gpw#

&GLOBAL
  PRINT_LEVEL MEDIUM
  PROJECT RI_MP2_H2O
  RUN_TYPE ENERGY
  &TIMINGS
    THRESHOLD 0.01
  &END TIMINGS
&END GLOBAL

&FORCE_EVAL
  METHOD Quickstep
  &DFT
    BASIS_SET_FILE_NAME ../DATA/HFX_BASIS
    POTENTIAL_FILE_NAME ../DATA/POTENTIAL
    &MGRID
      CUTOFF 300
      REL_CUTOFF 50
    &END MGRID
    &POISSON
      PERIODIC NONE
      POISSON_SOLVER WAVELET
    &END POISSON
    &QS
      EPS_DEFAULT 1.0E-12
      EPS_PGF_ORB 1.0E-18
      METHOD GPW
    &END QS
    &SCF
      EPS_SCF 1.0E-7
      MAX_SCF 100
      SCF_GUESS ATOMIC
    &END SCF
    &XC
      &HF
        FRACTION 1.0000000
        &SCREENING
          EPS_SCHWARZ 1.0E-8
          SCREEN_ON_INITIAL_P FALSE
        &END SCREENING
      &END HF
      &WF_CORRELATION
        MEMORY 200.
        NUMBER_PROC 1
        &INTEGRALS
          &WFC_GPW
            CUTOFF 300
            EPS_FILTER 1.0E-8
            EPS_GRID 1.0E-8
            REL_CUTOFF 50
          &END WFC_GPW
        &END INTEGRALS
        &MP2
          METHOD MP2_GPW
        &END MP2
      &END WF_CORRELATION
      &XC_FUNCTIONAL NONE
      &END XC_FUNCTIONAL
    &END XC
  &END DFT
  &SUBSYS
    &CELL
      ABC [angstrom] 14.0 14.0 14.0
      PERIODIC NONE
    &END CELL
    &KIND H
      BASIS_SET DZVP-GTH
      POTENTIAL GTH-HF-q1
    &END KIND
    &KIND O
      BASIS_SET DZVP-GTH
      POTENTIAL GTH-HF-q6
    &END KIND
    &TOPOLOGY
      COORD_FILE_FORMAT xyz
      COORD_FILE_NAME H2O_gas.xyz
      &CENTER_COORDINATES
      &END CENTER_COORDINATES
    &END TOPOLOGY
  &END SUBSYS
&END FORCE_EVAL

同样使用MP2子块,METHOD改为MP2_GPW,增加INTEGRALS/WFC_GPW并设置300/50 Ry。这里相关能积分网格与DFT/MGRID网格是两组设置,名称相同也不能混为一处。

5 从输出确认运行了哪条分支#

grep -E 'MP2\||MP2 section|Second order perturbation energy|ENERGY\|' work/cases/water-mp2-canonical/output.log
grep -E 'MP2\||MP2 section|Second order perturbation energy|ENERGY\|' work/cases/water-mp2-gpw/output.log
cat work/analysis/method-branches.csv
实现 相关能/Hartree 最终总能/Hartree 相关能相对本次canonical/meV
DIRECT_CANONICAL -0.199847359130 -17.098778800430 0.000000
MP2_GPW -0.199847404596 -17.098778845896 -0.001237
RI_MP2 -0.199837286225 -17.098768727525 0.274098

相同HF参考下的实际自旋分项和相对canonical的相关能差值

本例GPW MP2与canonical相关能差约0.00124 meV,当前RI-MP2与canonical差约0.2741 meV。这里canonical只是同一有限轨道基组内的比较参照,不是完整基组极限;RI辅助表示和GPW积分网格分别需要检查。

三者最终总能都按E(HF)+E(相关)组合。不能把不同HF参考、不同赝势或不同几何的能量差归因于实现本身,也不要用这个很小的水分子给大体系做速度排名。

6 换成自己的体系#

更新XYZ、元素KIND、轨道基组和赝势,先得到一致收敛的HF参考,再选择可承受的相关能实现。涉及RI时另外检查辅助基组;GPW积分另外检查截断。本文都是闭壳层非周期单点,不把能量输入直接当作已经具备解析梯度的优化模板。

提取与重画#

module load ase/3.29.0
python analyze.py work
python plot_results.py work
python check_results.py work
cat work/analysis/method-branches.csv
ls work/figures

CSV总能、HF参考、自旋分项与相关能使用Hartree;图中按坐标说明转换单位。看本文原始数据时将work改成reference。

可用实现与梯度条件见CP2K2026.2 MP2说明。继续看SOS-MP2与积分点。

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

查看配图

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

100%查看原图 ↗