# sc::DenIntegrator Class Reference

An abstract base class for integrating the electron density. More...

`#include <integrator.h>`

Inheritance diagram for sc::DenIntegrator:

List of all members.

## Public Member Functions

| DenIntegrator ()
| Construct a new DenIntegrator.
| DenIntegrator (const Ref< KeyVal > &)
| Construct a new DenIntegrator given the KeyVal input.
| DenIntegrator (StateIn &)
| Construct a new DenIntegrator given the StateIn data.
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.
Ref< Wavefunction > | wavefunction () const
| Returns the wavefunction used for the integration.
double | value () const
| Returns the result of the integration.
void | set_accuracy (double a)
| Sets the accuracy to use in the integration.
double | get_accuracy (void)
void | set_compute_potential_integrals (int)
| Call with non zero if the potential integrals are to be computed.
const double * | alpha_vmat () const
| Returns the alpha potential integrals.
const double * | beta_vmat () const
| Returns the beta potential integrals.
virtual void | init (const Ref< Wavefunction > &)
| Called before integrate.
virtual void | done ()
| Must be called between calls to init.
virtual void | integrate (const Ref< DenFunctional > &, const RefSymmSCMatrix &densa=0, const RefSymmSCMatrix &densb=0, double *nuclear_grad=0)=0
| Performs the integration of the given functional using the given alpha and beta density matrices.

## Protected Member Functions

void | init_integration (const Ref< DenFunctional > &func, const RefSymmSCMatrix &densa, const RefSymmSCMatrix &densb, double *nuclear_gradient)
void | done_integration ()
void | init_object ()

## Protected Attributes

Ref< Wavefunction > | wfn_
Ref< BatchElectronDensity > | den_
Ref< ThreadGrp > | threadgrp_
Ref< MessageGrp > | messagegrp_
double | value_
double | accuracy_
double * | alpha_vmat_
double * | beta_vmat_
int | spin_polarized_
int | need_density_
double | density_
int | nbasis_
int | nshell_
int | n_integration_center_
int | natom_
int | compute_potential_integrals_
int | linear_scaling_
int | use_dmat_bound_

## Detailed Description

An abstract base class for integrating the electron density.

## Member Function Documentation

void sc::DenIntegrator::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::SavableState.

Reimplemented in sc::RadialAngularIntegrator.

void sc::DenIntegrator::set_compute_potential_integrals | ( | int |  | ) |

Call with non zero if the potential integrals are to be computed.

They can be returned with the vmat() member.

const double* sc::DenIntegrator::alpha_vmat | ( |  | ) | const`[inline]`

Returns the alpha potential integrals.

Stored as the lower triangular, row-major format.

const double* sc::DenIntegrator::beta_vmat | ( |  | ) | const`[inline]`

Returns the beta potential integrals.

Stored as the lower triangular, row-major format.

virtual void sc::DenIntegrator::init | ( | const Ref< Wavefunction > & |  | ) | `[virtual]`

Called before integrate.

Does not need to be called again unless the geometry changes or done is called.

virtual void sc::DenIntegrator::integrate | ( | const Ref< DenFunctional > & | ,
|  | const RefSymmSCMatrix & | densa = `0`,
|  | const RefSymmSCMatrix & | densb = `0`,
|  | double * | nuclear_grad = `0` |
| ) |  |  | `[pure 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.

Implemented in sc::RadialAngularIntegrator.

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

- integrator.h