compute the ground state energy of a molecule with each electron in the mean field of the other electrons
list of lists; each list has 4 elements, the string of an atom's symbol and atom's x, y, and z coordinates
(optional) equation(s) of the form option = value where option is one of symmetry, unit, max_memory, conv_tol, diis, diis_space, diis_start_cycle, direct_scf, direct_scf_tol, level_shift_factor, max_cycle, nuclear_gradient, populations, excited_states, nstates
The Hartree Fock (HF) method computes the energy of a many-electron atom or molecule with each electron in the mean field of the other electrons.
Formally, the many-electron wavefunction in HF is approximated as an antisymmetrized product of orbitals, known as a Slater determinant. The Hartree-Fock energy is an upper bound on the ground-state energy by the variational principle. It is the lowest energy possible from a trial wave function that is a single Slater determinant.
Practically, for an N-electron atom or molecule HF solves for a set of N orbitals that satisfy the Hartree-Fock equations that approximate the electron-electron repulsion as a effective one-electron potential. The effective one-electron potential contains two terms known as Coulomb and exchange terms.
Because wavefunction from the Hartree-Fock method can be expressed as a product of orbitals, it is said to be not correlated. The correlation energy of the Hartree-Fock method, by definition, is zero.
Excited states can be computed by setting the optional keyword excited_states to true (default is false) or one of the strings, "TDHF" or "CIS". When set to true or "TDHF", the excited states are computed by the time-dependent Hartree-Fock (TDHF) method; when set to "CIS", they are computed by the configuration interaction singles (CIS) method.
The table of following contents:
float -- total electronic energy of the system
Matrix -- coefficients expressing molecular orbitals (columns) in terms of atomic orbitals (rows)
Vector -- molecular orbital occupations
Vector -- energies of the molecular orbitals
Vector -- string labels of the irreducible representations of the molecular orbitals
string -- name of the molecule's point group symmetry
Vector -- string label for each atomic orbital consisting of the atomic symbol and the orbital name
integer -- 1 or 0, indicating whether the calculation is converged or not
Matrix -- one-particle reduced density matrix (1-RDM) in the atomic-orbital basis set
Matrix -- analytical nuclear gradient
Vector -- dipole moment according to its x, y and z components
Matrix -- atomic-orbital populations
Vector -- atomic charges from the populations
Vector -- energies of excited states
Vector -- spin of excited states
Matrix -- transition dipoles
Vector -- oscillator strengths
Matrix -- 1-electron reduced transition matrices with each matrix stored as a column vector
basis = string -- name of the basis set. See Basis for a list of available basis sets. Default is "sto-3g".
spin = nonnegint -- twice the total spin S (= 2S). Default is 0.
charge = nonnegint -- net charge of the molecule. Default is 0.
symmetry = string/boolean -- is the Schoenflies symbol of the abelian point-group symmetry which can be one of the following: D2h, C2h, C2v, D2, Cs, Ci, C2, C1. true finds the appropriate symmetry while false (default) does not use symmetry.
unit = string -- "Angstrom" or "Bohr". Default is "Angstrom".
max_memory = posint -- allowed memory in MB. Default is 4000.
excited_states = boolean/string -- options to compute excited states: true ("TDHF"), false (default), "TDHF", and "CIS".
nstates = posint/list -- number of excited states: integer n or list [p,q] where p is the number of singlets and q is the number of triplets and n is interpreted as [n,n] (default is 6).
ghost = list of lists -- each list has the string of an atom's symbol and the atom's x, y, and z coordinates. See Ghost Atoms.
nuclear_gradient = boolean -- option to return the analytical nuclear gradient if available. Default is false.
populations = string -- atomic-orbital population analysis: "Mulliken" and "Mulliken/meta-Lowdin". Default is "Mulliken".
conv_tol = float -- converge threshold. Default is 10−10.
diis = boolean -- whether to employ diis. Default is true.
diis_space = posint -- diis's space size. By default, 8 Fock matrices and error vectors are stored.
diis_start_cycle = posint -- the step to start diis. Default is 1.
direct_scf = boolean -- direct SCF in which integrals are recomputed is used by default.
direct_scf_tol = float -- direct SCF cutoff threshold. Default is 10−13.
level_shift = float/int -- level shift (in au) for virtual space. Default is 0.
max_cycle = posint -- max number of iterations. Default is 50.
D. R. Hartree, Math. Proc. Camb. Phil. Soc. 24, 111-132 (1928). The wave mechanics of an atom with a
non-Coulomb central field. Part II. Some results and discussion
V. Fock, Z. Physik 61, 126-148 (1930). Näherungsmethode zur lösung des quantenmechanischen mehrkörperproblems
C. C. J. Roothaan, Rev. Mod. Phys. 23, 69–89 (1951). "New developments in molecular orbital theory"
A. Szabo and N. S. Ostlund, Modern Quantum Chemistry: Introduction to Advanced Electronic Structure Theory (Dover Books, New York, 1996).
A Hartree-Fock calculation of the hydrogen fluoride HF molecule
molecule ≔ H,0,0,0,F,0,0,0.95;
output_hf ≔ HartreeFockmolecule;
Download Help Document