Skip to content

WIP: Blocking structure of bases

Simon Praetorius requested to merge feature/blocking into master

Summary

The MR provides access to the blocking structure that can be used to create nested vectors (and matrices) accessible by the multi-indices of the basis.

See #54 for a discussion on this topic.

Discussion

Could this be a way to go, to introduce something like a blocking structure? The names BlockingTag and Blocking could be changed if there are better candidates.

Are all cases covered by the introduced blocking types? Do we need to distinguish between "composite-blocked" and "power-blocked"? Currently both map to Blocked. The user then can decide whether to test for all child-types are the same to use a homogeneous container, or a heterogeneous container otherwise.

Are there cases where the blockedInterleaved index-merging strategy can have a child with something else than flat index-merging strategy, so something like BlockVector<FieldVector<FieldVector<T,m>,n>>?

What are examples of bases that do not use index-merging strategies (or something similar) but require hierarchic containers with multi-index access? Do the proposed blocking tags be mapped to the structure of these bases?

Edited by Simon Praetorius

Merge request reports