dunemodelling support for dorie
The main idea is to make dorie compatible with dunemodelling 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 dunemodelling.
dunemodelling is another abstraction layer in the dune world, more specifically, it relies on dunepdelab to perform couplings. Though in the end objects like GridOperator
s, BoundaryCondition
s, Solver
s, etc, are defined the same as in dunepdelab, they have a particular structure we have to fulfill in order make these operators available to dunemodelling.
These structures could be summarized as follow:
 A particular definition of Traits for the model and for each equation.

InitialValue
,SpatialOperator
andTemporalOperator
objects 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
and GridTraits
where SimulationTraits
is a modified version of BaseTraits
.
For 2. it is necessary to create new objects inherited from Dorie::RichardsDGSpatialOperator
and Dorie::RichardsDGTemporalOperator
. Because of special constraints (i.e. Deadly Diamond of Death), I do a Hasa relation instead of an Isa relation between Dorie::FlowInitial
and InitialValue
.
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 dunemodelling. Its use is defined by template specialization, with the dunepdelab version set as default. The idea is, once this object have the same functionalities as its dunepdelab counterpart make it the Simulation
object by default.
To be transparent with dune configurations some users may already have, that is, without dunemodelling, all changes which require dunemodelling are enclosed in preprocessor directives that deactivate the feature when dunemodelling 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 dunemodelling with our current objects.
 Perform the coupling with the transport equation of Ole Klein.

Support all dorie functionalities in dunemodelling version of
Simulation
object.