28#ifndef _chemistry_qc_mbptr12_mbptr12_h
29#define _chemistry_qc_mbptr12_mbptr12_h
32#include <util/misc/compute.h>
33#include <util/group/memory.h>
34#include <util/group/message.h>
35#include <util/group/thread.h>
36#include <chemistry/qc/basis/obint.h>
37#include <chemistry/qc/basis/tbint.h>
38#include <chemistry/qc/scf/scf.h>
39#include <chemistry/qc/mbpt/mbpt.h>
40#include <chemistry/qc/mbptr12/r12int_eval.h>
41#include <chemistry/qc/mbptr12/r12wfnworld.h>
42#include <chemistry/qc/mbptr12/mp2r12_energy.h>
43#include <chemistry/qc/mbptr12/twobodygrid.h>
50class R12WavefunctionWorld;
69 unsigned int plot_pair_function_[2];
71 static double ref_to_mp2r12_acc() {
return 0.01; }
73 double mp2_corr_energy_;
76 double cabs_singles_energy_;
78 std::string occ_orbs_;
79 std::string uocc_orbs_;
80 double uocc_orbs_pno_truncate_threshold_;
85 void compute_energy_();
95 std::vector< std::pair<RefSCMatrix,RefSCMatrix> >
96 mp1_pno(SpinCase2 spin,
98 double truncate_threshold = 1e-8);
static std::ostream & out0()
Return an ostream that writes from node 0.
The MBPT2_R12 class implements several R12 second-order Moeller-Plesset perturbation theory methods.
Definition mbptr12.h:55
MBPT2_R12(const Ref< KeyVal > &)
The KeyVal constructor uses keywords of MBPT2, WavefunctionWorld, and R12WavefunctionWorld,...
void compute()
Recompute at least the results that have compute true and are not already computed.
int value_implemented() const
RefSymmSCMatrix density()
Returns the SO density.
void obsolete()
Marks all results as being out of date.
double cabs_singles_energy()
CABS singles contribution to the total energy.
double corr_energy()
total MBPT(2)-R12 energy (does not include CABS singles)
bool analytic_gradient_implemented() const
must overload this in a derived class if analytic gradient can be computed
void corrfactor(const Ref< R12Technology::CorrelationFactor > &)
this changes the correlation factor
double r12_corr_energy()
R12 doubles contribution to the MBPT(2)-R12 energy.
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 print(std::ostream &o=ExEnv::out0()) const
Print information about the object.
void set_desired_value_accuracy(double acc)
set the value accuracy
The MBPT2 class implements several second-order perturbation theory methods.
Definition mbpt.h:44
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.
Definition matrix.h:265
A template class that maintains references counts.
Definition ref.h:361
Restores fundamental and user-defined types from images created with StateOut.
Definition statein.h:79
Serializes fundamental and user-defined types.
Definition stateout.h:71
Contains all MPQC code up to version 3.
Definition mpqcin.h:14