compute the ground state energy of a molecule by second-order many-body perturbation theory
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, nuclear_gradient, return_rdm, populations, conv_tol_hf, diis_hf, diis_space_hf, diis_start_cycle_hf, direct_scf_hf, direct_scf_tol_hf, level_shift_hf, max_cycle_hf, max_memory_scf_hf, nuclear_gradient_hf, populations_hf
Second-order many-body perturbation theory (MP2) computes the ground state of a many-electron atom or molecule with the correlation energy treated by a second-order perturbation expansion around the Hartree-Fock energy.
MP2 is non-variational, meaning that its energy is not necessarily an upper bound to the full CI energy in a given basis set.
The table of following contents:
float -- total electronic energy of the system
float -- the difference between the MP2 energy and the Hartree-Fock energy
Matrix -- coefficients expressing molecular orbitals (columns) in terms of atomic orbitals (rows)
Vector -- molecular orbital occupations
Array -- two-electron transition amplitudes
Matrix -- one-particle reduced density matrix (1-RDM) in molecular-orbital (MO) representation
Array -- two-particle reduced density matrix (2-RDM) in molecular-orbital (MO) representation
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
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.
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.
initial_mo = Matrix -- Matrix of MOs (columns) in terms of atomic orbitals (rows) that defines the MO basis set.
nuclear_gradient = boolean -- option to return the analytical nuclear gradient if available. Default is false.
return_rdm = string -- options to return the 1-RDM and/or 2-RDM: "none", "rdm1", "rdm1_and_rdm2". Default is "rdm1".
populations = string -- atomic-orbital population analysis: "Mulliken" and "Mulliken/meta-Lowdin". Default is "Mulliken".
Attributes for Hartree Fock:
conv_tol_hf = float -- converge threshold. Default is 10−10.
diis_hf = boolean -- whether to employ diis. Default is true.
diis_space_hf = posint -- diis's space size. By default, 8 Fock matrices and error vectors are stored.
diis_start_cycle_hf = posint -- the step to start diis. Default is 1.
direct_scf_hf = boolean -- direct SCF in which integrals are recomputed is used by default.
direct_scf_tol_hf = float -- direct SCF cutoff threshold. Default is 10−13.
level_shift_hf = float/int -- level shift (in au) for virtual space. Default is 0.
max_cycle_hf = posint -- max number of iterations. Default is 50.
max_memory_scf_hf = posint -- allowed memory in MB. Default is 4000.
nuclear_gradient_hf = boolean -- option to return the analytical nuclear gradient. Default is false.
populations_hf = string -- atomic-orbital population analysis: "Mulliken" and "Mulliken/meta-Lowdin". Default is "Mulliken".
C. Møller and M. S. Plesset, Phys. Rev. 46, 618–622 (1934). "Note on an Approximation Treatment for Many-Electron Systems"
A. Szabo and N. S. Ostlund, Modern Quantum Chemistry: Introduction to Advanced Electronic Structure Theory (Dover Books, New York, 1996).
An MP2 calculation of the hydrogen fluoride HF molecule
molecule ≔ H,0,0,0,F,0,0,0.95;
output_hf ≔ MP2molecule,basis=dz;
Download Help Document