# sc::TwoBodyDerivInt Class Reference

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

`#include <tbint.h>`

Inheritance diagram for sc::TwoBodyDerivInt:

List of all members.

## 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.
const double * | buffer () const
| The computed shell integrals will be put in the buffer returned by this member.
virtual void | compute_shell (int, int, int, int, DerivCenters &)=0
| Given for shell indices, this will cause the integral buffer to be filled in.
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.
## Protected Member Functions
| TwoBodyDerivInt (Integral *integral, const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2, const Ref< GaussianBasisSet > &b3, const Ref< GaussianBasisSet > &b4)
## Protected Attributes
Integral * | integral_
Ref< GaussianBasisSet > | bs1_
Ref< GaussianBasisSet > | bs2_
Ref< GaussianBasisSet > | bs3_
Ref< GaussianBasisSet > | bs4_
double * | buffer_

## Detailed Description

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

## Member Function Documentation

virtual void sc::TwoBodyDerivInt::compute_shell | ( | int | ,
|  | int | ,
|  | int | ,
|  | int | ,
|  | DerivCenters & |  |
| ) |  |  | `[pure virtual]`

Given for shell indices, this will cause the integral buffer to be filled in.

Implemented in sc::TwoBodyDerivIntCints, sc::TwoBodyDerivIntCCA, and sc::TwoBodyDerivIntV3.

Referenced by sc::LocalTBGrad< T >::run().

virtual int sc::TwoBodyDerivInt::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.

An index of -1 for any argument indicates any shell.

Implemented in sc::TwoBodyDerivIntCints, sc::TwoBodyDerivIntCCA, and sc::TwoBodyDerivIntV3.

Referenced by sc::LocalTBGrad< T >::run().

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

- tbint.h