Skip to content

Draft: [mpfa] reduce template args in nodal index sets

Dennis Gläser requested to merge cleanup/simplify-mpfa into master

For now just here for nice diff visualization

  • reduce template arguments for dual grid index set to just GridView. Reduces complexity as up until now, one could inject all kinds of local data storage containers via the grid index set traits, in order to select the optimal container in case the interaction volume size is known. This MR "hardcodes" the containers centrally in Dumux::CCMpfa, using the new Dumux::ReservedVector with preallocated memory that is enough in the static case (quads in 2d, hexes in 3d). Thus, we should automatically get the same benefits without the complexity that the current traits mechanism brings with it. Also, this is a global class that is created once in GridGeometry::update, and thus, some reallocation should even be fine since nothing is resized during element-local assembly.
  • remove property DualGridNodalIndexSet, since this type is now only dependent on GridView. Backwards-incompatible (see below)

BW-incompatible changes:

  • At user level, if property definitions are made for custom interaction volumes, while using the default traits, this breaks now because the index set has been removed from the template arguments. Moreover, if users used the DualGridNodalIndexSet property, this also fails since the property has been removed.

What this MR does / why does DuMux need it:

TODO: insert text here

Notes for the reviewer

TODO: insert text here

Before you request a review from someone, make sure to revise the following points:

  • does the new code follow the style guide?
  • do the test pipelines pass? (see guide on how to run pipelines for a merge request)
  • is the code you changed and/or the new code you wrote covered in the test suite? (if not, extend the existing tests or write new ones)
  • does your change affect public interfaces or behavior, or, does it introduce a new feature? If so, document the change in CHANGELOG.md.
  • is the list of the header includes complete? ("include what you use")
  • all files have to end with a \n character. Make sure there is no \ No newline at end of file comment in "Changes" of this MR.
  • (if not applicable remove) are newly introduced or modified physical values/functions backed up with a scientific reference (including doi) in the docs?
  • (if not applicable remove) if the examples are modified, is the documentation regenerated (using generate_example_docs.py)
Edited by Dennis Gläser

Merge request reports