Add dynamic power basis
Summary
This MR introduces a dynamic power node with runtime size. It is based on the dune-typetree DynamicPowerNode
and can be constructed by
power(<child>, k)
power(<child>, k, <index-merging-strategy>)
Thus, the "exponent" is given after the child type, like in the std::pow
function.
The main assumption for power nodes is that all childs have the same shape/size. This allows to compute the size of the power node itself as k * size-of-child
. This property is important to mention, since dynamic-power-nodes would allow trees with different number of children. This is not supported by a (dynamic) power basis! However, one could implement another type of power-like basis, mabye better called vector-basis, where each child has the same type, but is allowed to have a different size, e.g. different lagrange leaf bases, or different dynamic power nodes, or ...