Gaussian CASSCF活性空间与轨道图
H₂和O₂完整CASSCF输入,实际自然占据,formchk/cubegen终端操作和分数占据密度。
阅读本篇目录
下载完整输入、实际数值、六份轨道/密度网格和绘图脚本,在新目录解压后:
bash run.sh
先用已有结果生成 analysis/、figures/,无需运行Gaussian。程序使用集群ASE 3.29 Python环境中的NumPy、Matplotlib。
要重新计算,先在自己的账号初始化Gaussian:
yskit gaussian-init
按Gaussian输入与CPU提交准备CPU作业,把执行命令设为 bash run.sh compute。已经取得CPU作业资源并加载个人环境后,也可在另一份新解压目录执行:
bash run.sh compute
它依次运行29份Gaussian输入、formchk和6次cubegen,随后从自己的 work/ 分析和画图。客户正式计算应在分配到的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. 明确活性电子与活性轨道#
CASSCF(2,2)为2个活性电子、2个空间轨道;CASSCF(8,6)为8个活性电子、6个空间轨道。空间轨道最多容纳两个不同自旋电子。活性空间不是越随意越好,应包含与成键、断键、近简并或目标态相关的轨道,再结合实际轨道形状和占据判断。
本例H₂总共2电子、2个STO-3G基函数,两者都进入活性空间。O₂共16电子、10个STO-3G基函数,CAS(8,6)保留4个双占据非活性轨道(8电子),其余8电子分配在6个活性轨道中。它不是“全分子只有8电子”。
2. 先用H₂完整输入跑通#
0.74 Å输入:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p CASSCF(2,2)/STO-3G SCF=Tight Pop=NaturalOrbital NoSymm
Finite active-space and spin practical h2-casscf-0p74
0 1
H 0.000000000000 0.000000000000 -0.370000000000
H 0.000000000000 0.000000000000 0.370000000000
4 Å输入:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p CASSCF(2,2)/STO-3G SCF=Tight Pop=NaturalOrbital NoSymm
Finite active-space and spin practical h2-casscf-4p0
0 1
H 0.000000000000 0.000000000000 -2.000000000000
H 0.000000000000 0.000000000000 2.000000000000
Pop=NaturalOrbital请求自然轨道信息。短键时最高自然占据约1.97467,第二个约0.02533;4 Å变为约1.00893与0.99107,显示两个轨道都不可忽略。自然占据并非普通Alpha Orbital Energies,也不是电子态DOS。

3. 用自己的检查点生成原生网格#
在分配的CPU资源和个人Gaussian环境下,单独运行0.74 Å这份输入:
cd inputs/h2-casscf-0p74
mkdir -p scratch
export GAUSS_SCRDIR="$PWD/scratch"
g16 < input.gjf > output.log
formchk result.chk result.fchk
cubegen 0 MO=1 result.fchk mo1.cube -2 h
cubegen 0 MO=2 result.fchk mo2.cube -2 h
cubegen 0 Density=SCF result.fchk density.cube -2 h
这里的 MO=1/2是本次检查点中与自然占据对应的轨道编号,不能直接搬到别的分子。用自己的实际输出核对轨道顺序。Density=SCF是本例原生cubegen使用的密度选择字符串;已逐点与实际CASSCF一阶密度重构核对,不把字符串名称理解为本例退回RHF密度。
同样操作4 Å条件,可得到另外三份网格。整包的 bash run.sh compute已自动执行这6次cubegen。
4. 看轨道时区分相位、密度和电子数#

图中红/蓝为轨道波函数相反符号,整体变号不改变物理密度。原生cube坐标单位Bohr,波函数幅度为Bohr⁻³ᐟ²,电子密度为e/Bohr³;图横纵坐标转换为Å。图取最邻近 y≈0.04433 Å 的网格层,用双线性显示平滑,不改变原始网格数值。
CASSCF密度应使用实际占据:
ρ(r)=Σ nᵢ |ψᵢ(r)|²。
本例4 Å的两个占据均接近1,不能给每个轨道统一乘2。包内比较原生cube与独立s/sp AO计算的轨道模平方、密度,以及分数占据加权密度。
-2 h输出本例约0.333333 Bohr网格间距,短/长键的网格分别18×18×23、18×18×41。粗网格电子密度积分约1.9864与1.9868电子,而解析AO电子数为2;这是有限盒子和离散采样影响,不表示丢失电子。要用网格积分报告电荷,应继续收敛盒子和间距。
5. O₂活性空间与不同请求自旋#
请求三重态的完整输入:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p CASSCF(8,6)/STO-3G SCF=Tight Pop=NaturalOrbital NoSymm
Finite active-space and spin practical o2-casscf-mult3
0 3
O 0.000000000000 0.000000000000 -0.605000000000
O 0.000000000000 0.000000000000 0.605000000000
请求单重态的完整输入:
%nprocshared=1
%mem=1GB
%chk=result.chk
#p CASSCF(8,6)/STO-3G SCF=Tight Pop=NaturalOrbital NoSymm
Finite active-space and spin practical o2-casscf-mult1
0 1
O 0.000000000000 0.000000000000 -0.605000000000
O 0.000000000000 0.000000000000 0.605000000000
保持固定1.21 Å与同一有限活性空间,实际三重态请求结果约−147.738218793 Hartree,单重态请求结果约−147.702695439 Hartree,差约0.96664 eV。
这是两份具体请求态作业的能量差,不能直接标成已收敛的实验光谱。不同根、轨道优化分支、态平均/态专属选择、活性空间和动态关联都会影响目标态比较。本例没有演示所有多参考变体,也不从一阶密度推算CASSCF总S²。
6. 最后得到哪些文件#
ls reference/tool-cubes
ls analysis
ls figures
包内保留完整29份输入、实际能量/自旋摘录、用于电子数与自然占据分析的选定基组/密度字段,以及6份自己生成的原生实空间cube。没有程序、CHK、完整FCHK或AO到MO的系数矩阵。cube固定注释即使写着“MO coefficients”,其后网格仍是实际空间场值,不是轨道展开系数矩阵。
参考字段摘录不能代替完整FCHK供cubegen读取。要制作自己的轨道图,请按本篇从自己的CHK运行formchk和cubegen。自己重算的完整检查点位于 work/各条件/。
流程为:确定活性电子/轨道与目标态→准备完整GJF→提交CPU计算→看自然占据和轨道→按实际占据构造密度→检查活性空间、基组及目标量稳定性。进一步参照解离曲线和自旋诊断。