Hefei-NAMD:实际 NAC 与非辐射回填模型
用实际LiH波函数提取NAC,运行相干/FSSH传播,解释空穴假设、稀有跃迁统计和适用范围。
阅读本篇目录
本篇接续实际 MD 与波函数准备,演示相位对齐、原生 NAC 提取、电子传播、结果读取与统计。示例选择原始能带 2、3,分别作为低能与高能轨道。
为了讨论退激发,模型假定低能轨道预先留有一个空穴,电子初始在高能轨道。DFT 波函数与核轨迹仍来自基态,这是一条固定核轨迹上的单电子非辐射回填模型;不包含多体激子、激发态对核的反作用或辐射发光。
1. 直接复现已有 NAC 的电子传播#
下载完整操作包,在解压后的 hefei-LiH-actual-nonadiabatic/ 中:
module load ase/3.29.0
bash read.sh
bash plot.sh
cat analysis-read/LiH-actual-NAC-summary.csv
若要亲自调用原生程序、但不重新做 DFT:
bash submit.sh
squeue -u "$USER"
# 作业完成后
bash read.sh work-new analysis-read
bash plot.sh
模板通过 cpu-8173m 申请 56 核整节点,电子传播实际使用 1 MPI、1 线程。DEV 固定快照为 2023.03.29,ifort 2021.10、Intel MPI 2021.10、MKL 2023.2,适用于支持 AVX512 的 CPU 环境。

2. 自己的新波函数怎样提取 NAC#
在完成 MD 和每帧静态作业后:
bash nac.sh
squeue -u "$USER"
# 作业完成后
cat work-labels/NAC/SELECTION.json
head -4 work-labels/NAC/NATXT
head -4 work-labels/NAC/EIGTXT
nac.sh 使用原版 hefei-namd/2024.05.21 提取标准 WAVECAR 的耦合,再把文本交给 DEV 做传播。两个程序用途和文本长度约定不同,不要把模块名互换。
波函数先逐帧规范化并对齐相位,保证相邻同一轨道的重叠对角元连续、实部为正。相位翻转不是物理跃迁;直接对未对齐的波函数做差可能产生伪耦合。
本例逐帧比较同几何静态结果与 MD 的能量、原子力,并使用满足条件的最长连续时间窗。实际采用原始第 8–32 帧,共 25 个几何,覆盖 3.5–15.5 fs;没有跳过窗口内部某一帧再硬拼时间。新的轨迹可能得到不同窗口,文件中会写明起止帧。
原生 NAC 与独立归一化波函数重叠的最大差约 1.514×10⁻⁶;相邻对角重叠最小约 0.9984。这里比较的是提取器文本矩阵,耦合随时间改变的数值和符号保留原样。
3. NATXT 的单位与原始能带编号#
head -5 analysis-read/LiH-actual-NAC-matrix.csv
cat inputs/propagation/coherent-excited/INICON
cat inputs/propagation/coherent-excited/inp
原始 VASP 能带 2、3 在双态窗口里变成局部编号 1、2。INICON 为 2 2:从文本第 2 帧、局部态 2 开始。
NATXT 保存反对称重叠差;换成每 fs 的非绝热耦合时除以 2*POTIM。本例 POTIM=0.5 fs,因此除数正好为 1,数值看起来一样,但物理含义不同;换步长后不能忘记这个因子。
&NAMDPARA
BMIN=1, BMAX=2, NSW=24, POTIM=0.5, TEMP=300
NSAMPLE=1, NAMDTIME=20, NELM=1000, NTRAJ=100000, NPAR=1
ALGO='FSSH', ALGO_INT=0, LHOLE=.FALSE., LSHP=.TRUE.
LCPTXT=.TRUE., LSPACE=.FALSE., LBINOUT=.FALSE., DEBUGLEVEL='I'
/
25 个波函数几何产生 24 行相邻耦合文本。LHOLE=.FALSE. 表示这里传播电子;预先空穴是这个双态模型的初态假设,不等于把 LHOLE 改为真。LSHP=.FALSE. 做相干传播,设为真才运行表面跳跃。温度 300 K 用于原生跃迁的详细平衡处理,不能解释为这条拉伸 NVE 轨迹处于 300 K 平衡。
4. 读输出:量子布居和跳跃布居不是一回事#
head -6 reference-results/propagation/coherent-excited/POPRT.2
head -6 reference-results/propagation/FSSH-excited/SHPROP.2
cat analysis-read/LiH-FSSH-finite-trajectory-statistics.csv
POPRT.2 后两列是相干电子态布居;SHPROP.2 后两列是随机表面跳跃的轨迹占据比例。不能把两者当成完全相同的量。
本例六种条件包括高能初态相干传播、电子子步减半、低能初态相干传播、两种初态各 10 万条 FSSH,以及高能初态的 1000 万条 FSSH。实际电子传播窗口为 9.5 fs,对应原 MD 4.0–13.5 fs。
相干传播低能态峰值约 1×10⁻⁶;10 万条 FSSH 的回填比例打印为 0,而 1000 万条末态约 2×10⁻⁶。原生输出只保留六位小数,不能从该打印值声称精确发生了 20 次事件。
考虑打印舍入,1000 万条结果对应约 15–25 个可能的末态计数;对同一固定 MD 历史作条件二项统计,保守 95% 区间约为 [0.84, 3.69]×10⁻⁶。它不包含不同 MD 初态、结构、方法或模型带来的不确定度。当前所用 DEV 分支未提供这里的随机种子输入接口,重新运行不保证同一个随机序列;需要保留本次输入和原生输出,按统计量比较。
5. 步长与独立积分#
电子子步为 0.5/1000=0.0005 fs;减半组 NELM=2000,两条原生曲线在六位小数的打印精度内相同。独立完整双态积分与原生布居的整条最大差约 4.98×10⁻⁷。
原生输出首行对应初态,读取器按行索引生成 0–9.5 fs 的相对时间,不把打印首列的 0.5 fs 误作已经传播了一步。能级在几何时刻、耦合在相邻几何中点,独立积分保留这两个不同时间网格。
新波函数的耦合不同时,在新的解压目录完成 md.sh、labels.sh、nac.sh,然后:
bash submit-new-nac.sh
# 传播作业结束后
module load ase/3.29.0
python3 independent.py work-new
bash read.sh work-new analysis-read
bash plot.sh
independent.py 在新工作目录生成该输入的积分参考。读取器只有在能量与耦合文本完全相同时才使用包内缓存。图中的 MD 几何和 NAC 质量对照展示参考数据;自己的波函数窗口另看 work-labels/NAC/SELECTION.json。
6. 可以据此讨论“复合”到什么程度#
该例给出真实波函数耦合下、假定低能空穴存在时的单电子回填操作路径。仅有 9.5 fs、小分子、双轨道和一条非平衡核历史,不足以拟合半导体载流子复合寿命,也没有计算辐射速率或吸收截面。
换成客户材料时,需要先准备相应基态采样、足够能带和时间长度,区分电子、空穴与激子模型,检查波函数窗口、轨迹统计和适用版本。不要通过放大 NAC 来让短算例“看起来发生很多复合”。