CP2K专题

CP2K RI-RPA积分与单激发修正

PBE参考、精确交换、Clenshaw–Curtis和Minimax对照,及实际RSE能量账目。

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

RI-RPA使用数值频率积分计算相关能。这个小例子从同一水分子的PBE参考开始,比较积分点数和Minimax设置,再启用RSE修正,重点练习完整输入和总能量读取。

下载完整输入、实际日志、提取及绘图脚本,解压后进入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线程,依次运行11个短条件,最后自动提取、画图。每个条件独立从原子密度开始,不需要下载波函数。若在已分配的多卡资源中运行,脚本按可见GPU和CPU亲和范围把条件分配到各卡,每卡同时一个任务;不会自动申请额外资源。

核时模板分区为gpu-8p100-hs;套餐用户用yskit生成所属分区脚本,在已分配资源里保留 bash run.sh。不要在登录节点运行计算。已有work时,请重新解压。

inputs存放待算输入;reference保存本文真实原始结果;新结果写入work/cases,表格在work/analysis,图片在work/figures。只运行一个条件时可传CASES.json中的名字,例如在已分配资源中:

bash run.sh water-ri-mp2-wfc300

单条件只产生该条件的数据,完整参数对照和组合图需要运行all,也就是不加名称的默认流程。

2 先区分参考态与最终方法#

结构与RI-MP2教程相同,仍是14 Å非周期WAVELET盒、DZVP-GTH轨道基组、RI_DZVP-GTH辅助基组、300/50 Ry网格和EPS_SCF=1E-7。本篇参考态使用PBE和GTH-PBE赝势;RI-MP2篇采用HF/GTH-HF,因此两篇不同参考势的绝对总能不能用来给方法排准确度。

PBE先生成参考轨道,RI_RPA中的HF块计算该参考上的精确交换,不等于把外层PBE自洽计算换成HF。完整16点输入如下:

完整input.inp:water-ri-rpa-q16#

&GLOBAL
  PRINT_LEVEL MEDIUM
  PROJECT RI_RPA_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/GTH_POTENTIALS
    &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
      &PRINT
        &RESTART OFF
        &END RESTART
      &END PRINT
    &END SCF
    &XC
      &WF_CORRELATION
        MEMORY 200.
        NUMBER_PROC 1
        &INTEGRALS
          ERI_METHOD GPW
          &WFC_GPW
            CUTOFF 300
            REL_CUTOFF 50
          &END WFC_GPW
        &END INTEGRALS
        &RI_RPA
          RPA_NUM_QUAD_POINTS 16
          &HF
            FRACTION 1.0000000
            &SCREENING
              EPS_SCHWARZ 1.0E-8
              SCREEN_ON_INITIAL_P FALSE
            &END SCREENING
          &END HF
        &END RI_RPA
      &END WF_CORRELATION
      &XC_FUNCTIONAL PBE
      &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-PBE-q1
    &END KIND
    &KIND O
      BASIS_SET DZVP-GTH
      BASIS_SET RI_AUX RI_DZVP-GTH
      POTENTIAL GTH-PBE-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

RPA_NUM_QUAD_POINTS是本安装版本保留的QUADRATURE_POINTS别名。本组未开启Minimax时使用默认Clenshaw–Curtis。积分点越多不表示原子、k点或轨道越多,改变的是相关能频率积分的数值精度。

3 用三个积分点条件检查变化#

积分方法 积分点 RPA相关能/Hartree 最终总能/Hartree
Clenshaw–Curtis 8 -0.302622178579 -17.200394098505
Clenshaw–Curtis 16 -0.302629917002 -17.200401836929
Clenshaw–Curtis 24 -0.302629918572 -17.200401838498
Minimax 8 -0.302629915751 -17.200401835678

16与24点相关能在本小例中相差约1.57E-9 Hartree。这个水分子对照不代替其他体系的积分测试;图中CC24只是本次较细参照,并不是解析精确值。

实际频率积分对照与RPA总能构成;左轴使用symlog展示不同量级变化

4 正确读取RPA总能量#

grep -E 'SCF run converged|Exchange-correlation energy:|Total energy:|RI-RPA energy|EXX energy|ENERGY\|' work/cases/water-ri-rpa-q16/output.log
能量项 本次数值/Hartree
PBE总能 -17.204952570025
PBE交换关联项 -4.240430867366
精确交换项EXX -3.933250217267
RPA相关能 -0.302629917002
最终RPA总能 -17.200401836929

本例的能量组合是E(RPA)=E(PBE)−E(XC,PBE)+E(EXX)+E(corr,RPA)。先移除已经包含的PBE交换关联,再加入精确交换与RPA相关。脚本逐项核对这个等式,不能把PBE总能与RPA相关能直接相加,也不能在最终ENERGY上重复加EXX。

5 Minimax:方法改变后独立比较#

在RI_RPA里开启:

&RI_RPA
 RPA_NUM_QUAD_POINTS 8
 MINIMAX_QUADRATURE TRUE
 ! 其余HF等设置保持完整输入中的原样
&END RI_RPA

这一段仅说明改动位置;完整可运行文件为inputs/water-ri-rpa-minimax8/input.inp。Minimax与Clenshaw–Curtis的积分构造不同,不能把两种方法的“8点”看成同一网格。也不是任意积分点数量都有预优化规则,应以本版本支持数量为准。

本例Minimax8与CC24的相关能差约2.82E-9 Hartree。不要只因为这个小分子的数值接近,就把8点写成所有体系的默认收敛值。

6 RSE:同一PBE参考上增加修正#

保留16点Clenshaw–Curtis与同一HF设置,在RI_RPA中加RSE TRUE:

完整input.inp:water-ri-rpa-rse-q16#

&GLOBAL
  PRINT_LEVEL MEDIUM
  PROJECT RI_RPA_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/GTH_POTENTIALS
    &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
      &PRINT
        &RESTART OFF
        &END RESTART
      &END PRINT
    &END SCF
    &XC
      &WF_CORRELATION
        MEMORY 200.
        NUMBER_PROC 1
        &INTEGRALS
          ERI_METHOD GPW
          &WFC_GPW
            CUTOFF 300
            REL_CUTOFF 50
          &END WFC_GPW
        &END INTEGRALS
        &RI_RPA
          RSE TRUE
          RPA_NUM_QUAD_POINTS 16
          &HF
            FRACTION 1.0000000
            &SCREENING
              EPS_SCHWARZ 1.0E-8
              SCREEN_ON_INITIAL_P FALSE
            &END SCREENING
          &END HF
        &END RI_RPA
      &END WF_CORRELATION
      &XC_FUNCTIONAL PBE
      &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-PBE-q1
    &END KIND
    &KIND O
      BASIS_SET DZVP-GTH
      BASIS_SET RI_AUX RI_DZVP-GTH
      POTENTIAL GTH-PBE-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
grep -E 'singles correction|RI-RPA energy|EXX energy|ENERGY\|' work/cases/water-ri-rpa-rse-q16/output.log

本次Full singles correction (RSE)=-0.002834080403 Hartree,最终总能=-17.203235917331 Hartree。总能比同参数未启用RSE的条件低约0.077119 eV,恰好对应这一原生修正项。

日志还会打印Diagonal singles correction (dRSE),它是另一种近似分量;本例最终能量采用Full singles correction,不能把两个数字同时加进去。RSE是非HF参考上的单激发相关修正,不是重新进行一次HF几何优化。

原生Full RSE项与两个完整总能之差的实际对照

7 换体系时先检查哪些地方#

修改XYZ和元素KIND后,重新检查参考泛函与赝势、轨道/RI基组、盒长、SCF与积分点数;比较反应物、产物或构型时保持这些设置一致。本篇是基于PBE轨道的有限基组水分子单点,没有给出周期固体、金属、RPA梯度、AXK、SOSEX或低标度算法的通用输入。

提取、检查和重画#

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

CSV逐列给出SCF参考、最终总能、相关能、自旋分项、精确交换、PBE交换关联和RSE项,单位为Hartree;空白表示该方法不使用这一项。JSON保留各条件参数和核对结果。只查看本文数据时将work改成reference。

积分、RSE与其他扩展的定义见CP2K2026.2 RPA官方说明。

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

查看配图

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

100%查看原图 ↗