Gaussian 是量子化学领域使用最广的程序之一,它求解的对象始终是同一个方程:Schrödinger equation。它的能力可以分成四类:
Gaussian 不是一个单体程序,而是由许多链接(Link)串起来的流水线。每个 Link 负责一段工作,前一个的输出是后一个的输入。
| 链接 | 职责 |
|---|---|
| Link 0 | 定义暂存文件的位置与作业的资源上限(内存、核数、磁盘) |
| Link 1 | 读取并处理 Route Section,建立后续要执行的 Link 列表 |
| Link 101 / 102 | 初始化、读取分子结构 |
| Link 122 | 单点能计算(SCF) |
| Link 301 / 302 | 几何优化(梯度与步长) |
| Link 9999 | 结束计算——看到它说明作业正常收尾 |
(Enter /.../l9999.exe) 是好事——说明程序走到了最后一步;如果日志停在某个 l101.exe 之后再无输出,说明作业在那里崩了。http://gaussian.com/iops、http://gaussian.com/overlay11970 年,约翰·波普尔(John A. Pople)及其在卡内基梅隆大学的研究团队推出 Gaussian 70,并通过量子化学程序交换组织(Quantum Chemistry Program Exchange,QCPE)向学术界提供。
这一程序使其他研究者能够利用已有的计算工具开展分子电子结构研究,促进了量子化学计算方法的传播与应用。

软件的名字来自它采用的高斯型基函数(Gaussian-type function)。在分子轨道计算中,分子轨道通常表示为有限个基函数的线性组合——高斯型基函数的典型形式是:
式中坐标以基函数中心为原点:N 是归一化常数,α 控制函数的空间分布(α 越大越紧凑),l、m、n 决定其角向特征。
STO-3G 这个名字就写着做法:用 3 个高斯函数拟合 1 个 Slater 型轨道。Gaussian 自发布以来持续迭代,主要版本以发布年份命名:
| 年代 | 主要版本 |
|---|---|
| 1970–1980 | Gaussian 70 · 76 · 80 |
| 1982–1990 | Gaussian 82 · 86 · 88 · 90 |
| 1992–1998 | Gaussian 92 · 94 · 98(其中含 Gaussian 92/DFT) |
| 2003–2016 | Gaussian 03 · 09 · 16 |
密度泛函理论(DFT)是现代电子结构计算的重要理论基础之一。沃尔特·科恩(Walter Kohn)及其合作者为该理论的建立作出了奠基性贡献。
DFT 进入 Gaussian 之后,原本只能在小体系上做的计算得以在更大的分子上展开——这也是今天绝大多数 Gaussian 作业用 DFT 泛函(如 B3LYP)的原因。

波普尔的贡献不仅在于软件开发,还在于推动「模型化学」(model chemistry)思想:把明确的理论近似与基组相结合,通过系统计算和实验比较检验其可靠性,进而用于预测分子的结构、性质及反应行为。
一份 Gaussian 输入文件由若干「段落(section)」组成,段落之间用空行分隔,顺序不能颠倒:
%chk、%mem、%nprocs以水分子为例,把五段结构对应上:
%chk=water.chk <- Link 0 段:以 % 开头 %rwf=water.rwf %nprocs=1 #p HF/6-31g <- Route 段:以 # 开头 Water <- Title 段:任意文字 0 1 <- 电荷=0,多重度=1(单线态) O <- 坐标段 H 1 R1 H 1 R1 2 a1 R1=1.04 <- 变量段(内坐标写法才需要) a1=104.5
这些文件的名字可以任意取,但后缀决定了它们的用途:
| 文件 | 含义 | 用途 |
|---|---|---|
%chk=name.chk | Checkpoint 文件 | 记录几何结构、分子轨道、力常数等。后续的 Geom=Check、Guess=Read 都要读它 |
%rwf=name.rwf | Read-Write File | 读写文件。作业异常中断时它还在,可以用它重启(restart) |
%int=name.int | Integral 文件 | 保存双电子积分 |
%d2e=name.d2e | Second derivative 文件 | 保存双电子积分的二阶导数 |
.chk,中断后可以从上一步的几何接着优化(Opt=Restart),而不必从头再来。%chk,代价极小,收益极大。内存不够是 Gaussian 失败最常见的原因。经验估算式:
| 符号 | 含义 |
|---|---|
| $M$ | 该任务类型的最小内存(见下表,单位 MW,1 MW = 8 MB) |
| $N_B$ | 基函数个数 |
| 任务类型 \ 最高角动量 | f | g | h | i | j |
|---|---|---|---|---|---|
| SCF energy | 4 MW | 4 MW | 9 MW | 23 MW | ≈60 MW |
| SCF gradient | 4 MW | 5 MW | 16 MW | 38 MW | — |
| SCF frequency | 4 MW | 9 MW | 27 MW | — | — |
| MP2 energy | 4 MW | 5 MW | 10 MW | 28 MW | ≈70 MW |
| MP2 gradient | 4 MW | 6 MW | 16 MW | 38 MW | — |
Route 段的第一行以 # 开头,紧跟一个字母控制输出详细程度:
| 写法 | 输出级别 | 说明 |
|---|---|---|
#N | Normal | 默认级别。不包含计算耗时等信息 |
#P | 输出更多细节,包含计算耗时、SCF 迭代信息等 | |
#T | Terse | 只输出必要信息,日志最短 |
#P:虽然日志会长一些,但你能看到每一步的耗时、SCF 是否收敛、收敛了几圈——这些正是排查「作业为什么慢/不收敛」时最需要的信息。GuessSCF 迭代需要一个初始的密度(或轨道),Guess 决定它从哪来:
| 关键词 | 做法 | 何时用 |
|---|---|---|
Guess=Harris | 对 Harris 泛函做对角化得到初始猜测。所有 HF 与 DFT 计算的默认值 | 默认即可,不必显式写 |
Guess=Read | 从 .chk 文件读取上一次的波函数作为初猜 | 连续做多个任务时(例如先优化、后算频率),能大幅减少 SCF 圈数 |
#p opt freq b3lyp/6-31g(d) Guess=Read Geom=Checkpoint.chk 里拿,在这个结构上做频率计算。这是「优化完接着算频率」的标准写法。http://gaussian.com/guessSCF| 选项 | 默认值 | 含义 |
|---|---|---|
MaxCycle=n | 128 | SCF 最大迭代圈数。超过就报「不收敛」并终止 |
Conver=n | 8 | 收敛判据设为 $10^{-n}$:要求密度矩阵的 RMS 变化 < 10⁻ⁿ,且最大变化 < 10⁻⁽ⁿ⁻²⁾ |
QC | — | 启用二次收敛算法。远离收敛点时先做线性搜索,接近收敛时切换为 Newton 法——难收敛体系的救命选项 |
direct | — | 不把双电子积分存盘,每次迭代重算。省磁盘,适合大体系 |
SCF=(Conver=10, MaxCycle=100)SCF=(MaxCycle=200) 给足圈数;② 仍不收敛就加 QC;③ 还不行就换初猜(Guess=Read)或先做小基组。http://gaussian.com/scfOpt| 选项 | 用途 | 说明 |
|---|---|---|
opt(默认) | 优化到局域极小点 | 用 Berny 算法,在内坐标下做优化 |
opt=z-matrix | 明确指定用内坐标 | 等价于默认行为 |
opt=(ts, z-matrix, noeigentest) | 优化到过渡态 | TS 是一阶鞍点;noeigentest 跳过本征值检验,在初始 Hessian 不可靠时使用 |
MaxCycles=n | 最大优化步数(默认 20) | 步数用尽仍未收敛时,用 Opt=Restart 接着跑 |
Iop(1/8=6) | 改用笛卡尔坐标优化 | 内坐标优化失败时(环状/高对称体系常见)的备选路线 |
Error termination request processed by link 9999 或反复出现 Number of steps exceeded,通常意味着内坐标设置有问题。Iop(1/8=6)),或手工写出更合理的 z-matrix。http://gaussian.com/optFreq| 选项 | 含义 |
|---|---|
freq | 在当前几何下计算振动频率(必须已完成优化,否则会得到虚频) |
Freq=noraman | 跳过拉曼强度的额外步骤,节省 10%–30% 的 CPU 时间 |
Freq=ReadIsotopes | 允许自定义温度、压力、频率标度因子和同位素(默认 298.15 K、1 atm、无标度、最丰同位素) |
http://gaussian.com/freqfreq 作业在算完频率后会自动做热力学分析。总能量由四部分构成:
Zero-point correction= 0.022502 Thermal correction to Energy= 0.023452 Thermal correction to Enthalpy= 0.023768 Thermal correction to Gibbs Free Energy= 0.017992 Sum of electronic and zero-point Energies= -76.408954 Sum of electronic and thermal Free Energies= -76.413464
SCF Done 的电子能去比较,在能量差小于 5 kcal/mol 时很容易得出错误结论。http://gaussian.com/thermo| 规则 | 说明 | 例子 |
|---|---|---|
| 自由格式 | 关键词之间可以用空格、逗号或斜杠分隔 | #p HF/6-31g SCF=(Conver=10)等价于 #p,HF/6-31g,SCF=(Conver=10) |
| 大小写不敏感 | HF 与 hf 等价 | 习惯上仍写大写 |
| 关键词的三种写法 | keywordkeyword=optionkeyword(option1, option2, …) | optMaxCycle=100SCF=(Conver=10, MaxCycle=100) |
| 段 | 内容 | 注意 |
|---|---|---|
| Title 段 | 一行任意文字(如 Water) | 必须有,但不会被执行。建议写清「体系 + 方法 + 目的」 |
| 电荷与多重度 | 0 1 | 第一个数是体系总电荷,第二个是自旋多重度 $2S+1$ |
| 例子 | 含义 | 怎么判断 |
|---|---|---|
0 1 | 中性单线态 | 偶数电子,闭壳层 |
1 2 | 正一价、双线态(自由基) | 奇数电子,开壳层 |
-1 1 | 负一价、单线态 | 如羧酸根阴离子 |
0 3 | 中性三线态 | 如 O₂ 基态 |
H <- 第一个原子只需元素符号 O 1 R1 <- 与原子 1 成键,距离 R1 O 2 R2 1 A <- 再指定与原子 1 的键角 A H 3 R1 2 A 1 D <- 再指定二面角 D R1=0.9 <- 变量在坐标之后集中定义 R2=1.4 A=105.0 D=120.0
http://gaussian.com/zmat过氧化氢 H₂O₂ 有 4 个原子,用内坐标只需要 6 个变量(3 个键长 + 2 个键角 + 1 个二面角),比笛卡尔坐标的 12 个少一半。
| 写法 | 输入 | 特点 |
|---|---|---|
| 内坐标(推荐) | HO 1 0.9O 2 1.4 1 105.0H 3 0.9 2 105.0 1 120.0 | 变量少、物理意义清楚、方便加约束 |
| 笛卡尔坐标 | H 0.000 0.000 0.000O 0.000 0.900 0.000O 1.350 1.262 0.000H 1.464 1.742 -0.752 | 直观,但变量多(12 个) |
$ grep "SCF Done" h2o2.log SCF Done: E(RHF) = -150.710007216 A.U. after 9 cycles SCF Done: E(RHF) = -150.710007332 A.U. after 9 cycles SCF Done: E(RHF) = -150.710007337 A.U. after 8 cycles SCF Done: E(RHF) = -150.710007340 A.U. after 8 cycles
SCF=QC。A.U. 即 Hartree,1 Hartree = 27.211 eV。 ! Initial Parameters !
! (Angstroms and Degrees) !
-------------------------- --------------------------
! Name Definition Value Derivative Info. !
---------------------------------------------------------------------
! R1 R(1,2) 0.9000 -DE/DX = -0.0246 !
! R2 R(2,3) 1.4000 -DE/DX = -0.0312 !
! A1 A(1,2,3) 105.0000 -DE/DX = 0.0018 !
! D1 D(1,2,3,4) 120.0000 -DE/DX = 0.0000 !Name 是内坐标变量名,Definition 说明它由哪几个原子定义(R(1,2) = 原子 1 与 2 的键长),-DE/DX 是能量对该坐标的负梯度——也就是力。力为零的方向就是优化的方向。 -- Stationary point found.
! Optimized Parameters !
! (Angstroms and Degrees) !
! Name Definition Value Derivative Info. !
! R1 R(1,2) 0.9661 -DE/DX = 0.0000 !
! R2 R(2,3) 1.4028 -DE/DX = 0.0000 !
! A1 A(1,2,3) 100.1574 -DE/DX = -0.0001 !
! D1 D(1,2,3,4) 121.2654 -DE/DX = 0.0000 !(Enter /export/home/gaussian/g09/l9999.exe) 1\1\GINC-DIRAC2\FOpt\RHF\6-31G\H2O2\YLNIU\15-Oct-2018\0\\#p hf/6-31g opt\\H2O2 energy calculation\\0,1\H,-0.0661684...\ Normal termination of Gaussian 16 at ...
1\1\GINC-... 开头的那一长串,是机器可读的结果摘要——包含方法、基组、分子名、日期、路由段、以及最终的优化坐标。grep 这一行就能把结果全部抽出来,不必解析整个日志。Normal termination 是作业正常结束的最终凭据——没有它就说明算失败了。有时我们想固定某些结构参数(例如冻结分子骨架、扫描某根键)。做法是把变量分成两组:
| 组 | 含义 | 行为 |
|---|---|---|
| 变量(Variables) | 写在变量列表里的参数 | 会被优化 |
| 常量(Constants) | 在变量名后加 (0) 或直接给数值后跟 0 | 保持不动 |
#p hf/6-31g popt(popt = partial optimization,部分优化)# HF/STO-3G OPT C2H4 opt 0 1 C C 1 r1 H 1 r2 2 a1 H 1 r2 2 a1 3 180.0 H 2 r2 1 a1 3 0.0 H 2 r2 1 a1 4 0.0 r1=1.32 r2=1.09 a1=120.0
r2,两个 C—H 键长就永远相等,自动保持了对称性;同理 a1 共用让两个 H—C—C 角相等。先判断分子的点群,再用对称性把变量压到最少。CH₃F 属于 $C_{3v}$:C—F 是一根轴,三个 C—H 完全等价。
| 对称元素 | 数量 | 约束 |
|---|---|---|
| $C_3$ 三重轴 | 1 | 三个 C—H 键长相等、三个 H—C—F 角相等 |
| $\sigma_v$ 镜面 | 3 | 相邻 H 之间的夹角按 120° 均匀分布 |
手算点群容易出错,尤其是分子稍有畸变时。推荐先查表再写输入:
Symm=NoInt。)查一次点群,拿到的是两样东西:这个分子有哪些对称元素(左图), 以及它所属点群的特征标表(右图)。


# HF/STO-3G OPT CH3F C3v opt 0 1 C F 1 r1 H 1 r2 2 a1 H 1 r2 2 a1 3 b H 1 r2 2 a1 3 -b r1=1.38 r2=1.09 a1=110.6 b=120.0
F 1 r1:F 与 C 成键,距离 $r_1$;H 1 r2 2 a1:第一个 H 与 C 成键,C—H 键长 $r_2$,H—C—F 角 $a_1$;氨与 CH₃F 的点群相同(都是 $C_{3v}$),因此输入文件的结构完全一样,只需换元素和初始数值:
# HF/STO-3G OPT NH3 C3v opt 0 1 N H 1 r1 H 1 r1 2 a1 H 1 r1 2 a1 3 b H 1 r1 2 a1 3 -b r1=1.01 a1=107.0 b=120.0
呋喃(furan,C₄H₄O)是一个五元杂环芳香分子,属 $C_{2v}$ 点群——一条 $C_2$ 轴、两个镜面。
| 对称性带来的约束 | 结果 |
|---|---|
| 左右对称($C_2$ 轴) | 两侧对应的键长、键角全部相等 |
| 分子平面($\sigma_v$) | 所有原子共面,所有二面角锁死为 0° 或 180° |
| 独立变量数 | 从笛卡尔的 27 个(9 原子 × 3)降到个位数 |
Iop(1/8=6) 走笛卡尔坐标更稳妥。线性分子(点群 $D_{\infty h}$)的特殊之处:键角恒为 180°,二面角则完全无定义(绕轴旋转不改变任何东西)。
# HF/6-31G OPT acetylene linear opt 0 1 C C 1 r1 H 2 r2 1 180.0 H 1 r2 2 180.0 r1=1.20 r2=1.06
180.0 并且不能给它变量名(否则程序会试图优化一个恒为 180° 的量)。| 分子 | 点群 | 关键技巧 |
|---|---|---|
| C₂H₄ 乙烯 | $D_{2h}$ | 共用变量 + 二面角锁 180°/0° 保证平面性 |
| CH₃F | $C_{3v}$ | $\pm b$ 的二面角写法自动满足三重对称 |
| NH₃ | $C_{3v}$ | 同上一行,但注意孤对电子压小了键角 |
| 呋喃 Furan | $C_{2v}$ | 环上对称位置重复用变量;警惕内坐标冗余 |
| 乙炔 HC≡CH | $D_{\infty h}$ | 二面角必须删除,键角锁 180° |
HF/6-31G 优化,给出优化后的内坐标。HF/6-31G 优化,给出优化后的内坐标。.gjf);SCF Done 与 Optimized Parameters);