MADNESS 0.10.1
|
Abstract base class interface required for functors used as input to Functions. More...
#include <function_interface.h>
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 > &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) | |
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 Level | special_level () |
Override this change level refinement for 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 &key, const Tensor< double > &tensor) const |
Public Attributes | |
Level | special_level_ |
Abstract base class interface required for functors used as input to Functions.
typedef GenTensor<T> madness::FunctionFunctorInterface< T, NDIM >::coeffT |
typedef Key<NDIM> madness::FunctionFunctorInterface< T, NDIM >::keyT |
typedef T madness::FunctionFunctorInterface< T, NDIM >::value_type |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
Reimplemented in madness::TwoElectronInterface< T, NDIM >, madness::TwoElectronInterface< double, 6 >, and madness::TwoElectronInterface< double, NDIM >.
References MADNESS_EXCEPTION.
|
inlinevirtual |
References MADNESS_EXCEPTION.
|
inlinevirtual |
References MADNESS_EXCEPTION.
|
inlinevirtual |
References MADNESS_EXCEPTION.
|
inlinevirtual |
References MADNESS_EXCEPTION.
|
inlinevirtual |
References MADNESS_EXCEPTION.
|
inlinevirtual |
References MADNESS_EXCEPTION.
|
pure virtual |
You should implement this to return f(x)
Implemented in madness::FunctionInterface< T, NDIM, opT >, HeElectronicChargeDensityIGuess< T, NDIM >, HeNuclearChargeDensityIGuess< T, NDIM >, ParserHandler< T, NDIM >, madness::ComplexExp< NDIM >, madness::CompositeFunctorInterface< T, NDIM, MDIM >, madness::ElementaryInterface< T, NDIM >, madness::FunctorInterface< T, NDIM, opT >, Gaussian< T, NDIM >, Gaussian< T, NDIM >, Gaussian< T, NDIM >, Gaussian< T, NDIM >, DerivativeGaussian< T, NDIM >, BinaryOp< resultT, L, R, opT, NDIM >, Gaussian< T, NDIM >, Gaussian< T, NDIM >, GaussianGuess< NDIM >, GaussianGuess< NDIM >, xc_functor< NDIM >, madness::int_factor_functor< NDIM >, madness::lr_pot_functor< NDIM >, madness::TwoElectronInterface< T, NDIM >, madness::TwoElectronInterface< double, 6 >, madness::TwoElectronInterface< double, NDIM >, and madness::DomainMaskSDFFunctor< NDIM >.
|
inlinevirtual |
does this functor directly provide sum coefficients? or only function values?
Reimplemented in madness::CompositeFunctorInterface< T, NDIM, MDIM >, madness::FunctionInterface< T, NDIM, opT >, madness::TwoElectronInterface< T, NDIM >, madness::TwoElectronInterface< double, 6 >, and madness::TwoElectronInterface< double, NDIM >.
|
inlinevirtual |
Can we screen this function based on the bounding box information?
|
inline |
adapt the special level to resolve the smallest length scale
References madness::FunctionDefaults< NDIM >::get_cell_width(), lo, madness::Tensor< T >::max(), and madness::FunctionFunctorInterface< T, NDIM >::special_level_.
|
inlinevirtual |
Override this change level refinement for special points (default is 6)
Reimplemented in FermiNucDistFunctor, AtomicBasisFunctor< Q >, NuclearDensityFunctor, NuclearDensityFunctor, MolecularNuclearChargeDensityFunctor, GaussianFunctor, MolecularNuclearChargeDensityFunctor, slymer::Gaussian_Functor, madness::VLocalFunctor, madness::ProjRLMFunctor, madness::BasisFunctions::SolidHarmonicGaussian, stepfunction, ncf, and ExactSpinor.
References madness::FunctionFunctorInterface< T, NDIM >::special_level_.
|
inlinevirtual |
Override this to return list of special points to be refined more deeply.
Reimplemented in FermiNucDistFunctor, Guess, AtomicBasisFunctor< Q >, NuclearDensityFunctor, MolecularPotentialFunctor, AtomicBasisFunctor< Q >, AtomicOrbitalFunctor, NuclearDensityFunctor, MolecularNuclearChargeDensityFunctor, AtomicBasisFunctor< Q >, GaussianFunctor, MolecularNuclearChargeDensityFunctor, madness::WSTAtomicBasisFunctor, Gaussian< T, NDIM >, F, MolecularVolumeMask, MolecularVolumeComplementMask, MolecularVolumeExponentialSwitch, MolecularSurface, MolecularVolumeMaskGrad, MolecularVolumeExponentialSwitchLogGrad, madness::NuclearCorrelationFactor::R_functor, madness::NuclearCorrelationFactor::U1_functor, madness::NuclearCorrelationFactor::U1_atomic_functor, madness::NuclearCorrelationFactor::U1_dot_U1_functor, madness::NuclearCorrelationFactor::U2_functor, madness::NuclearCorrelationFactor::U3_functor, madness::NuclearCorrelationFactor::U2_atomic_functor, madness::NuclearCorrelationFactor::U3_atomic_functor, madness::NuclearCorrelationFactor::square_times_V_functor, madness::NuclearCorrelationFactor::square_times_V_derivative_functor, madness::NuclearCorrelationFactor::RX_functor, madness::NuclearCorrelationFactor::U1X_functor, madness::NuclearCorrelationFactor::U2X_functor, madness::NuclearCorrelationFactor::U3X_functor, madness::harmonic_potential_boxed, slymer::Gaussian_Functor, madness::VLocalFunctor, madness::ProjRLMFunctor, madchem::MolecularGuessDensityFunctor, madchem::AtomicBasisFunctor, madchem::AtomicAttractionFunctor, madchem::MolecularDerivativeFunctor, madchem::MolecularSecondDerivativeFunctor, madness::atomic_attraction, madness::BasisFunctions::SolidHarmonicGaussian, madness::MolecularPotentialFunctor, madness::MolecularCorePotentialFunctor, Gaussian< T, NDIM >, stepfunction, ncf, and ExactSpinor.
|
inlinevirtual |
Does the interface support a vectorized operator()?
Reimplemented in madness::ProjRLMFunctor.
|
inlinevirtual |
Reimplemented in madness::ElementaryInterface< T, NDIM >.
References MADNESS_EXCEPTION.
Level madness::FunctionFunctorInterface< T, NDIM >::special_level_ |