MADNESS 0.10.1
madness::lr_pot_functor< NDIM > Class Template Reference

Functor for the 1/r potential to induce the correct asymptotic behaviour of the exchange correlation potential. More...

#include <AC.h>

Inheritance diagram for madness::lr_pot_functor< NDIM >:
Collaboration diagram for madness::lr_pot_functor< NDIM >:

Public Member Functions

 lr_pot_functor ()
 lr_pot_functor (const ACParameters< NDIM > &ac_param)
double operator() (const Vector< double, NDIM > &r) const
Public Member Functions inherited from madness::FunctionFunctorInterface< double, NDIM >
 FunctionFunctorInterface ()
virtual ~FunctionFunctorInterface ()
virtual coeffT coeff (const keyT &) const
virtual void operator() (const Vector< double *, 1 > &, double *, int) const
virtual bool provides_coeff () const
 does this functor directly provide sum coefficients? or only function values?
virtual bool screened (const Vector< double, NDIM > &, const Vector< double, NDIM > &) const
 Can we screen this function based on the bounding box information?
void set_length_scale (double lo)
 adapt the special level to resolve the smallest length scale
virtual Level special_level () const
 Override this to change the minimum level of refinement at special points (default is 6).
virtual std::vector< Vector< double, NDIM > > special_points () const
 Override this to return list of special points to be refined more deeply.
virtual bool supports_vectorized () const
 Does the interface support a vectorized operator()?
virtual coeffT values (const keyT &, const Tensor< double > &) const

Private Member Functions

double get_distance (Vector< double, NDIM > elec, Vector< double, NDIM > nuc) const
double int_factor (const Vector< double, NDIM > &r, std::vector< atom_information< NDIM > > between) const
double potential (const Vector< double, NDIM > &r) const

Private Attributes

const ACParameters< NDIM > & ac_param_
 Parameter for the asymtotic correction.

Additional Inherited Members

Public Types inherited from madness::FunctionFunctorInterface< double, NDIM >
typedef GenTensor< double > coeffT
typedef Key< NDIM > keyT
typedef double value_type
Public Attributes inherited from madness::FunctionFunctorInterface< double, NDIM >
Level special_level_

Detailed Description

template<unsigned long int NDIM>
class madness::lr_pot_functor< NDIM >

Functor for the 1/r potential to induce the correct asymptotic behaviour of the exchange correlation potential.

Constructor & Destructor Documentation

◆ lr_pot_functor() [1/2]

template<unsigned long int NDIM>
madness::lr_pot_functor< NDIM >::lr_pot_functor ( )
inline

◆ lr_pot_functor() [2/2]

template<unsigned long int NDIM>
madness::lr_pot_functor< NDIM >::lr_pot_functor ( const ACParameters< NDIM > & ac_param)
inline

References ac_param_.

Member Function Documentation

◆ get_distance()

template<unsigned long int NDIM>
double madness::lr_pot_functor< NDIM >::get_distance ( Vector< double, NDIM > elec,
Vector< double, NDIM > nuc ) const
inlineprivate

Computes the distance between electron and nucleus

Parameters
[in]elecposition of electron
[in]nucposition of nucleus
[out]distancedistance between electron and nucleus

References madness::distance(), and NDIM.

Referenced by operator()(), and potential().

◆ int_factor()

template<unsigned long int NDIM>
double madness::lr_pot_functor< NDIM >::int_factor ( const Vector< double, NDIM > & r,
std::vector< atom_information< NDIM > > between ) const
inlineprivate

Computes correction factor for the 1/r potential if electron position is between R1 and R2

Parameters
[in]rposition of electron
[in]betweenvector of the atom_information of all atoms for that electron position is between R1 and R2
[out]int_factorcorrection factor

References ac_param_, madness::int_factor_functor< NDIM >::int_factor(), and int_factor().

Referenced by int_factor(), and operator()().

◆ operator()()

template<unsigned long int NDIM>
double madness::lr_pot_functor< NDIM >::operator() ( const Vector< double, NDIM > & r) const
inline

Computes 1/r potential weighted by a correction factor

Parameters
[in]rposition of the electron (density)
[out]

1/r potential weighted by a correction factor

References ac_param_, d, get_distance(), int_factor(), and potential().

◆ potential()

template<unsigned long int NDIM>
double madness::lr_pot_functor< NDIM >::potential ( const Vector< double, NDIM > & r) const
inlineprivate

Multipole approximation of the 1/r potential for electron coordinate > R1 for all nuclei

Parameters
[in]rcoordinate of the electron
[out]potential at given coordinate r

References ac_param_, and get_distance().

Referenced by operator()().

Member Data Documentation

◆ ac_param_

template<unsigned long int NDIM>
const ACParameters<NDIM>& madness::lr_pot_functor< NDIM >::ac_param_
private

Parameter for the asymtotic correction.

Referenced by lr_pot_functor(), int_factor(), operator()(), and potential().


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