Hefei-NAMD:H₂ 偏振、失谐与电子步长
对比六组实际传播结果,说明时间列、电子子步、输入网格与独立积分的终端操作。
阅读本篇目录
接续H₂ 跃迁偶极与光场驱动,本篇介绍怎样比较偏振、光子能量与传播步长。结构、RHF 轨道和有效单电子模型保持一致;不增加核运动或表面跳跃。
1. 同一份算例,六种条件#
下载完整算例,在解压后的 hefei-H2-abinitio-dipole/ 中:
module load ase/3.29.0
bash read.sh
bash plot.sh
cat analysis-read/H2-abinitio-driven-summary.csv
| 目录 | 耦合输入间隔 fs | NELM | 电子子步 fs | 光子能量 eV | 末态高轨道布居 |
|---|---|---|---|---|---|
| parallel | 0.002 | 8 | 0.00025 | 34.005997 | 0.203300 |
| parallel-half-electron | 0.002 | 16 | 0.000125 | 34.005997 | 0.203308 |
| parallel-half-input | 0.001 | 4 | 0.00025 | 34.005997 | 0.203551 |
| perpendicular | 0.002 | 4 | 0.0005 | 34.005997 | 0 |
| field-off | 0.002 | 4 | 0.0005 | 34.005997 | 0 |
| detuned | 0.002 | 4 | 0.0005 | 27.204798 | 输出精度下为 0 |
失谐组演化过程中峰值约 0.000017,不是整条曲线恒为零。横向电场作用于 x 方向,但本例 x01=0,因此没有该两轨道之间的耦合。不能据此推广为任意分子或任意激发态的普遍偏振规律。

2. 直接检查输入,分清两种步长#
grep -E 'POTIM|NAMDTIME|NELM' inputs/parallel/inp
grep -E 'POTIM|NAMDTIME|NELM' inputs/parallel-half-electron/inp
grep -E 'POTIM|NAMDTIME|NELM' inputs/parallel-half-input/inp
wc -l inputs/parallel/NATXT inputs/parallel-half-input/NATXT
POTIM 在本例是提供给传播器的耦合采样间隔;没有真实核运动轨迹,因此不要称为本例的离子运动步长。POTIM/NELM 才是电子积分子步。
第一组与第二组共用相同 NATXT/EIGTXT,只增加 NELM,检验电子积分;第三组重新以 0.001 fs 采样耦合,检验输入网格。网格减半时必须同步更新 NSW、NAMDTIME 以及 NATXT 的 2*POTIM 缩放,不能只改 INCAR 风格的一个标签。
本例 NELM 8/16 的整条布居最大差 8×10⁻⁶;输入采样间隔减半的最大差 0.000252。这两种差异来源不同,应分别比较。
3. 读取原生输出时,不要直接拿打印时间做差#
head -8 reference-results/parallel/POPRT.2
head -5 data/H2-abinitio-driven-populations.csv
原生时间列只打印两位小数,而本例采样 0.002 fs,多行会显示相同时间;这不表示程序停住或没有推进。读取器用输出行索引乘以输入间隔,得到 0–40 fs。初始输出行代表初态,不能因为打印值向前偏一个步长而把整条轨迹错移。
POPRT.2 的后两列是两个局部能级的布居,和应为 1;不要把前两列当成布居求和。PSICT.2 保存相应复振幅信息,原文件随包提供。
4. 独立积分怎么做#
参考包已有同一哈密顿量的全时域独立积分,采用 SciPy DOP853,在相互作用绘景中解完整双态方程,没有使用旋波近似。绝对/相对容差为 1E-12/1E-10,最大积分步 0.001 fs;与原生基准整条布居最大差 1.09684×10⁻⁵。
cat reference-results/independent-reference.json
head -5 reference-results/independent-parallel.csv
读取器先检查能量和耦合文件 SHA256,只有完全相同的哈密顿量才复用该参考。如果改变场或结构,应在新的工作目录中重新积分:
module load ase/3.29.0
python3 independent.py work-new
bash read.sh work-new analysis-new
independent.py 在 work-new/ 生成自己的参考文件,不覆盖包内参考。六组条件的独立性应保持:改基准时,同时修改对应的半步长与控制组。不要通过放宽误差要求代替电子步长收敛。
5. 要改成自己的分子,先做哪些操作#
先在 quantum.py 修改结构、基组和选取的轨道,再在 CPU 作业环境运行 bash setup-quantum.sh。当前生成器针对 H₂ 的两个轨道设计;多原子、多轨道体系需要相应扩展能级窗口、位置矩阵和独立方程维度,不能直接把 H₂ 的两个数值移植过去。
在当前 H₂ 模型中,若只修改场强或光子能量,可编辑 quantum.py 中对应条件;它会在 quantum-new/ 重新计算并生成完整输入。在算例根目录提交该目录:
cp compute.py quantum-new/
sbatch --chdir "$PWD/quantum-new" "$PWD/run.slurm"
# 作业完成后
python3 independent.py quantum-new
bash read.sh quantum-new analysis-read
bash plot.sh
绘图中的轨道截面来自本篇原始 H₂ 参考,修改结构或基组后需重新评估 AO 网格再画轨道图;布居图则读取刚生成的 analysis-read/。本篇不把轨道能隙当作精确多体激发能,不用这条 40 fs 受驱动曲线拟合载流子复合寿命。