CP2K专题

CP2K SOS-MP2与积分点

原生Laplace SOS-MP2、1.3倍OS缩放、8/16点对照以及与RI-MP2分项的数值残差。

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

SCS-MP2分别缩放OS和SS分量,SOS-MP2则只保留缩放后的opposite-spin相关。CP2K还有原生Laplace变换SOS实现。本篇实际运行RI_SOS_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 完整16点输入#

结构、HF/GTH-HF参考、轨道基组、RI辅助基组与14 Å边界保持MP2实现对照中的设置。WF_CORRELATION用SCALE_S=1.3,并选择RI_SOS_MP2子块:

完整input.inp:water-sos-mp2-q16#

&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
        SCALE_S 1.3
        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
        &RI_SOS_MP2
          QUADRATURE_POINTS 16
        &END RI_SOS_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
      BASIS_SET RI_AUX RI_DZVP-GTH
      POTENTIAL GTH-HF-q1
    &END KIND
    &KIND O
      BASIS_SET DZVP-GTH
      BASIS_SET RI_AUX RI_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

RI_SOS_MP2使用Minimax积分,QUADRATURE_POINTS指定积分点数。这是SOS子块中的参数,不能把RPA子块的设置整段照抄过来。积分点不是k点、原子数或虚轨道数。

SCALE_S对应OS分量;本篇1.3为示例采用的SOS缩放系数。它不要求再保留SS项,也不需要把SCALE_T随意设置成另一个缩放系数。该例不是给水分子改变电子多重度。

3 查看原生OS和缩放结果#

grep -E 'RI-SOS|MP2 Energy SO|Scaling factor SO|Second order perturbation energy|ENERGY\|' work/cases/water-sos-mp2-q16/output.log
cat work/analysis/method-branches.csv
条件 原生OS分量/Hartree 缩放后相关能/Hartree 最终总能/Hartree
Minimax 8 -0.150067022309 -0.195087129002 -17.094018570302
Minimax 16 -0.150067022358 -0.195087129065 -17.094018570365

程序核对E(corr,SOS)=1.3×OS,再检查E(total)=E(HF)+E(corr,SOS)。最终ENERGY已经包含相关能,不要重复加一次。

4 两种数值比较分开做#

8与16点在这组小例子中相关能相差约6.34E-11 Hartree,说明当前Minimax积分结果对这次增加积分点不敏感。这个数值只比较同一实现的两个积分设置,不是该方法相对真实体系的误差条。

若取之前RI-MP2运行中的OS分量乘1.3,结果为-0.195087426398 Hartree;本次16点原生SOS结果与它仍相差约8.09084 μeV。不能因为8/16点接近,就把跨实现的剩余数值差自动写成零;相关能积分与RI等数值环节还要分别检查。

实际SOS积分点变化,以及与1.3倍RI-MP2 OS的非零剩余差;两图单位不同

5 换体系时#

先用一致的HF轨道、轨道基组和RI基组构造输入,再检查积分点数、GPW网格与能量差。Minimax规则并不保证任意点数都可用,应按当前版本支持的规则选择。本文是闭壳层单点操作例,不把它直接扩展为所有开壳层、周期或梯度设置。

提取与重画#

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。

Laplace SOS入口与积分定义见CP2K2026.2官方说明。

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

查看配图

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

100%查看原图 ↗