---
name: "sc_TwoBodyDerivInt"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_TwoBodyDerivInt"
---

# sc\_TwoBodyDerivInt(3)

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

## NAME

sc::TwoBodyDerivInt - This is an abstract base type for classes that compute integrals involving two electrons.

## SYNOPSIS

`#include <tbint.h>`

Inherits **sc::RefCount**.

Inherited by **sc::TwoBodyDerivIntCCA**, **sc::TwoBodyDerivIntCints**, and **sc::TwoBodyDerivIntV3**.

### 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()**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
