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>
65 virtual unsigned int num_sets()
const =0;
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; }
virtual const Ref< Integral > & factory() const =0
the factory used to create integral evaluator
{eri, r12_0_g12, r12_m1_g12, g12t1g12, anti_g12g12}
Definition: operator.h:348
This is an abstract base type for classes that compute integrals involving two electrons and 2 functi...
Definition: tbint.h:61
static OneBodyOper::type intset(unsigned int t)
maps index of the integral type within this set to TwoBodyOper::type
Definition: inttraits.h:66
type
Types of one-body operators, includes various context-dependent "projectors", such as 1-RDM,...
Definition: operator.h:103
This is an abstract base type for classes that compute integrals involving two electrons in two Gauss...
Definition: tbint.h:305
Passes params to Integral::electron_repulsion() and other factory methods which do not need parameter...
Definition: intparams.h:107
OneBodyOneCenterInt is an abstract base class for objects that compute integrals between two basis fu...
Definition: obint.h:124
Definition: intdescr.h:156
type
Definition: operator.h:344
OneBodyOperSet::type operset() const
the type of the operator set
Definition: intdescr.h:285
A template class that maintains references counts.
Definition: ref.h:361
IntegralSetDescr contains all information necessary to construct an IntEval object that computes a pa...
Definition: intdescr.h:56
const Ref< Integral > & factory() const
which factory is used
Definition: intdescr.h:275
const Ref< Integral > & factory() const
which factory is used
Definition: intdescr.h:114
virtual unsigned int intset(TwoBodyOper::type t) const =0
Maps integral set t to its index in this set.
static TwoBodyOper::type intSet(unsigned int t)
Static version of TwoBodyIntDescr::intset()
Definition: intdescr.h:140
{eri, r12, r12t1, r12t2}
Definition: operator.h:346
{r12_m1_g12}
Definition: operator.h:351
{g12p4g12_m_g12t1g12t1}
Definition: operator.h:349
static Ref< EvalType > eval(const Ref< Integral > &factory, const Ref< ParamsType > ¶ms)
creates an Eval object
Definition: inttraits.h:60
Ref< EvalType > inteval() const
call appropriate method to produce TwoBodyInt corresponding to this Set
Definition: intdescr.h:116
{g12t1g12}
Definition: operator.h:352
Ref< IntParams > params() const
optional parameters that determine the operator set (e.g., geminal exponents, etc....
Definition: intdescr.h:120
Ref< EvalType > inteval() const
call appropriate method to produce TwoBodyInt corresponding to this Set
Definition: intdescr.h:277
Traits of a set of two-body integrals.
Definition: inttraits.h:137
unsigned int intset(TwoBodyOper::type t) const
Maps integral set t to its index in this set.
Definition: intdescr.h:128
static unsigned int intSet(OneBodyOper::type t)
Static version of OneBodyIntDescr::intset()
Definition: intdescr.h:297
OneBodyOper::type intset(unsigned int t) const
Maps integral set t to its TwoBodyOper::type.
Definition: intdescr.h:293
static Ref< EvalType > eval(const Ref< Integral > &factory, const Ref< ParamsType > ¶ms)
creates an Eval object
Definition: inttraits.h:148
Traits of a set of one-body integrals.
Definition: inttraits.h:49
static OneBodyOper::type intSet(unsigned int t)
Static version of OneBodyIntDescr::intset()
Definition: intdescr.h:301
static const int size
number of integral types
Definition: inttraits.h:58
static TwoBodyOper::type intset(unsigned int t)
maps index of the integral type within this set to TwoBodyOper::type
Definition: inttraits.h:154
{delta}
Definition: operator.h:353
Definition: intdescr.h:235
OneBodyInt is an abstract base class for objects that compute integrals between two basis functions.
Definition: obint.h:49
TwoBodyOperSet::type operset() const
the type of the operator set
Definition: intdescr.h:124
{eri}
Definition: operator.h:345
static const int size
number of integral types
Definition: inttraits.h:146
Implements descriptors for various two-body evaluators.
Definition: intdescr.h:93
virtual IntEvalToOperSetType< IntEval >::value operset() const =0
the type of the operator set
unsigned int num_sets() const
how many integral sets
Definition: intdescr.h:287
static unsigned int intSet(TwoBodyOper::type t)
Static version of TwoBodyIntDescr::intset()
Definition: intdescr.h:136
This is an abstract base type for classes that compute integrals involving two electrons in three Gau...
Definition: tbint.h:191
Implements descriptors for various two-body evaluators.
Definition: intdescr.h:254
Definition: intdescr.h:183
{r12_0_g12}
Definition: operator.h:350
OneBodyIntParamsType< Type >::value ParamsType
the type of IntParams object needed to initialize the evaluator for computing this set of integrals
Definition: inttraits.h:54
type
types of known two-body operators
Definition: operator.h:318
Definition: intdescr.h:37
TwoBodyIntParamsType< Type >::value ParamsType
the type of IntParams object needed to initialize the evaluator for computing this set of integrals
Definition: inttraits.h:142
virtual Ref< IntParams > params() const =0
optional parameters that determine the operator set (e.g., geminal exponents, etc....
The base class for all reference counted objects.
Definition: ref.h:192
virtual Ref< IntEval > inteval() const =0
call appropriate method to produce TwoBodyInt corresponding to this Set
virtual unsigned int num_sets() const =0
how many integral sets
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
Definition: intdescr.h:80
type
one-body operator sets (
Definition: operator.h:168
TwoBodyOper::type intset(unsigned int t) const
Maps integral set t to its TwoBodyOper::type.
Definition: intdescr.h:132
{eri, r12_0_g12, r12_m1_g12, t1g12, t2g12, g12t1g12}
Definition: operator.h:347
Ref< IntParams > params() const
optional parameters that determine the operator set (e.g., geminal exponents, etc....
Definition: intdescr.h:281
unsigned int num_sets() const
how many integral sets
Definition: intdescr.h:126
Generated at Sun Jan 26 2020 23:23:57 for MPQC
3.0.0-alpha using the documentation package Doxygen
1.8.16.