# sc::RadialAngularIntegrator Class Reference

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

`#include <integrator.h>`

Inheritance diagram for sc::RadialAngularIntegrator:

List of all members.

## 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_

## 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::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.

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

- integrator.h