DCT: Density Cumulant Theory¶
Code author: Alexander Yu. Sokolov, Andrew C. Simmonett, and Xiao Wang
Section author: Alexander Yu. Sokolov
Module: Keywords, PSI Variables, DCT
Theory¶
Density cumulant theory (DCT) is a density-based ab initio theory
that can compute electronic energies without the use of a wavefunction. The
theory starts by writing the exact energy expression in terms of the one- and
two-particle density matrices (
Here we used Einstein convention for the summation over the repeated indices.
The one-particle density matrix is separated into its idempotent part
The idempotent part of
where the antisymmetrized two-electron integrals and the generalized Fock operator matrix elements were defined as follows:
Energy functional
In order to obtain the DCT energy, two conditions must be satisfied:
The energy must be stationary with respect to a set of orbitals. This can be done by diagonalizing the generalized Fock operator (as in the DC-06 and DC-12 methods, see below), which introduces partial orbital relaxation, or by fully relaxing the orbitals and minimizing the entire energy expression (as in the ODC-06 and ODC-12 methods).
The energy must be stationary with respect to the variation of the density cumulant
, constrained to N-representability conditions.
Making the energy stationary requires solution of two sets of coupled equations for orbitals and density cumulant, respectively (also known as residual equations). At the present moment, three different algorithms for the solution of the system of coupled equations are available (see Iterative Algorithms for details).
Publications resulting from the use of the DCT code should cite contributions listed here.
Methods¶
Currently five DCT methods (functionals) are available: DC-06, DC-12, ODC-06, ODC-12, and ODC-13. The first four
methods use approximate N-representability conditions derived from
second-order perturbation theory and differ in the description of the
correlated (non-idempotent) part
The DCT functional can be specified by the DCT_FUNCTIONAL option. The
default choice is the ODC-12 functional. The DCT code can also be used to
compute the
At the present moment, all of the DCT methods support unrestricted reference
orbitals (REFERENCE UHF
), which can be used to perform energy and
gradient computations for both closed- and open-shell molecules. In addition,
the ODC-06 and ODC-12 methods support restricted reference orbitals
(REFERENCE RHF
) for the energy and gradient computations of
closed-shell molecules. Note that in this case restricted reference orbitals
are only available for ALGORITHM SIMULTANEOUS
.
Iterative Algorithms¶
As explained in the Theory section, in order to obtain the DCT energy one needs to solve a system of coupled equations for orbitals and density cumulant. At the present moment three iterative algorithms for the solution of the equations are available. The choice of the algorithm is controlled using the ALGORITHM option.
- SIMULTANEOUS [Default]
In the simultaneous algorithm the DCT equations are solved in macroiterations. Each macroiteration consists of a single iteration of the cumulant update followed by a single iteration of the orbital update and orbital transformation of the integrals. The macroiterations are repeated until the simultaneous convergence of the cumulant and orbitals is achieved. Convergence of the simultaneous algorithm is accelerated using the DIIS extrapolation technique.
- TWOSTEP
In the two-step algorithm each macroiteration consists of two sets of microiterations. In the first set, the density cumulant equations are solved iteratively, while the orbitals are kept fixed. After the density cumulant is converged, the second set of microiterations is performed for the self-consistent update of the orbitals with the fixed density cumulant. Each macroiteration is completed by performing the orbital transformation of the integrals. As in the simultaneous algorithm, the DIIS extrapolation is used to accelerate convergence. Two-step algorithm is only available for the DC-06 and DC-12 methods.
- QC
In the quadratically-convergent algorithm, the orbital and cumulant update equations are solved using the Newton-Raphson method. Each macroiteration of the quadratically-convergent algorithm consists of a single Newton-Raphson update followed by the orbital transformation of the integrals. The solution of the Newton-Raphson equations is performed iteratively using the preconditioned conjugate gradients method, where only the product of the electronic Hessian with the step vector is computed for efficiency. By default, the electronic Hessian is build for both the cumulant and orbital updates and both updates are performed simultaneously. Setting the QC_TYPE option to
TWOSTEP
will perform the Newton-Raphson update only for the orbitals, while the equations for the cumulant will be solved using a standard Jacobi update. If requested by the user (set QC_COUPLING to TRUE), the electronic Hessian can include matrix elements that couple the orbitals and the density cumulant. The computation of these coupling elements increases the cost of the macroiteration, but usually leads to faster convergence and is recommended for open-shell systems. It is important to note that the quadratically-convergent algorithm is not yet fully optimized and often converges slowly when the RMS of the cumulant or the orbital gradient is below .
The choice of the iterative algorithm can significantly affect the cost of the
energy computation. While the two-step algorithm requires a small number of
disk-intensive
Analytic Gradients¶
Analytic gradients are available for the DC-06, ODC-06, ODC-12, and ODC-13 methods.
For DC-06, the evaluation of the analytic gradients requires the solution of the
coupled response equations. Two algorithms are available for their iterative
solution: TWOSTEP
(default) and SIMULTANEOUS
. These algorithms are similar to those
described for the orbital and cumulant updates in the Iterative Algorithms
section and usually exhibit similar efficiency. The choice of the algorithm can
be made using the RESPONSE_ALGORITHM option. For the DC-12 method the
analytic gradients are not yet available, one has to use numerical gradients to
perform the geometry optimizations. For the ODC-06, ODC-12 and ODC-13 methods no response equations
need to be solved, which makes the computation of the analytic gradients very
efficient. Analytic gradients are not available for the three-particle energy
correction
Methods Summary¶
The table below summarizes current DCT code features:
Method
Available algorithms
Energy
Gradient
Reference
ODC-06
SIMULTANEOUS, QC
Y
Y
RHF/UHF
ODC-12
SIMULTANEOUS, QC
Y
Y
RHF/UHF
ODC-13
SIMULTANEOUS, QC
Y
Y
UHF
SIMULTANEOUS, QC
Y
N
UHF
SIMULTANEOUS, QC
Y
N
UHF
DC-06
SIMULTANEOUS, QC, TWOSTEP
Y
Y
UHF
DC-12
SIMULTANEOUS, QC, TWOSTEP
Y
N
UHF
Note that for ODC-06 and ODC-12 REFERENCE RHF
is only available for
ALGORITHM SIMULTANEOUS
. To compute
Minimal Input¶
Minimal input for the DCT single-point computation looks like this:
molecule {
H
H 1 1.0
}
set basis cc-pvdz
energy('dct')
The energy('dct')
call to energy()
executes the DCT
module, which will first call the SCF module and perform the SCF computation
with RHF reference to obtain a guess for the DCT orbitals. After SCF is
converged, the program will perform the energy computation using the ODC-12
method. By default, simultaneous algorithm will be used for the solution of
the equations. One can also request to perform geometry
optimization following example below:
molecule {
H
H 1 1.0
}
set basis cc-pvdz
optimize('dct')
The optimize('dct')
call will first perform all of the procedures
described above to obtain the ODC-12 energy. After that, the ODC-12 analytic
gradients code will be executed and geometry optimization will be performed.
Recommendations¶
Here is a list of recommendations for the DCT module:
Generally, the use of the simultaneous algorithm together with the AO_BASIS
DISK
option is recommended (set by default).In cases when available memory is insufficient, the use of the AO_BASIS
DISK
option is recommended. This will significantly reduce the memory requirements. However, when used together with the two-step algorithm, this option can significantly increase the cost of the energy computation.In cases when the oscillatory convergence is observed before the DIIS extrapolation is initialized, it is recommended to increase the threshold for the RMS of the density cumulant or orbital update residual, below which the DIIS extrapolation starts. This can be done by setting the DIIS_START_CONVERGENCE option to the value greater than
by one or two orders of magnitude (e.g. or ). This can be particularly useful for computations using the ODC methods, because it can greatly reduce the number of iterations.If oscillatory convergence is observed for atoms or molecules with high symmetry, it is recommended to use the quadratically-convergent algorithm.
When using the quadratically-convergent algorithm for the closed-shell molecules, it is recommended to set the QC_COUPLING option to FALSE for efficiency reasons (set by default).
For the ODC computations, the user has a choice of performing the computation of the guess orbitals and cumulants using the corresponding DC method (set ODC_GUESS to TRUE). This can often lead to significant computational savings, since the orbital update step in the DC methods is cheap. Convergence of the guess orbitals and cumulants can be controlled using the GUESS_R_CONVERGENCE option.