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

# sc\_RadialAngularIntegrator(3)

An implementation of an integrator using any combination of a RadialIntegrator and an AngularIntegrator.

## NAME

sc::RadialAngularIntegrator - An implementation of an integrator using any combination of a **RadialIntegrator** and an **AngularIntegrator**.

## SYNOPSIS

`#include <integrator.h>`

Inherits **sc::DenIntegrator**.

### Public Member Functions

**RadialAngularIntegrator** (const **Ref**\< **KeyVal** \> &)\
 Construct a **RadialAngularIntegrator** from **KeyVal** input.  **RadialAngularIntegrator** (**StateIn** &)\
 void **save\_data\_state** (**StateOut** &)\
 Save the base classes (with save\_data\_state) and the members in the same order that the **StateIn** CTOR initializes them.  void **integrate** (const **Ref**\< **DenFunctional** \> &, const **RefSymmSCMatrix** &densa=0, const **RefSymmSCMatrix** &densb=0, double \*nuclear\_gradient=0)\
 Performs the integration of the given functional using the given alpha and beta density matrices.  void **print** (std::ostream &=**ExEnv::out0**()) const\
 Print the object.  **AngularIntegrator** \* **get\_angular\_grid** (double radius, double atomic\_radius, int charge, int deriv\_order)\
 **RadialIntegrator** \* **get\_radial\_grid** (int charge, int deriv\_order)\
 void **init\_default\_grids** (void)\
 int **angular\_grid\_offset** (int i)\
 void **set\_grids** (void)\
 int **get\_atomic\_row** (int i)\
 void **init\_parameters** (void)\
 void **init\_parameters** (const **Ref**\< **KeyVal** \> &keyval)\
 void **init\_pruning\_coefficients** (const **Ref**\< **KeyVal** \> &keyval)\
 void **init\_pruning\_coefficients** (void)\
 void **init\_alpha\_coefficients** (void)\
 int **select\_dynamic\_grid** (void)\
 **Ref**\< **IntegrationWeight** \> **weight** ()\

### Protected Attributes

**Ref**\< **IntegrationWeight** \> **weight\_**\
 **Ref**\< **RadialIntegrator** \> **radial\_user\_**\
 **Ref**\< **AngularIntegrator** \> **angular\_user\_**\
 **Ref**\< **AngularIntegrator** \> \*\*\* **angular\_grid\_**\
 **Ref**\< **RadialIntegrator** \> \*\* **radial\_grid\_**\

### Additional Inherited Members

## Detailed Description

An implementation of an integrator using any combination of a **RadialIntegrator** and an **AngularIntegrator**.

## Constructor & Destructor Documentation

### sc::RadialAngularIntegrator::RadialAngularIntegrator (const Ref\< KeyVal \> &)

Construct a **RadialAngularIntegrator** from **KeyVal** input. The accepted keyword are listed below. The most important keyword is `grid`. The `dynamic` and `prune_grid` options may be of occassional interest.

- `grid`

  Specifies the fineness of the grid. Possible values are `xcoarse`, `coarse`, `medium`, `fine`, `xfine`, and `ultrafine`, in order of increasing accuracy and cost. The default is `fine`.

- `dynamic`

  This gives a boolean value that, if true, will cause the grids to start out coarse, and approach the requested `grid` value as more accuracy is required, when the calculation is close to convergence. The default is true.

- `prune_grid`

  This gives a boolean value that, if true, will cause more course angular grids to be used near nuclei. The default is true. When this is true, further control over pruning can be obtained with the `angular_points` and `alpha_coeffs` keywords.

- `radial`

  Specifies the **RadialIntegrator** object. If this is given, then specifying the `grid` and `dynamic` keywords will not affect the radial grid. The default is controlled by other options, but is always one of several **EulerMaclaurinRadialIntegrator** objects.

- `angular`

  Specifies the **AngularIntegrator** object. If this is given, then specifying the `grid`, `prune_grid`, and `dynamic` keywords will not affect the angular grid. The default is controlled by other options, but is always one of several **LebedevLaikovIntegrator** objects.

- `weight`

  Specifies the **IntegrationWeight** object. The default is **BeckeIntegrationWeight**.

## Member Function Documentation

### void sc::RadialAngularIntegrator::integrate (const Ref\< DenFunctional \> &, const RefSymmSCMatrix & densa = `0`, const RefSymmSCMatrix & densb = `0`, double \* nuclear\_grad = `0`)` [virtual]`

Performs the integration of the given functional using the given alpha and beta density matrices. The nuclear derivative contribution is placed in nuclear\_grad, if it is non-null.

Implements **sc::DenIntegrator**.

### void sc::RadialAngularIntegrator::print (std::ostream & = ExEnv::out0`()`) const` [virtual]`

Print the object.

Reimplemented from **sc::DescribedClass**.

### void sc::RadialAngularIntegrator::save\_data\_state (StateOut &)` [virtual]`

Save the base classes (with save\_data\_state) and the members in the same order that the **StateIn** CTOR initializes them. This must be implemented by the derived class if the class has data.

Reimplemented from **sc::DenIntegrator**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
