compute the ground state energy of a molecule as a functional of the one-electron density
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, xc, nuclear_gradient, populations, conv_tol, diis, diis_space, diis_start_cycle, direct_scf, direct_scf_tol, level_shift_factor, max_cycle, max_rho_cutoff, small_rho_cutoff, grids_atomic_radii, grids_becke_scheme, grids_level, grids_prune, grids_radi_method, grids_radii_adjust, grids_symmetry, excited_states, nstates
Density Functional Theory (DFT) computes the energy of a many-electron atom or molecule as a functional of the one-electron density ρ rather than the many-electron wavefunction ψ(r1, r2, ..., rN).
Formally, DFT relies upon the Hohenberg-Kohn theorem (1964) which states that the energy of any many-electron quantum system can be expressed as an exact functional of the one-electron density.
Practically, DFT solves for a set of N orbitals that satisfy the Kohn-Sham equations containing a one-electron exchange-correlation potential whose dependence upon the one-electron density is approximated by various DFT functionals.
DensityFunctional employs "B3LYP" as its default exchange-correlation (xc) functional. The full list of available functionals is provided in the help page Functionals. Furthermore, the available functionals can be searched with the SearchFunctionals command.
Excited states can be computed by setting the optional keyword excited_states to true (default is false) or one of the strings, "TDDFT" or "TDA". When set to true or "TDDFT", the excited states are computed by the time-dependent density functional theory (TDDFT) method; when set to "TDA", they are computed by the Tamm-Dancoff approximation (TDA) 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 = "Angstrom" or "Bohr". Default is "Angstrom".
max_memory = posint -- allowed memory in MB.
xc = string -- The full list of available functionals is provided in the help page Functionals. Default functional is "B3LYP".
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).
solvent = string -- name of the solvent. See Solvent. Default is "None".
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 errors vector are stored.
diis_start_cycle = posint -- the step to start diis. Default is 1.
direct_scf = boolean -- direct SCF is used by default.
direct_scf_tol = float -- direct SCF cutoff threshold. Default is 10−13.
level_shift_factor = float/int -- level shift (in au) for virtual space. Default is 0.
max_cycle = posint -- max number of iterations. Default is 50.
max_rho_cutoff = float -- 10−7.
small_rho_cutoff = float -- 0.
grids_atomic_radii = string -- "radi.BRAGG_RADII" (default), "radi.COVALENT_RADII", or "None".
grids_becke_scheme = string -- "gen_grid.original_becke" (default) or "gen_grid.stratmann".
grids_level = (0-9) -- big number for large mesh grids. Default is 3.
grids_prune = "gen_grid.nwchem_prune" (default), "gen_grid.sg1_prune", "gen_grid.treutler_prune", or "None".
grids_radi_method = "radi.treutler" (default), "radi.delley", "radi.mura_knowles", or "radi.gauss_chebyshev".
grids_radii_adjust = "radi.treutler_atomic_radii_adjust" (default), "radi.becke_atomic_radii_adjust", or "None".
grids_symmetry = boolean -- true or false to symmetrize mesh grids.
R. G. Parr and W. Yang, Density Functional Theory of Atoms and Molecules (Oxford University Press, New York, 1989).
P. Hohenberg and W. Kohn, Phys. Rev. 136, B864 (1964). "Inhomogeneous electron gas"
R. O. Jones, Rev. Mod. Phys. 87, 897 (2015). "Density functional theory: Its origins, rise to prominence, and future"
C. Ullrich, Time-Dependent Density-Functional Theory: Concepts and Applications (Oxford University Press, New York, 2012).
A DFT calculation of the hydrogen fluoride HF molecule
molecule ≔ H,0,0,0,F,0,0,0.95;
output_hf ≔ DensityFunctionalmolecule;
Download Help Document