The DuMux multidomain framework

Coupling multiple domains

The DuMux multidomain framework

Design goals

  • Reuse existing DuMux models in the coupled setting

  • Extensible to more than two subdomains

  • Common structure for different coupling modes

DuMux multidomain: general structure

The sub problems

  • any DuMux problem with
    • initial conditions
    • boundary conditions
    • associated DuMux model

  • get a pointer to the coupling manager

The coupling manager

  • Transfer data from one subproblem to another
    • e.g. give me the soil pressure (from the well domain)
    • e.g. give me the radius of the embedded well (from the soil domain)

  • Compute the coupling stencil
  • Compute the coupling residual (numerical differentiation)

Example: embedded fracture model

Example: embedded fracture model

(coupling residual)

\begin{equation} \begin{aligned} \frac{\partial \rho \phi}{\partial t} - \nabla\cdot \left[ \frac{\rho}{\mu}\mathbf{K_m} (\nabla p_m - \rho \mathbf{g}) \right] - q \delta_\Gamma = 0 \quad \text{in} \, \Omega \\ \frac{\partial \rho \phi}{\partial t} - \nabla_\tau\cdot \left[ \frac{\rho}{\mu}\mathbf{K_f} (\nabla p_f - \rho \mathbf{g}) \right] + q = 0 \quad \text{in} \, \Lambda \\ q = \zeta (p_f - p_m) \quad \text{and} \quad \Gamma = \Omega \cap \Lambda \end{aligned} \end{equation}

Example: embedded fracture model

(coupling stencil)

Example: embedded fracture model

Example: root water uptake