Gaussian TD与CIS光谱实操
甲醛、乙烯完整输入和六个实际激发根,提取波长、振子强度并绘制吸收示意谱。
阅读本篇目录
下载12份完整输入、原生数值、NTO网格与绘图脚本,在新目录解压后:
bash run.sh
先从已有数据生成 analysis/、5张 figures/,不启动Gaussian。绘图使用集群ASE 3.29 Python环境中的NumPy和Matplotlib。
需要重算时,先准备个人Gaussian环境:
yskit gaussian-init
按Gaussian输入与CPU提交申请CPU资源,将执行命令设为 bash run.sh compute。已经获得CPU作业资源并加载个人环境后,可在另一份新解压目录执行:
bash run.sh compute
程序依次计算12份输入、运行formchk、导出两份NTO cube,再从自己的 work/ 分析和绘图。包内包含一次激发态数值频率,会比单点明显耗时;只想学习取数与画图,用默认 bash run.sh即可。客户正式计算应在分配的CPU资源内运行。
已有 work/analysis/figures 时另解压一份;只有完整 work/ 而没有分析和图目录时,用 bash run.sh analyze继续。Gaussian为16 C.01 AVX厂商预编译CPU版本,个人初始化,无公共Gaussian module;没有自编译器/MPI版本需要套用。参考输入每份1线程、1GB,按分配资源调整,不作GPU或Intel Xeon 8173M性能数据。
1. 先优化基态,再选激发态方法#
本例分别使用甲醛CH₂O与乙烯C₂H₄,中性单重态。基态先用B3LYP/6-31+G(d)优化并计算频率,再把实际优化坐标用于各自TD-B3LYP与CIS单点,每次请求6个单重激发根。两个分子的基态振动模式均为正。
甲醛基态完整输入 inputs/formaldehyde-ground-optfreq/input.gjf:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p B3LYP/6-31+G(d) Opt Freq SCF=Tight Int=UltraFine NoSymm
Excited-state workflow formaldehyde-ground-optfreq
0 1
C 0.000000000000 0.000000000000 0.000000000000
O 1.210000000000 0.000000000000 0.000000000000
H -0.600000000000 0.940000000000 0.000000000000
H -0.600000000000 -0.940000000000 0.000000000000
乙烯完整基态输入:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p B3LYP/6-31+G(d) Opt Freq SCF=Tight Int=UltraFine NoSymm
Excited-state workflow ethylene-ground-optfreq
0 1
C -0.670000000000 0.000000000000 0.000000000000
C 0.670000000000 0.000000000000 0.000000000000
H -1.220000000000 0.930000000000 0.000000000000
H -1.220000000000 -0.930000000000 0.000000000000
H 1.220000000000 0.930000000000 0.000000000000
H 1.220000000000 -0.930000000000 0.000000000000
TD与CIS比较保持相同几何和基组,但它们分别使用DFT与HF参考;不要比较两者绝对总能量来给方法排名。这里的有限基组用于操作示例,尚未进行激发能的基组/泛函收敛研究。
2. 甲醛TD与CIS的完整输入#
TD-B3LYP:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p B3LYP/6-31+G(d) TD=(NStates=6,Root=1) SCF=Tight Int=UltraFine NoSymm
Excited-state practical formaldehyde-vertical-td
0 1
C -0.007130284873 -0.000000000000 -0.000000060851
O 1.202106712924 0.000000000000 0.000000019859
H -0.592488215837 0.941400775921 0.000000020496
H -0.592488215837 -0.941400775921 0.000000020496
CIS:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p CIS(NStates=6,Root=1)/6-31+G(d) SCF=Tight Int=UltraFine NoSymm
Excited-state practical formaldehyde-vertical-cis
0 1
C -0.007130284873 -0.000000000000 -0.000000060851
O 1.202106712924 0.000000000000 0.000000019859
H -0.592488215837 0.941400775921 0.000000020496
H -0.592488215837 -0.941400775921 0.000000020496
NStates=6是请求6个激发根,不含基态;Root=1指定所选第一激发根。它不是说分子只有6个激发态,也不代表已经得到全部吸收光谱。
在分配的CPU资源并加载个人环境后,单独运行一份输入:
cd inputs/formaldehyde-vertical-td
mkdir -p scratch
export GAUSS_SCRDIR="$PWD/scratch"
g16 < input.gjf > output.log
formchk result.chk result.fchk
grep 'Excited State' output.log
乙烯的对应完整输入在 inputs/ethylene-vertical-td/ 与 inputs/ethylene-vertical-cis/。
乙烯TD完整输入:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p B3LYP/6-31+G(d) TD=(NStates=6,Root=1) SCF=Tight Int=UltraFine NoSymm
Excited-state practical ethylene-vertical-td
0 1
C -0.667392853157 -0.000000000000 -0.000000000001
C 0.667392853157 -0.000000000000 -0.000000000000
H -1.240234454855 0.924995647370 0.000000000002
H -1.240234454855 -0.924995647370 -0.000000000001
H 1.240234454855 0.924995647370 -0.000000000001
H 1.240234454855 -0.924995647370 0.000000000002
乙烯CIS完整输入:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p CIS(NStates=6,Root=1)/6-31+G(d) SCF=Tight Int=UltraFine NoSymm
Excited-state practical ethylene-vertical-cis
0 1
C -0.667392853157 -0.000000000000 -0.000000000001
C 0.667392853157 -0.000000000000 -0.000000000000
H -1.240234454855 0.924995647370 0.000000000002
H -1.240234454855 -0.924995647370 -0.000000000001
H 1.240234454855 0.924995647370 -0.000000000001
H 1.240234454855 -0.924995647370 0.000000000002
3. 一行激发态输出包含什么#
甲醛本例最低TD单重态约 3.9868 eV / 310.99 nm / f=0.0000。能量与波长满足 λ(nm)=1239.841984/E(eV),f是振子强度,不是电子转移的概率,也不是跃迁发生的量子产率。
本例TD气相数据:
| 分子 | 根 | 激发能 / eV | 波长 / nm | 打印的f |
|---|---|---|---|---|
| 甲醛 | 1 | 3.9868 | 310.99 | 0.0000 |
| 甲醛 | 2 | 6.9033 | 179.60 | 0.0311 |
| 甲醛 | 3 | 7.6559 | 161.95 | 0.0270 |
| 甲醛 | 4 | 7.8892 | 157.16 | 0.0495 |
| 甲醛 | 5 | 8.3849 | 147.87 | 0.0000 |
| 甲醛 | 6 | 9.0412 | 137.13 | 0.0008 |
| 乙烯 | 1 | 7.1844 | 172.57 | 0.1255 |
| 乙烯 | 2 | 7.4411 | 166.62 | 0.3444 |
| 乙烯 | 3 | 7.4986 | 165.34 | 0.0000 |
| 乙烯 | 4 | 7.6703 | 161.64 | 0.0000 |
| 乙烯 | 5 | 8.1396 | 152.32 | 0.0000 |
| 乙烯 | 6 | 8.5966 | 144.22 | 0.0000 |
甲醛最低态虽然能量最低,但振子强度很小,日志按4位小数打印为0.0000;不能把“最低激发态”和“最强吸收峰”当成同一概念。讨论轨道性质时结合NTO图,不要只看一个根的编号。
4. 把离散跃迁画成谱线#

图中竖线是离散振子强度,平滑线用能量轴上的高斯函数:
I(E)=Σ fᵢ exp[−(E−Eᵢ)²/(2σ²)]/(σ√(2π)),本图 σ=0.12 eV。
积分为已计算6个根的振子强度之和。这个宽度只是方便显示,不是仪器拟合、振动精细结构或自然线宽。若把能量密度改画成每nm的波长密度,需同时处理 |dE/dλ|;不能只把横轴数字倒过来。
head analysis/transitions.csv
ls figures
CSV保留原生打印值与FCHK中的能量/跃迁偶极。脚本另按长度规范 f=(2/3)ΔE|μ₀ₙ|²核对振子强度,其中ΔE用Hartree、偶极用原子单位,不把速度规范的另一组跃迁矩混用。
5. 换成自己的分子#
先检查基态几何、电荷/多重度与频率,再选择泛函、基组、激发根数和目标能区。需要研究电荷转移、Rydberg态、强多参考或根交叉时,不能仅把本例NStates增加就认为方法已合适。
本包的12份输入已围绕本例实际几何配套;修改结构后应从自己的优化结果重新生成依赖几何的输入,不能继续套用本例坐标。进一步看激发态优化与能差及溶剂影响。