CP2K专题

CP2K RPA辅助基组与实现选择

固定水模型的83、115、144个RI函数与两套交换修正路径,完整AUTO_BASIS输入和实际差值。

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

RPA的轨道基组、RI辅助表示、数值积分和交换修正路径是不同设置。本篇固定结构与PBE参考,实际比较指定RI基组和自动辅助基组,查看改变辅助表示后哪些能量项一起发生变化。

下载完整输入、实际日志和分析绘图脚本,解压进入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个条件及分析:10个交换修正/辅助表示条件,加上RI-RPA教程的既有同条件RPA参照;公开流程会重算参照,它不计作新的科学条件。

套餐用户用yskit生成所属分区,在已分配资源中保留bash run.sh。多卡只使用已分配、CUDA可见且CPU亲和允许的资源,每卡同时一个任务。不要在登录节点计算,已有work重新解压。inputs可修改;reference是本文实际输出;work是新结果。

整组包含多种数值设置;只先跑一个可在sbatch后传CASES.json中的名称。例如:

sbatch submit.slurm water-rpa-sosex-q16-hfx

单条件得到自己的表格行,完整对照图需要运行整组。

2 指定基组与自动辅助基组#

指定RI_DZVP-GTH时,KIND中写BASIS_SET RI_AUX RI_DZVP-GTH,本水模型共有83个RI函数。改用自动辅助基组时,在DFT层设置AUTO_BASIS RI_AUX LARGE,并去掉各KIND中显式的RI_AUX行,保留原来的DZVP-GTH轨道基组和GTH-PBE赝势。

LARGE与HUGE控制自动辅助基组大小,不是把水分子换成更大的体系。本例生成115与144个RI函数。三个名称代表不同辅助构造,本篇不把它们当成已经证明收敛的严格嵌套基组阶梯。

完整input.inp:water-axk-auto-large#

&GLOBAL
  PRINT_LEVEL MEDIUM
  PROJECT RI_RPA_H2O
  RUN_TYPE ENERGY
  &TIMINGS
    THRESHOLD 0.01
  &END TIMINGS
&END GLOBAL

&FORCE_EVAL
  METHOD Quickstep
  &DFT
    AUTO_BASIS RI_AUX LARGE
    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
          &EXCHANGE_CORRECTION AXK
            USE_HFX_IMPLEMENTATION FALSE
          &END EXCHANGE_CORRECTION
          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
      POTENTIAL GTH-PBE-q1
    &END KIND
    &KIND O
      BASIS_SET 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

HUGE完整文件为inputs/water-axk-auto-huge/input.inp,仅把自动辅助大小改成HUGE;对应HFX文件还显式设置USE_HFX_IMPLEMENTATION TRUE。两种自动表示也对SOSEX作了LARGE对照,实际输入和结果都在资料包中。

3 从原生日志读取真实函数数#

grep -E 'Number of auxiliary basis functions|RI-RPA energy|RI-RPA-AXK energy|EXX energy|ENERGY\|' work/cases/water-axk-auto-large/output.log
grep -E 'Number of auxiliary basis functions|RI-RPA energy|RI-RPA-AXK energy|ENERGY\|' work/cases/water-axk-auto-huge-hfx/output.log
cat work/analysis/rpa-exchange.csv
辅助表示 实际RI函数数 RPA相关能/Hartree 张量AXK项/Hartree HFX AXK项/Hartree
RI_DZVP-GTH 83 -0.302629917002 0.086508417995 0.135486541911
AUTO LARGE 115 -0.301964332516 0.085727786643 0.134846321069
AUTO HUGE 144 -0.302211017771 0.085941759414 0.135077312712

实际辅助表示改变后的RPA相关能,以及两条路径的AXK原生修正项

LARGE/HUGE下,两条路径之间仍有明显差别。本组没有证明它们数值等价,也不把某个单点总能更低当成准确度结论;实际任务应固定一种实现并针对目标性质继续检查参数。

4 不要跨辅助表示拼接能量#

改变RI辅助表示后,RPA相关能本身也会变化。因此每个条件都使用自己的E(PBE)、PBE交换关联、EXX、RPA相关及交换修正组成最终总能。不能把RI_DZVP-GTH的RPA底座与AUTO LARGE的AXK项拼在一起。

下面用标准Python读取脚本生成的CSV,核对一个AUTO HUGE/HFX条件:

python3 - <<'PY'
import csv
with open('work/analysis/rpa-exchange.csv') as f:
    row = next(r for r in csv.DictReader(f)
               if r['name'] == 'water-axk-auto-huge-hfx')
base = (float(row['SCF_Ha']) - float(row['PBE_XC_Ha'])
        + float(row['EXX_Ha']) + float(row['RPA_correlation_Ha']))
combined = base + float(row['exchange_correction_Ha'])
print('reconstructed / hartree:', combined)
print('native total / hartree:', row['energy_Ha'])
PY

5 选择下一步检查#

确认轨道/辅助基组与元素匹配,保持不同构型的定义一致,再检查网格、积分点和辅助表示对目标能量差的影响。辅助函数数更多不自动保证目标性质更准确,也不能用本小分子的数值变化直接给其他材料指定参数。

本篇处理的是单点输入、能量组成与数值设置的实际影响,没有给出收敛的水合能、反应势垒或完整基组极限结果。

提取、检查与重画#

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

CSV每行给出SCF、PBE交换关联、EXX、RPA相关、交换修正和最终总能,单位Hartree;JSON保存各实现对照。只看本文数据时将work换成reference。

AUTO_BASIS入口见CP2K2026.2 DFT输入,交换路径见RPA官方说明。

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

查看配图

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

100%查看原图 ↗