MADNESS  version 0.9
Public Member Functions | Public Attributes | List of all members
madness::CompositeFunctorInterface< T, NDIM, MDIM > Class Template Reference

CompositeFunctorInterface implements a wrapper of holding several functions and functors. More...

#include <funcimpl.h>

Inheritance diagram for madness::CompositeFunctorInterface< T, NDIM, MDIM >:
Inheritance graph
[legend]
Collaboration diagram for madness::CompositeFunctorInterface< T, NDIM, MDIM >:
Collaboration graph
[legend]

Public Member Functions

 CompositeFunctorInterface (World &world, pimplT ket, pimplT g12, pimplL v1, pimplL v2, pimplL p1, pimplL p2)
 constructor takes its Factory More...
 
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< implTimpl_ket
 various MRA functions of NDIM dimensionality More...
 
std::shared_ptr< implTimpl_eri
 supposedly 1/r12 More...
 
std::shared_ptr< implLimpl_m1
 various MRA functions of MDIM dimensionality (e.g. 3, if NDIM==6) More...
 
std::shared_ptr< implLimpl_m2
 supposedly 1/r2 More...
 
std::shared_ptr< implLimpl_p1
 supposedly orbital 1 More...
 
std::shared_ptr< implLimpl_p2
 supposedly orbital 2 More...
 

Additional Inherited Members

- Public Types inherited from madness::FunctionFunctorInterface< T, NDIM >
typedef GenTensor< T > coeffT
 
typedef Key< NDIMkeyT
 

Detailed Description

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

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...

Constructor & Destructor Documentation

template<typename T, std::size_t NDIM, std::size_t MDIM>
madness::CompositeFunctorInterface< T, NDIM, MDIM >::CompositeFunctorInterface ( World world,
pimplT  ket,
pimplT  g12,
pimplL  v1,
pimplL  v2,
pimplL  p1,
pimplL  p2 
)
inline

Member Function Documentation

template<typename T, std::size_t NDIM, std::size_t MDIM>
T madness::CompositeFunctorInterface< T, NDIM, MDIM >::operator() ( const coordT x) const
inlinevirtual

return value at point x; fairly inefficient

Implements madness::FunctionFunctorInterface< T, NDIM >.

References madness::print(), and std::tr1::T().

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

does this functor directly provide sum coefficients? or only function values?

Reimplemented from madness::FunctionFunctorInterface< T, NDIM >.

Member Data Documentation

template<typename T, std::size_t NDIM, std::size_t MDIM>
std::shared_ptr<implT> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_eri

supposedly 1/r12

Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().

template<typename T, std::size_t NDIM, std::size_t MDIM>
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().

template<typename T, std::size_t NDIM, std::size_t MDIM>
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().

template<typename T, std::size_t NDIM, std::size_t MDIM>
std::shared_ptr<implL> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m2

supposedly 1/r2

Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().

template<typename T, std::size_t NDIM, std::size_t MDIM>
std::shared_ptr<implL> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p1

supposedly orbital 1

Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().

template<typename T, std::size_t NDIM, std::size_t MDIM>
std::shared_ptr<implL> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p2

supposedly orbital 2

Referenced by madness::FunctionImpl< Q, NDIM >::make_Vphi().


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