How Does a Stability Analysis Work?¶
An SCF calculation stops as soon as the energy is stationary with respect to mixing occupied and virtual orbitals, the Hartree–Fock (or Kohn–Sham) analogue of Brillouin's theorem. That condition, however, only guarantees a stationary point in orbital-rotation space. It does not guarantee that the point is a minimum.
A converged determinant can fall into one of several categories:
- Genuinely stable, a true local minimum; no lower-energy rearrangement of the orbitals exists.
- RHF→RHF unstable, a lower-energy solution exists within the same spin-restricted, real-orbital space, often caused by an artificial symmetry constraint.
- RHF→UHF unstable, a lower-energy spin-unrestricted solution exists; common for biradicaloid systems, stretched bonds, and some transition-metal complexes.
- Complex unstable, a lower-energy solution exists only when complex-valued orbital coefficients are allowed; rare, and mostly relevant to certain symmetric or periodic systems.
The Orbital Hessian¶
To tell these cases apart, Gaussian examines the second derivative of the energy with respect to orbital-rotation parameters, the electronic (orbital) Hessian, commonly called the stability matrix. This object is built from exactly the same two blocks, A and B, that appear in RPA/TDHF and CIS excited-state theory, which is why stability analysis and excited-state calculations share so much underlying machinery.
- If the relevant combination of
AandBis positive definite, the tested channel is stable. - If it has a negative eigenvalue, that eigenvector points directly toward a lower-energy determinant.
Why Iterative Diagonalization?¶
The full stability matrix has a dimension of (occupied × virtual orbitals), which becomes far too large to diagonalize directly for any realistic molecule. Gaussian instead uses a Davidson-type iterative solver (visible in the log as the CISAX routine): a small trial subspace is built, its projected matrix is diagonalized, and new trial vectors are added from the residuals until only the lowest few eigenvalues, the ones that matter for stability, have converged.
Converged SCF Wavefunction
│
▼
Form Trial Orbital-Rotation Vectors
│
▼
Davidson Iterations:
build reduced matrix → diagonalize →
check residuals → expand subspace
│
▼
Lowest Eigenvalues Converged
│
▼
Classify by Spin (⟨S²⟩) and Symmetry
│
▼
All Eigenvalues ≥ 0 ?
│ │
Yes No
│ │
Stable Unstable
│ │
Done Rotate orbitals along
softest eigenvector,
restart SCF, repeat
What "Stable=Opt" Adds¶
Used alone, the stable keyword defaults to Stable=Opt. If any instability is found, Gaussian does not just report it, it automatically displaces the orbitals along the softest (most negative) eigenvector, forms a new SCF guess from the rotated orbitals, and reconverges. This whole cycle repeats until a genuinely stable wavefunction is found or an internal iteration limit is reached, so that the wavefunction handed off to any subsequent calculation is trustworthy.