MADNESS 0.10.1
|
#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) | |
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 | |
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) | |
const opT * | op |
the operator which is used for screening (null pointer means no screening) | |
specialboxT | specialbox |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
|
inline |
determines if a node is well represented compared to the parents
[in] | key | the FunctionNode which we want to determine if it's a leaf node |
[in] | coeff | the coeffs of key |
[in] | parent | the coeffs of key's parent node |
References madness::FunctionImpl< T, NDIM >::get_thresh(), madness::GenTensor< T >::has_no_data(), madness::Key< NDIM >::level(), madness::nonlinear_vector_solver(), madness::GenTensor< T >::normf(), madness::GenTensor< T >::scale(), madness::FunctionImpl< T, NDIM >::truncate_tol(), and madness::FunctionImpl< T, NDIM >::upsample().
|
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 >.
|
inlinevirtual |
Reimplemented in madness::Leaf_op_other< T, NDIM >.
Referenced by madness::Leaf_op< T, NDIM, opT, specialboxT >::sanity().
|
inlinevirtual |
post-determination determination if the box will be a leaf box after the coefficients are made the function that is being 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
[in] | key | the key to the current box |
[in] | coeff | Coefficients 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::Key< NDIM >::level(), madness::nonlinear_vector_solver(), 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().
|
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 being constructed is not the function in this class
Reimplemented in madness::Leaf_op_other< T, NDIM >.
References MADNESS_EXCEPTION.
|
inlinevirtual |
make sanity check
Reimplemented in madness::Leaf_op_other< T, NDIM >.
References madness::Leaf_op< T, NDIM, opT, specialboxT >::f, MADNESS_EXCEPTION, madness::Leaf_op< T, NDIM, opT, specialboxT >::name(), and madness::nonlinear_vector_solver().
Referenced by madness::Leaf_op< T, NDIM, opT, specialboxT >::post_screening().
|
inline |
|
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)
[in] | the | key 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.
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().
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().
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().