MADNESS 0.10.1
|
CompositeFunctorInterface implements a wrapper of holding several functions and functors. More...
#include <function_interface.h>
Public Member Functions | |
CompositeFunctorInterface (World &world, std::vector< pimplT > ket, pimplT g12, pimplL v1, pimplL v2, std::vector< pimplL > p1, std::vector< pimplL > p2) | |
constructor takes its Factory | |
bool | check_redundant () const |
return true if all constituent functions are in redundant tree state | |
void | make_redundant (const bool fence) |
T | operator() (const coordT &x) const |
return value at point x; fairly inefficient | |
bool | provides_coeff () const |
does this functor directly provide sum coefficients? or only function values? | |
void | replicate_low_dim_functions (const bool fence) |
replicate low-dimensional functions over all ranks of this world | |
Public Member Functions inherited from madness::FunctionFunctorInterface< T, NDIM > | |
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 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 | |
std::shared_ptr< implT > | impl_eri |
supposedly 1/r12 | |
std::vector< std::shared_ptr< implT > > | impl_ket_vector |
various MRA functions of NDIM dimensionality | |
std::shared_ptr< implL > | impl_m1 |
various MRA functions of MDIM dimensionality (e.g. 3, if NDIM==6) | |
std::shared_ptr< implL > | impl_m2 |
supposedly 1/r2 | |
std::vector< std::shared_ptr< implL > > | impl_p1_vector |
supposedly orbital 1 | |
std::vector< std::shared_ptr< implL > > | impl_p2_vector |
supposedly orbital 2 | |
Public Attributes inherited from madness::FunctionFunctorInterface< T, NDIM > | |
Level | special_level_ |
Private Types | |
typedef Vector< double, NDIM > | coordT |
Type of vector holding coordinates. | |
typedef FunctionImpl< T, MDIM > | implL |
typedef FunctionImpl< T, NDIM > | implT |
typedef std::shared_ptr< implL > | pimplL |
typedef std::shared_ptr< implT > | pimplT |
Private Attributes | |
World & | world |
Additional Inherited Members | |
Public Types inherited from madness::FunctionFunctorInterface< T, NDIM > | |
typedef GenTensor< T > | coeffT |
typedef Key< NDIM > | keyT |
typedef T | value_type |
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...
|
private |
Type of vector holding coordinates.
|
private |
|
private |
|
private |
|
private |
|
inline |
return true if all constituent functions are in redundant tree state
References madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_eri, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_ket_vector, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m1, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m2, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p1_vector, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p2_vector, k, and MADNESS_ASSERT.
|
inline |
References madness::change_tree_state(), madness::WorldGopInterface::fence(), madness::World::gop, madness::impl2function(), madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_eri, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_ket_vector, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m1, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m2, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p1_vector, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p2_vector, k, madness::redundant, and madness::CompositeFunctorInterface< T, NDIM, MDIM >::world.
|
inlinevirtual |
return value at point x; fairly inefficient
Implements madness::FunctionFunctorInterface< T, NDIM >.
References MADNESS_ASSERT, madness::print(), and T().
|
inlinevirtual |
does this functor directly provide sum coefficients? or only function values?
Reimplemented from madness::FunctionFunctorInterface< T, NDIM >.
|
inline |
replicate low-dimensional functions over all ranks of this world
References madness::WorldGopInterface::fence(), madness::World::gop, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m1, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m2, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p1_vector, madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p2_vector, and madness::CompositeFunctorInterface< T, NDIM, MDIM >::world.
std::shared_ptr<implT> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_eri |
supposedly 1/r12
Referenced by madness::CompositeFunctorInterface< T, NDIM, MDIM >::check_redundant(), and madness::CompositeFunctorInterface< T, NDIM, MDIM >::make_redundant().
std::vector<std::shared_ptr<implT> > madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_ket_vector |
various MRA functions of NDIM dimensionality
supposedly the pair function
Referenced by madness::CompositeFunctorInterface< T, NDIM, MDIM >::CompositeFunctorInterface(), madness::CompositeFunctorInterface< T, NDIM, MDIM >::check_redundant(), and madness::CompositeFunctorInterface< T, NDIM, MDIM >::make_redundant().
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::CompositeFunctorInterface< T, NDIM, MDIM >::check_redundant(), madness::CompositeFunctorInterface< T, NDIM, MDIM >::make_redundant(), and madness::CompositeFunctorInterface< T, NDIM, MDIM >::replicate_low_dim_functions().
std::shared_ptr<implL> madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_m2 |
std::vector<std::shared_ptr<implL> > madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p1_vector |
supposedly orbital 1
Referenced by madness::CompositeFunctorInterface< T, NDIM, MDIM >::CompositeFunctorInterface(), madness::CompositeFunctorInterface< T, NDIM, MDIM >::check_redundant(), madness::CompositeFunctorInterface< T, NDIM, MDIM >::make_redundant(), and madness::CompositeFunctorInterface< T, NDIM, MDIM >::replicate_low_dim_functions().
std::vector<std::shared_ptr<implL> > madness::CompositeFunctorInterface< T, NDIM, MDIM >::impl_p2_vector |
supposedly orbital 2
Referenced by madness::CompositeFunctorInterface< T, NDIM, MDIM >::CompositeFunctorInterface(), madness::CompositeFunctorInterface< T, NDIM, MDIM >::check_redundant(), madness::CompositeFunctorInterface< T, NDIM, MDIM >::make_redundant(), and madness::CompositeFunctorInterface< T, NDIM, MDIM >::replicate_low_dim_functions().
|
private |