28#ifndef _chemistry_qc_basis_intdescr_h
29#define _chemistry_qc_basis_intdescr_h
31#include <chemistry/qc/basis/integral.h>
32#include <chemistry/qc/basis/intparams.h>
33#include <chemistry/qc/basis/inttraits.h>
55 template <
typename IntEval>
92 template <
int NumCenters, TwoBodyOperSet::type TwoBodyIntSet>
109 MPQC_ASSERT(params_);
126 unsigned int num_sets()
const {
return num_intsets; }
153 typedef IntegralSetDescr<TwoBodyInt> TwoBodyIntDescr;
154 typedef IntegralSetDescr<TwoBodyThreeCenterInt> TwoBodyThreeCenterIntDescr;
155 typedef IntegralSetDescr<TwoBodyTwoCenterInt> TwoBodyTwoCenterIntDescr;
184 template <
int NumCenters>
193 return new ConcreteType(integral,params);
197 return new ConcreteType(integral,params);
201 return new ConcreteType(integral,params);
205 return new ConcreteType(integral,params);
209 return new ConcreteType(integral,params);
213 return new ConcreteType(integral,params);
217 return new ConcreteType(integral,params);
221 return new ConcreteType(integral,params);
225 return new ConcreteType(integral,params);
253 template <
int NumCenters, OneBodyOperSet::type OneBodyIntSet>
270 MPQC_ASSERT(params_);
287 unsigned int num_sets()
const {
return num_intsets; }
Passes params to Integral::electron_repulsion() and other factory methods which do not need parameter...
Definition intparams.h:107
IntegralSetDescr contains all information necessary to construct an IntEval object that computes a pa...
Definition intdescr.h:56
virtual TwoBodyOper::type intset(unsigned int t) const =0
Maps integral set t to its TwoBodyOper::type.
virtual Ref< IntParams > params() const =0
optional parameters that determine the operator set (e.g., geminal exponents, etc....
virtual unsigned int num_sets() const =0
how many integral sets
virtual Ref< IntEval > inteval() const =0
call appropriate method to produce TwoBodyInt corresponding to this Set
virtual IntEvalToOperSetType< IntEval >::value operset() const =0
the type of the operator set
virtual unsigned int intset(TwoBodyOper::type t) const =0
Maps integral set t to its index in this set.
virtual const Ref< Integral > & factory() const =0
the factory used to create integral evaluator
OneBodyInt is an abstract base class for objects that compute integrals between two basis functions.
Definition obint.h:49
Implements descriptors for various two-body evaluators.
Definition intdescr.h:254
Ref< IntParams > params() const
optional parameters that determine the operator set (e.g., geminal exponents, etc....
Definition intdescr.h:281
static OneBodyOper::type intSet(unsigned int t)
Static version of OneBodyIntDescr::intset()
Definition intdescr.h:301
static unsigned int intSet(OneBodyOper::type t)
Static version of OneBodyIntDescr::intset()
Definition intdescr.h:297
unsigned int num_sets() const
how many integral sets
Definition intdescr.h:287
OneBodyOperSet::type operset() const
the type of the operator set
Definition intdescr.h:285
Ref< EvalType > inteval() const
call appropriate method to produce TwoBodyInt corresponding to this Set
Definition intdescr.h:277
const Ref< Integral > & factory() const
which factory is used
Definition intdescr.h:275
OneBodyOper::type intset(unsigned int t) const
Maps integral set t to its TwoBodyOper::type.
Definition intdescr.h:293
OneBodyOneCenterInt is an abstract base class for objects that compute integrals between two basis fu...
Definition obint.h:124
The base class for all reference counted objects.
Definition ref.h:192
A template class that maintains references counts.
Definition ref.h:361
This is an abstract base type for classes that compute integrals involving two electrons and 2 functi...
Definition tbint.h:61
Implements descriptors for various two-body evaluators.
Definition intdescr.h:93
unsigned int num_sets() const
how many integral sets
Definition intdescr.h:126
static unsigned int intSet(TwoBodyOper::type t)
Static version of TwoBodyIntDescr::intset()
Definition intdescr.h:136
unsigned int intset(TwoBodyOper::type t) const
Maps integral set t to its index in this set.
Definition intdescr.h:128
Ref< EvalType > inteval() const
call appropriate method to produce TwoBodyInt corresponding to this Set
Definition intdescr.h:116
TwoBodyOperSet::type operset() const
the type of the operator set
Definition intdescr.h:124
static TwoBodyOper::type intSet(unsigned int t)
Static version of TwoBodyIntDescr::intset()
Definition intdescr.h:140
const Ref< Integral > & factory() const
which factory is used
Definition intdescr.h:114
Ref< IntParams > params() const
optional parameters that determine the operator set (e.g., geminal exponents, etc....
Definition intdescr.h:120
TwoBodyOper::type intset(unsigned int t) const
Maps integral set t to its TwoBodyOper::type.
Definition intdescr.h:132
This is an abstract base type for classes that compute integrals involving two electrons in three Gau...
Definition tbint.h:191
This is an abstract base type for classes that compute integrals involving two electrons in two Gauss...
Definition tbint.h:305
Contains all MPQC code up to version 3.
Definition mpqcin.h:14
Definition intdescr.h:183
Definition intdescr.h:156
Traits of a set of one-body integrals.
Definition inttraits.h:49
static Ref< EvalType > eval(const Ref< Integral > &factory, const Ref< ParamsType > ¶ms)
creates an Eval object
Definition inttraits.h:60
OneBodyIntParamsType< Type >::value ParamsType
the type of IntParams object needed to initialize the evaluator for computing this set of integrals
Definition inttraits.h:54
static OneBodyOper::type intset(unsigned int t)
maps index of the integral type within this set to TwoBodyOper::type
Definition inttraits.h:66
static const int size
number of integral types
Definition inttraits.h:58
Definition intdescr.h:235
type
one-body operator sets (
Definition operator.h:168
type
Types of one-body operators, includes various context-dependent "projectors", such as 1-RDM,...
Definition operator.h:103
Traits of a set of two-body integrals.
Definition inttraits.h:137
static Ref< EvalType > eval(const Ref< Integral > &factory, const Ref< ParamsType > ¶ms)
creates an Eval object
Definition inttraits.h:148
TwoBodyIntParamsType< Type >::value ParamsType
the type of IntParams object needed to initialize the evaluator for computing this set of integrals
Definition inttraits.h:142
static TwoBodyOper::type intset(unsigned int t)
maps index of the integral type within this set to TwoBodyOper::type
Definition inttraits.h:154
static const int size
number of integral types
Definition inttraits.h:146
type
Definition operator.h:344
@ G12
{eri, r12_0_g12, r12_m1_g12, t1g12, t2g12, g12t1g12}
Definition operator.h:347
@ R12
{eri, r12, r12t1, r12t2}
Definition operator.h:346
@ R12_0_G12
{r12_0_g12}
Definition operator.h:350
@ G12DKH
{g12p4g12_m_g12t1g12t1}
Definition operator.h:349
@ ERI
{eri}
Definition operator.h:345
@ R12_m1_G12
{r12_m1_g12}
Definition operator.h:351
@ G12_T1_G12
{g12t1g12}
Definition operator.h:352
@ G12NC
{eri, r12_0_g12, r12_m1_g12, g12t1g12, anti_g12g12}
Definition operator.h:348
@ DeltaFunction
{delta}
Definition operator.h:353
type
types of known two-body operators
Definition operator.h:318