CP2K RI-MP2与自旋分量缩放
从HF参考到RI-MP2、SCS-MP2,完整输入、相关能网格对照和实际自旋分项。
阅读本篇目录
需要在常见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 |

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是此闭壳层公式中的相关能分解,并不是为水分子另设两个电子多重度。

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点,区分积分点稳定与跨实现剩余差。附完整输入、终端提取和实际图片。