dune-modelling support for dorie
The main idea is to make dorie compatible with dune-modelling such that couplings between equations are easier to implement in the future. In particular, a first idea is to couple the Richards equation already implemented in dorie with a transport equation Ole Klein have already implemented in dune-modelling.
dune-modelling is another abstraction layer in the dune world, more specifically, it relies on dune-pdelab to perform couplings. Though in the end objects like
Solvers, etc, are defined the same as in dune-pdelab, they have a particular structure we have to fulfill in order make these operators available to dune-modelling.
These structures could be summarized as follow:
- A particular definition of Traits for the model and for each equation.
TemporalOperatorobjects must match a certain template and construction scheme.
- Models should be stored in a special container and have to be solved using its interface.
For 1. it is necessary to modify the
BaseTraits. In my current version, the main change respect to master is a differentiation between
SimulationTraits is a modified version of
For 2. it is necessary to create new objects inherited from
Dorie::RichardsDGTemporalOperator. Because of special constraints (i.e. Deadly Diamond of Death), I do a Has-a relation instead of an Is-a relation between
For 3. it is necessary to redefine the way how the object
Simulation constructs and solve the model. Therefore, I created another object
Simulation with the new interactions with dune-modelling. Its use is defined by template specialization, with the dune-pdelab version set as default. The idea is, once this object have the same functionalities as its dune-pdelab counterpart make it the
Simulation object by default.
To be transparent with dune configurations some users may already have, that is, without dune-modelling, all changes which require dune-modelling are enclosed in preprocessor directives that deactivate the feature when dune-modelling is not encountered.
Regarding the Root support issue opened by @mfels I don't see any transcendental restriction which could make the merge a painful task :).
- Support dune-modelling with our current objects.
- Perform the coupling with the transport equation of Ole Klein.
Support all dorie functionalities in dune-modelling version of