MADNESS
version 0.9
|
CompositeFunctorInterface implements a wrapper of holding several functions and functors. More...
#include <funcimpl.h>
Public Member Functions | |
CompositeFunctorInterface (World &world, pimplT ket, pimplT g12, pimplL v1, pimplL v2, pimplL p1, pimplL p2) | |
constructor takes its Factory More... | |
T | operator() (const coordT &x) const |
return value at point x; fairly inefficient More... | |
bool | provides_coeff () const |
does this functor directly provide sum coefficients? or only function values? More... | |
Public Member Functions inherited from madness::FunctionFunctorInterface< T, NDIM > | |
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... | |
virtual bool | supports_vectorized () const |
Does the interface support a vectorized operator()? More... | |
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 std::vector< Vector < double, NDIM > > | special_points () const |
Override this to return list of special points to be refined more deeply. More... | |
virtual Level | special_level () |
Override this change level refinement for special points (default is 6) More... | |
virtual | ~FunctionFunctorInterface () |
virtual coeffT | coeff (const keyT &) const |
virtual coeffT | values (const keyT &key, const Tensor< double > &tensor) const |
Public Attributes | |
std::shared_ptr< implT > | impl_ket |
various MRA functions of NDIM dimensionality More... | |
std::shared_ptr< implT > | impl_eri |
supposedly 1/r12 More... | |
std::shared_ptr< implL > | impl_m1 |
various MRA functions of MDIM dimensionality (e.g. 3, if NDIM==6) More... | |
std::shared_ptr< implL > | impl_m2 |
supposedly 1/r2 More... | |
std::shared_ptr< implL > | impl_p1 |
supposedly orbital 1 More... | |
std::shared_ptr< implL > | impl_p2 |
supposedly orbital 2 More... | |
Additional Inherited Members | |
Public Types inherited from madness::FunctionFunctorInterface< T, NDIM > | |
typedef GenTensor< T > | coeffT |
typedef Key< NDIM > | keyT |
CompositeFunctorInterface implements a wrapper of holding several functions and functors.
Use this to "connect" several functions and/or functors and to return their coefficients e.g. connect f1 and f2 with an addition, you can request the coefficients of any node and they will be computed on the fly and returned. Mainly useful to connect a functor with a function, if the functor is too large to be represented in MRA (e.g. 1/r12)
as of now, the operation connecting the functions/functors is simply addition. need to implement expression templates, if I only knew what that was...
|
inline |
constructor takes its Factory
References madness::WorldGopInterface::fence(), madness::World::gop, madness::FunctionImpl< T, NDIM >::is_on_demand(), and madness::FunctionImpl< T, NDIM >::make_redundant().
|
inlinevirtual |
return value at point x; fairly inefficient
Implements madness::FunctionFunctorInterface< T, NDIM >.
References madness::print(), and std::tr1::T().
|
inlinevirtual |
does this functor directly provide sum coefficients? or only function values?
Reimplemented from madness::FunctionFunctorInterface< T, NDIM >.
std::shared_ptr<implT> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_eri |
supposedly 1/r12
Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().
std::shared_ptr<implT> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_ket |
various MRA functions of NDIM dimensionality
supposedly the pair function
Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().
std::shared_ptr<implL> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m1 |
various MRA functions of MDIM dimensionality (e.g. 3, if NDIM==6)
supposedly 1/r1
Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().
std::shared_ptr<implL> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m2 |
supposedly 1/r2
Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().
std::shared_ptr<implL> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p1 |
supposedly orbital 1
Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().
std::shared_ptr<implL> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p2 |
supposedly orbital 2
Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().