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

#include <gth_pseudopotential.h>

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

Public Member Functions

 ProjRLMFunctor (double alpha, int l, int m, int i, const coord_3d &center)
 
double operator() (const coord_3d &r) const
 
virtual void operator() (const Vector< double *, 3 > &xvals, double *MADNESS_RESTRICT fvals, int npts) const
 
virtual bool screened (const coord_3d &c1, const coord_3d &c2) const
 
Level special_level ()
 Override this change level refinement for special points (default is 6)
 
std::vector< coord_3dspecial_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()?
 
- 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 coeffT values (const keyT &key, const Tensor< double > &tensor) const
 

Static Public Attributes

static const double gamma_data [17]
 

Private Attributes

double alpha
 
coord_3d center
 
int itmp
 
int itmp2
 
int l
 
int m
 
std::vector< coord_3dspecialpts
 
double sqrtPI
 
double t1
 

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_
 

Constructor & Destructor Documentation

◆ ProjRLMFunctor()

madness::ProjRLMFunctor::ProjRLMFunctor ( double  alpha,
int  l,
int  m,
int  i,
const coord_3d center 
)
inline

Member Function Documentation

◆ operator()() [1/2]

double madness::ProjRLMFunctor::operator() ( const coord_3d r) const
inline

References alpha, center, itmp2, l, m, MADNESS_EXCEPTION, PI, madness::constants::pi, and t1.

Referenced by screened().

◆ operator()() [2/2]

virtual void madness::ProjRLMFunctor::operator() ( const Vector< double *, 3 > &  xvals,
double *MADNESS_RESTRICT  fvals,
int  npts 
) const
inlinevirtual

◆ screened()

virtual bool madness::ProjRLMFunctor::screened ( const coord_3d c1,
const coord_3d c2 
) const
inlinevirtual

References center, e(), k, MADNESS_EXCEPTION, and operator()().

◆ special_level()

Level madness::ProjRLMFunctor::special_level ( )
inlinevirtual

Override this change level refinement for special points (default is 6)

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

◆ special_points()

std::vector< coord_3d > madness::ProjRLMFunctor::special_points ( ) const
inlinevirtual

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

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

References specialpts.

◆ supports_vectorized()

virtual bool madness::ProjRLMFunctor::supports_vectorized ( ) const
inlinevirtual

Does the interface support a vectorized operator()?

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

Member Data Documentation

◆ alpha

double madness::ProjRLMFunctor::alpha
private

◆ center

coord_3d madness::ProjRLMFunctor::center
private

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

◆ gamma_data

const double madness::ProjRLMFunctor::gamma_data
static
Initial value:
= {1.0, 0.0, 1.0/2.0, 0.0, 3.0/4.0, 0.0, 15.0/8.0, 0.0, 105.0/16.0, 0.0,
945.0/32.0, 0.0, 10395.0/64.0, 0.0, 135135.0/128.0, 0.0, 2027025.0/256.0}

Referenced by ProjRLMFunctor().

◆ itmp

int madness::ProjRLMFunctor::itmp
private

Referenced by ProjRLMFunctor().

◆ itmp2

int madness::ProjRLMFunctor::itmp2
private

◆ l

int madness::ProjRLMFunctor::l
private

◆ m

int madness::ProjRLMFunctor::m
private

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

◆ specialpts

std::vector<coord_3d> madness::ProjRLMFunctor::specialpts
private

Referenced by ProjRLMFunctor(), and special_points().

◆ sqrtPI

double madness::ProjRLMFunctor::sqrtPI
private

Referenced by ProjRLMFunctor().

◆ t1

double madness::ProjRLMFunctor::t1
private

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