#include <integrator.h>
Inheritance diagram for sc::DenIntegrator:
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_ |
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.