CP2K SOS-MP2与积分点
原生Laplace SOS-MP2、1.3倍OS缩放、8/16点对照以及与RI-MP2分项的数值残差。
阅读本篇目录
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等数值环节还要分别检查。

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官方说明。