CP2K水二聚体与D3色散
实际固定几何单体/二聚体PBE和D3对照,完整输入、终端提取与能量拆分。
阅读本篇目录
给分子间相互作用加D3时,不只要在XC中增加几行,还要为组合体系和单体采用一致设置。本篇用固定水二聚体演示如何准备四个输入、读出原生色散项并计算相互作用能。
下载完整水分子/二聚体输入、实际日志与绘图脚本,解压后进入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 先看结构与能量定义#
从水分子振动例子的实际优化单体出发,保持每个水分子的内部结构,旋转其中一个,使一根O—H朝向另一分子,并设置O···O=2.90 Å。这里没有重新优化二聚体。
6
O 8.000000000000000 8.000000000000000 6.000000000000000
H 8.000000000000000 8.000000000000000 6.970101302545075
H 7.999999851221545 7.059423260433508 5.762488033741113
O 8.000000000000000 8.000000000000000 8.900000000000000
H 8.000000003400000 8.765345449000000 9.496106434200000
H 7.999999851999999 7.234654621300000 9.496106524400000

所有条件使用16 Å非周期MT盒、PBE/GTH-PBE、DZVP-MOLOPT-SR-GTH、400/50 Ry网格、EPS_SCF=1E-8。单体内部几何相同,计算E(二聚体)−2E(单体)。这是本例有限基组下的固定几何相互作用能:未扣除基组重叠误差,也未加入变形能、零点能和热贡献,不把它称为实验解离自由能。
两个分子在盒中的位置和取向不同,有限实空间网格可能留下微小平移/旋转误差。定量结合能应继续检查网格、盒长、基组和BSSE;这里先把四个输入与能量账目跑通。
3 完整D3输入#
完整input.inp:dimer-pbe-d3#
&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
&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
&VDW_POTENTIAL
POTENTIAL_TYPE PAIR_POTENTIAL
&PAIR_POTENTIAL
TYPE DFTD3
PARAMETER_FILE_NAME ../DATA/dftd3.dat
REFERENCE_FUNCTIONAL PBE
&END PAIR_POTENTIAL
&END VDW_POTENTIAL
&XC_FUNCTIONAL PBE
&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
POTENTIAL GTH-PBE-q6
&END KIND
&KIND H
BASIS_SET DZVP-MOLOPT-SR-GTH
POTENTIAL GTH-PBE-q1
&END KIND
&END SUBSYS
&PRINT
&FORCES ON
&END FORCES
&END PRINT
&END FORCE_EVAL
TYPE DFTD3在本版本指零阻尼D3;DFTD3(BJ)是另一种阻尼选择,不能只改文章中的名字而沿用结果。REFERENCE_FUNCTIONAL PBE与本篇参考泛函对应;换成其他泛函时要重新匹配参数。
去掉整个VDW_POTENTIAL块就是同几何PBE条件。单体文件在inputs/monomer-pbe与inputs/monomer-pbe-d3;不能从其他教程拿不同盒长或不同几何的单体总能来相减。
4 读取原生色散与最终总能#
grep -E 'SCF run converged|Dispersion energy:|ENERGY\|' work/cases/dimer-pbe-d3/output.log
grep -E 'Dispersion energy:|ENERGY\|' work/cases/monomer-pbe-d3/output.log
cat work/analysis/hybrid-dispersion.csv
| 方法 | 单体总能/Hartree | 二聚体总能/Hartree | 固定几何相互作用能/eV |
|---|---|---|---|
| PBE | -17.219841090000 | -34.446368900001 | -0.181955 |
| PBE+D3 | -17.219845059299 | -34.447027274652 | -0.199654 |
本次二聚体原生D3项为-0.000658374651 Hartree;单体也有很小的分子内色散项。因此分子间D3贡献使用E_D3(二聚体)−2E_D3(单体),为-0.000650436052 Hartree,即-17.6993 meV。
最终ENERGY已包含色散,不要把原生Dispersion energy再加一遍。程序同时核对D3条件与PBE条件的差值,确认这部分分项和完整总能变化相符。

5 换成自己的分子对#
分别准备AB、A、B的XYZ和输入,使用同一泛函、赝势、轨道基组、色散参数与数值精度,计算E(AB)−E(A)−E(B)。如果A、B不同,不能继续写2E(单体)。如果要计算从各自松弛构型组装的结合能,还要明确是否包含单体形变。
表中的变化仅说明当前构型与这套PBE+D3模型的电子能量;不能凭一个固定构型的能量下降,就判定吸附构型、相稳定性或实验结合强度已经确定。
提取表格、检查结果与重画#
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。
阻尼与泛函匹配见CP2K官方D3教学材料。继续看杂化泛函与ADMM实际对照。