.TH "sc::TwoBodyTwoCenterInt" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::TwoBodyTwoCenterInt \- This is an abstract base type for classes that compute integrals involving two electrons in two Gaussian functions\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::RefCount\fP\&. .PP Inherited by \fBsc::TwoBodyTwoCenterIntV3\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBtbint_type\fP { \fBeri\fP =0, \fBr12\fP =1, \fBr12t1\fP =2, \fBr12t2\fP =3 }" .br .RI "Types of two-body integrals that \fBTwoBodyInt\fP 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\&. " .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "int \fBnbasis\fP () const" .br .RI "Return the number of basis functions on center one\&. " .ti -1c .RI "int \fBnbasis1\fP () const" .br .RI "Return the number of basis functions on center one\&. " .ti -1c .RI "int \fBnbasis2\fP () const" .br .RI "Return the number of basis functions on center two\&. " .ti -1c .RI "int \fBnshell\fP () const" .br .RI "Return the number of shells on center one\&. " .ti -1c .RI "int \fBnshell1\fP () const" .br .RI "Return the number of shells on center one\&. " .ti -1c .RI "int \fBnshell2\fP () const" .br .RI "Return the number of shells on center two\&. " .ti -1c .RI "\fBRef\fP< \fBGaussianBasisSet\fP > \fBbasis\fP ()" .br .RI "Return the basis set on center one\&. " .ti -1c .RI "\fBRef\fP< \fBGaussianBasisSet\fP > \fBbasis1\fP ()" .br .RI "Return the basis set on center one\&. " .ti -1c .RI "\fBRef\fP< \fBGaussianBasisSet\fP > \fBbasis2\fP ()" .br .RI "Return the basis set on center two\&. " .ti -1c .RI "virtual const double * \fBbuffer\fP (\fBtbint_type\fP type=eri) const" .br .RI "The computed shell integrals will be put in the buffer returned by this member\&. " .ti -1c .RI "virtual void \fBcompute_shell\fP (int, int)=0" .br .RI "Given four shell indices, integrals will be computed and placed in the buffer\&. " .ti -1c .RI "virtual int \fBlog2_shell_bound\fP (int=\-1, int=\-1)=0" .br .RI "Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_shell\&. " .ti -1c .RI "int \fBredundant\fP () const" .br .RI "If redundant is true, then keep redundant integrals in the buffer\&. " .ti -1c .RI "void \fBset_redundant\fP (int i)" .br .RI "See \fBredundant()\fP\&. " .ti -1c .RI "virtual void \fBset_integral_storage\fP (size_t storage)" .br .RI "This storage is used to cache computed integrals\&. " .ti -1c .RI "\fBIntegral\fP * \fBintegral\fP () const" .br .RI "Return the integral factory that was used to create this object\&. " .in -1c .SS "Static Public Attributes" .in +1c .ti -1c .RI "static const int \fBnum_tbint_types\fP = 4" .br .RI "The total number of such types\&. " .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBTwoBodyTwoCenterInt\fP (\fBIntegral\fP *\fBintegral\fP, const \fBRef\fP< \fBGaussianBasisSet\fP > &bs1, const \fBRef\fP< \fBGaussianBasisSet\fP > &bs2)" .br .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "\fBIntegral\fP * \fBintegral_\fP" .br .ti -1c .RI "\fBRef\fP< \fBGaussianBasisSet\fP > \fBbs1_\fP" .br .ti -1c .RI "\fBRef\fP< \fBGaussianBasisSet\fP > \fBbs2_\fP" .br .ti -1c .RI "double * \fBbuffer_\fP" .br .ti -1c .RI "int \fBredundant_\fP" .br .in -1c .SH "Detailed Description" .PP This is an abstract base type for classes that compute integrals involving two electrons in two Gaussian functions\&. .SH "Member Function Documentation" .PP .SS "virtual const double* sc::TwoBodyTwoCenterInt::buffer (\fBtbint_type\fP type = \fCeri\fP) const\fC [virtual]\fP" .PP The computed shell integrals will be put in the buffer returned by this member\&. Some \fBTwoBodyInt\fP 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\&. .SS "virtual void sc::TwoBodyTwoCenterInt::compute_shell (int, int)\fC [pure virtual]\fP" .PP 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\&. .PP Implemented in \fBsc::TwoBodyTwoCenterIntV3\fP\&. .SS "virtual int sc::TwoBodyTwoCenterInt::log2_shell_bound (int = \fC\-1\fP, int = \fC\-1\fP)\fC [pure virtual]\fP" .PP 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\&. .br .PP Implemented in \fBsc::TwoBodyTwoCenterIntV3\fP\&. .SS "int sc::TwoBodyTwoCenterInt::redundant () const\fC [inline]\fP" .PP If redundant is true, then keep redundant integrals in the buffer\&. The default is true\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.