Simulation Traits
What does this MR do?
This MR proposes to modify the current Trait
system for one that can manage more than one model as is wanted in #73 (closed). In many regards, this MR is very similar to the changes done and discussed in !30 (closed) with respect Traits
.
Particularly, everything specialized trait still depends on the BaseTraits
class. However, now each model has its own traits that define all the needed types for the simulation.
-
Since models can have differences regarding the orders of polynomials of the FEM, the argument
order
was removed fromBaseTraits
and delegated to the specific modelTraits
, in this case, that is done inRichardsSimulationTraits
. (To be consistent, it was also added as an argument for theAdaptativeHandler
and its factory). -
It was removed the template template parameter from the
Grid
inBaseTraits
, and the templatedimension
argument. Reason: every dune-grid exports the dimension. Therefore, there is no need for templates deduction. -
Since this is done to support several models, this MR already renames the
Simulation
object toRichardsSimulation
and its respective files fromsimulation.*
torichards_simulation.*
.
Is there something that needs to be double checked?
The pipeline is failing because of conservation of mass test. This MR shouldn't modify anything there that doesn't fail at compile time, then, I am beginning to think this is due to some problem with the CI itself.
Changes in traits should not change anything for the user and a passing pipeline (i.e. successful compilation) must suffice as a test.
Can this MR be accepted?
-
Implemented -
Pipeline passing -
Added entry to CHANGELOG.md