|
| DefaultNodeToRangeMap (const Tree &tree) |
| Construct DefaultNodeToRangeMap. More...
|
|
template<class Node , class Range , typename std::enable_if< models< Concept::HasIndexAccess, Range, decltype(std::declval< Node >().treeIndex())>() and not Tree::isLeaf , int , ::type = 0> |
auto | operator() (const Node &node, Range &&y) const -> decltype(y[0]) |
|
template<class Node , class Range , typename std::enable_if< not models< Concept::HasIndexAccess, Range, decltype(std::declval< Node >().treeIndex())>() or Tree::isLeaf , int , ::type = 0> |
auto | operator() (const Node &node, Range &&y) const -> decltype(std::forward< Range >(y)) |
|
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.