Implementation details¶
Policy-based design¶
Handling the combinatorial explosion of features; avoid paying for what we don’t need
- SizePolicy, StridePolicy, OffsetPolicy (compile time vs. runtime)
- IndirectionPolicy (none, C-array, std::vector, custom, e.g. mfem::Array)
- SubsettingPolicy (none, virtual parent, concrete parent)
- OwnershipPolicy (local, sidre, other repository)
Feature diagram of OrderedSet policies (subset).
The figure shows how certain these policies interact with the subscript operator.
Simplifying mesh setup¶
- Builder classes
- Chained initialization using named-parameter idiom
- Generator classes to simplify types