QE专题

QE指定能区的分子激发态

用水分子实际计算说明Davidson输入、目标能区、残差、极化方向与结果导出。

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

下载水分子完整输入、公开赝势、真实结果、CSV提取与绘图脚本,保存为 example.zip。本例由鸢算科技集群的QE7.6 CPU构建完成:Intel oneAPI2024.2编译器、Intel MPI及MKL;sisl/0.16.4模块提供这里绘图脚本所用的Python环境。

python3 -m zipfile -e example.zip .
cd qe-water-tddfpt

1. 什么时候选Davidson#

想获得一个指定能区的少数激发态、对应跃迁分解时,可用 turbo_davidson.x;想看宽能区连续响应时,先看分子吸收光谱。两者使用同一份水分子基态,但求解目标不同。

本例选择最接近 reference=0.5Ry的一个激发态。这个参数用于选定目标能区,不是让软件算出的能量等于0.5Ry,也不保证选到所有低能态。有暗态或简并态时,更不能只按最明显的吸收峰列出全部激发态。

2. 前置基态与完整输入#

本例的前置 scf.in、赝势和结构与吸收谱教程相同:16Bohr立方超胞、NC-PBE、60/240Ry、8个价电子、12条KS能带。须先完成SCF,保留 tmp/water.save及其波函数;prefix/outdir必须与后处理一致。

cat inputs/davidson.in
cat job.slurm

完整Davidson输入:

&LR_INPUT prefix='water', outdir='./tmp', restart=.false. /
&LR_DAV num_eign=1, num_init=2, num_basis_max=80, residue_conv_thr=1d-6, max_iter=200,
 start=0., finish=1.84, step=.00147, broadening=.0110248, reference=.5,
 p_nbnd_occ=4, p_nbnd_virt=8, poor_of_ram=.false., poor_of_ram2=.false. /

num_eign=1求一个目标态;num_init=2为初始试探向量数。num_basis_max=80为迭代子空间上限,会影响内存和收敛;max_iter=200为最大迭代次数。residue_conv_thr=1d-6控制残差平方,并不是每一步的能量变化阈值。

p_nbnd_occ=4和 p_nbnd_virt=8选择用于初始试探及跃迁解释的占据/空带。本例有实际空带可用;只计算占据态的SCF输入不能不加检查就照搬。这里的谱能量范围、步长和 broadening以Ry输入,与Spectrum后处理中的 units=1设置不要混淆。

3. 提交与运行顺序#

sbatch job.slurm

资料包一次完成基态、Lanczos与本篇Davidson。CPU分区按56核整节点申请,Davidson部分固定4个MPI进程并使用 -ndiag 1。分区维护时等待可用资源;已分配的作业内可执行 bash run.sh。不要在同一工作目录并发运行两个会写同一个 prefix/outdir的程序。

查看已有真实参考结果:

cat reference-results/native/water.eigen
grep 'Largest residue' reference-results/native/davidson.out | tail -n 1

4. 本例实际得到什么#

量 真实结果
选中的激发能 6.1272280 eV
最终最大残差平方 6.26822000e-07
本例残差阈值 1×10⁻⁶
原生eigen文件Total列 0.03553126
独立Lanczos z方向矩阵相邻极点 6.1274963 eV

water.eigen包含Ry、eV、波长,以及Total/x/y/z列。保持文件表头对应的原生定义;不要把Total列直接当成实验吸光度,也不要跨程序直接比较绝对强度。本例该态以z方向响应为主;能量与同一基态的Lanczos矩阵极点相互对应。

三方向响应、不同能区的链长变化与原生张量独立重建

这个能量只属于本例的固定几何、PBE赝势、超胞和截断设置。计算用户自己的分子时,先优化结构,再检查真空尺寸、截断能和响应设置;需要定量比较实验时,还要考虑泛函、溶剂、振动等相应物理因素。

5. 检查结束信息与导出结果#

程序打印 JOB DONE.只说明这一程序流程退出,还应查看是否出现 has finished,最后的残差是否低于设定值,以及 water.eigen和跃迁表是否为有限数。如果出现 has NOT converged或最终结果表含 NaN,应继续调整计算设置并确认,不能直接拿该结果画成最终激发态。

只查看和重画参考图:

bash show-reference.sh
head -n 5 absorption.csv

自己的计算完成后,用 bash analyze-results.sh提取:报告在 VALIDATION.json,选中能量在 Davidson.selected_state_energy_eV,完整谱数组在 spectra.npz。下次需要多个目标能区时,可在独立目录设置不同的 reference;需核对是否重复收敛到同一态,并分别检查残差。并行设置或子空间大小改变后,也应重新检查实际输出。

参考:官方Davidson输入说明、QE发行源码TDDFPT示例。

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

查看配图

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

100%查看原图 ↗