sc::R12IntEval Class Reference

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

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

Inheritance diagram for sc::R12IntEval:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 R12IntEval (StateIn &)
 R12IntEval (const Ref< R12IntEvalInfo > &info)
 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.
virtual void obsolete ()
void set_debug (int debug)
void set_dynamic (bool dynamic)
void set_print_percent (double print_percent)
void set_memory (size_t nbytes)
int dk () const
 Indicates whether Douglas-Kroll Hamiltonian is used. For output values see Wavefunction::dk().
const Ref
< LinearR12::CorrelationFactor > & 
corrfactor () const
LinearR12::ABSMethod abs_method () const
const Ref< LinearR12Ansatz > & ansatz () const
bool spin_polarized () const
bool gbc () const
bool ebc () const
LinearR12::StandardApproximation stdapprox () const
bool omit_P () const
const Ref< R12IntEvalInfo > & r12info () const
RefSCDimension dim_oo_s () const
RefSCDimension dim_oo_t () const
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_xy.
RefSCDimension dim_xy (SpinCase2 S) const
 Dimension of orbital product space used to generate geminal functions.
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.
Ref< F12Amplitudesamps ()
 Returns amplitudes of pair correlation functions.
const RefSCMatrixV (SpinCase2 S)
 Returns S block of intermediate V.
RefSymmSCMatrix X (SpinCase2 S)
 Returns S block of intermediate X.
RefSymmSCMatrix B (SpinCase2 S)
 Returns S block of 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 = 1/2 g_{pq}^{\alpha\beta} R_{\alpha\beta}^{xy}$.
RefSymmSCMatrix P (SpinCase2 S)
 Compute P = RgR.
double emp2_singles ()
 Returns the singles MP2 energy.
const RefSCVectoremp2 (SpinCase2 S)
 Returns alpha-alpha MP2 pair energies.
const RefDiagSCMatrixevals (SpinCase1 S) const
 Returns the eigenvalues of spin case S.
RefDiagSCMatrix evals () const
 Returns the eigenvalues for the closed-shell case.
RefDiagSCMatrix evals_a () const
 Returns the alpha eigenvalues.
RefDiagSCMatrix evals_b () const
 Returns the beta eigenvalues.
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 > & xspace (SpinCase1 S) const
 Returns the geminal-generating orbital space for spin case S.
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_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 > & 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_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_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.
Ref< TwoBodyMOIntsTransformget_tform_ (const std::string &) const
 Returns an already created transform.
void add_tform (const std::string &label, const Ref< TwoBodyMOIntsTransform > &T)
 Map transform T to label.
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>.
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>.
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)
 Compute the Fock matrix between bra_ and ket_ spaces of spin S.
template<bool CorrFactorInBra, bool CorrFactorInKet, bool CorrFactorInInt>
void contract_tbint_tensor (RefSCMatrix &T, TwoBodyInt::tbint_type tbint_type_bra, TwoBodyInt::tbint_type tbint_type_ket, const Ref< OrbitalSpace > &space1_bra, const Ref< OrbitalSpace > &space2_bra, const Ref< OrbitalSpace > &space1_intb, const Ref< OrbitalSpace > &space2_intb, const Ref< OrbitalSpace > &space1_ket, const Ref< OrbitalSpace > &space2_ket, const Ref< OrbitalSpace > &space1_intk, const Ref< OrbitalSpace > &space2_intk, bool antisymmetrize, const std::vector< Ref< TwoBodyMOIntsTransform > > &tforms_bra const std::vector< Ref< TwoBodyIntDescr > > &intdescrs_bra)


Detailed Description

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

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


Constructor & Destructor Documentation

sc::R12IntEval::R12IntEval ( const Ref< R12IntEvalInfo > &  info  ) 

Constructs R12IntEval.


Member Function Documentation

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.

Ref<TwoBodyMOIntsTransform> sc::R12IntEval::get_tform_ ( const std::string &   )  const

Returns an already created transform.

If the transform is not found then throw TransformNotFound

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.

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.

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 
)

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.


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

Generated at Sun Feb 22 10:12:46 2009 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.5.6.
These pages are hosted on SourceForge.net