CP2K专题

CP2K RI-MP2与自旋分量缩放

从HF参考到RI-MP2、SCS-MP2,完整输入、相关能网格对照和实际自旋分项。

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

需要在常见DFT之外计算电子相关能时,可以从小分子的RI-MP2单点开始。本篇用同一优化水结构,演示HF参考、RI辅助基组、相关能网格扫描,以及CP2K原生SCS-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线程,依次运行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 结构、基组与边界要一致#

本例采用振动教程中实际优化的水分子几何,所有条件保持同一内部结构,放入14 Å非周期立方盒并居中,Poisson使用WAVELET。HF和RI-MP2均用DZVP-GTH轨道基组、GTH-HF赝势;RI_DZVP-GTH为RI_AUX辅助基组,来自配套HFX_BASIS数据。

本例有23个轨道基函数、4个占据轨道、19个虚轨道和83个RI辅助函数。只使用小基组用于认识操作;轨道基组、RI辅助基组、盒长和相关能积分网格是不同的精度因素。

DFT/MGRID固定300/50 Ry,EPS_SCF=1E-7;另在WF_CORRELATION/INTEGRALS/WFC_GPW中检查200、300、400 Ry,REL_CUTOFF均50 Ry。改变后者不会把轨道基组从DZVP变成三重ζ。

完整input.inp:water-ri-mp2-wfc300#

&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
        &RI_MP2
        &END RI_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

XC_FUNCTIONAL NONE与HF/FRACTION=1构成HF参考;增加WF_CORRELATION/RI_MP2计算相关能。MEMORY=200是这部分每个MPI进程的MiB内存预算,不是整个进程实际占用的上限;NUMBER_PROC=1是本例分组设置,不能与MPI总数随意不匹配。

要只算HF,使用inputs/water-hf-reference/input.inp;该输入保留相同基组、赝势、结构和边界,仅去掉WF_CORRELATION。

3 读HF、相关能与最终总能#

grep -E 'SCF run converged|Total energy:|Second order perturbation energy|ENERGY\|' work/cases/water-ri-mp2-wfc300/output.log
grep -E 'MP2 Energy S[OS]|Scaling factor' work/cases/water-ri-mp2-wfc300/output.log

300 Ry条件的HF参考为-16.898931441300 Hartree,MP2相关能为-0.199837286225 Hartree,最终总能为-17.098768727525 Hartree。

这里E(RI-MP2)=E(HF)+E(corr)。日志末尾ENERGY行已经是组合后的总能,不要再加一次相关能。

4 看网格变化,而不是只看一次SCF#

相关能网格截断/Ry RI-MP2相关能/Hartree 最终总能/Hartree 相对本次400 Ry相关能/μeV
200 -0.199836637209 -17.098768078509 16.244101
300 -0.199837286225 -17.098768727525 -1.416520
400 -0.199837234169 -17.098768675469 0.000000

相同分子、同一轨道和辅助基组下的实际RI-MP2网格对照

300与400 Ry相关能在本小例中相差约1.42 μeV。右图只是相对本次最细网格的变化,不是相对精确解的误差;不能据此认定换成大分子也不需要检查网格,更不能认定DZVP已经达到完备基组极限。

5 SCS-MP2:让程序真正计算加权相关能#

在WF_CORRELATION层增加以下两行,其他设置与300 Ry条件保持一致:

SCALE_S 1.2
SCALE_T 0.3333333333333333

CP2K中SCALE_S对应opposite-spin,日志记作SO或singlet;SCALE_T对应same-spin,日志记作SS或triplet。本例未缩放分项为OS=-0.150067251075、SS=-0.049770035149 Hartree。原生SCS计算得到:

E(corr,SCS)=1.2×OS+(1/3)×SS=-0.196670713007 Hartree;加上同一HF参考后,总能为-17.095602154307 Hartree。

inputs/water-scs-mp2-wfc300/input.inp是完整输入,reference有独立运行日志。OS/SS是此闭壳层公式中的相关能分解,并不是为水分子另设两个电子多重度。

实际水分子与原生RI-MP2和SCS-MP2自旋分项

6 换成自己的体系#

替换H2O_gas.xyz,保持XYZ首行原子数正确,并更新每种元素KIND中的轨道基组、RI_AUX和赝势。检查电荷、多重度、电子数、虚轨道以及非周期盒是否留有足够空间。需要能量差时,所有构型用同一套方法与数值参数。

本文只演示闭壳层非周期水分子的单点相关能,没有把该输入当作周期材料、开壳层、梯度或结构优化的通用模板。GPU构建在P100上运行不等于所有相关能步骤都在GPU执行;本次也没有用短任务时间声称GPU加速比。

提取、检查和重画#

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。

RI方法与可用梯度分支见CP2K2026.2 MP2官方说明。继续看RI-RPA积分与能量读取。

继续:其他MP2实现#

常规MP2与GPW实现在同一HF参考、同一轨道基组下实际对照canonical、GPW与RI;SOS-MP2与积分点运行原生Laplace SOS8/16点,区分积分点稳定与跨实现剩余差。附完整输入、终端提取和实际图片。

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

查看配图

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

100%查看原图 ↗