The electronic energy is an exact functional of the 1-RDM and 2-RDM
where the 1-RDM () and 2-RDM are represented in a given spin-orbital basis indexed by , , , and . The one-hole RDM (), , , and partial three-particle RDMs ( and ) are linear functions of and .Fosso-Tande:2016 Minimizing the electronic energy with respect to while enforcing the linear relations among these RDMs, the contraction and spin constraints placed on , and the positive semidefinite property of all RDMs constitutes a semidefinite program (SDP). The current v2RDM implementation uses a boundary-point SDP (BPSDP) algorithm to solve the SDP.Povh:2006, Malick:2009, Mazziotti:2011
The primal formulation of the SDP is
Here, represents the primal solution vector, the vector contains all information defining the quantum system (the one- and two-electron integrals), and the mapping maps the primal solution onto the set of positive semidefinite RDMs
The action of the constraint matrix, , on is a compact representation of the -representability conditions. maintains the appropriate mappings between each block of and enforces the appropriate spin and contraction conditions. Alternatively, one could consider the dual formulation of the semidefinite problem, expressed as
where and are the dual solutions, and is constrained to be positive semidefinite.
The BPSDP algorithm involves an iterative two-step procedure:
Solve for by conjugate gradient methods.
Update and by separating into its positive and negative components (by diagonalization). The updated primal and dual solutions and are given by and .
Here, is a step-length parameter that lies in the interval [1.0,1.6] Mazziotti:2011. The penalty parameter controls how strictly the primal or dual constraints are enforced and is updated dynamically according to the protocol outlined in Ref. Mazziotti:2011. The frequency with which is updated is controlled by the $rem keyword RDM_MU_UPDATE_FREQUENCY. The algorithm is considered converged when the primal error , the dual error , and the primal/dual energy gap are sufficiently small. The convergence in the primal/dual errors and the primal/dual energy gap are controlled by the $rem keywords RDM_EPS_CONVERGENCE and RDM_E_CONVERGENCE, respectively. The BPSDP algorithm scales for the DQG conditions and for the T1 and T2 conditions where is the number of active orbitals in the v2RDM computation. In v2RDM-CASSCF (if the $rem keyword RDM_OPTIMIZE_ORBITALS is set to true), the molecular orbitals are optimized after a chosen number of v2RDM iterations (Steps 1. and 2. above) indicated by the $rem keyword RDM_ORBOPT_FREQUENCY.