32#ifndef _chemistry_qc_mbptr12_mp2r12energy_h
33#define _chemistry_qc_mbptr12_mp2r12energy_h
35#include <util/ref/ref.h>
36#include <chemistry/qc/mbptr12/linearr12.h>
38#include <chemistry/qc/mbptr12/r12int_eval.h>
39#include <chemistry/qc/mbptr12/twobodygrid.h>
45class MP2R12Energy :
virtual public SavableState {
48 LinearR12::StandardApproximation stdapprox_;
53 RefSCVector er12_aa_, er12_ab_, emp2r12_aa_, emp2r12_ab_;
57 double emp2tot_aa_()
const;
58 double emp2tot_ab_()
const;
75 MP2R12Energy(
Ref<R12IntEval>& r12eval, LinearR12::StandardApproximation stdapp,
int debug);
81 void print_pair_energies(
bool spinadapted, std::ostream&so=
ExEnv::out0());
84 LinearR12::StandardApproximation stdapp()
const;
91 void set_debug(
int debug);
92 int get_debug()
const;
static std::ostream & out0()
Return an ostream that writes from node 0.
RefSCVector emp2_ab() const
Returns the vector of MP2 alpha-beta pair energies.
void print(std::ostream &o=ExEnv::out0()) const
Print the object.
RefSCMatrix C_ab()
Returns the matrix of amplitudes of alpha-beta r12-multiplied occupied orbital pairs in the first-ord...
RefSCVector er12_aa() const
Returns the vector of R12 corrections to MP2-R12 alpha-alpha pair energies.
double energy()
Returns total MP2-R12 correlation energy.
RefSCMatrix T2_aa()
Returns the matrix of amplitudes of alpha-alpha virtuals orbital pairs in the first-order pair functi...
bool gbc() const
Returns whether Generalized Brillouin Condition (GBC) was used in evaluation of the MP2-R12 intermedi...
RefSCVector er12_ab() const
Returns the vector of R12 correction to MP2-R12 alpha-beta pair energies.
RefSCMatrix C_aa()
Returns the matrix of amplitudes of alpha-alpha r12-multiplied occupied orbital pairs in the first-or...
RefSCVector emp2_aa() const
Returns the vector of MP2 alpha-alpha pair energies.
RefSCVector emp2r12_ab() const
Returns the vector of MP2-R12 alpha-beta pair energies.
bool ebc() const
Returns whether Extended Brillouin Condition (EBC) was used in evaluation of the MP2-R12 intermediate...
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void compute_pair_function_ab(int ij, const Ref< TwoBodyGrid > &tbgrid)
Computes values of the alpha-beta pair function ij on tbgrid.
RefSCMatrix T2_ab()
Returns the matrix of amplitudes of alpha-beta virtuals orbital pairs in the first-order pair functio...
RefSCVector emp2r12_aa() const
Returns the vector of MP2-R12 alpha-alpha pair energies.
void compute()
Computes the first-order R12 wave function and MP2-R12 energy.
double compute_pair_function_aa(int ij, const SCVector3 &r1, const SCVector3 &r2)
Computes the value of the alpha-alpha pair function ij when electrons 1 and 2 reside at r1 and r2.
double compute_pair_function_ab(int ij, const SCVector3 &r1, const SCVector3 &r2)
Computes the value of the alpha-beta pair function ij when electrons 1 and 2 reside at r1 and r2.
void compute_pair_function_aa(int ij, const Ref< TwoBodyGrid > &tbgrid)
Computes values of the alpha-alpha pair function ij on tbgrid.
The RefSCDimension class is a smart pointer to an SCDimension specialization.
Definition dim.h:156
The RefSCMatrix class is a smart pointer to an SCMatrix specialization.
Definition matrix.h:135
The RefSCVector class is a smart pointer to an SCVector specialization.
Definition matrix.h:55
A template class that maintains references counts.
Definition ref.h:332
Restores objects that derive from SavableState.
Definition statein.h:70
Serializes objects that derive from SavableState.
Definition stateout.h:61