MADNESS  0.10.1
Public Types | Public Member Functions | Public Attributes | List of all members
madness::FunctionFunctorInterface< T, NDIM > Class Template Referenceabstract

Abstract base class interface required for functors used as input to Functions. More...

#include <function_interface.h>

Inheritance diagram for madness::FunctionFunctorInterface< T, NDIM >:
Inheritance graph
[legend]

Public Types

typedef GenTensor< TcoeffT
 
typedef Key< NDIMkeyT
 
typedef T value_type
 

Public Member Functions

 FunctionFunctorInterface ()
 
virtual ~FunctionFunctorInterface ()
 
virtual coeffT coeff (const keyT &) const
 
virtual void operator() (const Vector< double *, 1 > &xvals, T *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 2 > &xvals, T *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 3 > &xvals, T *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 4 > &xvals, T *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 5 > &xvals, T *fvals, int npts) const
 
virtual void operator() (const Vector< double *, 6 > &xvals, T *fvals, int npts) const
 
virtual T operator() (const Vector< double, NDIM > &x) const =0
 You should implement this to return f(x) More...
 
virtual bool provides_coeff () const
 does this functor directly provide sum coefficients? or only function values? More...
 
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? More...
 
void set_length_scale (double lo)
 adapt the special level to resolve the smallest length scale More...
 
virtual Level special_level ()
 Override this change level refinement for special points (default is 6) More...
 
virtual std::vector< Vector< double, NDIM > > special_points () const
 Override this to return list of special points to be refined more deeply. More...
 
virtual bool supports_vectorized () const
 Does the interface support a vectorized operator()? More...
 
virtual coeffT values (const keyT &key, const Tensor< double > &tensor) const
 

Public Attributes

Level special_level_
 

Detailed Description

template<typename T, std::size_t NDIM>
class madness::FunctionFunctorInterface< T, NDIM >

Abstract base class interface required for functors used as input to Functions.

Member Typedef Documentation

◆ coeffT

template<typename T , std::size_t NDIM>
typedef GenTensor<T> madness::FunctionFunctorInterface< T, NDIM >::coeffT

◆ keyT

template<typename T , std::size_t NDIM>
typedef Key<NDIM> madness::FunctionFunctorInterface< T, NDIM >::keyT

◆ value_type

template<typename T , std::size_t NDIM>
typedef T madness::FunctionFunctorInterface< T, NDIM >::value_type

Constructor & Destructor Documentation

◆ FunctionFunctorInterface()

template<typename T , std::size_t NDIM>
madness::FunctionFunctorInterface< T, NDIM >::FunctionFunctorInterface ( )
inline

◆ ~FunctionFunctorInterface()

template<typename T , std::size_t NDIM>
virtual madness::FunctionFunctorInterface< T, NDIM >::~FunctionFunctorInterface ( )
inlinevirtual

Member Function Documentation

◆ coeff()

template<typename T , std::size_t NDIM>
virtual coeffT madness::FunctionFunctorInterface< T, NDIM >::coeff ( const keyT ) const
inlinevirtual

◆ operator()() [1/7]

template<typename T , std::size_t NDIM>
virtual void madness::FunctionFunctorInterface< T, NDIM >::operator() ( const Vector< double *, 1 > &  xvals,
T fvals,
int  npts 
) const
inlinevirtual

References MADNESS_EXCEPTION.

◆ operator()() [2/7]

template<typename T , std::size_t NDIM>
virtual void madness::FunctionFunctorInterface< T, NDIM >::operator() ( const Vector< double *, 2 > &  xvals,
T fvals,
int  npts 
) const
inlinevirtual

References MADNESS_EXCEPTION.

◆ operator()() [3/7]

template<typename T , std::size_t NDIM>
virtual void madness::FunctionFunctorInterface< T, NDIM >::operator() ( const Vector< double *, 3 > &  xvals,
T fvals,
int  npts 
) const
inlinevirtual

References MADNESS_EXCEPTION.

◆ operator()() [4/7]

template<typename T , std::size_t NDIM>
virtual void madness::FunctionFunctorInterface< T, NDIM >::operator() ( const Vector< double *, 4 > &  xvals,
T fvals,
int  npts 
) const
inlinevirtual

References MADNESS_EXCEPTION.

◆ operator()() [5/7]

template<typename T , std::size_t NDIM>
virtual void madness::FunctionFunctorInterface< T, NDIM >::operator() ( const Vector< double *, 5 > &  xvals,
T fvals,
int  npts 
) const
inlinevirtual

References MADNESS_EXCEPTION.

◆ operator()() [6/7]

template<typename T , std::size_t NDIM>
virtual void madness::FunctionFunctorInterface< T, NDIM >::operator() ( const Vector< double *, 6 > &  xvals,
T fvals,
int  npts 
) const
inlinevirtual

References MADNESS_EXCEPTION.

◆ operator()() [7/7]

template<typename T , std::size_t NDIM>
virtual T madness::FunctionFunctorInterface< T, NDIM >::operator() ( const Vector< double, NDIM > &  x) const
pure virtual

◆ provides_coeff()

template<typename T , std::size_t NDIM>
virtual bool madness::FunctionFunctorInterface< T, NDIM >::provides_coeff ( ) const
inlinevirtual

◆ screened()

template<typename T , std::size_t NDIM>
virtual bool madness::FunctionFunctorInterface< T, NDIM >::screened ( const Vector< double, NDIM > &  c1,
const Vector< double, NDIM > &  c2 
) const
inlinevirtual

Can we screen this function based on the bounding box information?

◆ set_length_scale()

template<typename T , std::size_t NDIM>
void madness::FunctionFunctorInterface< T, NDIM >::set_length_scale ( double  lo)
inline

◆ special_level()

template<typename T , std::size_t NDIM>
virtual Level madness::FunctionFunctorInterface< T, NDIM >::special_level ( )
inlinevirtual

◆ special_points()

template<typename T , std::size_t NDIM>
virtual std::vector< Vector<double,NDIM> > madness::FunctionFunctorInterface< T, NDIM >::special_points ( ) const
inlinevirtual

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

Reimplemented in ExactSpinor, ncf, stepfunction, Gaussian< T, NDIM >, madness::MolecularCorePotentialFunctor, madness::MolecularPotentialFunctor, madness::BasisFunctions::SolidHarmonicGaussian, madness::atomic_attraction, madchem::MolecularSecondDerivativeFunctor, madchem::MolecularDerivativeFunctor, madchem::AtomicAttractionFunctor, madchem::AtomicBasisFunctor, madchem::MolecularGuessDensityFunctor, madness::ProjRLMFunctor, madness::VLocalFunctor, slymer::Gaussian_Functor, madness::harmonic_potential_boxed, madness::NuclearCorrelationFactor::U3X_functor, madness::NuclearCorrelationFactor::U2X_functor, madness::NuclearCorrelationFactor::U1X_functor, madness::NuclearCorrelationFactor::RX_functor, madness::NuclearCorrelationFactor::square_times_V_derivative_functor, madness::NuclearCorrelationFactor::square_times_V_functor, madness::NuclearCorrelationFactor::U3_atomic_functor, madness::NuclearCorrelationFactor::U2_atomic_functor, madness::NuclearCorrelationFactor::U3_functor, madness::NuclearCorrelationFactor::U2_functor, madness::NuclearCorrelationFactor::U1_dot_U1_functor, madness::NuclearCorrelationFactor::U1_atomic_functor, madness::NuclearCorrelationFactor::U1_functor, madness::NuclearCorrelationFactor::R_functor, MolecularVolumeExponentialSwitchLogGrad, MolecularVolumeMaskGrad, MolecularSurface, MolecularVolumeExponentialSwitch, MolecularVolumeComplementMask, MolecularVolumeMask, F, Gaussian< T, NDIM >, madness::WSTAtomicBasisFunctor, MolecularNuclearChargeDensityFunctor, GaussianFunctor, AtomicBasisFunctor< Q >, MolecularNuclearChargeDensityFunctor, NuclearDensityFunctor, AtomicOrbitalFunctor, AtomicBasisFunctor< Q >, MolecularPotentialFunctor, NuclearDensityFunctor, AtomicBasisFunctor< Q >, Guess, and FermiNucDistFunctor.

◆ supports_vectorized()

template<typename T , std::size_t NDIM>
virtual bool madness::FunctionFunctorInterface< T, NDIM >::supports_vectorized ( ) const
inlinevirtual

Does the interface support a vectorized operator()?

Reimplemented in madness::ProjRLMFunctor.

◆ values()

template<typename T , std::size_t NDIM>
virtual coeffT madness::FunctionFunctorInterface< T, NDIM >::values ( const keyT key,
const Tensor< double > &  tensor 
) const
inlinevirtual

Member Data Documentation

◆ special_level_

template<typename T , std::size_t NDIM>
Level madness::FunctionFunctorInterface< T, NDIM >::special_level_

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