MPQC
3.0.0-alpha
|
An implementation of an integrator using any combination of a RadialIntegrator and an AngularIntegrator. More...
#include <chemistry/qc/dft/integrator.h>
Public Member Functions | |
RadialAngularIntegrator (const Ref< KeyVal > &) | |
Construct a RadialAngularIntegrator from KeyVal input. More... | |
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. More... | |
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. More... | |
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 () |
Public Member Functions inherited from sc::DenIntegrator | |
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. | |
const Ref< GaussianBasisSet > & | basis () const |
Returns the basis set used for the density. | |
const Ref< Integral > & | integral () const |
Returns the integral object that defines the basis function ordering, etc. | |
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. More... | |
const double * | alpha_vmat () const |
Returns the alpha potential integrals. More... | |
const double * | beta_vmat () const |
Returns the beta potential integrals. More... | |
virtual void | init (const Ref< Wavefunction > &) |
Calls the overloaded init routine with a GaussianBasisSet and a Integral object extracted from the given Wavefunction object. | |
virtual void | init (const Ref< GaussianBasisSet > &, const Ref< Integral > &) |
Called before integrate. More... | |
virtual void | done () |
Must be called between calls to init. | |
bool | spin_polarized () const |
Return true if the densities are spin polarized. | |
Public Member Functions inherited from sc::SavableState | |
SavableState & | operator= (const SavableState &) |
void | save_state (StateOut &) |
Save the state of the object as specified by the StateOut object. More... | |
void | save_object_state (StateOut &) |
This can be used for saving state when the exact type of the object is known for both the save and the restore. More... | |
virtual void | save_vbase_state (StateOut &) |
Save the virtual bases for the object. More... | |
Public Member Functions inherited from sc::DescribedClass | |
DescribedClass (const DescribedClass &) | |
DescribedClass & | operator= (const DescribedClass &) |
ClassDesc * | class_desc () const MPQC__NOEXCEPT |
This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More... | |
const char * | class_name () const |
Return the name of the object's exact type. | |
int | class_version () const |
Return the version of the class. | |
Ref< DescribedClass > | ref () |
Return this object wrapped up in a Ref smart pointer. More... | |
Public Member Functions inherited from sc::RefCount | |
size_t | identifier () const |
Return the unique identifier for this object that can be compared for different objects of different types. More... | |
int | lock_ptr () const |
Lock this object. | |
int | unlock_ptr () const |
Unlock this object. | |
void | use_locks (bool inVal) |
start and stop using locks on this object | |
refcount_t | nreference () const |
Return the reference count. | |
refcount_t | reference () |
Increment the reference count and return the new count. | |
refcount_t | dereference () |
Decrement the reference count and return the new count. | |
int | managed () const |
void | unmanage () |
Turn off the reference counting mechanism for this object. More... | |
Protected Attributes | |
Ref< IntegrationWeight > | weight_ |
Ref< RadialIntegrator > | radial_user_ |
Ref< AngularIntegrator > | angular_user_ |
Ref< AngularIntegrator > *** | angular_grid_ |
Ref< RadialIntegrator > ** | radial_grid_ |
Protected Attributes inherited from sc::DenIntegrator | |
Ref< GaussianBasisSet > | basis_ |
Ref< Integral > | integral_ |
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_ |
Additional Inherited Members | |
Static Public Member Functions inherited from sc::SavableState | |
static void | save_state (SavableState *s, StateOut &) |
static SavableState * | restore_state (StateIn &si) |
Restores objects saved with save_state. More... | |
static SavableState * | key_restore_state (StateIn &si, const char *keyword) |
Like restore_state, but keyword is used to override values while restoring. | |
static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0) |
Protected Member Functions inherited from sc::DenIntegrator | |
void | init_integration (const Ref< DenFunctional > &func, const RefSymmSCMatrix &densa, const RefSymmSCMatrix &densb, double *nuclear_gradient) |
void | done_integration () |
void | init_object () |
Protected Member Functions inherited from sc::SavableState | |
SavableState (const SavableState &) | |
SavableState (StateIn &) | |
Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above. More... | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
An implementation of an integrator using any combination of a RadialIntegrator and an AngularIntegrator.
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.
|
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.
|
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.