MADNESS 0.10.1
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 >:

Public Types

typedef GenTensor< T > coeffT
typedef Key< NDIM > keyT
typedef T value_type

Public Member Functions

 FunctionFunctorInterface ()
virtual ~FunctionFunctorInterface ()
virtual coeffT coeff (const keyT &) const
virtual void operator() (const Vector< double *, 1 > &, T *, int) const
virtual void operator() (const Vector< double *, 2 > &, T *, int) const
virtual void operator() (const Vector< double *, 3 > &, T *, int) const
virtual void operator() (const Vector< double *, 4 > &, T *, int) const
virtual void operator() (const Vector< double *, 5 > &, T *, int) const
virtual void operator() (const Vector< double *, 6 > &, T *, int) const
virtual T 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 > &, 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

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()

◆ operator()() [1/7]

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

Reimplemented in PyFunctor< T, NDIM >.

◆ operator()() [2/7]

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

Reimplemented in PyFunctor< T, NDIM >.

◆ operator()() [3/7]

◆ operator()() [4/7]

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

Reimplemented in PyFunctor< T, NDIM >.

◆ operator()() [5/7]

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

Reimplemented in PyFunctor< T, NDIM >.

◆ operator()() [6/7]

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

Reimplemented in PyFunctor< T, NDIM >.

◆ operator()() [7/7]

◆ 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 > & ,
const Vector< double, NDIM > &  ) 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

adapt the special level to resolve the smallest length scale

◆ special_level()

◆ 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 AtomicOrbitalFunctor, ExactSpinor, Gauss, Gaussian< T, NDIM >, Gaussian< T, NDIM >, Gaussian< T, NDIM >, GaussianFunctor, Guess, madchem::AtomicAttractionFunctor, madchem::AtomicBasisFunctor, madchem::MolecularDerivativeFunctor, madchem::MolecularGuessDensityFunctor, madchem::MolecularSecondDerivativeFunctor, madness::atomic_attraction, madness::BasisFunctions::SolidHarmonicGaussian, madness::FermiNuclearDensityFunctor, madness::GaussianNuclearDensityPotentialFunctor, madness::harmonic_potential_boxed, madness::MolecularCorePotentialFunctor, madness::MolecularPotentialFunctor, madness::NuclearCorrelationFactor::R_functor, madness::NuclearCorrelationFactor::RX_functor, madness::NuclearCorrelationFactor::square_times_V_derivative_functor, madness::NuclearCorrelationFactor::square_times_V_functor, madness::NuclearCorrelationFactor::U1_atomic_functor, madness::NuclearCorrelationFactor::U1_dot_U1_functor, madness::NuclearCorrelationFactor::U1_functor, madness::NuclearCorrelationFactor::U1X_functor, madness::NuclearCorrelationFactor::U2_atomic_functor, madness::NuclearCorrelationFactor::U2_functor, madness::NuclearCorrelationFactor::U2X_functor, madness::NuclearCorrelationFactor::U3_atomic_functor, madness::NuclearCorrelationFactor::U3_functor, madness::NuclearCorrelationFactor::U3X_functor, madness::NuclearDensityFunctor, madness::ProjRLMFunctor, madness::SAPFunctor, madness::ScalingFunctionFunctor< 1 >, madness::ScalingFunctionFunctor< NDIM, std::enable_if_t< std::greater{}(NDIM, 1)> >, madness::VLocalFunctor, madness::WignerSeitzPotentialFunctor, madness::WSTAtomicBasisFunctor, MolecularNuclearChargeDensityFunctor, MolecularNuclearChargeDensityFunctor, MolecularSurface, MolecularVolumeComplementMask, MolecularVolumeExponentialSwitch, MolecularVolumeExponentialSwitchLogGrad, MolecularVolumeMask, MolecularVolumeMaskGrad, ncf, Slater, Slater, slymer::Gaussian_Functor, and stepfunction.

◆ supports_vectorized()

◆ values()

template<typename T, std::size_t NDIM>
virtual coeffT madness::FunctionFunctorInterface< T, NDIM >::values ( const keyT & ,
const Tensor< double > &  ) 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: