CheMPS2
|
#include <CASPT2.h>
Public Member Functions | |
CASPT2 (DMRGSCFindices *idx, DMRGSCFintegrals *ints, DMRGSCFmatrix *oei, DMRGSCFmatrix *fock, double *one_dm, double *two_dm, double *three_dm, double *contract, const double IPEA) | |
Constructor. More... | |
virtual | ~CASPT2 () |
Destructor. | |
double | solve (const double imag_shift, const bool CONJUGATE_GRADIENT=false) const |
Solve for the CASPT2 energy (note that the IPEA shift has been set in the constructor) More... | |
Static Public Member Functions | |
static long long | vector_length (const DMRGSCFindices *idx) |
Return the vector length for the CASPT2 first order wavefunction (before diagonalization of the overlap matrix) More... | |
CASPT2 class.
The CASPT2 class contains the functions to perform second order multireference perturbation theory on top of a CASSCF wavefuntion [CASPT1, CASPT2]. CASPT2 has recently also been used with DMRG as active space solver: the active space 4-RDM contracted with the Fock operator, together with the 1-, 2- and 3-RDM are required thereto [CASPT3]. Alternatively, cumulant approximations can be used as well [CASPT4]. To mitigate problems with CASPT2 several modifications of the zeroth order Hamiltonian have been introduced: IPEA corrections [CASPT5], the g1 term [CASPT6], real level shifts [CASPT7] and imaginary level shifts [CASPT8].
[CASPT1] K. Andersson, P.-A. Malmqvist, B.O. Roos, A.J. Sadlej and K. Wolinski, Journal of Physical Chemistry 94, 5483-5488 (1990). http://dx.doi.org/10.1021/j100377a012
[CASPT2] K. Andersson, P.‐A. Malmqvist and B.O. Roos, Journal of Chemical Physics 96, 1218-1226 (1992). http://dx.doi.org/10.1063/1.462209
[CASPT3] Y. Kurashige and T. Yanai, Journal of Chemical Physics 135, 094104 (2011). http://dx.doi.org/10.1063/1.3629454
[CASPT4] Y. Kurashige, J. Chalupsky, T.N. Lan and T. Yanai, Journal of Chemical Physics 141, 174111 (2014). http://dx.doi.org/10.1063/1.4900878
[CASPT5] G. Ghigo, B.O. Roos and P.-A. Malmqvist, Chemical Physics Letters 396, 142-149 (2004). http://dx.doi.org/10.1016/j.cplett.2004.08.032
[CASPT6] K. Andersson, Theoretica Chimica Acta 91, 31-46 (1995). http://dx.doi.org/10.1007/BF01113860
[CASPT7] B.O. Roos and K. Andersson, Chemical Physics Letters 245, 215-223 (1995). http://dx.doi.org/10.1016/0009-2614(95)01010-7
[CASPT8] N. Forsberg and P.-A. Malmqvist, Chemical Physics Letters 274, 196-204 (1997). http://dx.doi.org/10.1016/S0009-2614(97)00669-6
CheMPS2::CASPT2::CASPT2 | ( | DMRGSCFindices * | idx, |
DMRGSCFintegrals * | ints, | ||
DMRGSCFmatrix * | oei, | ||
DMRGSCFmatrix * | fock, | ||
double * | one_dm, | ||
double * | two_dm, | ||
double * | three_dm, | ||
double * | contract, | ||
const double | IPEA | ||
) |
Constructor.
idx | DMRGSCFindices which contain the partitioning into occupied, active, and virtual orbitals per irrep |
ints | The two-electron integrals needed for CASSCF and CASPT2, in pseudocanonical orbitals |
oei | All one-electron integrals, in pseudocanonical orbitals |
fock | The fock matrix of CASPT2, in pseudocanonical orbitals |
one_dm | The spin-summed one-particle density matrix one_dm[i+L*j] = sum_sigma < a^+_i,sigma a_j,sigma > (with L the number DMRG orbitals), in pseudocanonical orbitals |
two_dm | The spin-summed two-particle density matrix two_dm[i+L*(j+L*(k+L*l))] = sum_sigma,tau < a^+_i,sigma a^+_j,tau a_l,tau a_k,sigma > (with L the number DMRG orbitals), in pseudocanonical orbitals |
three_dm | The spin-summed three-particle density matrix three_dm[i+L*(j+L*(k+L*(l+L*(m+L*n))))] = sum_z,tau,s < a^+_{i,z} a^+_{j,tau} a^+_{k,s} a_{n,s} a_{m,tau} a_{l,z} > (with L the number DMRG orbitals), in pseudocanonical orbitals |
contract | The spin-summed four-particle density matrix contracted with the fock operator contract[i+L*(j+L*(k+L*(p+L*(q+L*r))))] = sum_{t,sigma,tau,s} fock(t,t) < a^+_{i,sigma} a^+_{j,tau} a^+_{k,s} E_{tt} a_{r,s} a_{q,tau} a_{p,sigma} > (with L the number DMRG orbitals), in pseudocanonical orbitals |
IPEA | The CASPT2 IPEA shift from Ghigo, Roos and Malmqvist, Chemical Physics Letters 396, 142-149 (2004) |
Definition at line 39 of file CASPT2.cpp.
double CheMPS2::CASPT2::solve | ( | const double | imag_shift, |
const bool | CONJUGATE_GRADIENT = false |
||
) | const |
Solve for the CASPT2 energy (note that the IPEA shift has been set in the constructor)
imag_shift | The CASPT2 imaginary shift from Forsberg and Malmqvist, Chemical Physics Letters 274, 196-204 (1997) |
CONJUGATE_GRADIENT | If true (false), the conjugate gradient (Davidson) algorithm is used to solve the CASPT2 equation |
Definition at line 206 of file CASPT2.cpp.
|
static |
Return the vector length for the CASPT2 first order wavefunction (before diagonalization of the overlap matrix)
idx | The number of core, active, and virtual orbitals per irrep |
Definition at line 793 of file CASPT2.cpp.