Variational2RDM - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


QuantumChemistry

  

Variational2RDM

  

compute the ground-state energy of a molecule as a variational functional of the two-electron reduced density matrix (2-RDM)

 

Calling Sequence
Description
Options

Outputs
References
Examples

Calling Sequence

Variational2RDM(molecule, options)
Variational2RDM(nelectrons, mo_integrals = table)

Parameters

molecule

-

list of lists; each list has 4 elements, the string of an atom's symbol and atom's x, y, and z coordinates

options

-

(optional) equation(s) of the form option = value where option is one of active, conditions, casscf, nuclear_gradient, return_rdm, populations, symmetry, unit, conv_tol, max_memory, max_cycle, max_cycle_sdp, initial_mo, 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, nuclear_gradient_hf, populations_hf

nelectrons

-

integer; number of electrons

mo_integrals

-

mo_integrals = table where the table has two entries one_electron_integrals and two_electron_integrals that contain the one- and two-electron integrals, respectively.  The integrals must be specified as Matrices in the format given on the help page for MOIntegrals.   The table can have two additional entries to add pointgroup symmetry, group and mo_symmetry, in which group is a string with the pointgroup (i.e. "D2h", "C2h", "C2v", "D2", "Cs", "Ci", "C2", or "C1") and mo_symmetry is a Vector containing strings of the molecular orbitals' irreducible representations (i.e. the Vector returned as mo_symmetry by HartreeFock).  

Description

• 

The variational 2-RDM method computes the ground-state energy of a molecule as a variational functional of the two-electron reduced density matrix (2-RDM).  The 2-RDM is computed subject to N-representability conditions, which are necessary constraints for the 2-RDM to represent an N-electron density matrix.

• 

The 2-RDM is computed directly without the many-electron wave function through a special type of constrained optimization known as semidefinite programming.

• 

The optional conditions keyword controls the N-representability conditions employed in the calculation.  It can be set to the following strings: "D", "DQ", "DQG" (default), and "DQGT".

• 

The optional return_rdm keyword controls whether or not the spin-free 1- and/or 2-RDMs are returned.  If set to "rdm1" (default), the 1-RDM is returned, if set to "rdm1_and_rdm2", the 1- and 2-RDMs are returned, and if set to "none", RDMs are not returned.

• 

The optional active keyword can be provided to control the size of the active space.  The active keyword can be assigned to a list of two elements [N,r] containing the number N of active electrons and the number r of active orbitals or a set {} containing the indices of the molecular orbitals to be treated as active.  If the active keyword is not assigned, then a [2,2] active space is automatically chosen for even N and a [3,3] active space for odd N.

• 

The optional casscf keyword controls whether or not the orbitals of the active space are optimized.  If set to false (default), the orbitals are not optimized, and if set to true, the orbitals are optimized.

• 

The second calling sequence requires the number of electrons nelectrons and a keyword mo_integrals set to a Maple table that contains the one- and two-electron integrals.  This calling sequence allows for using custom Hamiltonians in the Variational 2-RDM method.

Outputs

The table of following contents:

te_tot

-

float -- total electronic energy of the system

te_corr

-

float -- the difference between the variational 2-RDM method's energy and the Hartree-Fock energy

tmo_coeff

-

Matrix -- coefficients expressing natural molecular orbitals (columns) in terms of atomic orbitals (rows)

tmo_coeff_canonical

-

Matrix -- coefficients expressing canonical molecular orbitals (columns) in terms of atomic orbitals (rows)

tmo_occ

-

Vector -- molecular (natural) orbital occupations

tconverged

-

integer -- 1 or 0, whether the energies are converged or not  

tgroup

-

string -- name of the molecule's point group symmetry

taolabels

-

Vector -- string label for each atomic orbital consisting of the atomic symbol and the orbital name

tactive_orbitals

-

list -- list of integers and/or integer ranges indicating the molecular orbitals that are active for correlation

trdm1

-

Matrix -- one-particle reduced density matrix (1-RDM) in molecular-orbital (MO) representation

trdm2

-

Matrix -- two-particle reduced density matrix (2-RDM) in molecular-orbital (MO) representation

tdipole

-

Vector -- dipole moment according to its x, y and z components

tpopulations

-

Matrix -- atomic-orbital populations

tcharges

-

Vector -- atomic charges from the populations

tnuclear_gradient

-

Matrix -- analytical nuclear gradient

Options

• 

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 (default) finds the appropriate symmetry while false does not use symmetry.

• 

unit = string -- "Angstrom" or "Bohr". Default is "Angstrom".

• 

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.

• 

conditions = string -- "D", "DQ", "DQG," or "DQGT". Default is "DQG".

• 

active = list or set -- [number of electrons, number of active orbitals] or {integer indices of the active orbitals}

• 

return_rdm = string -- options to return the 1-RDM and/or 2-RDM: "none", "rdm1", "rdm1_and_rdm2". Default is "rdm1".

• 

casscf = boolean -- optimize the active orbitals through rotations with the inactive orbitals. Default is false.

• 

pair = boolean -- treat the active orbitals with a pair variational 2-RDM method corresponding to the doubly occupied configuration interaction approximation. Default is false.

• 

populations = string -- atomic-orbital population analysis: "Mulliken" and "Mulliken/meta-Lowdin". Default is "Mulliken".

• 

nuclear_gradient = boolean -- option to return the analytical nuclear gradient if available. Default is false.

• 

conv_tol = float -- converge threshold. Default is 5*105.

• 

max_cycle = posint -- max number of iterations. Default is 50.

• 

max_cycle_sdp = posint -- max number of SDP iterations. Default is 50000.

• 

max_memory = posint/boolean -- allowed memory in MB. Default is 4000.

• 

verbose = posint -- positive integer between 1 and 5 that controls printing. Default is 1.

• 

initial_mo = list -- initial molecular orbitals (MOs) as a list: [ t[mo_coeff], t[mo_symmetry] ] where t[mo_coeff] is the Matrix of MOs (columns) in terms of atomic orbitals (rows) and t[mo_symmetry] is the Vector of MO symmetries (see HartreeFock output).

• 

Attributes for Hartree Fock:

• 

conv_tol_hf = float -- converge threshold. Default is 1010.

• 

diis_hf = boolean -- whether to do diis. Default is true.

• 

diis_space_hf = posint -- diis's space size. By default, 8 Fock matrices and errors vector 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 1013.

• 

level_shift_hf = float/int -- level shift (in a.u.) for virtual space. Default is 0.

• 

max_cycle_hf = posint -- max number of iterations. Default is 50.

• 

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".

• 

mo_integrals = table -- table with two entries one_electron_integrals and two_electron_integrals containing the one- and two-electron integrals, respectively.  The integrals must be specified as Matrices in the format given on the help page for MOIntegrals.   The table can have two additional entries to add pointgroup symmetry, group and mo_symmetry, in which group is a string with the pointgroup (i.e. "D2h", "C2h", "C2v", "D2", "Cs", "Ci", "C2", or "C1") and mo_symmetry is a Vector containing strings of the molecular orbitals' irreducible representations (i.e. the Vector returned as mo_symmetry by HartreeFock).

References

1. 

D. A. Mazziotti, Phys. Rev. Lett. 106, 083001 (2011). "Large-scale semidefinite programming for many-electron quantum mechanics"

2. 

D. A. Mazziotti, Phys. Rev. Lett. 93, 213001 (2004). "Realization of quantum chemistry without wave functions through first-order semidefinite programming"

3. 

A. W. Schlimgen, C. W. Heaps, and D. A. Mazziotti, J. Phys. Chem. Lett. 7, 627-631 (2016). "Entangled electrons foil synthesis of elusive low-valent vanadium oxo complex"

4. 

J. M. Montgomery and D. A. Mazziotti, J. Phys. Chem. A 122, 4988-4996 (2018). "Strong electron correlation in nitrogenase cofactor, FeMoco"

5. 

L. E. McNamara, J.-N. Boyn, C. Melnychuk, S. W. Anferov, D. A. Mazziotti, R. D Schaller, and J. S Anderson, J. Am. Chem. Soc. 144, 16447-16455 (2022). "Bright, modular, and switchable near-infrared II emission from compact tetrathiafulvalene-based diradicaloid complexes"

Examples

withQuantumChemistry:

A variational 2-RDM calculation of the hydrogen fluoride HF molecule

molecule  H,0,0,0,F,0,0,0.95;

moleculeH,0,0,0,F,0,0,0.95000000

(1)

output_hf  Variational2RDMmolecule, active=3,6, basis=dz;

Consider the molecule porphyrin

porphyrin  MolecularGeometryporphyrin;

porphyrinN,0.41270000,1.98750000,0.00600000,N,−2.17470000,0.39250000,−0.24630000,N,1.99980000,−0.37780000,0.02600000,N,−0.38610000,−1.92460000,0.03210000,C,−0.58090000,2.92330000,−0.12260000,C,−2.66830000,1.63500000,0.08770000,C,1.67060000,2.53490000,−0.08640000,C,−3.09270000,−0.59120000,0.05040000,C,−1.91870000,2.82790000,−0.09620000,C,0.12580000,4.19230000,−0.29380000,C,−3.96180000,1.43880000,0.53500000,C,1.45170000,3.96250000,−0.26730000,C,−4.22710000,0.04920000,0.51040000,C,2.87440000,1.94860000,−0.03850000,C,−2.81980000,−1.96620000,−0.17610000,C,2.97660000,0.47870000,0.08240000,C,−1.60350000,−2.53250000,−0.17530000,C,2.58760000,−1.61060000,0.15620000,C,0.49120000,−2.88490000,−0.03030000,C,1.96090000,−2.79310000,0.13490000,C,4.30850000,−0.11290000,0.25850000,C,−1.36830000,−3.94400000,−0.36680000,C,4.00910000,−1.41320000,0.29990000,C,−0.06710000,−4.22030000,−0.27980000,H,−2.50140000,3.74390000,−0.18110000,H,0.26030000,1.01000000,0.19310000,H,−1.27220000,0.21960000,−0.66540000,H,−0.34730000,5.15390000,−0.41810000,H,−4.64240000,2.21750000,0.85240000,H,2.22780000,4.70420000,−0.36980000,H,−5.14780000,−0.43540000,0.80620000,H,3.79140000,2.52310000,−0.11690000,H,−3.68870000,−2.60860000,−0.30970000,H,2.51710000,−3.72110000,0.22650000,H,5.26030000,0.37900000,0.33090000,H,−2.14430000,−4.67240000,−0.54800000,H,4.72590000,−2.21120000,0.41950000,H,0.44540000,−5.15990000,−0.36890000

(2)

PlotMoleculeporphyrin;

data  Variational2RDMporphyrin;

With the second calling sequence we can customize the Hamiltonian by defining the electron integrals.  For example, let us demonstrate by using the integrals returned by MOIntegrals

molecule  H,0,0,0,F,0,0,0.95: 

data  HartreeFockmolecule, symmetry=false:

modata  datamo_coeff,datamo_symmetry:

mo  MOIntegralsmolecule, initial_mo=modata:

mointsone_electron_integrals mokinetic_energy_integrals+monuclear_attraction_integrals:

mointstwo_electron_integrals  moelectron_repulsion_integrals:

nelectrons  10:

data  Variational2RDMnelectrons, mo_integrals=moints;

datatablee_tot=−103.61457071,mo_coeff=,mo_occ=,group=C1,rdm1=,converged=1

(3)

Note that the returned energy needs to be corrected for the nuclear repulsion energy

energy  datae_tot+NuclearEnergymolecule;

 

energy−98.60131255

(4)

To verify this result, we compare with computing the energy by the standard approach

energy  Energymolecule, method=Variational2RDM, active=10,6;

energy−98.60131262

(5)

 

See Also

QuantumChemistry
HartreeFock
FullCI
ActiveSpaceCI
ActiveSpaceSCF
Parametric2RDM
ContractedSchrodinger