# sc_TwoBodyThreeCenterInt man page

sc::TwoBodyThreeCenterInt — This is an abstract base type for classes that compute integrals involving two electrons in three Gaussian functions.

## Synopsis

`#include <tbint.h>`

Inherits **sc::RefCount**.

Inherited by **sc::TwoBodyThreeCenterIntV3**.

### Public Types

enumtbint_type{eri=0,r12=1,r12t1=2,r12t2=3 }Types of two-body integrals thatTwoBodyIntunderstands: 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

intnbasis() constReturn the number of basis functions on center one.

intnbasis1() constReturn the number of basis functions on center one.

intnbasis2() constReturn the number of basis functions on center two.

intnbasis3() constReturn the number of basis functions on center three.

intnshell() constReturn the number of shells on center one.

intnshell1() constReturn the number of shells on center one.

intnshell2() constReturn the number of shells on center two.

intnshell3() constReturn the number of shells on center three.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.Ref<GaussianBasisSet>basis3()Return the basis set on center three.

virtual const double *buffer(tbint_typetype=eri) constThe computed shell integrals will be put in the buffer returned by this member.

virtual voidcompute_shell(int, int, int)=0Given three shell indices, integrals will be computed and placed in the buffer.

virtual intlog2_shell_bound(int=-1, int=-1, int=-1)=0Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_shell.

intredundant() constIf redundant is true, then keep redundant integrals in the buffer.

voidset_redundant(int i)Seeredundant().

virtual voidset_integral_storage(size_t storage)This storage is used to cache computed integrals.Integral*integral() constReturn the integral factory that was used to create this object.

### Static Public Attributes

static const intnum_tbint_types= 4The total number of such types.

### Protected Member Functions

TwoBodyThreeCenterInt(Integral*integral, constRef<GaussianBasisSet> &bs1, constRef<GaussianBasisSet> &bs2, constRef<GaussianBasisSet> &bs3)

### Protected Attributes

Integral*integral_Ref<GaussianBasisSet>bs1_Ref<GaussianBasisSet>bs2_Ref<GaussianBasisSet>bs3_

double *buffer_

intredundant_

## Detailed Description

This is an abstract base type for classes that compute integrals involving two electrons in three Gaussian functions.

## Member Function Documentation

### virtual const double* sc::TwoBodyThreeCenterInt::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::TwoBodyThreeCenterInt::compute_shell (int, int, int) [pure virtual]

Given three shell indices, integrals will be computed and placed in the buffer. The first two indices correspond to electron 1 and the second index corresponds to electron 2.

Implemented in **sc::TwoBodyThreeCenterIntV3**.

### virtual int sc::TwoBodyThreeCenterInt::log2_shell_bound (int = -1, 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::TwoBodyThreeCenterIntV3**.

### int sc::TwoBodyThreeCenterInt::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.