10. Internally contracted CASPT2¶
10.1. The required 4-RDM elements¶
As DMRG is a wavefunction method, higher order reduced density matrices can be evaluated. In CheMPS2, up to the 3-RDM is implemented with the usual sweep algorithm. For internally contracted CASPT2, the contraction of the 4-RDM with the generalized Fock operator is needed. The generalized Fock operator
has matrix elements
These matrix elements are symmetric and diagonal in the spatial orbital irreps. The required contraction of the 4-RDM with the generalized Fock operator
can therefore be obtained from excited wavefunctions, formed by symmetry-conserving single-particle excitations op top of the reference wavefunction. For the matrix element \(F_{sz} = F_{zs}\) the following sum of 4-RDM elements is needed:
It can be obtained by calculating
in which the spatial orbitals \(s\) and \(z\) have equal irreps. This excited wavefunction is decomposed into an MPS, with a sweep algorithm with negligible cost [CASPT2]. Denote the 3-RDM of the (unnormalized) excited wavefunctions as
In this notation \(\Gamma( sz, 0, 1 )^3_{pqr; wxy} = \Gamma^3_{pqr; wxy}\), the 3-RDM of the reference wavefunction. The following identity holds:
which allows to obtain the contraction \(\left( F . \Gamma^4 \right)\) by calculating the 3-RDM of several excited wavefunctions! This algorithm has in practice the same computational cost as the regular 4-RDM evaluation during the usual sweep algorithm.
10.2. CAS perturbation theory¶
The full Hilbert space \(\mathcal{H}\) is split up into four parts [ROOS1] [ROOS2]:
\(\mathcal{V}_0\) contains only the CASSCF solution \(\left| \Psi_0 \right\rangle\).
\(\mathcal{V}_{\text{K}}\) is the space spanned by all possible active space excitations on top of \(\left| \Psi_0 \right\rangle\) which are orthogonal to \(\mathcal{V}_0\). Wavefunctions in \(\mathcal{V}_{\text{K}}\) have the same core and virtual orbitals as \(\left| \Psi_0 \right\rangle\), with the same occupation.
\(\mathcal{V}_{{\text{SD}}}\) contains all single and double particle excitations on top of \(\left| \Psi_0 \right\rangle\) which are orthogonal to \(\mathcal{V}_0 \oplus \mathcal{V}_{\text{K}}\). With the indices \(ij\) for core orbitals, \(tuv\) for active orbitals, and \(ab\) for virtual orbitals, \(\mathcal{V}_{{\text{SD}}}\) is spanned by the following excitation types:
\[\begin{split}\text{A} & : & \quad \hat{E}_{ti} \hat{E}_{uv} \left| \Psi_0 \right\rangle, \\ \text{B} & : & \quad \hat{E}_{ti} \hat{E}_{uj} \left| \Psi_0 \right\rangle, \\ \text{C} & : & \quad \hat{E}_{at} \hat{E}_{uv} \left| \Psi_0 \right\rangle, \\ \text{D} & : & \quad \hat{E}_{ai} \hat{E}_{tu} \left| \Psi_0 \right\rangle,~\hat{E}_{ti}\hat{E}_{au} \left| \Psi_0 \right\rangle, \\ \text{E} & : & \quad \hat{E}_{ti} \hat{E}_{aj} \left| \Psi_0 \right\rangle, \\ \text{F} & : & \quad \hat{E}_{at} \hat{E}_{bu} \left| \Psi_0 \right\rangle, \\ \text{G} & : & \quad \hat{E}_{ai} \hat{E}_{bt} \left| \Psi_0 \right\rangle, \\ \text{H} & : & \quad \hat{E}_{ai} \hat{E}_{bj} \left| \Psi_0 \right\rangle.\end{split}\]And \(\mathcal{V}_{{\text{TQ..}}}\) is the remainder of \(\mathcal{H}\).
The zeroth order Hamiltonian for internally contracted CASPT2 is
where \(\hat{P}_{\text{X}}\) is the projector onto \(\mathcal{V}_{\text{X}}\). The first order wavefunction \(\left| \Psi_1 \right\rangle\) for internally contracted CASPT2 is spanned by a linear combination over \(\mathcal{V}_{\text{SD}}\):
The coefficients can be found by solving
The overlap matrix \(\left\langle \Psi_{wx;yz} \mid \Psi_{pq;rs} \right\rangle\) is block-diagonal in the different excitation types (A to H). It is diagonalized, small eigenvalues are discarded, and the linear equation is transformed to
with \(\mathcal{F}\) diagonal for two excitations of the same type (A to H). The following initial guess is used to solve this linear equation with either the conjugate gradient or Davidson algorithm:
If the active space orbitals in the DMRG algorithm are not pseudocanonical, \(\Gamma^1\), \(\Gamma^2\), \(\Gamma^3\), and \(\left(F.\Gamma^4\right)\) are rotated to the pseudocanonical orbital basis before building the required intermediates to solve the CASPT2 linear equation.
In order to mitigate intruder state problems, CheMPS2 allows to specify an imaginary level shift [IMAG] and/or ionization potential - electron affinity shift [IPEA]. For the latter, the left-hand side matrix of the CASPT2 linear equation is shifted with
10.3. CASPT2 calculations¶
In order to calculate the CASPT2 variational second order perturbation correction energy, the following call should be made:
double CheMPS2::CASSCF::caspt2( const int Nelectrons, const int TwoS, const int Irrep, ConvergenceScheme * OptScheme, const int rootNum, DMRGSCFoptions * scf_options, const double IPEA, const double IMAG, const bool PSEUDOCANONICAL, const bool CHECKPOINT, const bool CUMULANT )
after the CASSCF orbital rotations are converged.
The first six parameters are the same as for
CheMPS2::CASSCF::solve
in CheMPS2::CASSCF.IPEA and IMAG are the ionization potential - electron affinity and imaginary level shifts.
PSEUDOCANONICAL allows to change the converged CASSCF orbitals (localized, natural, ...) to pseudocanonical orbitals before the DMRG calculation to obtain the contraction of the 4-RDM with the generalized Fock operator. This has the advantage that the Fock operator matrix elements are diagonal, which leads to a significant reduction in computational cost if it not requires a significantly larger virtual dimension \(D\).
CHECKPOINT allows to switch on the creation of checkpoints to calculate the required contraction during multiple runs. If CHECKPOINT is true, then after the initial run
scf_options->setDoDIIS( false ) scf_options->setWhichActiveSpace( 0 )
should be set in order to use exactly the same orbitals in consecutive runs!
It is advised to leave CUMULANT = false.
[CASPT2] |
|
[ROOS1] |
|
[ROOS2] |
|
[IMAG] |
|
[IPEA] |
|