Feature/multidomain on 3.0
This merge request adds a multidomain module to Dumux. It is a fairly generic module that provides a generic assembler for multi-domain problems (more than two domains possible). The domains can have different dimension. The coupling manager concept allows to specify coupling dof dependencies and defines how to evaluate coupling residuals / residual derivatives.
The goal is to be able to use this module for
- equal-dimension multi-domain problems (e.g. Darcy-Stokes coupling)
- mixed-dimension multi-domain problems (e.g. embedded mixed-dimension methods, embedded fracture models)
- multi-physics problems (e.g. dual-continuum models, geomechanics-flow)
New features / models on this branch
- Staggered grid (is using multidomain now, multi-physics: facet and cell-center domain)
- Embedded coupling (mixeddimension non-conforming) (embedded tubes and fractures)
- Facet coupling (mixeddimension conforming) (fractures and 3d-2d-1d)
- Geomechanics (Biot/el1p, multi-physics)
- Boundary coupling (equaldimension, darcy-stokes-> !997 (merged), darcy-darcy-> !1019 (merged))
- ( not on this branch but bare in mind: boundary coupling, mixeddimension porenetwork-darcy/stokes)
Plan (TODOs)
-
Squash and reorder commits into sensible compiling patches -
Fix documentation -
Fix CMakeLists.txt (done in b3098aa6, there is no a script for that on master) -
Add reference solutions for multidomain tests -
depends on !737 (merged) and !738 (merged) to be merged. -
check function overloads for different element types, probably need domainId as element types can be the same -
add coupling manager for darcy-darcy domain decomposition (show case / test and simpler than darcy-stokes) (see !1019 (merged)) -
add darcy-stokes module (see !997 (merged)) -
Unify newtoncontroller with staggered newtoncontroller (depends on !762 (merged)) -
Make facet grid creator a grid manager with grid data management -
Find better name for EmbedmentData in facet coupling grid manader
Will be a separate merge request
- implement explicit assembly (see #521 (closed))
- Sequential solver (see !870 (closed))
Fixes #447 (closed).
Edited by Timo Koch