CP2K实时传播与分子响应谱
用实际水分子三方向24fs数据,完成偶极提取、完整响应张量、方向平均和时间窗口比较。
阅读本篇目录
想把CP2K实时传播得到的偶极曲线转换为电子响应谱,可以按“计算基态 → 沿三个方向分别施加弱脉冲 → 保存每步偶极 → 单位换算和傅里叶积分 → 比较时间窗口”的顺序操作。本篇提供鸢算科技集群实际计算的H₂O三方向24 fs数据,先从终端重画,再学习如何运行自己的例子。
1. 先用实际数据重画#
下载完整数值、三方向输入和绘图包,解压进入 cp2k-rt-tensor:
bash run.sh
这一步读取包内 inputs/x.npz、y.npz、z.npz,进行后处理,不会重新计算24 fs电子传播。原数据每个方向9600步,包含每步三维偶极、能量、电子电荷与正交性指标,以及真正传播前的初始偶极。
cat results/SUMMARY.json
head -n 3 results/tensor-spectrum.csv
ls plots
tensor-spectrum.csv包含能量、12/24 fs方向平均的实部和虚部,以及24 fs全部九个张量分量。results/full-fields.npz保留完整数组,方便自己的Python分析,不需要从图片反向读取数据。

2. 三个方向分别算什么#
沿x施加脉冲时,同时记录偶极的x、y、z响应,得到αxx、αyx、αzx,也就是响应张量的一列。再沿y、z分别计算,才得到完整3×3张量。把一次x方向的结果复制三份,不能替代三次实际传播。官方教程也按这一方向关系解释三维响应;本文是价电子水分子示例,没有进行芯态X射线计算。
方向平均采用 Tr(α)/3。本篇纵轴是极化率原子单位,展示虚部;没有换成实验吸收截面。若需要吸收截面,还要按统一电磁单位体系乘相应的频率和常数。

水分子基本位于yz平面。非对角微小项保留实际原值,图中各子图纵轴不同;不要据此认定出现了物理对称性破缺。
3. 初值、脉冲和单位要一致#
实际设置为12 Å孤立盒、DELTA_PULSE_SCALE 0.0001。对本例正交盒,实际冲量为:
κ = 2π × 0.0001 / (12 Å / 0.52917720859 Å)
= 2.77076538 × 10^-5 原子单位
0.0001不能直接当作实际电场冲量。 程序打印的波函数相位方向也不能直接当作响应归一化的电场方向。本例按CP2K2026.2的脉冲实现取实际 exp(-iκr),电偶极响应除以正的电场冲量κ。
先扣除真正t=0时的永久偶极,将Debye转成原子单位;时间从fs转成原子单位。脚本以 exp(+iωt)做直接积分,并使用 exp(-ηt/ℏ)阻尼。不能误把第一传播步当成初值,也不能只减去整条曲线的平均值来替代原生初值。
4. 时间步、总时间与阻尼如何选#
| 项目 | 本例设置 | 用户需要注意 |
|---|---|---|
| 时间步 | 0.0025 fs | 与更小步长在相同时间区间比较 |
| 每方向时长 | 24 fs / 9600步 | 总时长决定可区分峰的时间窗口尺度 |
| 画图能区 | 5–30 eV | 本例没有验证这个能区外的谱 |
| 画图间隔 | 0.025 eV | 密集曲线不是同等物理分辨率 |
| 指数阻尼η | 0.3 eV | 人为展宽,不是测得的激发态寿命 |
24 fs对应的基本能量尺度h/T约0.1723 eV;零填充或减小画图间隔不能补足真实传播时间。在相同0.3 eV阻尼和5–30 eV范围,12 fs与24 fs平均虚部的相对L2差为 0.34924%,完整复张量差约 0.41924%。
早期0.005与0.0025 fs在前4 fs的三分量对照相差约6.824%,所以没有直接沿用较粗时间步。进一步0.0025与0.00125 fs对照相差约1.731%,本篇采用0.0025 fs。这些比较限定于当前水分子设置,不是所有体系的通用推荐值。
5. 提取和重画的短命令#
module load sisl/0.16.4
python -B analyze.py
python -B plot.py
python -B verify.py
这里用已有 sisl/0.16.4环境中的NumPy和Matplotlib。脚本还在17个真正FFT频率上,对照独立均匀FFT与直接积分;没有拟合峰位、时间偏移或相位。当前最大差约5.34×10⁻¹³原子单位。
平均虚部最大网格点约24.775 eV,属于PBE与当前有限基组的教学结果,不当作实验峰位预测。窗口比较通过也不代表基组、网格、盒子和泛函都已收敛。下一步看完整输入与短续算操作;TDDFPT路线见分子垂直激发与自旋态。