|
| DefaultNodeToRangeMap (const Tree &tree) |
| Construct DefaultNodeToRangeMap. More...
|
|
template<class Node , class TreePath , class Range , std::enable_if_t< models< Concept::HasIndexAccess, Range, decltype(std::declval< Node >().treeIndex())>() and not Tree::isLeaf , int > |
decltype(auto) | operator() (const Node &node, const TreePath &treePath, Range &&y) const |
|
template<class Node , class TreePath , class Range , std::enable_if_t< not models< Concept::HasIndexAccess, Range, decltype(std::declval< Node >().treeIndex())>() or Tree::isLeaf , int > |
decltype(auto) | operator() (const Node &node, const TreePath &treePath, Range &&y) const |
|
template<class Tree>
struct Dune::Functions::DefaultNodeToRangeMap< Tree >
A simple node to range map using lexicographic ordering.
On construction this map is provided with an ansatz subtree of the tree in an actual basis. The operator() then maps a a pair (node,y) of a leaf node in this subtree and an object y of type range to y[i] where i is the lexicographic index of the node in the subtree.
This allows to associate each leaf node in the subtree with a component in the range type which is necessary when interpolating a vector field into a nontrivial subtree.
Notice that the lexicographic index is only computed wrt the leaf nodes.