NAME
sc::TwoBodyTwoCenterInt -
This is an abstract base type for classes that compute integrals
involving two electrons in two Gaussian functions.
SYNOPSIS
#include <tbint.h>
Inherits sc::RefCount.
Inherited by sc::TwoBodyTwoCenterIntV3.
Public Types
enum tbint_type { eri = 0, r12 = 1, r12t1 = 2, r12t2 = 3 }
Types of two-body integrals that TwoBodyInt understands: eri stands
for electron repulsion integral, r12 stands for integrals of r12
operator, r12t1 and r12t2 are integrals of [r12,T1] and [r12,T2]
operators.
Public Member Functions
int nbasis () const
Return the number of basis functions on center one.
int nbasis1 () const
Return the number of basis functions on center one.
int nbasis2 () const
Return the number of basis functions on center two.
int nshell () const
Return the number of shells on center one.
int nshell1 () const
Return the number of shells on center one.
int nshell2 () const
Return the number of shells on center two.
Ref< GaussianBasisSet > basis ()
Return the basis set on center one.
Ref< GaussianBasisSet > basis1 ()
Return the basis set on center one.
Ref< GaussianBasisSet > basis2 ()
Return the basis set on center two.
virtual const double * buffer (tbint_type type=eri) const
The computed shell integrals will be put in the buffer returned by
this member.
virtual void compute_shell (int, int)=0
Given four shell indices, integrals will be computed and placed in
the buffer.
virtual int log2_shell_bound (int=-1, int=-1)=0
Return log base 2 of the maximum magnitude of any integral in a
shell block obtained from compute_shell.
int redundant () const
If redundant is true, then keep redundant integrals in the buffer.
void set_redundant (int i)
See redundant().
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.
Static Public Attributes
static const int num_tbint_types = 4
The total number of such types.
Protected Member Functions
TwoBodyTwoCenterInt (Integral *integral, const Ref< GaussianBasisSet >
&bs1, const Ref< GaussianBasisSet > &bs2)
Protected Attributes
Integral * integral_
Ref< GaussianBasisSet > bs1_
Ref< GaussianBasisSet > bs2_
double * buffer_
int redundant_
Detailed Description
This is an abstract base type for classes that compute integrals
involving two electrons in two Gaussian functions.
Member Function Documentation
virtual const double* sc::TwoBodyTwoCenterInt::buffer (tbint_type type =
eri) const [virtual]
The computed shell integrals will be put in the buffer returned by this
member. Some TwoBodyInt specializations have more than one buffer: The
type arguments selects which buffer is returned. If the requested type
is not supported, then 0 is returned.
virtual void sc::TwoBodyTwoCenterInt::compute_shell (int, int) [pure
virtual]
Given four shell indices, integrals will be computed and placed in the
buffer. The first index corresponds to electron 1 and the second index
corresponds to electron 2.
Implemented in sc::TwoBodyTwoCenterIntV3.
virtual int sc::TwoBodyTwoCenterInt::log2_shell_bound (int = -1, int = -1)
[pure virtual]
Return log base 2 of the maximum magnitude of any integral in a shell
block obtained from compute_shell. An index of -1 for any argument
indicates any shell.
Implemented in sc::TwoBodyTwoCenterIntV3.
int sc::TwoBodyTwoCenterInt::redundant () const [inline]
If redundant is true, then keep redundant integrals in the buffer. The
default is true.
Author
Generated automatically by Doxygen for MPQC from the source code.