Skip to content

Draft: Resolve "Bug in ISTL container index depth calculation"

Summary

This MR fixes the bug reported in #178. The underlying machinery to accumulate the maximum depth of the blocking is changed to use the hybrid accumulator algorithm proposed in staging/dune-typetree!93 (merged) in dune-typetree. To achieve so, the RootGFS should be accumulated in an unevaluated context:

     static const std::size_t ci_depth = decltype(
        TypeTree::accumulateToTree(
            std::declval<RootGFS>(),
            std::declval<extract_max_container_depth>(),
            Indices::_0)
          )::value + 1;

Now, since the new accumulation algorithm expects the type to be complete, we need to separate the implementation of unordered grid function spaces from the transformation of the ordering tree. Therefore, this depends on MR !559 (closed) for this to work.

Closes #178

Edited by Santiago Ospina De Los Ríos

Merge request reports