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

# sc\_DerivCenters(3)

DerivCenters keeps track the centers that derivatives are taken with respect to.

## NAME

sc::DerivCenters - **DerivCenters** keeps track the centers that derivatives are taken with respect to.

## SYNOPSIS

`#include <dercent.h>`

### Public Member Functions

**DerivCenters** ()\
 Construct a new, empty **DerivCenters** object.

**Routines to Modify DerivCenters**\

void **clear** ()\
 Clear the list of centers.  void **add\_center** (int **center**, const **Ref**\< **GaussianBasisSet** \> &bs, int shell)\
 Add a center using a basis set and the shell number.  void **add\_center** (int **center**, int **atom**)\
 Add a center using the atom number.  void **add\_omitted** (int **center**, const **Ref**\< **GaussianBasisSet** \> &bs, int shell)\
 Add the omitted center using a basis set and the shell number.  void **add\_omitted** (int **center**, int **atom**)\
 Add the omitted center using the atom number.

**Routines to Query DerivCenters**\

int **n** () const\
 The number of centers for which derivatives have been computed.  int **center** (int i) const\
 int **atom** (int i) const\
 int **has\_omitted\_center** () const\
 int **omitted\_center** () const\
 int **omitted\_atom** () const\

## Detailed Description

**DerivCenters** keeps track the centers that derivatives are taken with respect to.

## Member Function Documentation

### void sc::DerivCenters::add\_center (int center, const Ref\< GaussianBasisSet \> & bs, int shell)

Add a center using a basis set and the shell number.

**Parameters**

*center* The center number (between 0 and 3 inclusive). \
 *bs* The basis set for this center. \
 *shell* The shell number for this center.

### void sc::DerivCenters::add\_center (int center, int atom)

Add a center using the atom number.

**Parameters**

*center* The center number (between 0 and 3 inclusive). \
 *atom* The center within a **GaussianBasisSet**.

### void sc::DerivCenters::add\_omitted (int center, const Ref\< GaussianBasisSet \> & bs, int shell)

Add the omitted center using a basis set and the shell number.

**Parameters**

*center* The center number (between 0 and 3 inclusive). \
 *bs* The basis set for this center. \
 *shell* The shell number for this center.

### void sc::DerivCenters::add\_omitted (int center, int atom)

Add the omitted center using the atom number.

**Parameters**

*center* The center number (between 0 and 3 inclusive). \
 *atom* The center within a **GaussianBasisSet**.

### int sc::DerivCenters::atom (int i) const` [inline]`

**Parameters**

*i* The computed center index (between 0 and **n()** - 1, inclusive).

**Returns**

The atom number.

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

### int sc::DerivCenters::center (int i) const` [inline]`

**Parameters**

*i* The computed center index (between 0 and **n()** - 1, inclusive).

**Returns**

The center number (between 0 and 3, inclusive).

### int sc::DerivCenters::has\_omitted\_center () const` [inline]`

**Returns**

1 if there is an omitted center, otherwise 0.

### int sc::DerivCenters::omitted\_atom () const` [inline]`

**Returns**

The atom that is omitted from the integral buffer.

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

### int sc::DerivCenters::omitted\_center () const` [inline]`

**Returns**

The center for which integrals where not computed.

## Author

Generated automatically by Doxygen for MPQC from the source code.
