示例 10-uvvis-emission-coumarin:香豆素的吸收、荧光与磷光(TD-DFT)¶
配套教程:第10章 激发态 TD-DFT(第 4–7 节)。
目的¶
以香豆素(coumarin,C9H6O2)为例,走完一套完整的“吸收—发射”计算流程:
- SMD(乙醇) 中优化 S0 并做频率,再做 20 个单重态的垂直激发(UV-Vis);
- 优化 S1 并做解析 TD 频率,得到垂直发射能、绝热激发能和 0-0 能量;
- 用 cLR 态特定溶剂化重新计算垂直发射能(官方 SCRF 页的方案);
- 用 UKS 优化 T1,计算垂直磷光能和 S-T 能隙。
文件说明¶
| 文件 | 内容 | 依赖 |
|---|---|---|
coumarin_td_camb3lyp_smd.gjf |
第 1 步 S0 Opt+Freq(CAM-B3LYP/def2-SVP, SMD 乙醇);第 2 步 TD 单点(CAM-B3LYP/def2-TZVP,NStates=20) | 无 |
s1_opt_freq_emission.gjf |
S1 优化 + 频率(TD=(NStates=6,Root=1) Opt Freq NoSymm) |
coumarin_s0.chk |
s1_emission_state_specific.gjf |
两步:S1 的 cLR 平衡溶剂化(NonEquilibrium=Save)→ S1 结构上的非平衡 S0(NonEquilibrium=Read),IEFPCM |
coumarin_s1.chk |
t1_uks_opt.gjf |
两步:UKS 三重态 Opt+Freq → T1 结构上的 S0 单点 | coumarin_s0.chk |
run.slurm |
按依赖顺序依次运行以上 4 个输入,并对所有 chk 执行 formchk | — |
初始结构由 RDKit(ETKDG + MMFF)生成,只作为优化起点。
运行步骤¶
# 集群(Slurm):先按集群修改 run.slurm 中的 module / g16root / scratch 路径
sbatch run.slurm
# 或者在交互节点上手动按顺序运行
g16 < coumarin_td_camb3lyp_smd.gjf > coumarin_td_camb3lyp_smd.log
g16 < s1_opt_freq_emission.gjf > s1_opt_freq_emission.log
g16 < s1_emission_state_specific.gjf > s1_emission_state_specific.log
g16 < t1_uks_opt.gjf > t1_uks_opt.log
s1_opt_freq_emission.gjf 的 TD 解析频率最耗时(8 核上通常需要数小时,视硬件而定)。
预期结果 / 如何检查¶
# 1) 所有作业正常结束
grep -c "Normal termination" *.log
# 2) S0、S1、T1 优化后都没有虚频(归档段 NImag=0)
grep "NImag" coumarin_td_camb3lyp_smd.log s1_opt_freq_emission.log t1_uks_opt.log
# 3) 吸收:激发能、波长、振子强度
grep "Excited State" coumarin_td_camb3lyp_smd.log | awk '{print $3, $4, $5, $7, $9}'
# 4) 发射:S1 优化最后一步的第 1 激发态 = LR 垂直发射能
grep "Excited State 1:" s1_opt_freq_emission.log | tail -1
grep "Total Energy, E(TD-HF/TD-DFT)" s1_opt_freq_emission.log | tail -1
# 5) cLR 发射:两步能量差
grep -A3 "PCM Corrected Linear-Response" s1_emission_state_specific.log
grep "SCF Done" s1_emission_state_specific.log | tail -1
# 6) T1:<S**2> 应接近 2.0
grep "S\*\*2" t1_uks_opt.log | tail -3
需要自己计算的量(单位换算 1 Hartree = 27.2114 eV,λ(nm) = 1239.84 / E(eV)):
- 绝热激发能 = S1 优化最后的
Total Energy, E(TD-HF/TD-DFT)− S0 优化最后的SCF Done(同为 CAM-B3LYP/def2-SVP + SMD); - 0-0 能量 = 绝热激发能 + [ZPE(S1) − ZPE(S0)],ZPE 取各自的
Zero-point correction; - Stokes 位移 = 垂直吸收能 − 垂直发射能(建议换算为 cm⁻¹);
- 垂直磷光能 ≈ T1 优化最后的
SCF Done−t1_uks_opt.log第 2 步的SCF Done。
光谱展宽可使用 GaussView(Results → UV-VIS)、Multiwfn 主功能 11,或仓库脚本(python ../../scripts/spectrum_uvvis_ecd.py -h)。
注意事项¶
- 吸收单点用 def2-TZVP,而优化用 def2-SVP:比较绝热量时只能用同一基组的能量,不要把 def2-TZVP 的激发能和 def2-SVP 的总能量混用。
s1_emission_state_specific.gjf按官方示例使用 IEFPCM,而 S1 结构来自 SMD 优化;在方法部分说明这一点即可。- 如果 S1 优化中第 1 激发态的主要组态或振子强度突然改变,可能发生了根翻转,请参考教程第 6.2 节。
- 所有输入假定
%mem=8GB、%nprocshared=8,与run.slurm中的资源申请一致;修改时两边要同步。