MPQC
3.0.0-alpha
|
R12IntEval is the top-level class which computes intermediates occuring in R12 theories. More...
#include <chemistry/qc/mbptr12/r12int_eval.h>
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< R12Amplitudes > | amps () |
Returns amplitudes of pair correlation functions. | |
const RefSCMatrix & | V (SpinCase2 S) |
Returns S block of intermediate V. | |
const RefSCMatrix & | V () |
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 RefSCMatrix & | A (SpinCase2 S) |
Returns S block of intermediate A. | |
const RefSCMatrix & | T2 (SpinCase2 S) |
Returns S block of intermediate T2. | |
const RefSCMatrix & | F12 (SpinCase2 S) |
Returns S block of intermediate F12. | |
RefSCMatrix | V (SpinCase2 spincase2, const Ref< OrbitalSpace > &p, const Ref< OrbitalSpace > &q) |
Compute . | |
std::vector< Ref< DistArray4 > > | V_distarray4 (SpinCase2 spincase2, const Ref< OrbitalSpace > &p, const Ref< OrbitalSpace > &q) |
Compute . More... | |
std::vector< Ref< DistArray4 > > | U_distarray4 (SpinCase2 spincase2, const Ref< OrbitalSpace > &p, const Ref< OrbitalSpace > &q) |
Compute . | |
RefSymmSCMatrix | P (SpinCase2 S) |
Compute P = RgR. | |
double | C_CuspConsistent (int i, int j, int k, int l, SpinCase2 pairspin) |
Returns the cusp consistent coefficient . | |
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 RefSCVector & | emp2 (SpinCase2 S) |
Returns alpha-alpha MP2 pair energies. | |
const RefSCMatrix & | T1_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< OrbitalSpace > | obtensor_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 | |
SavableState & | operator= (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 &) | |
DescribedClass & | operator= (const DescribedClass &) |
ClassDesc * | class_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< DescribedClass > | ref () |
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 SavableState * | restore_state (StateIn &si) |
Restores objects saved with save_state. More... | |
static SavableState * | key_restore_state (StateIn &si, const char *keyword) |
Like restore_state, but keyword is used to override values while restoring. | |
static SavableState * | dir_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 &) | |
RefCount & | operator= (const RefCount &) |
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.
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.
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.
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.
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 . 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().
double sc::R12IntEval::emp2_cabs_singles | ( | bool | vir_cabs_coupling = true | ) |
Returns the CABS singles correction to the MP2 energy.
vir_cabs_coupling | if true, will couple conventional and CABS T1's, hence the OBS singles correction will not need to be computed separately |
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.
|
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.
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.
spin | SpinCase |
std::vector<Ref<DistArray4> > sc::R12IntEval::V_distarray4 | ( | SpinCase2 | spincase2, |
const Ref< OrbitalSpace > & | p, | ||
const Ref< OrbitalSpace > & | q | ||
) |
Compute .