Feature/extensible tags

Merged Timo Koch requested to merge feature/extensible-tags into master

Adds tags a helper struct to define tags that can be compared and printed/converted to stringstreams.

  • adds common/tag.hh
  • adds unit test test_tag

The need for this comes from the 1d3d coupling managers.

The enums provide a convenient way to select the type of 1d3d coupling mode. However they are not extensible. Adding a new mode requires changing Dumux core code. With the new comparable and named tags, we have the same features but in an extensible way. Every coupling manager implementation can define their own (unique) tag and specialise the common class with this tag. The coupling mode can be queried as before, and it is still easy to write code that works with several coupling modes.

The two other commits use tags in the 1d3d coupling manager + restructuring which now makes sense since the implementation are more independent. The test are adapted to remove deprecation warning. Embedded multidomain tests have been checked to pass after all commits.

Related to !2190 (closed).

Edited by Timo Koch

Merge request reports