Remove treePath from global basis nodes
Currently all nodes in a nested global basis store their tree path and export them using the Node::treePath()
method and the corresponding type as Node::TreePath
. As a consequence each Node
implementation has a template parameter for the tree path making the node type dependent on its position in the tree. Since the NodeIndexSet
is bound to the Node
it inherits the dependence on this template parameter.
Surprisingly it turns out that the neither the stored Node::treePath_
member, the exporting member function Node::treePath()
nor the typedef Node::TreePath
are used anywhere in dune-functions. All examples and tests compile and work nicely if this is disabled. I also cannot remember why we introduced and I don't see any use case. Whenever you traverse the tree of nodes, the traversal algorithm provides the tree path anyway and there's no need to ask the node itself.
Hence I propose to remove the template parameter and corresponding members.
Removing the tree path would simplify the code significantly and also lead to the nice property that that multiple occurrences of the same node in different positions of the tree have the same type. Since I cannot imagine that this is used outside of dune-functions, I'd even propose to remove Node::treePath()
and Node::TreePath
without deprecation.