Hartree-Fock methods

In this section the Hartree-Fock methods will be described.

Restricted Hartree-Fock

For the Roothan-Hartee-Fock equations an orthogonal basis is needed, first the first orthogonalization matrix is constructed from the overlap matrix. First by a diagonalization:

\[SL_{S}=L_{S}\Lambda_{S}\]

and then the orthogonalization matrix is constructed:

\[S_{\mathrm{ortho}}=L_{S}\Lambda_{S}^{-1/2}L_{S}^{T}\]

The SCF iterations requires an initial Fock matrix given as:

\[F_{0}=H^{\mathrm{core}}\]

The SCF procedure is calulated as the following equations. First the fock matrix is constructed:

\[\left.F_{n,ij}\right|_{n\neq0}=H_{ij}^{\mathrm{core}}+\sum_{kl}^{\mathrm{AO}}D_{n-1,kl}\left(2\left(ij\left|\right|kl\right)-\left(ik\left|\right|jl\right)\right)\]

Then the Fock matrix is brought into the orthogonal basis:

\[F_{n}^{'}=S_{\mathrm{ortho}}^{T}H^{\mathrm{core}}S_{\mathrm{ortho}}\]

The F’ is then diagonalized:

\[F_{n}^{'}C_{n}^{'}=C_{n}^{'}\epsilon_{n}\]

The coefficients are transformed back:

\[C_{n}=S_{\mathrm{ortho}}C_{n}^{'}\]

A density matrix can be made from the coefficients:

\[D_{n,ij}=\sum_{k}^{\mathrm{occ}}C_{n,ki}C_{n,kj}\]

The electronic energy of system can be found as:

\[E_{n,\mathrm{elec}}=\sum_{ij}^{\mathrm{AO}}D_{0,ij}\left(H_{ij}^{\mathrm{core}}+F_{n,ij}\right)\]

The above SCF procedure will is stopped at certain tresholds. The change in energy and the RMSD of the density matrix can be found as:

\[\Delta E_{n}=E_{n,\mathrm{elec}}-E_{n-1,\mathrm{elec}}\]
\[\mathrm{RMSD}_{n}=\sqrt{\sum_{ij}D_{n,ij}-D_{n-1,ij}}\]

FUNCTION:

  • HartreeFock.HartreeFock(input, VNN, Te, S, VeN, Vee, deTHR=10**-6,rmsTHR=10**-6,Maxiter=100, DO_DIIS=’Yes’, DIIS_steps=6, print_SCF=’Yes’)
  • return EHF, C, F, D, iter

Input:

  • input, inputfile object
  • VNN, nuclear-nuclear repulsion
  • Te, electronic energy matrix
  • S, overlap matrix
  • VeN, nuclear-electron attraction matrix
  • Vee, ERI matrix
  • deTHR, energy change threshold for convergence
  • rmsTHR, RMS threshold for convergence
  • Maxiter, max SCF iterations
  • DO_DIIS, enable DIIS, if = ‘Yes’
  • DIIS_steps, how many steps are stored in DIIS
  • print_SCF, wether to print SCF to output

Output:

  • EHF, Total Hartree-Fock energy
  • C, MO coefficients
  • F, Fock matrix
  • D, density matrix
  • iter, SCF iterations used

References:

Unrestricted Hartee-Fock

The unrestricted Hartee-Fock method uses the same SCF procedure as as the restricted Hartree-Fock, but with the Fock matrix coupling the alpha and beta spins:

\[F_{n,\alpha,ij}=H_{ij}^{\mathrm{core}}+\sum_{kl}^{\mathrm{AO}}D_{n-1,\alpha,kl}\left(\left(ij\left|\right|kl\right)-\left(ik\left|\right|jl\right)\right)+\sum_{kl}^{\mathrm{AO}}D_{n-1,\beta,kl}\left(ij\left|\right|kl\right)\]

FUNCTION:

  • UHF.HartreeFock(input, VNN, Te, S, VeN, Vee, deTHR=10**-6,rmsTHR=10**-6,Maxiter=100, UHF_mix=0.15, print_SCF=’Yes’)
  • return EUHF, C_alpha, F_alpha, D_alpha, C_beta, F_beta, D_beta, iter

Input:

  • input, inputfile object
  • VNN, nuclear-nuclear repulsion
  • Te, electronic energy matrix
  • S, overlap matrix
  • VeN, nuclear-electron attraction matrix
  • Vee, ERI matrix
  • deTHR, energy change threshold for convergence
  • rmsTHR, RMS threshold for convergence
  • Maxiter, max SCF iterations
  • UHF_mix, how much beta and alpha are mixed to break symmetry
  • print_SCF, wether to print SCF to output

Output:

  • EUHF, total UHF energy
  • C_alpha, MO coefficients
  • F_alpha, Fock matrix
  • D_alpha, density matrix
  • C_beta, MO coefficients
  • F_beta, Fock matrix
  • D_beta, density matrix

References:

  • Szabo and Ostlund, Modern Quantum Chemistry: Introduction to Advanced Electronic Structure Theory

In unrestricted Hartree-Fock for a closed shell system the spin-symmetry needs to be broken else restricted Hartree-Fock is restored. This is done by the following method, after the first MO coefficients have been made:

\[C_{i,\mathrm{HOMO}}^{\mathrm{new}}=\frac{1}{\sqrt{1+k^{2}}}\left(C_{i,\mathrm{HOMO}}^{\mathrm{old}}+kC_{i,\mathrm{LUMO}}^{\mathrm{old}}\right)\]
\[C_{i,\mathrm{LUMO}}^{\mathrm{new}}=\frac{1}{\sqrt{1+k^{2}}}\left(-kC_{i,\mathrm{HOMO}}^{\mathrm{old}}+C_{i,\mathrm{LUMO}}^{\mathrm{old}}\right)\]