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

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< F12Amplitudes > | amps () |
| Returns amplitudes of pair correlation functions. | |
| const RefSCMatrix & | V (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 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 . | |
| RefSymmSCMatrix | P (SpinCase2 S) |
| Compute P = RgR. | |
| double | emp2_singles () |
| Returns the singles MP2 energy. | |
| const RefSCVector & | emp2 (SpinCase2 S) |
| Returns alpha-alpha MP2 pair energies. | |
| const RefDiagSCMatrix & | evals (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< TwoBodyMOIntsTransform > | get_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) |
This class is used by all Wavefunction classes that implement linear R12 methods.
| sc::R12IntEval::R12IntEval | ( | const Ref< R12IntEvalInfo > & | info | ) |
Constructs R12IntEval.
| 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.