Gaussian 专题

Gaussian TD与CIS光谱实操

甲醛、乙烯完整输入和六个实际激发根,提取波长、振子强度并绘制吸收示意谱。

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

下载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. 把离散跃迁画成谱线#

实际六根TD/CIS及能量展宽曲线

图中竖线是离散振子强度,平滑线用能量轴上的高斯函数:

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份输入已围绕本例实际几何配套;修改结构后应从自己的优化结果重新生成依赖几何的输入,不能继续套用本例坐标。进一步看激发态优化与能差及溶剂影响。

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

查看配图

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

100%查看原图 ↗