Gaussian NTO轨道与网格实操
完整NTO输入、formchk/cubegen命令和明确Bohr网格,解释权重、轨道相位与状态密度差。
阅读本篇目录
下载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. NTO帮助看清一次电子跃迁#
自然跃迁轨道(NTO)用hole/particle轨道对整理所选态的跃迁信息。它不同于普通基态HOMO/LUMO图,也不同于CASSCF自然轨道的电子占据。应先指定目标激发根,再看该态的NTO。
本例选择气相甲醛S₀几何上的第一单重激发根,先确认实际TD能量,再导出原生NTO网格。
2. 完整NTO输入#
inputs/formaldehyde-nto-root1/input.gjf:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p B3LYP/6-31+G(d) TD=(NStates=6,Root=1) Pop=(NTO,SaveNTO) Density=(Transition=1) SCF=Tight Int=UltraFine NoSymm
Excited-state practical formaldehyde-nto-root1
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
Pop=(NTO,SaveNTO)计算并保存NTO,Density=(Transition=1)指定第1个态的跃迁密度用于相应分析。SaveNTO会改变这份检查点中保存的轨道表示,因此本例用独立目录计算,没有覆盖普通TD任务的检查点。
在分配的CPU资源和个人Gaussian环境中:
cd inputs/formaldehyde-nto-root1
mkdir -p scratch
export GAUSS_SCRDIR="$PWD/scratch"
g16 < input.gjf > output.log
formchk result.chk result.fchk
grep 'Saving Alpha spin NTOs' output.log
grep 'eigenvalues' output.log
本例保存的主导hole为MO 8、particle为MO 9,来自本次实际输出;别的分子/目标态不能直接沿用这个编号。
3. 明确网格坐标、单位与输出格式#
准备相同的Bohr网格:
cat > grid.in <<'GRID'
-1 -6.0 -6.0 -4.0
-64 0.25 0.0 0.0
48 0.0 0.25 0.0
32 0.0 0.0 0.25
GRID
cubegen 0 MO=8 result.fchk hole.cube -1 h < grid.in
cubegen 0 MO=9 result.fchk particle.cube -1 h < grid.in
head -n 6 hole.cube
第一行的负IFlag选择文本输出,第二行的负N₁选择输入坐标为Bohr;这两个标志含义不同。实际输出为64×48×32点、步长0.25 Bohr、原点(−6,−6,−4) Bohr。Gaussian cube文件中的坐标与场值仍采用原子单位,不能把自定义输入的Å/Bohr规则直接套成输出cube文件的符号规则。格式可查Gaussian作者工具手册存档,当前C.01写法以本例实际命令为准。
整包 bash run.sh compute已经执行这两次cubegen,无需重复生成;若单独手工做,请选新的输出文件名。
4. 读取轨道切片#

图取最邻近z≈0.39688 Å的网格层,红/蓝为波函数相反符号,整体翻号不改变物理性质。幅度单位Bohr⁻³ᐟ²,坐标转换为Å;双线性显示只用于平滑画面,原生网格数值未改。NTO展示一次跃迁的轨道对,不直接给出跃迁概率或电子寿命。
5. TD权重不能当作电子占据#
本例最大原始配对权重约1.00123475,略大于1;全部配对原始权重之和约1.001446。TD响应的这组权重不应直接按CASSCF占据数或概率解释。本图另定义“归一化份额=该权重/本次实际权重总和”,主导对约99.9789%,只是对这组权重的相对组成描述。

右图由这份FCHK的state-1一阶密度减去SCF密度生成,两者电子数都为16。它不是左侧NTO权重,也不是日志中针对跃迁密度打印的Mulliken原子电荷。对于跃迁密度的population输出,不应把相应“电荷”直接当成分子真实的基态原子电荷。
6. 网格和已有数据怎么复用#
ls reference/nto-cubes
ls figures
公开包提供两份自己生成的实空间cube、选定基组/密度与权重字段及绘图脚本;不包含程序、CHK、完整FCHK或AO到MO展开系数矩阵。cube中的固定注释“MO coefficients”不改变其后数据是空间网格场值的事实。
默认 bash run.sh可以从公开数据复画。完整FCHK的AO/MO正交与逐点轨道模平方核对在原生计算时完成;公开默认入口复用这些源指标,不会从缺少MO系数的摘录重新完成该项计算。附带AO核对脚本仅覆盖本例实际s/p/6d Cartesian基组;其他基组应另外确认。
要做自己的轨道图,请从自己的CHK运行formchk和cubegen,不要把字段摘录当作完整FCHK输入。流程为:确定目标根→计算并保存NTO→检查轨道编号/权重→导出同一明确网格→查看轨道形状→结合激发能与振子强度解释。