MADNESS 0.10.1
Public Member Functions | Private Attributes | List of all members
madness::FermiNuclearDensityFunctor Class Reference

Functor representing the Fermi nuclear density distribution for a given atom. More...

#include <potentialmanager.h>

Inheritance diagram for madness::FermiNuclearDensityFunctor:
Inheritance graph
[legend]
Collaboration diagram for madness::FermiNuclearDensityFunctor:
Collaboration graph
[legend]

Public Member Functions

 FermiNuclearDensityFunctor (const Atom &atom, int special_level=18)
 
double operator() (const madness::coord_3d &R) const final
 
madness::Level special_level () const final
 Override this to change the minimum level of refinement at special points (default is 6)
 
std::vector< coord_3dspecial_points () const final
 Override this to return list of special points to be refined more deeply.
 
- Public Member Functions inherited from madness::FunctionFunctorInterface< double, 3 >
 FunctionFunctorInterface ()
 
virtual ~FunctionFunctorInterface ()
 
virtual coeffT coeff (const keyT &) const
 
virtual void operator() (const Vector< double *, 1 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 2 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 3 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 4 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 5 > &xvals, double *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 6 > &xvals, double *fvals, int npts) const
 
virtual double operator() (const Vector< double, NDIM > &x) const=0
 You should implement this to return f(x)
 
virtual bool provides_coeff () const
 does this functor directly provide sum coefficients? or only function values?
 
virtual bool screened (const Vector< double, NDIM > &c1, const Vector< double, NDIM > &c2) 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 bool supports_vectorized () const
 Does the interface support a vectorized operator()?
 
virtual coeffT values (const keyT &key, const Tensor< double > &tensor) const
 

Private Attributes

const Atomatom
 
int special_level_ = 18
 

Additional Inherited Members

- Public Types inherited from madness::FunctionFunctorInterface< double, 3 >
typedef GenTensor< double > coeffT
 
typedef Key< NDIMkeyT
 
typedef double value_type
 
- Public Attributes inherited from madness::FunctionFunctorInterface< double, 3 >
Level special_level_
 

Detailed Description

Functor representing the Fermi nuclear density distribution for a given atom.

This class implements a functor that evaluates the two-parameter charge distribution for the nuclear density at a given 3D coordinate. The density is significant only in a small region around the atomic center.

Note
DOI 10.1006/adnd.1997.0751

Constructor & Destructor Documentation

◆ FermiNuclearDensityFunctor()

madness::FermiNuclearDensityFunctor::FermiNuclearDensityFunctor ( const Atom atom,
int  special_level = 18 
)
inline

Member Function Documentation

◆ operator()()

double madness::FermiNuclearDensityFunctor::operator() ( const madness::coord_3d R) const
final

◆ special_level()

madness::Level madness::FermiNuclearDensityFunctor::special_level ( ) const
inlinefinalvirtual

Override this to change the minimum level of refinement at special points (default is 6)

Reimplemented from madness::FunctionFunctorInterface< double, 3 >.

◆ special_points()

std::vector< coord_3d > madness::FermiNuclearDensityFunctor::special_points ( ) const
inlinefinalvirtual

Override this to return list of special points to be refined more deeply.

Reimplemented from madness::FunctionFunctorInterface< double, 3 >.

References madness::Atom::get_coords().

Member Data Documentation

◆ atom

const Atom& madness::FermiNuclearDensityFunctor::atom
private

Referenced by operator()().

◆ special_level_

int madness::FermiNuclearDensityFunctor::special_level_ = 18
private

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