CP2K专题

CP2K密度嵌入:分区、嵌入势与能量拼接

用真实水–氢分子模型说明多FORCE_EVAL映射、低层/高层计算、密度阈值和能量重建。

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

下载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固定版本嵌入示例。

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

查看配图

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

100%查看原图 ↗