CP2K密度嵌入:分区、嵌入势与能量拼接
用真实水–氢分子模型说明多FORCE_EVAL映射、低层/高层计算、密度阈值和能量重建。
阅读本篇目录
下载CP2K输运与密度嵌入完整输入、真实输出和绘图程序,保存为example.zip:
python3 -m zipfile -e example.zip .
cd cp2k-negf-embedding-examples
bash results.sh
bash plot.sh
前两条整理文件;results.sh读参考数据,plot.sh从真实CSV和密度网格画图,不启动电子计算。完整输入在inputs/,原生数值在reference-results/,11份CSV在data/。本组采用CP2K2026.2和官方小模型,供实际操作参考,不作为收敛后的材料性质或性能基准。
1. 哪部分用较高层级方法#
本例把5原子模型分为A区水分子和B区氢分子:A为原子1–3,B为原子4–5。低层采用PBE,全体系先建立参考电子密度;随后优化使两个分区与参考密度相容的嵌入势,最后将B区换成含25%HF交换的PBE0计算,并组合总能量。
这是5Å周期小胞中的操作模型,100Ry、cc-TZ/RI_TZ、GTH-HF-q6/q1和较松的源示例密度阈值。它不等同于充分隔离的水–氢分子结合能研究,也不能把其阈值用于所有生产任务。

本篇是左侧模型;右侧FAB模型的几何、盒子和网格不同,后篇另讲,不能按两者总能量大小给算法排名。
2. 查看输入并理清5个计算块#
cat inputs/water-H2-embed-p100/input.inp
全文件包含5个顶层FORCE_EVAL:第1个是EMBED组合器,其余依次为低层A、低层B、低层A+B参考、高层B。
&GLOBAL
PROJECT h2o_h2_pbe
RUN_TYPE ENERGY
PRINT_LEVEL MEDIUM
&END GLOBAL
&MULTIPLE_FORCE_EVALS
FORCE_EVAL_ORDER 2 3 4 5
MULTIPLE_SUBSYS T
&END MULTIPLE_FORCE_EVALS
&FORCE_EVAL
METHOD EMBED
&EMBED
NGROUPS 1
&MAPPING
&FORCE_EVAL 1
&FRAGMENT 1
1 3
MAP 1
&END FRAGMENT
&END FORCE_EVAL
&FORCE_EVAL 2
&FRAGMENT 1
1 2
MAP 2
&END FRAGMENT
&END FORCE_EVAL
&FORCE_EVAL 3
&FRAGMENT 1
1 5
MAP 3
&END FRAGMENT
&END FORCE_EVAL
&FORCE_EVAL 4
&FRAGMENT 1
1 2
MAP 2
&END FRAGMENT
&END FORCE_EVAL
&FORCE_EVAL_EMBED
&FRAGMENT 1
1 3
&END FRAGMENT
&FRAGMENT 2
4 5
&END FRAGMENT
&FRAGMENT 3
1 5
&END FRAGMENT
&END FORCE_EVAL_EMBED
&END MAPPING
&END EMBED
# 本块SUBSYS及后4个完整FORCE_EVAL均在下载输入中
&END FORCE_EVAL
注意:MAPPING内部从1到4编号的是上面执行顺序中的4项任务,不是把最外层EMBED组合器再算一次。换成自己的体系时,A/B原子顺序、每个分区的COORD和这份映射必须一起修改。
3. 嵌入势由参考全体系块控制#
低层全体系的QS设置:
&QS
METHOD GPW
EPS_DEFAULT 1.0E-15
EPS_PGF_ORB 1.0E-30
REF_EMBED_SUBSYS .TRUE.
&OPT_EMBED
DENS_CONV_INT 0.5
DENS_CONV_MAX 0.025
GRID_OPT .FALSE.
N_ITER 50
OPTIMIZER LEVEL_SHIFT
POT_GUESS RESP
REG_LAMBDA 0.00001
&END OPT_EMBED
&END QS
DENS_CONV_INT和DENS_CONV_MAX是这里的密度差停止条件,不是离子受力,也不是SCF能量误差。源例的RESP初始势及其PROPERTIES/RESP设置已完整保留,不能只复制上面一个QS片段而省掉相关块。
高层B块标记HIGH_LEVEL_EMBED_SUBSYS,其实际交换设置为HF占比0.25、PBE交换0.75和PBE相关1.0,并采用半径2.45Å截断的HF相互作用;完整参数见输入末段。
4. 使用对应构建提交#
这个LEVEL_SHIFT实例使用cp2k/2026.2-p100,GNU13.3、MPICH5.0.1、CUDA12.9、OpenBLAS0.3.33、ScaLAPACK2.2.3。请用所附P100入口,1MPI×2OpenMP,一张P100;不要直接换成另一构建来推断兼容性或加速比。
cat job-levelshift.slurm
sbatch job-levelshift.slurm
5. 同时读主输出和分任务输出#
grep 'Total FORCE_EVAL' reference-results/water-H2-embed-p100/output.log
grep -E 'SCF run converged|Optimize embedding|Convergence in|Total energy:' reference-results/water-H2-embed-p100/*r-1.out
cat data/embedding-energies.csv
主output.log给出组合总能量;各层SCF和嵌入迭代细节在*r-1.out里。不要因主文件没有常规SCF迭代行,就以为没有计算。
| 能量项 | Hartree |
|---|---|
| 低层全体系参考Eref | −18.32292998637595 |
| 嵌入后的低层H₂ | −1.14654235234729 |
| 同一嵌入势下的高层H₂ | −1.14524875152882 |
| 原生EMBED总能量 | −18.321636385557486 |
本例可按Eref + Ehigh(B,embed) − Elow(B,embed)独立重建,差约3.6×10⁻¹⁵Hartree。这里相减的是同一嵌入条件下的两层B区能量,不能换成随意单独计算的孤立H₂能量。
6. 检查密度阈值后再提升精度#
本例2次嵌入迭代后,原生最大密度差0.020741574低于源阈值0.025,积分密度差0.4919179605低于0.5,满足的是这份演示输入的停止条件。这些阈值较松,实际定量能量、力或性质研究需进一步收紧并检查变化。

新计算和另外两个章节的模型都完成后:
bash extract.sh
bash plot.sh --data work/analysis --output figures-new
继续看FAB同层级对照与密度文件。模型及映射来源:CP2K固定版本嵌入示例。