Unrestricted Hartree-Fock (UHF) Equations
For open-shell systems, UHF uses separate spatial orbitals for alpha () and beta () electrons. This breaks spin symmetry but allows different spatial distributions for each spin.
Pople-Nesbet Equations
The UHF Fock equations are:
where , are the alpha and beta Fock matrices, , are the molecular orbital coefficient matrices, is the overlap matrix, and , are the orbital energy vectors.
Fock Matrix Construction
The Fock matrices are:
Components
| Term | Expression | Notes |
|---|---|---|
| Core Hamiltonian | Same for both spins; kinetic + nuclear attraction | |
| Coulomb | From total density | |
| Exchange alpha | From alpha density only | |
| Exchange beta | From beta density only |
The key difference from RHF:
- RHF: (factor 2 from spin summation)
- UHF: uses total density (no factor 2); exchange uses respective spin density
Density Matrices
The alpha and beta density matrices are:
where and are the number of alpha and beta electrons (occupied orbitals).
Electronic Energy
The total electronic energy is the sum of alpha and beta contributions:
Expanding:
The total energy includes nuclear repulsion:
SCF Iteration Procedure
- Initial guess: Build initial , from core Hamiltonian or Hückel/SAD
- Build Fock matrices: ,
- Solve eigenproblems: Diagonalize and similarly for
- Form new densities: , from occupied orbitals
- Check convergence: RMS density change
- Mix/damp/DIIS: Apply acceleration if enabled
- Repeat until convergence
Convergence Criteria
OpenQuantum uses the combined RMS density change:
Default threshold: .
Acceleration Methods
| Method | Description |
|---|---|
| DIIS | Pulay's Direct Inversion in Iterative Subspace (default, starts at iteration 2) |
| Level shifting | Adds shift to virtual orbital energies to prevent oscillations |
| Density damping | |
| Fermi broadening | Fractional occupation near Fermi level for difficult convergence |
| QC-SCF | Quadratic convergence (Newton-Raphson) with spin-parametric code |
Implementation in OpenQuantum
Fock Build (crates/scf/src/fock.rs::build_uhf_fock_matrices)
#![allow(unused)] fn main() { pub fn build_uhf_fock_matrices( h_core: &DMatrix<f64>, density_alpha: &DMatrix<f64>, density_beta: &DMatrix<f64>, eri: &(impl IntegralProvider + Sync), ) -> (DMatrix<f64>, DMatrix<f64>) { // Total density P^T = P^α + P^β let total_density = density_alpha + density_beta; // Coulomb matrix from total density (same for both spins) let j = build_coulomb_matrix(&total_density, eri); // Exchange matrices (different for each spin) let k_alpha = build_exchange_matrix(density_alpha, eri); let k_beta = build_exchange_matrix(density_beta, eri); // F^α = H + J - K^α let fock_alpha = h_core + &j - &k_alpha; // F^β = H + J - K^β let fock_beta = h_core + &j - &k_beta; (fock_alpha, fock_beta) } }
SCF Driver (crates/scf/src/uhf.rs::uhf_scf)
The main loop handles:
- Separate alpha/beta diagonalization with
generalized_eigensolve - DIIS with combined error vectors
- Level shifting on both Fock matrices
- Spin contamination calculation via
compute_s_squared - Convergence checking on combined RMS density change
Initial Guess
OpenQuantum supports three initial guesses for UHF:
- Core Hamiltonian (default): Diagonalize in orthogonal basis; same MOs for both spins, different occupations
- Extended Hückel: Approximate MO coefficients from atomic orbital parameters
- SAD (Superposition of Atomic Densities): Build initial density from atomic fragments
Comparison with RHF
| Aspect | RHF | UHF |
|---|---|---|
| Orbitals | Single set (doubly occupied) | Separate and sets |
| Exchange | One matrix | Two: , |
| Coulomb | (spin sum) | from |
| Spin symmetry | Pure | Contaminated |
| Cost | Lower | ~2× RHF (two Fock builds, two diagonalizations) |
| Use case | Closed-shell | Open-shell, bond breaking, radicals |
ROHF Connection
Restricted open-shell HF (ROHF) uses a single set of orbitals for both spins but with different occupation numbers. The Fock matrix is a linear combination:
ROHF maintains spin purity () but often gives higher energies than UHF for open-shell systems.
Further Reading
- Pople & Nesbet, "Self-consistent orbitals for radicals" (1954)
- Szabo & Ostlund, Modern Quantum Chemistry, Ch. 3
- Helgaker, Jørgensen & Olsen, Molecular Electronic-Structure Theory, Ch. 10