MADNESS  0.10.1
Public Member Functions | Public Attributes | List of all members
madness::Leaf_op< T, NDIM, opT, specialboxT > Class Template Reference

#include <leafop.h>

Public Member Functions

 Leaf_op ()
 
 Leaf_op (const FunctionImpl< T, NDIM > *const tmp)
 
 Leaf_op (const FunctionImpl< T, NDIM > *const tmp, const opT *const ope, specialboxT &sb)
 
 Leaf_op (const FunctionImpl< T, NDIM > *const tmp, specialboxT &sb)
 
 Leaf_op (const Leaf_op &other)
 
virtual ~Leaf_op ()
 
bool compare_to_parent (const Key< NDIM > &key, const GenTensor< T > &coeff, const GenTensor< T > &parent) const
 
virtual bool do_pre_screening () const
 pre or post screening (see if this is the general_leaf_op or the leaf_op_other) More...
 
virtual std::string name () const
 
virtual bool post_screening (const Key< NDIM > &key, const GenTensor< T > &coeff) const
 
virtual bool pre_screening (const Key< NDIM > &key) const
 
virtual void sanity () const
 make sanity check More...
 
template<typename Archive >
void serialize (Archive &ar)
 
bool special_refinement_needed (const Key< NDIM > &key) const
 

Public Attributes

const FunctionImpl< T, NDIM > * f
 the function which the operators use (in most cases this function is also the function that will be constructed) More...
 
const opT * op
 the operator which is used for screening (null pointer means no screening) More...
 
specialboxT specialbox
 

Constructor & Destructor Documentation

◆ Leaf_op() [1/5]

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
madness::Leaf_op< T, NDIM, opT, specialboxT >::Leaf_op ( )
inline

◆ Leaf_op() [2/5]

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
madness::Leaf_op< T, NDIM, opT, specialboxT >::Leaf_op ( const FunctionImpl< T, NDIM > *const  tmp)
inline

◆ Leaf_op() [3/5]

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
madness::Leaf_op< T, NDIM, opT, specialboxT >::Leaf_op ( const FunctionImpl< T, NDIM > *const  tmp,
specialboxT &  sb 
)
inline

◆ Leaf_op() [4/5]

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
madness::Leaf_op< T, NDIM, opT, specialboxT >::Leaf_op ( const FunctionImpl< T, NDIM > *const  tmp,
const opT *const  ope,
specialboxT &  sb 
)
inline

◆ Leaf_op() [5/5]

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
madness::Leaf_op< T, NDIM, opT, specialboxT >::Leaf_op ( const Leaf_op< T, NDIM, opT, specialboxT > &  other)
inline

◆ ~Leaf_op()

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
virtual madness::Leaf_op< T, NDIM, opT, specialboxT >::~Leaf_op ( )
inlinevirtual

Member Function Documentation

◆ compare_to_parent()

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
bool madness::Leaf_op< T, NDIM, opT, specialboxT >::compare_to_parent ( const Key< NDIM > &  key,
const GenTensor< T > &  coeff,
const GenTensor< T > &  parent 
) const
inline

determines if a node is well represented compared to the parents

Parameters
[in]keythe FunctionNode which we want to determine if it's a leaf node
[in]coeffthe coeffs of key
[in]parentthe coeffs of key's parent node
Returns
is the FunctionNode of key a leaf node?

References madness::FunctionImpl< T, NDIM >::get_thresh(), madness::GenTensor< T >::has_no_data(), madness::Key< NDIM >::level(), madness::GenTensor< T >::normf(), madness::GenTensor< T >::scale(), madness::FunctionImpl< T, NDIM >::truncate_tol(), and madness::FunctionImpl< T, NDIM >::upsample().

◆ do_pre_screening()

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
virtual bool madness::Leaf_op< T, NDIM, opT, specialboxT >::do_pre_screening ( ) const
inlinevirtual

pre or post screening (see if this is the general_leaf_op or the leaf_op_other)

Reimplemented in madness::Leaf_op_other< T, NDIM >.

◆ name()

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
virtual std::string madness::Leaf_op< T, NDIM, opT, specialboxT >::name ( ) const
inlinevirtual

◆ post_screening()

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
virtual bool madness::Leaf_op< T, NDIM, opT, specialboxT >::post_screening ( const Key< NDIM > &  key,
const GenTensor< T > &  coeff 
) const
inlinevirtual

post-determination determination if the box will be a leaf box after the coefficients are made the function that is beeing constructed is the function in this class the function will use the opartor op in order to screen, if op is a NULL pointer the result is always: false

Parameters
[in]keythe key to the current box
[in]coeffCoefficients of the current box

Reimplemented in madness::Leaf_op_other< T, NDIM >.

References d(), madness::FunctionDefaults< NDIM >::get_bc(), madness::FunctionImpl< T, NDIM >::get_thresh(), madness::BoundaryConditions< NDIM >::is_periodic(), madness::Key< NDIM >::level(), madness::detail::norm(), madness::GenTensor< T >::normf(), madness::Leaf_op< T, NDIM, opT, specialboxT >::op, madness::Leaf_op< T, NDIM, opT, specialboxT >::sanity(), source(), thresh, and madness::FunctionImpl< T, NDIM >::truncate_tol().

◆ pre_screening()

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
virtual bool madness::Leaf_op< T, NDIM, opT, specialboxT >::pre_screening ( const Key< NDIM > &  key) const
inlinevirtual

pre-determination the decision if the current box will be a leaf box is made from information of another function this is needed for on demand function not that the on-demand function that is beeing constructed is not the function in this class

Reimplemented in madness::Leaf_op_other< T, NDIM >.

References MADNESS_EXCEPTION.

◆ sanity()

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
virtual void madness::Leaf_op< T, NDIM, opT, specialboxT >::sanity ( ) const
inlinevirtual

◆ serialize()

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
template<typename Archive >
void madness::Leaf_op< T, NDIM, opT, specialboxT >::serialize ( Archive &  ar)
inline

◆ special_refinement_needed()

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
bool madness::Leaf_op< T, NDIM, opT, specialboxT >::special_refinement_needed ( const Key< NDIM > &  key) const
inline

check if the box is a special box first check: Is one of the special points defined in the function f in the current box or a neighbour box second check: Is the box special according to the specialbox operator (see class description of Specialbox_op)

Parameters
[in]thekey of the box

References madness::Leaf_op< T, NDIM, opT, specialboxT >::f, madness::Key< NDIM >::level(), and madness::Leaf_op< T, NDIM, opT, specialboxT >::specialbox.

Member Data Documentation

◆ f

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
const FunctionImpl<T, NDIM>* madness::Leaf_op< T, NDIM, opT, specialboxT >::f

the function which the operators use (in most cases this function is also the function that will be constructed)

Referenced by madness::Leaf_op< T, NDIM, opT, specialboxT >::sanity(), and madness::Leaf_op< T, NDIM, opT, specialboxT >::special_refinement_needed().

◆ op

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
const opT* madness::Leaf_op< T, NDIM, opT, specialboxT >::op

the operator which is used for screening (null pointer means no screening)

Referenced by madness::Leaf_op< T, NDIM, opT, specialboxT >::post_screening().

◆ specialbox

template<typename T , std::size_t NDIM, typename opT , typename specialboxT >
specialboxT madness::Leaf_op< T, NDIM, opT, specialboxT >::specialbox

special box structure: has an operator which decides if a given key belongs to a special box the base class Specialbox_op<T,NDIM> just gives back false for every key the derived class Cuspybox_op<T,NDIM> is used for potentials containing cusps at coalescence points of electrons

Referenced by madness::Leaf_op< T, NDIM, opT, specialboxT >::serialize(), and madness::Leaf_op< T, NDIM, opT, specialboxT >::special_refinement_needed().


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