CP2K PBE0与ADMM实际对照
同一水二聚体的完整精确交换、三种辅助基组和MO_DIAG净化,完整输入与实测差值。
阅读本篇目录
ADMM用较小辅助基组处理精确交换,并加入交换修正。本篇在同一水二聚体上计算完整PBE0、cFIT3/pFIT3/aug-pFIT3辅助基组,以及pFIT3下的MO_DIAG净化对照,练习如何设置和检查近似带来的能量变化。
下载完整水分子/二聚体输入、实际日志与绘图脚本,解压后进入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线程,依次完成9个条件及分析。核时模板使用gpu-8p100-hs;套餐用户用yskit生成所属分区脚本,在已分配资源中运行bash run.sh。不要在登录节点计算。
已分配多卡资源时,脚本按可见GPU和CPU亲和范围安排每卡一个条件;不自动申请额外资源。只算一个条件,可在已分配资源中运行bash run.sh加CASES.json中的名称。新结果写入work,本文原始结果在reference;已有work时重新解压。
2 先固定不应变化的部分#
沿用固定水二聚体结构,但本篇五个条件均不加D3。轨道基组DZVP-MOLOPT-SR-GTH、GTH-PBE赝势、400/50 Ry网格、16 Å非周期MT盒、EPS_SCF=1E-8保持一致,精确交换比例0.25,EPS_SCHWARZ=1E-10。
完整HFX指在当前轨道基组与数值参数下不使用ADMM的交换计算,不是完整基组极限或没有任何数值近似的精确电子能量。
3 完整ADMM输入#
完整input.inp:dimer-pbe0-admm-pfit3#
&GLOBAL
PROJECT water
RUN_TYPE ENERGY
PRINT_LEVEL MEDIUM
&END GLOBAL
&FORCE_EVAL
METHOD QS
&DFT
BASIS_SET_FILE_NAME ../DATA/BASIS_MOLOPT
POTENTIAL_FILE_NAME ../DATA/GTH_POTENTIALS
BASIS_SET_FILE_NAME ../DATA/BASIS_ADMM
&AUXILIARY_DENSITY_MATRIX_METHOD
METHOD BASIS_PROJECTION
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC PBEX
EXCH_SCALING_MODEL NONE
&END AUXILIARY_DENSITY_MATRIX_METHOD
&QS
EPS_DEFAULT 1.0E-12
&END QS
&MGRID
CUTOFF 400
REL_CUTOFF 50
&END MGRID
&SCF
EPS_SCF 1.0E-8
MAX_SCF 100
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
&END OT
&END SCF
&XC
&HF
FRACTION 0.25
&SCREENING
EPS_SCHWARZ 1.0E-10
&END SCREENING
&MEMORY
MAX_MEMORY 512
&END MEMORY
&INTERACTION_POTENTIAL
POTENTIAL_TYPE COULOMB
&END INTERACTION_POTENTIAL
&END HF
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&END DFT
&SUBSYS
&CELL
ABC 16 16 16
PERIODIC NONE
&END CELL
&TOPOLOGY
COORD_FILE_NAME geometry.xyz
COORD_FILE_FORMAT XYZ
&END TOPOLOGY
&KIND O
BASIS_SET DZVP-MOLOPT-SR-GTH
BASIS_SET AUX_FIT pFIT3
POTENTIAL GTH-PBE-q6
&END KIND
&KIND H
BASIS_SET DZVP-MOLOPT-SR-GTH
BASIS_SET AUX_FIT pFIT3
POTENTIAL GTH-PBE-q1
&END KIND
&END SUBSYS
&PRINT
&FORCES ON
&END FORCES
&END PRINT
&END FORCE_EVAL
这里AUX_FIT是ADMM交换拟合基组;RI-MP2教程中的RI_AUX用于相关能积分,两个标签不能互换。轨道基组仍是DZVP-MOLOPT-SR-GTH。
完整PBE0对照保留XC_FUNCTIONAL PBE0和HF/FRACTION=0.25,去掉AUXILIARY_DENSITY_MATRIX_METHOD及KIND中的AUX_FIT;完整文件为inputs/dimer-pbe0-exact/input.inp。
4 一次只比较明确的设置#
第一组固定BASIS_PROJECTION、净化NONE、交换修正PBEX与缩放NONE,分别使用cFIT3、pFIT3、aug-pFIT3。第二组保持pFIT3不变,仅将净化改为MO_DIAG:
&AUXILIARY_DENSITY_MATRIX_METHOD
METHOD BASIS_PROJECTION
ADMM_PURIFICATION_METHOD MO_DIAG
EXCH_CORRECTION_FUNC PBEX
EXCH_SCALING_MODEL NONE
&END AUXILIARY_DENSITY_MATRIX_METHOD
净化方式属于ADMM近似定义的一部分;不能把更换净化与只扩大辅助基组混作同一种收敛测试。这里明确给出各参数,没有让ADMM_TYPE快捷方式再覆盖它们。
5 从日志确认生效,并比较实际结果#
grep -E 'ADMM\||Auxiliary Fit Basis Set|SCF run converged|ENERGY\|' work/cases/dimer-pbe0-admm-pfit3/output.log
grep -E 'purification|correction term|ENERGY\|' work/cases/dimer-pbe0-admm-pfit3-purified/output.log
cat work/analysis/hybrid-dispersion.csv
| 交换处理 | 辅助基组 | 净化方式 | 总能/Hartree | 相对完整HFX/meV |
|---|---|---|---|---|
| 完整HFX | — | — | -34.431807459027 | 0.0000 |
| ADMM | cFIT3 | NONE | -34.427321081586 | 122.0805 |
| ADMM | pFIT3 | NONE | -34.429085802628 | 74.0600 |
| ADMM | aug-pFIT3 | NONE | -34.427589022716 | 114.7895 |
| ADMM | pFIT3 | MO_DIAG | -34.435183423469 | -91.8647 |

当前例子的差值达到数十至上百meV。它说明不能只看到SCF收敛,就把当前ADMM设置当成完整HFX的无损替代。差值有正有负,增大辅助基组也未在这几个设置中呈现简单单调规律;ADMM不是用绝对能量越低就判定越好的变分排序。
本表是一个构型的总能差,不是反应能或势垒误差,也没有测出大体系加速比。SCF迭代数只表明各自收敛过程,不能拿这几个很短的不同设置任务直接宣称性能提升。
6 给实际任务选择设置#
先选小而有代表性的若干构型,用同一轨道基组的完整HFX作为数值参照,再检查ADMM对目标能量差、结构或力的影响。需要反应能时,用一致ADMM定义算所有反应物和产物;不能按不同构型随意更换净化方法。
本文为单点能对照,不直接作为ADMM分子动力学模板。MD涉及连续稳定的力与能量,官方手册对拟合/净化设置另有要求,应按对应方法重新核对。
提取表格、检查结果与重画#
module load ase/3.29.0
python analyze.py work
python plot_results.py work
python check_results.py work
cat work/analysis/hybrid-dispersion.csv
ls work/figures
CSV的能量列使用Hartree;JSON保留固定几何相互作用能、D3分项、ADMM相对完整交换的差值。看本文数据时将work换成reference。
参数含义和命名变体见CP2K2026.2 ADMM官方说明。