# sc::TwoBodyInt Class Reference

This is an abstract base type for classes that compute integrals involving two electrons. More...

`#include <tbint.h>`

Inheritance diagram for sc::TwoBodyInt:

List of all members.

## 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 | nbasis3 () const
| Return the number of basis functions on center three.
int | nbasis4 () const
| Return the number of basis functions on center four.
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.
int | nshell3 () const
| Return the number of shells on center three.
int | nshell4 () const
| Return the number of shells on center four.
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.
Ref< GaussianBasisSet > | basis4 ()
| Return the basis set on center four.
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, 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, int=-1, int=-1)=0
| Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_shell.
virtual int | redundant () const
| If redundant is true, then keep redundant integrals in the buffer.
virtual 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

| TwoBodyInt (Integral *integral, const Ref< GaussianBasisSet > &bs1, const Ref< GaussianBasisSet > &bs2, const Ref< GaussianBasisSet > &bs3, const Ref< GaussianBasisSet > &bs4)

## Protected Attributes

Integral * | integral_
Ref< GaussianBasisSet > | bs1_
Ref< GaussianBasisSet > | bs2_
Ref< GaussianBasisSet > | bs3_
Ref< GaussianBasisSet > | bs4_
double * | buffer_
int | redundant_

## Detailed Description

This is an abstract base type for classes that compute integrals involving two electrons.

## Member Function Documentation

virtual const double* sc::TwoBodyInt::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.

Reimplemented in sc::TwoBodyIntCints.

virtual void sc::TwoBodyInt::compute_shell | ( | int | ,
|  | int | ,
|  | int | ,
|  | int |  |
| ) |  |  | `[pure virtual]`

Given four shell indices, integrals will be computed and placed in the buffer.

The first two indices correspond to electron 1 and the second two indices correspond to electron 2.

Implemented in sc::TwoBodyIntCints, sc::TwoBodyIntCCA, and sc::TwoBodyIntV3.

virtual int sc::TwoBodyInt::log2_shell_bound | ( | int | = `-1`,
|  | 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::TwoBodyIntCints, sc::TwoBodyIntCCA, and sc::TwoBodyIntV3.

virtual int sc::TwoBodyInt::redundant | ( |  | ) | const`[inline, virtual]`

If redundant is true, then keep redundant integrals in the buffer.

The default is true.

Reimplemented in sc::TwoBodyIntCCA.

The documentation for this class was generated from the following file:

- tbint.h