sc::DenIntegrator Class Reference

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

#include <integrator.h>

Inheritance diagram for sc::DenIntegrator:

sc::SavableState sc::DescribedClass sc::RefCount sc::Identity sc::RadialAngularIntegrator 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< Wavefunctionwavefunction () 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< Wavefunctionwfn_
Ref< BatchElectronDensityden_
Ref< ThreadGrpthreadgrp_
Ref< MessageGrpmessagegrp_
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:
Generated at Mon Dec 3 23:23:51 2007 for MPQC 2.3.1 using the documentation package Doxygen 1.5.2.