CheMPS2
CheMPS2::CASPT2 Class Reference

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

Detailed Description

CASPT2 class.

Author
Sebastian Wouters sebas.nosp@m.tian.nosp@m.woute.nosp@m.rs@g.nosp@m.mail..nosp@m.com
Date
December 11, 2015

Information

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

References

[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

Definition at line 62 of file CASPT2.h.

Constructor & Destructor Documentation

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.

Parameters
idxDMRGSCFindices which contain the partitioning into occupied, active, and virtual orbitals per irrep
intsThe two-electron integrals needed for CASSCF and CASPT2, in pseudocanonical orbitals
oeiAll one-electron integrals, in pseudocanonical orbitals
fockThe fock matrix of CASPT2, in pseudocanonical orbitals
one_dmThe 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_dmThe 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_dmThe 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
contractThe 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
IPEAThe CASPT2 IPEA shift from Ghigo, Roos and Malmqvist, Chemical Physics Letters 396, 142-149 (2004)

Definition at line 39 of file CASPT2.cpp.

+ Here is the call graph for this function:

Member Function Documentation

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)

Parameters
imag_shiftThe CASPT2 imaginary shift from Forsberg and Malmqvist, Chemical Physics Letters 274, 196-204 (1997)
CONJUGATE_GRADIENTIf true (false), the conjugate gradient (Davidson) algorithm is used to solve the CASPT2 equation
Returns
The CASPT2 variational correction energy

Definition at line 206 of file CASPT2.cpp.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

long long CheMPS2::CASPT2::vector_length ( const DMRGSCFindices idx)
static

Return the vector length for the CASPT2 first order wavefunction (before diagonalization of the overlap matrix)

Parameters
idxThe number of core, active, and virtual orbitals per irrep
Returns
The vector length for the CASPT2 first order wavefunction (before diagonalization of the overlap matrix)

Definition at line 793 of file CASPT2.cpp.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:


The documentation for this class was generated from the following files: