CP2K专题

CP2K实时耦合计算:时间步和结果怎么检查

同一H₂脉冲计算将0.5 au减为0.25 au,保持总时间,提取键长、能量及逐步电子迭代残差。

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

实时电子传播的时间步往往比普通BOMD更短。减半时间步时,应把步数加倍,比较相同最终物理时刻;否则混入不同传播时长的差别。

1. 实际半步长对照#

下载实际输入、原生结果与数据绘图包,保存为example.zip:

python3 -m zipfile -e example.zip .
cd cp2k-ehrenfest-H2
bash results.sh
bash read.sh
bash plot.sh

上述命令先读随包真实结果;CSV在data/,原生输出在reference-results/,图在figures/。默认使用集群ASE环境中的Python,可用YS_ANALYSIS_PYTHON指定含NumPy、ASE和Matplotlib的解释器。

相同最终时间下的半步长键长差与真实核坐标变化

2. 输入只改变步数和时间步#

diff -u inputs/H2-pulse/input.inp inputs/H2-pulse-halfstep/input.inp
条件 TIMESTEP [au_t] STEPS 末时刻/fs
原步长 0.5 40 0.483777
半步长 0.25 80 0.483777

1原子时间单位约0.02418884 fs;0.5 au约0.01209442 fs,不是0.5 fs。脉冲高斯中心和宽度显式使用[au_t],两组保持不变;不要按步数重新定义一个不等长的场包络。

3. 提交与提取#

本例使用cp2k/2026.2-8173m,Intel Fortran2024.2.1与Intel MPI构建。新解压目录提交:

sbatch run.slurm

脚本申请56核整节点,以2个MPI进程、每进程1线程顺序运行三个小条件。真正电子结构与动力学计算放到Slurm任务,不在登录节点直接运行。结束后提取自己的输出:

bash read.sh work analysis-new
bash plot.sh analysis-new figures-new work
cat data/CP2K-Ehrenfest-H2-time-series.csv
cat data/CP2K-Ehrenfest-H2-conditions.csv

逐帧表同时给出时间、键长、动能、势能、两者之和、温度和最后一次实时迭代残差。原生.ener只有9位能量小数,读数时保留其精度限制。

4. 本次实际差别#

两个有场任务在相同末时刻的键长差为1.031×10⁻⁶ Å,总能差为2.81×10⁻⁷ Eh。这支持本例短时间窗口中的步长一致性,不能当作长时间传播、高能激发、其他分子或其他基组的通用误差上限。

grep 'Convergence:' reference-results/H2-pulse/native.log | tail -n 8
grep 'Convergence:' reference-results/H2-pulse-halfstep/native.log | tail -n 8

每个核步内部有多次电子迭代,应该看该步最后一次是否达到EPS_ITER,不能因第一条残差较大就直接判为未收敛;也不能只看最后一个核步,忽略前面的步骤。随包读取器检查了全部160个实际核步。

5. 换成自己的体系#

先保证初始电子态合理、原子位置和速度有明确来源,再逐项测试时间步、实时残差、网格、基组和传播总时长。不要为了“让任务结束”而忽略电子迭代不收敛。若目标是光谱,要使用适当固定核/动态核方法、足够时间窗和线性响应场强;若目标是光化学反应,还需要更完整的电子态、系综和统计处理。

本包未实施实时轨迹续算,也未计算反应产物或寿命;NMR响应续算属于另一种计算,见核磁响应续算。

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

查看配图

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

100%查看原图 ↗