CP2K专题

CP2K核磁响应:从水分子计算屏蔽张量

完整LINEAR_RESPONSE输入、实际NMR屏蔽张量与提取命令,区分屏蔽常数、化学位移及GPW价电子结果。

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

CP2K可以在收敛基态上求解外场微扰响应。这里用原生LINEAR_RESPONSE / LINRES / NMR计算一个水分子的磁屏蔽张量,重点是输入放在哪里、怎样提交和如何读取结果。

1. 下载与实际结果#

下载完整输入、原生结果和绘图包,保存为example.zip:

python3 -m zipfile -e example.zip .
cd cp2k-linear-response-nmr
bash results.sh
bash read.sh
bash plot.sh

这些命令直接读取随包实算结果;reference-results/存原生输出,data/存CSV,figures/存图片。read.sh和plot.sh默认使用集群ASE环境的Python,无需重新计算。自己的Python须安装NumPy、ASE和Matplotlib,可用YS_ANALYSIS_PYTHON指定解释器。

水分子实际屏蔽常数和H1张量

2. 体系与方法#

本例3原子水置于5 Å周期立方盒,BLYP、DZVP-GTH基组、GTH-BLYP赝势,GPW截断150 Ry。基态和线性响应收敛阈值均1E-6,最大100次。它是低成本操作演示,5 Å周期盒与150 Ry未做收敛扫描,不能视作孤立水高精度NMR数据。

GPW赝势结果不包含完整全电子核区响应,尤其O的屏蔽值不能直接与全电子实验数据比较。

3. 完整输入#

cat inputs/water-GPW/input.inp
&GLOBAL
  PRINT_LEVEL LOW
  PROJECT H2O-NMR-1
  RUN_TYPE LINEAR_RESPONSE
&END GLOBAL

&FORCE_EVAL
  &DFT
    BASIS_SET_FILE_NAME GTH_BASIS_SETS
    POTENTIAL_FILE_NAME GTH_POTENTIALS
    &MGRID
      CUTOFF 150
    &END MGRID
    &QS
    &END QS
    &SCF
      EPS_SCF 1E-6
      MAX_SCF 100
      SCF_GUESS ATOMIC
    &END SCF
    &XC
      &XC_FUNCTIONAL BLYP
      &END XC_FUNCTIONAL
    &END XC
  &END DFT
  &PROPERTIES
    &LINRES
      EPS 1E-6
      MAX_ITER 100
      PRECONDITIONER FULL_ALL
      RESTART_EVERY 5
      &CURRENT
        GAUGE R_AND_STEP_FUNCTION
      &END CURRENT
      ##       RESTART
      &LOCALIZE
        MAX_ITER 100
        &PRINT
          &LOC_RESTART
          &END LOC_RESTART
        &END PRINT
        ##           RESTART
      &END LOCALIZE
      &NMR
      &END NMR
      &PRINT
        &RESTART
        &END RESTART
      &END PRINT
    &END LINRES
  &END PROPERTIES
  &SUBSYS
    &CELL
      ABC 5.0 5.0 5.0
    &END CELL
    &COORD
      H       .000689482500      -.765854689700      1.551514984100
      H       .000592940100       .767987328300      1.553204324000
      O       .046239583400       .001896697900      0.9564530746
    &END COORD
    &KIND H
      BASIS_SET DZVP-GTH
      POTENTIAL GTH-BLYP-q1
    &END KIND
    &KIND O
      BASIS_SET DZVP-GTH
      POTENTIAL GTH-BLYP-q6
    &END KIND
  &END SUBSYS
&END FORCE_EVAL

关键是RUN_TYPE LINEAR_RESPONSE,以及FORCE_EVAL/PROPERTIES/LINRES下的NMR。DFT/SCF/EPS_SCF控制基态,LINRES/EPS控制响应残差;两者各自需要收敛。LOCALIZE准备局域轨道,PRINT/RESTART保存后续可读回的响应文件。

4. 提交#

本例使用cp2k/2026.2-8173m CPU版,Intel oneAPI2024.2/Intel MPI构建。新计算通过Slurm提交:

sbatch run.slurm

脚本申请56核整节点,实际2个MPI进程、每进程1线程,顺序运行5个小条件;不要直接在登录节点进行这些电子结构计算。结束后:

bash read.sh work analysis-new
bash plot.sh analysis-new figures-new work

整个包底层实际执行如下形式,工作目录由脚本分别准备:

module load cp2k/2026.2-8173m
export OMP_NUM_THREADS=1
mpirun -np 2 cp2k.psmp -i input.inp > native.log

5. 提取屏蔽常数#

grep 'SCF run converged' reference-results/water-GPW/native.log
grep 'linear solver converged' reference-results/water-GPW/native.log
cat reference-results/water-GPW/H2O-NMR-1-SHIFT-1.data
cat data/CP2K-NMR-isotropy-anisotropy.csv
原子 实际各向同性屏蔽/ppm
H1 22.1688
H2 22.1786
O3 4.6115

SIGMA TOTAL是3×3屏蔽张量;各向同性值为迹除以3。原生TOTAL还包含宏观磁化率贡献,不能只把SOFT J与LOCAL J相加作为完整总值。张量不必逐项对称;本包保留全部9个原生分量。

该版本输出的各向异性取对称部分本征值排序后λ₃−(λ₂+λ₁)/2,不要不分情况直接用笛卡尔σzz−(σxx+σyy)/2替代。数据文件头中的核位置单位为Bohr,张量单位为ppm。

屏蔽常数σ与实验化学位移δ不是同一个量;常见近似δ≈σ_ref−σ_sample还需要相同方法下的参照体系及适当校准。本例没有参照计算,图中只标屏蔽常数。

6. 更换体系前#

先优化结构,再选择GPW/GAPW与合适的核区处理;检查基组、网格、盒子/周期边界、泛函和响应收敛。全电子基组对照见H₂ GAPW例子,文件复用见响应续算。

输入来源为CP2K官方NMR小例,这里收紧基态/响应要求并保留实际输出。

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

查看配图

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

100%查看原图 ↗