28 #ifndef _chemistry_qc_basis_tbint_h 29 #define _chemistry_qc_basis_tbint_h 35 #include <util/ref/ref.h> 36 #include <util/group/message.h> 37 #include <chemistry/qc/basis/gaussbas.h> 38 #include <chemistry/qc/basis/dercent.h> 363 virtual void init(
const double *,
369 virtual void start();
372 int ready()
const {
return icur < iend; }
374 int i()
const {
return i_; }
375 int j()
const {
return j_; }
376 int k()
const {
return k_; }
377 int l()
const {
return l_; }
379 int nint()
const {
return iend*jend*kend*lend; }
381 double val()
const {
return buf[index]*scale_; }
402 virtual void start();
405 int ready()
const {
return (icur < iend); }
407 int ishell()
const {
return icur; }
408 int jshell()
const {
return jcur; }
409 int kshell()
const {
return kcur; }
410 int lshell()
const {
return lcur; }
412 virtual double scale()
const;
481 const double *
buffer()
const;
548 const double *
buffer()
const;
607 const double *
buffer()
const;
int nbasis4() const
Return the number of basis functions on center four.
Ref< GaussianBasisSet > basis4()
Return the basis set on center four.
Ref< GaussianBasisSet > basis2()
Return the basis set on center two.
This is an abstract base type for classes that compute integrals involving two electrons in two Gauss...
Definition: tbint.h:244
Ref< GaussianBasisSet > basis3()
Return the basis set on center three.
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:234
tbint_type
Types of two-body integrals that TwoBodyInt understands: eri stands for electron repulsion integral...
Definition: tbint.h:290
int nshell() const
Return the number of shells on center one.
tbint_type
Types of two-body integrals that TwoBodyInt understands: eri stands for electron repulsion integral...
Definition: tbint.h:111
The Integral abstract class acts as a factory to provide objects that compute one and two electron in...
Definition: integral.h:58
tbint_type
Types of two-body integrals that TwoBodyInt understands: eri stands for electron repulsion integral...
Definition: tbint.h:204
virtual int redundant() const
If redundant is true, then keep redundant integrals in the buffer.
Definition: tbint.h:133
The base class for all reference counted objects.
Definition: ref.h:194
virtual void set_redundant(int i)
See redundant().
Definition: tbint.h:135
int nshell3() const
Return the number of shells on center three.
int redundant() const
If redundant is true, then keep redundant integrals in the buffer.
Definition: tbint.h:226
This is an abstract base type for classes that compute three centers integrals involving two electron...
Definition: tbint.h:497
int nshell2() const
Return the number of shells on center two.
int nbasis1() const
Return the number of basis functions on center one.
void set_redundant(int i)
See redundant().
Definition: tbint.h:314
int nbasis3() const
Return the number of basis functions on center three.
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:141
virtual int log2_shell_bound(int=-1, int=-1, int=-1, int=-1)=0
Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_she...
DerivCenters keeps track the centers that derivatives are taken with respect to.
Definition: dercent.h:41
This is an abstract base type for classes that compute integrals involving two electrons.
Definition: tbint.h:49
This is an abstract base type for classes that compute integrals involving two electrons in three Gau...
Definition: tbint.h:150
int nbasis2() const
Return the number of basis functions on center two.
int nshell4() const
Return the number of shells on center four.
void set_redundant(int i)
See redundant().
Definition: tbint.h:228
This is an abstract base type for classes that compute integrals involving two electrons.
Definition: tbint.h:422
Ref< GaussianBasisSet > basis()
Return the basis set on center one.
This is an abstract base type for classes that compute two centers integrals involving two electrons...
Definition: tbint.h:564
Ref< GaussianBasisSet > basis1()
Return the basis set on center one.
virtual const double * buffer(tbint_type type=eri) const
The computed shell integrals will be put in the buffer returned by this member.
int nshell1() const
Return the number of shells on center one.
virtual void set_integral_storage(size_t storage)
This storage is used to cache computed integrals.
Integral * integral() const
Return the integral factory that was used to create this object.
Definition: tbint.h:320
virtual void compute_shell(int, int, int, int)=0
Given four shell indices, integrals will be computed and placed in the buffer.
static const int num_tbint_types
The total number of such types.
Definition: tbint.h:113
int redundant() const
If redundant is true, then keep redundant integrals in the buffer.
Definition: tbint.h:312
int nbasis() const
Return the number of basis functions on center one.