MPQC  3.0.0-alpha
sc::R12IntEval Class Reference

R12IntEval is the top-level class which computes intermediates occuring in R12 theories. More...

#include <chemistry/qc/mbptr12/r12int_eval.h>

Inheritance diagram for sc::R12IntEval:
sc::SavableState sc::DescribedClass sc::RefCount

Public Member Functions

template<typename DataProcess , bool CorrFactorInBra, bool CorrFactorInKet>
DEPRECATED void compute_tbint_tensor (RefSCMatrix &T, TwoBodyOper::type tbint_type, const Ref< OrbitalSpace > &space1, const Ref< OrbitalSpace > &space2, const Ref< OrbitalSpace > &space3, const Ref< OrbitalSpace > &space4, bool antisymmetrize, const std::vector< std::string > &tform_keys)
 compute_tbint_tensor computes a 2-body tensor T using integrals of type tbint_type. More...
 
template<typename DataProcessBra , typename DataProcessKet , bool CorrFactorInBra, bool CorrFactorInKet, bool CorrFactorInInt>
void contract_tbint_tensors_to_obtensor (RefSCMatrix &T, SpinCase2 pairspin, TwoBodyTensorInfo tbtensor_type_bra, TwoBodyTensorInfo tbtensor_type_ket, const Ref< OrbitalSpace > &space1_bra, const Ref< OrbitalSpace > &space1_intb, const Ref< OrbitalSpace > &space2_intb, const Ref< OrbitalSpace > &space3_intb, const Ref< OrbitalSpace > &space1_ket, const Ref< OrbitalSpace > &space1_intk, const Ref< OrbitalSpace > &space2_intk, const Ref< OrbitalSpace > &space3_intk, const Ref< mbptr12::TwoParticleContraction > &tpcontract, const std::vector< std::string > &tformkeys_bra, const std::vector< std::string > &tformkeys_ket)
 <space1bra space1_intb |Tbra| space2_intb space3_intb> * <space2_intk space3_intk |Tket| space1ket space1_intk> contract_tbint_tensors_to_obtensor computes a 1-body tensor T as a sum over kmn : <ik|Tbra|mn><jk|Tket|mn>^t. More...
 
 R12IntEval (StateIn &)
 
 R12IntEval (const Ref< R12WavefunctionWorld > &r12w)
 Constructs R12IntEval.
 
void save_data_state (StateOut &)
 Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. More...
 
virtual void obsolete ()
 
void debug (int d)
 
int dk () const
 
const Ref< R12Technology::CorrelationFactor > & corrfactor () const
 
R12Technology::ABSMethod abs_method () const
 
const Ref< R12Technology::R12Ansatz > & ansatz () const
 
bool spin_polarized () const
 
bool gbc () const
 
bool ebc () const
 
bool coupling () const
 
bool compute_1rdm () const
 
bool coupling_1rdm_f12b () const
 
R12Technology::StandardApproximation stdapprox () const
 
bool omit_P () const
 
const Ref< MOIntsTransformFactory > & tfactory () const
 
const Ref< MOIntsRuntime > & moints_runtime () const
 
const Ref< TwoBodyFourCenterMOIntsRuntime > & moints_runtime4 () const
 
const Ref< FockBuildRuntime > & fockbuild_runtime () const
 
const Ref< R12WavefunctionWorld > & r12world () const
 the R12World in which this object lives
 
RefSCDimension dim_oo (SpinCase2 S) const
 Dimension for active-occ/active-occ pairs of spin case S.
 
RefSCDimension dim_vv (SpinCase2 S) const
 Dimension for active-vir/active-vir pairs of spin case S.
 
RefSCDimension dim_aa (SpinCase2 S) const
 Dimension for any/any pairs of spin case S.
 
RefSCDimension dim_f12 (SpinCase2 S) const
 Dimension for geminal functions of spin case S = # of correlation factors x dim_GG.
 
RefSCDimension dim_GG (SpinCase2 S) const
 Dimension of orbital product space that multiply the correlation factor to produce geminal functions.
 
RefSCDimension dim_gg (SpinCase2 S) const
 Dimension of orbital product space from which geminal substitutions are allowed.
 
int nspincases1 () const
 Returns the number of unique spin cases.
 
int nspincases2 () const
 Returns the number of unique combinations of 2 spin cases.
 
virtual void compute ()
 This function causes the intermediate matrices to be computed.
 
bool bc () const
 does Brillouin condition hold?
 
Ref< R12Amplitudesamps ()
 Returns amplitudes of pair correlation functions.
 
const RefSCMatrixV (SpinCase2 S)
 Returns S block of intermediate V.
 
const RefSCMatrixV ()
 Returns spin-free intermediate V.
 
RefSymmSCMatrix X (SpinCase2 S)
 Returns S block of intermediate X.
 
RefSymmSCMatrix X ()
 Returns spin-free intermediate X.
 
RefSymmSCMatrix B (SpinCase2 S)
 Returns S block of intermediate B.
 
RefSymmSCMatrix B ()
 Returns spin-free intermediate B.
 
RefSymmSCMatrix BB (SpinCase2 S)
 Returns S block of the difference between intermediate B of approximations B and A'.
 
const RefSCMatrixA (SpinCase2 S)
 Returns S block of intermediate A.
 
const RefSCMatrixT2 (SpinCase2 S)
 Returns S block of intermediate T2.
 
const RefSCMatrixF12 (SpinCase2 S)
 Returns S block of intermediate F12.
 
RefSCMatrix V (SpinCase2 spincase2, const Ref< OrbitalSpace > &p, const Ref< OrbitalSpace > &q)
 Compute $ V_{pq}^{xy} = \frac{1}{2} \bar{g}_{pq}^{\alpha\beta} \bar{R}_{\alpha\beta}^{xy}$.
 
std::vector< Ref< DistArray4 > > V_distarray4 (SpinCase2 spincase2, const Ref< OrbitalSpace > &p, const Ref< OrbitalSpace > &q)
 Compute $ V_{pq}^{xy} = \frac{1}{2} \bar{g}_{pq}^{\alpha\beta} \bar{R}_{\alpha\beta}^{xy}$. More...
 
std::vector< Ref< DistArray4 > > U_distarray4 (SpinCase2 spincase2, const Ref< OrbitalSpace > &p, const Ref< OrbitalSpace > &q)
 Compute $ U_{pq}^{xi} = \frac{1}{2} \bar{R}_{p \alpha'}^{x y} \bar{g}_{q y}^{i \alpha'} $.
 
RefSymmSCMatrix P (SpinCase2 S)
 Compute $ P_{uv}^{xy} = \frac{1}{4} \bar{R}^{\alpha\beta}_{uv} \bar{g}_{\alpha\beta}^{\gamma\delta} \bar{R}_{\gamma\delta}^{xy}$ P = RgR.
 
double C_CuspConsistent (int i, int j, int k, int l, SpinCase2 pairspin)
 Returns the cusp consistent coefficient $C_{ij}^{kl}$.
 
double emp2_obs_singles ()
 Returns the OBS singles correction to the MP2 energy.
 
double emp2_cabs_singles (bool vir_cabs_coupling=true)
 Returns the CABS singles correction to the MP2 energy. More...
 
double emp2_cabs_singles (const RefSCMatrix &T1_ia_alpha, const RefSCMatrix &T1_ia_beta)
 Returns the CABS singles MP2 energy, with fixed conventional T1 amplitudes.
 
const RefSCVectoremp2 (SpinCase2 S)
 Returns alpha-alpha MP2 pair energies.
 
const RefSCMatrixT1_cabs (SpinCase1 spin) const
 returns CABS singles amplitudes. More...
 
const Ref< OrbitalSpace > & occ_act (SpinCase1 S) const
 Returns the act occ space for spin case S.
 
const Ref< OrbitalSpace > & occ (SpinCase1 S) const
 Returns the occ space for spin case S.
 
const Ref< OrbitalSpace > & vir_act (SpinCase1 S) const
 Returns the act vir space for spin case S.
 
const Ref< OrbitalSpace > & vir (SpinCase1 S) const
 Returns the vir space for spin case S.
 
const Ref< OrbitalSpace > & orbs (SpinCase1 S) const
 Returns the OBS space for spin case S.
 
const Ref< OrbitalSpace > & GGspace (SpinCase1 S) const
 Returns the geminal-generating orbital space for spin case S.
 
const Ref< OrbitalSpace > & ggspace (SpinCase1 S) const
 Returns the space for spin case S from which geminal-generating substitutions are allowed.
 
const Ref< OrbitalSpace > & cabs_space_canonical (SpinCase1 s)
 compute canonical CABS space for spin s
 
const Ref< OrbitalSpace > & cabs_space_hcanonical (SpinCase1 s)
 compute CABS space for spin s canonicalized by diagonalization of core hamitonian
 
RefSymmSCMatrix ordm (SpinCase1 S) const
 Returns the 1-RDM for spin S in the `‘MO’' basis (i.e. that provided by orbs(S) )
 
RefSymmSCMatrix ordm () const
 Returns the total 1-RDM in the `‘MO’' basis (i.e. that provided by orbs() )
 
RefSymmSCMatrix ordm_av () const
 Returns the average 1-RDM in the `‘MO’' basis (i.e. that provided by orbs() ): (alpha-rdm1 + beta-rdm2)/2.
 
RefSymmSCMatrix ordm_occ_av () const
 
const Ref< OrbitalSpace > & hj_x_P (SpinCase1 S)
 Form <P|h+J|x> space.
 
const Ref< OrbitalSpace > & hj_x_A (SpinCase1 S)
 Form <A|h+J|x> space.
 
const Ref< OrbitalSpace > & hj_x_p (SpinCase1 S)
 Form <p|h+J|x> space.
 
const Ref< OrbitalSpace > & hj_x_m (SpinCase1 S)
 Form <m|h+J|x> space.
 
const Ref< OrbitalSpace > & hj_x_a (SpinCase1 S)
 Form <a|h+J|x> space.
 
const Ref< OrbitalSpace > & hj_i_P (SpinCase1 S)
 Form <P|h+J|i> space.
 
const Ref< OrbitalSpace > & hj_i_A (SpinCase1 S)
 Form <A|h+J|i> space.
 
const Ref< OrbitalSpace > & hj_i_p (SpinCase1 S)
 Form <p|h+J|i> space.
 
const Ref< OrbitalSpace > & hj_i_m (SpinCase1 S)
 Form <m|h+J|i> space.
 
const Ref< OrbitalSpace > & hj_i_a (SpinCase1 S)
 Form <a|h+J|i> space.
 
const Ref< OrbitalSpace > & hj_m_m (SpinCase1 S)
 Form <m|h+J|m> space.
 
const Ref< OrbitalSpace > & hj_m_p (SpinCase1 S)
 Form <p|h+J|m> space.
 
const Ref< OrbitalSpace > & hj_a_A (SpinCase1 S)
 Form <A|h+J|a> space.
 
const Ref< OrbitalSpace > & hj_p_P (SpinCase1 S)
 Form <P|h+J|p> space.
 
const Ref< OrbitalSpace > & hj_p_A (SpinCase1 S)
 Form <A|h+J|p> space.
 
const Ref< OrbitalSpace > & hj_p_p (SpinCase1 S)
 Form <p|h+J|p> space.
 
const Ref< OrbitalSpace > & hj_p_m (SpinCase1 S)
 Form <m|h+J|p> space.
 
const Ref< OrbitalSpace > & hj_p_a (SpinCase1 S)
 Form <a|h+J|p> space.
 
const Ref< OrbitalSpace > & hj_P_P (SpinCase1 S)
 Form <P|h+J|P> space.
 
const Ref< OrbitalSpace > & K_x_P (SpinCase1 S)
 Form <P|K|x> space.
 
const Ref< OrbitalSpace > & K_x_A (SpinCase1 S)
 Form <A|K|x> space.
 
const Ref< OrbitalSpace > & K_x_p (SpinCase1 S)
 Form <p|K|x> space.
 
const Ref< OrbitalSpace > & K_x_m (SpinCase1 S)
 Form <i|K|x> space.
 
const Ref< OrbitalSpace > & K_x_a (SpinCase1 S)
 Form <a|K|x> space.
 
const Ref< OrbitalSpace > & K_i_P (SpinCase1 S)
 Form <P|K|i> space.
 
const Ref< OrbitalSpace > & K_i_A (SpinCase1 S)
 Form <A|K|i> space.
 
const Ref< OrbitalSpace > & K_i_p (SpinCase1 S)
 Form <p|K|i> space.
 
const Ref< OrbitalSpace > & K_i_m (SpinCase1 S)
 Form <m|K|i> space.
 
const Ref< OrbitalSpace > & K_i_a (SpinCase1 S)
 Form <a|K|i> space.
 
const Ref< OrbitalSpace > & K_m_a (SpinCase1 S)
 Form <a|K|m> space.
 
const Ref< OrbitalSpace > & K_a_a (SpinCase1 S)
 Form <a|K|a> space.
 
const Ref< OrbitalSpace > & K_a_p (SpinCase1 S)
 Form <p|K|a> space.
 
const Ref< OrbitalSpace > & K_a_P (SpinCase1 S)
 Form <P|K|a> space.
 
const Ref< OrbitalSpace > & K_p_P (SpinCase1 S)
 Form <P|K|p> space.
 
const Ref< OrbitalSpace > & K_p_A (SpinCase1 S)
 Form <A|K|p> space.
 
const Ref< OrbitalSpace > & K_p_p (SpinCase1 S)
 Form <p|K|p> space.
 
const Ref< OrbitalSpace > & K_p_m (SpinCase1 S)
 Form <m|K|p> space.
 
const Ref< OrbitalSpace > & K_p_a (SpinCase1 S)
 Form <a|K|p> space.
 
const Ref< OrbitalSpace > & K_A_P (SpinCase1 S)
 Form <P|K|A> space.
 
const Ref< OrbitalSpace > & K_P_P (SpinCase1 S)
 Form <P|K|P> space.
 
const Ref< OrbitalSpace > & F_x_P (SpinCase1 S)
 Form <P|F|x> space.
 
const Ref< OrbitalSpace > & F_x_A (SpinCase1 S)
 Form <A|F|x> space.
 
const Ref< OrbitalSpace > & F_x_p (SpinCase1 S)
 Form <p|F|x> space.
 
const Ref< OrbitalSpace > & F_x_m (SpinCase1 S)
 Form <m|F|x> space.
 
const Ref< OrbitalSpace > & F_x_a (SpinCase1 S)
 Form <a|F|x> space.
 
const Ref< OrbitalSpace > & F_i_P (SpinCase1 S)
 Form <P|F|i> space.
 
const Ref< OrbitalSpace > & F_i_A (SpinCase1 S)
 Form <A|F|i> space.
 
const Ref< OrbitalSpace > & F_i_p (SpinCase1 S)
 Form <p|F|i> space.
 
const Ref< OrbitalSpace > & F_i_m (SpinCase1 S)
 Form <m|F|i> space.
 
const Ref< OrbitalSpace > & F_i_a (SpinCase1 S)
 Form <a|F|i> space.
 
const Ref< OrbitalSpace > & F_m_m (SpinCase1 S)
 Form <m|F|m> space.
 
const Ref< OrbitalSpace > & F_m_a (SpinCase1 S)
 Form <a|F|m> space.
 
const Ref< OrbitalSpace > & F_m_p (SpinCase1 S)
 Form <p|F|m> space.
 
const Ref< OrbitalSpace > & F_m_P (SpinCase1 S)
 Form <P|F|m> space.
 
const Ref< OrbitalSpace > & F_gg_P (SpinCase1 S)
 Form <P|F|gg> space.
 
const Ref< OrbitalSpace > & F_m_A (SpinCase1 S)
 Form <A|F|m> space.
 
const Ref< OrbitalSpace > & F_a_a (SpinCase1 S)
 Form <a|F|a> space.
 
const Ref< OrbitalSpace > & F_a_A (SpinCase1 S)
 Form <A|F|a> space.
 
const Ref< OrbitalSpace > & F_A_A (SpinCase1 S)
 Form <A|F|A> space.
 
const Ref< OrbitalSpace > & F_p_P (SpinCase1 S)
 Form <P|F|p> space.
 
const Ref< OrbitalSpace > & F_p_A (SpinCase1 S)
 Form <A|F|p> space.
 
const Ref< OrbitalSpace > & F_p_p (SpinCase1 S)
 Form <p|F|p> space.
 
const Ref< OrbitalSpace > & F_p_m (SpinCase1 S)
 Form <m|F|p> space.
 
const Ref< OrbitalSpace > & F_p_a (SpinCase1 S)
 Form <a|F|p> space.
 
const Ref< OrbitalSpace > & F_P_P (SpinCase1 S)
 Form <P|F|P> space.
 
const Ref< OrbitalSpace > & h_P_P (SpinCase1 S)
 Form <P|h|P> space.
 
const Ref< OrbitalSpace > & J_x_p (SpinCase1 S)
 Form <p|J|x> space.
 
const Ref< OrbitalSpace > & J_i_p (SpinCase1 S)
 Form <p|J|i> space.
 
const Ref< OrbitalSpace > & J_i_P (SpinCase1 S)
 Form <P|J|i> space.
 
const Ref< OrbitalSpace > & J_P_P (SpinCase1 S)
 Form <P|J|P> space.
 
const Ref< OrbitalSpace > & gamma_p_p (SpinCase1 S)
 Form <p|gamma|p> space.
 
const Ref< OrbitalSpace > & gamma_p_p_av ()
 Form spin-average <p|gamma|p> space using average (instead of total) rdm.
 
const Ref< OrbitalSpace > & gamma_m_m_av ()
 
const Ref< OrbitalSpace > & gammaFgamma_p_p (SpinCase1 S)
 Form <p|gammaFgamma|p> space.
 
const Ref< OrbitalSpace > & gammaFgamma_p_p ()
 
const Ref< OrbitalSpace > & Fgamma_p_P (SpinCase1 S)
 Form <P|Fgamma|p> space.
 
const Ref< OrbitalSpace > & Fgamma_p_P ()
 Form <P|Fgamma|p> space using spin-average rdm1.
 
Ref< OrbitalSpaceobtensor_p_A (const RefSCMatrix &obtensor, SpinCase1 S)
 Form <A|obtensor|p> space obtensor should have the dimension ncabs*norbs.
 
std::string transform_label (const Ref< OrbitalSpace > &space1, const Ref< OrbitalSpace > &space2, const Ref< OrbitalSpace > &space3, const Ref< OrbitalSpace > &space4, const std::string &operator_label=std::string()) const
 Generates canonical id for transform. no correlation function included.
 
std::string transform_label (const Ref< OrbitalSpace > &space1, const Ref< OrbitalSpace > &space2, const Ref< OrbitalSpace > &space3, const Ref< OrbitalSpace > &space4, unsigned int f12, const std::string &operator_label=std::string()) const
 Generates canonical id for transform. f12 is the index of the correlation function.
 
std::string transform_label (const Ref< OrbitalSpace > &space1, const Ref< OrbitalSpace > &space2, const Ref< OrbitalSpace > &space3, const Ref< OrbitalSpace > &space4, unsigned int f12_left, unsigned int f12_right, const std::string &operator_label=std::string()) const
 version of transform_label() applicable when left and right correlation factors differ
 
void compute_T2_ (RefSCMatrix &T2, const Ref< OrbitalSpace > &space1, const Ref< OrbitalSpace > &space2, const Ref< OrbitalSpace > &space3, const Ref< OrbitalSpace > &space4, bool antisymmetrize, const std::string &tform_key)
 Compute T2 amplitude in basis <space1, space3 | space2, space4>. More...
 
void compute_F12_ (RefSCMatrix &F12, const Ref< OrbitalSpace > &space1, const Ref< OrbitalSpace > &space2, const Ref< OrbitalSpace > &space3, const Ref< OrbitalSpace > &space4, bool antisymmetrize, const std::vector< std::string > &transform_keys)
 Compute F12 integrals in basis <space1, space3 | f12 | space2, space4>. More...
 
RefSCMatrix fock (const Ref< OrbitalSpace > &bra_space, const Ref< OrbitalSpace > &ket_space, SpinCase1 S=Alpha, double scale_J=1.0, double scale_K=1.0, double scale_H=1.0, int override_pauli=-1)
 Compute the Fock matrix between bra_ and ket_ spaces of spin S. More...
 
RefSCMatrix V_cabs (SpinCase2 spincase2, const Ref< OrbitalSpace > &p, const Ref< OrbitalSpace > &q)
 Compute V intermediates using CABS/CABS+ approach.
 
RefSCMatrix V_genref_spinfree (const Ref< OrbitalSpace > &p, const Ref< OrbitalSpace > &q)
 Compute V intermediates in SF-[2]R12.
 
void compute_ccr12_1rdm (const RefSCMatrix &T1, const Ref< DistArray4 >(&T2)[NSpinCases2])
 
const Ref< OrbitalSpaceRegistry > & orbital_registry () const
 returns the OrbitalSpaceRegistry object
 
const Ref< AOSpaceRegistry > & ao_registry () const
 returns the AOSpaceRegistry object
 
template<typename DataProcess , bool CorrFactorInBra, bool CorrFactorInKet>
void compute_tbint_tensor (RefSCMatrix &T, TwoBodyOper::type tbint_type, const Ref< OrbitalSpace > &space1_bra, const Ref< OrbitalSpace > &space1_ket, const Ref< OrbitalSpace > &space2_bra, const Ref< OrbitalSpace > &space2_ket, bool antisymmetrize, const std::vector< std::string > &transform_keys)
 
- Public Member Functions inherited from sc::SavableState
SavableStateoperator= (const SavableState &)
 
void save_state (StateOut &)
 Save the state of the object as specified by the StateOut object. More...
 
void save_object_state (StateOut &)
 This can be used for saving state when the exact type of the object is known for both the save and the restore. More...
 
virtual void save_vbase_state (StateOut &)
 Save the virtual bases for the object. More...
 
- Public Member Functions inherited from sc::DescribedClass
 DescribedClass (const DescribedClass &)
 
DescribedClassoperator= (const DescribedClass &)
 
ClassDescclass_desc () const MPQC__NOEXCEPT
 This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More...
 
const char * class_name () const
 Return the name of the object's exact type.
 
int class_version () const
 Return the version of the class.
 
virtual void print (std::ostream &=ExEnv::out0()) const
 Print the object.
 
Ref< DescribedClassref ()
 Return this object wrapped up in a Ref smart pointer. More...
 
- Public Member Functions inherited from sc::RefCount
size_t identifier () const
 Return the unique identifier for this object that can be compared for different objects of different types. More...
 
int lock_ptr () const
 Lock this object.
 
int unlock_ptr () const
 Unlock this object.
 
void use_locks (bool inVal)
 start and stop using locks on this object
 
refcount_t nreference () const
 Return the reference count.
 
refcount_t reference ()
 Increment the reference count and return the new count.
 
refcount_t dereference ()
 Decrement the reference count and return the new count.
 
int managed () const
 
void unmanage ()
 Turn off the reference counting mechanism for this object. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from sc::SavableState
static void save_state (SavableState *s, StateOut &)
 
static SavableStaterestore_state (StateIn &si)
 Restores objects saved with save_state. More...
 
static SavableStatekey_restore_state (StateIn &si, const char *keyword)
 Like restore_state, but keyword is used to override values while restoring.
 
static SavableStatedir_restore_state (StateIn &si, const char *objectname, const char *keyword=0)
 
- Protected Member Functions inherited from sc::SavableState
 SavableState (const SavableState &)
 
 SavableState (StateIn &)
 Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above. More...
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

Detailed Description

R12IntEval is the top-level class which computes intermediates occuring in R12 theories.

This class is used by all Wavefunction classes that implement R12 methods.

Member Function Documentation

◆ compute_F12_()

void sc::R12IntEval::compute_F12_ ( RefSCMatrix F12,
const Ref< OrbitalSpace > &  space1,
const Ref< OrbitalSpace > &  space2,
const Ref< OrbitalSpace > &  space3,
const Ref< OrbitalSpace > &  space4,
bool  antisymmetrize,
const std::vector< std::string > &  transform_keys 
)

Compute F12 integrals in basis <space1, space3 | f12 | space2, space4>.

Bra (rows) are blocked by correlation function index. AlphaBeta amplitudes are computed. If tform is not given (it should be!), this function will construct a generic transform.

◆ compute_T2_()

void sc::R12IntEval::compute_T2_ ( RefSCMatrix T2,
const Ref< OrbitalSpace > &  space1,
const Ref< OrbitalSpace > &  space2,
const Ref< OrbitalSpace > &  space3,
const Ref< OrbitalSpace > &  space4,
bool  antisymmetrize,
const std::string &  tform_key 
)

Compute T2 amplitude in basis <space1, space3 | space2, space4>.

AlphaBeta amplitudes are computed. If tform is not given (it should be!), this function will construct a generic transform.

◆ compute_tbint_tensor()

template<typename DataProcess , bool CorrFactorInBra, bool CorrFactorInKet>
DEPRECATED void sc::R12IntEval::compute_tbint_tensor ( RefSCMatrix T,
TwoBodyOper::type  tbint_type,
const Ref< OrbitalSpace > &  space1,
const Ref< OrbitalSpace > &  space2,
const Ref< OrbitalSpace > &  space3,
const Ref< OrbitalSpace > &  space4,
bool  antisymmetrize,
const std::vector< std::string > &  tform_keys 
)

compute_tbint_tensor computes a 2-body tensor T using integrals of type tbint_type.

Computed tensor T is added to its previous contents. Class DataProcess defines a static function 'double I2T()' which processes the integrals. Set CorrFactorInBra to true if bra of target tensor depends on correlation function index.

Of course, this ugliness should become constructor/member function of ManyBodyOperator

template parameters: DataProcess – classes in namespace ManyBodyTensors that describe the operator whose matrix elements are needed, e.g. Apply_H0minusE0<sign> CorrFactorInBra, CorrFactorInKet – 'true' if there is a correlation factor.

function parameters: tbint_type – type of tensor to be computed. space1, space2, space3, space4 – index spaces of the tensor in chemist's (Mulliken) notation: ( space1 space2 | space3 space4 ). antisymmetrize – if true, the computed tensor is antisymmetrized. tforms – TwoBodyMOIntsTransform vector (dimension: number of correlation factors) that describes the transformation of the tensor from the AO to the MO space. tbintdescrs – integral descriptor of the tensor to be computed.

◆ contract_tbint_tensors_to_obtensor()

template<typename DataProcess_Bra , typename DataProcess_Ket , bool CorrFactorInBra, bool CorrFactorInKet, bool CorrFactorInInt>
void sc::R12IntEval::contract_tbint_tensors_to_obtensor ( RefSCMatrix T,
SpinCase2  pairspin,
TwoBodyTensorInfo  tbtensor_type_bra,
TwoBodyTensorInfo  tbtensor_type_ket,
const Ref< OrbitalSpace > &  space1_bra,
const Ref< OrbitalSpace > &  space1_intb,
const Ref< OrbitalSpace > &  space2_intb,
const Ref< OrbitalSpace > &  space3_intb,
const Ref< OrbitalSpace > &  space1_ket,
const Ref< OrbitalSpace > &  space1_intk,
const Ref< OrbitalSpace > &  space2_intk,
const Ref< OrbitalSpace > &  space3_intk,
const Ref< mbptr12::TwoParticleContraction > &  tpcontract,
const std::vector< std::string > &  tformkeys_bra,
const std::vector< std::string > &  tformkeys_ket 
)

<space1bra space1_intb |Tbra| space2_intb space3_intb> * <space2_intk space3_intk |Tket| space1ket space1_intk> contract_tbint_tensors_to_obtensor computes a 1-body tensor T as a sum over kmn : <ik|Tbra|mn><jk|Tket|mn>^t.

The notation used here is analoguous to that of the routine contract_tbint_tensor. bra and ket integrals come from tforms_bra and tforms_ket. Computed tensor T is added to its previous contents. Class DataProcess_XXX defines a static function 'double I2T()' which processes the integrals. The I2T() functions are implemented as members of classes in the namespace ManyBodyTensors. Set CorrFactorInBra to true if bra of target tensor depends on correlation function index.

Semantics: ranks of internal spaces must match, although the spaces don't have to be the same.

Of course, this ugliness should become function/operator on 2 ManyBodyOperators

template parameters: DataProcessBra, DataProcessKet, – classes in namespace ManyBodyTensors that describe the operator whose matrix elements are needed, e.g. Apply_H0minusE0<sign> CorrFactorInBra, CorrFactorInKet, CorrFactorInInt – 'true' if there is a correlation factor.

function parameters: tbtensor_type_bra, tbtensor_type_ket – type of the first and second tensor. space1_bra – space of the first bra index of the first tensor - external index. space1_intb, space2_intb, space3_intb – space of the first bra and first and second ket index of the first tensor - internal indices. space1_ket – space of the first ket index of the second tensor - external index. space1_intk, space2_intk, space3_intk – space of the first bra and first and second ket index of the second tensor - internal indices. tpcontract – provides information on how the two tensors are to be contracted - see document of class R12Technology::TwoParticleContraction and the classes derived from it. tforms_bra and tforms_ket – TwoBodyMOIntsTransform vectors (dimension: number of correlation factors) that describe the transformation of the bra and ket tensor respectively from the AO MO space. intdescrs_bra and intdescrs_ket – integral descriptors belonging to the bra and ket tensor respectively.

Add $ - \bar{r}_{p_{\gamma f\gamma} \alpha}^{rs} t_{rs}^{qp} $. qp is a triangular index.

References sc::antisymmetrize(), C_CuspConsistent(), sc::DefaultPrintThresholds::diagnostics, sc::Timer::exit(), sc::DefaultPrintThresholds::mostO4, sc::DefaultPrintThresholds::mostO6, sc::MOPairIter::nij(), sc::Ref< T >::null(), sc::ExEnv::out0(), sc::ExEnv::outn(), r12world(), and sc::Timer::set_default().

◆ emp2_cabs_singles()

double sc::R12IntEval::emp2_cabs_singles ( bool  vir_cabs_coupling = true)

Returns the CABS singles correction to the MP2 energy.

Parameters
vir_cabs_couplingif true, will couple conventional and CABS T1's, hence the OBS singles correction will not need to be computed separately

◆ fock()

RefSCMatrix sc::R12IntEval::fock ( const Ref< OrbitalSpace > &  bra_space,
const Ref< OrbitalSpace > &  ket_space,
SpinCase1  S = Alpha,
double  scale_J = 1.0,
double  scale_K = 1.0,
double  scale_H = 1.0,
int  override_pauli = -1 
)

Compute the Fock matrix between bra_ and ket_ spaces of spin S.

scale_J and scale_K are used to scale Coulomb and exchange contributions, T12IntEval::occ() is used for the occupied spaces.

◆ save_data_state()

void sc::R12IntEval::save_data_state ( StateOut )
virtual

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.

This must be implemented by the derived class if the class has data.

Reimplemented from sc::SavableState.

◆ T1_cabs()

const RefSCMatrix& sc::R12IntEval::T1_cabs ( SpinCase1  spin) const

returns CABS singles amplitudes.

This includes excitations into standard virtuals if this is a correction to MP2, not CCSD. Must call emp2_cabs_singles() BEFORE calling this.

Parameters
spinSpinCase
Returns
the amplitude matrix (MP2: occ by allvirt=vir+CABS; CCSD: occ by CABS)

◆ V_distarray4()

std::vector<Ref<DistArray4> > sc::R12IntEval::V_distarray4 ( SpinCase2  spincase2,
const Ref< OrbitalSpace > &  p,
const Ref< OrbitalSpace > &  q 
)

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

Generated at Sun Jan 26 2020 23:24:10 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.