From 3bb596eb5e5d8c9547287779d7644da52c08335c Mon Sep 17 00:00:00 2001
From: Kilian Weishaupt <kilian.weishaupt@iws.uni-stuttgart.de>
Date: Tue, 10 Jul 2018 17:07:53 +0200
Subject: [PATCH] [coupling-ff-pm] Add interface exercise

---
 exercises/CMakeLists.txt                      |   1 +
 .../exercise-coupling-ff-pm/CMakeLists.txt    |   1 +
 exercises/exercise-coupling-ff-pm/README.md   | 207 ++++++++++
 .../interface/1pspatialparams.hh              |  96 +++++
 .../interface/CMakeLists.txt                  |   9 +
 .../interface/ex_interface_coupling_ff-pm.cc  | 281 ++++++++++++++
 .../ex_interface_coupling_ff-pm.input         |  44 +++
 .../interface/ex_interface_ffproblem.hh       | 323 ++++++++++++++++
 .../interface/ex_interface_pmproblem.hh       | 251 ++++++++++++
 exercises/extradoc/ex_ff-pm-vertical-flow.png | Bin 0 -> 47564 bytes
 .../extradoc/ex_ff-pm-wave-interface.png      | Bin 0 -> 89922 bytes
 exercises/solution/CMakeLists.txt             |   1 +
 .../exercise-coupling-ff-pm/CMakeLists.txt    |   1 +
 .../interface/1pspatialparams.hh              |  96 +++++
 .../interface/CMakeLists.txt                  |  25 ++
 .../interface/ex_interface_coupling_ff-pm.cc  | 274 +++++++++++++
 .../ex_interface_coupling_ff-pm.input         |  44 +++
 .../interface/ex_interface_ffproblem.hh       | 360 ++++++++++++++++++
 .../interface/ex_interface_pmproblem.hh       | 257 +++++++++++++
 19 files changed, 2271 insertions(+)
 create mode 100644 exercises/exercise-coupling-ff-pm/CMakeLists.txt
 create mode 100644 exercises/exercise-coupling-ff-pm/README.md
 create mode 100644 exercises/exercise-coupling-ff-pm/interface/1pspatialparams.hh
 create mode 100644 exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt
 create mode 100644 exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
 create mode 100644 exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.input
 create mode 100644 exercises/exercise-coupling-ff-pm/interface/ex_interface_ffproblem.hh
 create mode 100644 exercises/exercise-coupling-ff-pm/interface/ex_interface_pmproblem.hh
 create mode 100644 exercises/extradoc/ex_ff-pm-vertical-flow.png
 create mode 100644 exercises/extradoc/ex_ff-pm-wave-interface.png
 create mode 100644 exercises/solution/exercise-coupling-ff-pm/CMakeLists.txt
 create mode 100644 exercises/solution/exercise-coupling-ff-pm/interface/1pspatialparams.hh
 create mode 100644 exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt
 create mode 100644 exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
 create mode 100644 exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.input
 create mode 100644 exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_ffproblem.hh
 create mode 100644 exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_pmproblem.hh

diff --git a/exercises/CMakeLists.txt b/exercises/CMakeLists.txt
index 55370342..82031e6c 100644
--- a/exercises/CMakeLists.txt
+++ b/exercises/CMakeLists.txt
@@ -2,6 +2,7 @@
 add_custom_target(test_exercises)
 
 add_subdirectory(exercise-basic)
+add_subdirectory(exercise-coupling-ff-pm)
 add_subdirectory(exercise-runtimeparams)
 add_subdirectory(exercise-grids)
 add_subdirectory(exercise-properties)
diff --git a/exercises/exercise-coupling-ff-pm/CMakeLists.txt b/exercises/exercise-coupling-ff-pm/CMakeLists.txt
new file mode 100644
index 00000000..cc41f095
--- /dev/null
+++ b/exercises/exercise-coupling-ff-pm/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(interface)
diff --git a/exercises/exercise-coupling-ff-pm/README.md b/exercises/exercise-coupling-ff-pm/README.md
new file mode 100644
index 00000000..d1c2d498
--- /dev/null
+++ b/exercises/exercise-coupling-ff-pm/README.md
@@ -0,0 +1,207 @@
+# Exercise #5 (DuMuX course)
+
+The aim of this exercise is to get familiar with the set up of coupled free flow/porous medium flow problems.
+
+## Problem set-up
+
+The model domain consists of two non-overlapping subdomains.
+Free flow is modeled in the upper subdomain, while the lower subdomain models a flow in a porous medium.
+Both single-phase flow and two-phase flow will be considered in the porous domain.
+
+![](../extradoc/exercise5_setup.png)
+
+
+
+
+### 0. Getting familiar with the code
+
+* Navigate to the directory `exercises/exercise-coupling-ff-pm`
+
+There are three sub folders: `interface`, `models` and `turbulence`.
+
+The problem-related files for this exercise are:
+* Three __main files__ for the three sub-tasks :`ex_interface_coupling_ff-pm.cc`, `ex2_coupling_ff-pm.cc`, `ex2_coupling_ff-pm.cc`,
+* Three __free flow problem files__: `ex_interface_ffproblem.hh`, `ex2_ffproblem.hh`, `ex3_ffproblem.hh`
+* Three __porous medium flow problem files__: `ex_interface_pmproblem.hh`, `ex2_pmproblem.hh`, `ex3_pmproblem.hh`
+* The __input files__: ...
+* The __spatial parameters files__: `1pspatialparams.hh`, `2pspatialparams.hh`
+
+
+In the main file, `TypeTags` for both submodels are defined. The same applies for types such as `GridManager`, `FVGridGeometry`, `Problem`, etc.. Since we use a monolithic coupling scheme, there is only one `Assembler` and one
+`NewtonSolver`.
+
+The problem files very much look like "regular", uncoupled ones with the exception that they hold a pointer to the `CouplingManager` which allows to evaluate the coupling conditions and to exchange information between the coupled models. The coupling conditions are realized technically in terms of boundary condition. For instance, in lines 178 and 179
+in `ex_interface_ffproblem.hh`, `couplingNeumann` boundary conditions are set, which means that the free flow models evaluates the
+mass and momentum fluxes coming from the porous domain and uses these values as boundary conditions at the interface.
+
+Note the certain checks are performed when combining different models, e.g., the fluid system has to be the same for both domains.
+
+
+We will use a staggered grid for the free flow and a cell-centered finite volume method for the porous medium.
+Keep in mind that the staggered grid implementation distinguishes between face variables (velocity components) and
+cell center variables (all other variables), therefore in some cases either the `stokesCellCenterIdx`
+or the `stokesFaceIdx` is used respectively, while for the porous medium all variables can be accessed with `darcyIdx`.
+
+The main part of the Stokes/Darcy coupling is implemented in the folder `dumux/multidomain/boundary/stokesdarcy`.
+
+__Task__:
+Take a closer look at the Stokes/Darcy coupling files and try to answer the following questions before moving to the next part of the exercise:
+* Where are the elements at the coupling interface paired with their respective coupling partner elements of the other domain?
+* Where are the coupling conditions implemented and evaluated?
+* You will find four implementations of the `massCouplingCondition`. What are the differences between them?
+* Which data is stored and updated regularly such that it is accessible from the respective other domain?
+* How can we access volume variables like density and pressure from the respective other domain?
+* ...
+
+### 1. Changing the interface
+
+In this part of the exercise, a simple coupled system consisting of a one-phase (1p) free flow and a one-phase flow in a porous medium is set up. Both subproblems have no-flow boundaries at the sides.
+A velocity profile is set on the upper free flow boundary, which leads to a vertical flow into the porous medium.
+
+* We will first change the flow direction such that the free flow is parallel to the porous medium.
+* Afterwards, the Beavers-Joseph-Saffman condition will be used as an interface condition for the tangential momentum transfer.
+* Last, we change the flat interface between the two domains to a wave-shaped one.
+
+__Tasks__:
+
+Open the file `ex_interface_ffproblem.hh` and navigate to line 155, where the types of boundary condition are set.
+Instead of applying a fixed velocity profile at the top of the domain, we want to use fixed pressure boundary conditions
+at the left and right side of the free flow domain, while the top represents an impermeable wall.
+
+__Change the flow direction__
+
+Set a Dirichlet boundary condition for the pressure at the left and ride side of the domain:
+``` cpp
+if(onLeftBoundary_(globalPos) || onRightBoundary_(globalPos))
+    values.setDirichlet(Indices::pressureIdx);
+
+```
+
+Set a Dirichlet boundary condition for the velocities at the top:
+``` cpp
+if(onUpperBoundary_(globalPos))
+{
+    values.setDirichlet(Indices::velocityXIdx);
+    values.setDirichlet(Indices::velocityYIdx);
+}
+```
+
+Keep the coupling boundary condition:
+``` cpp
+if(couplingManager().isCoupledEntity(CouplingManager::stokesIdx, scvf))
+{
+    values.setCouplingNeumann(Indices::conti0EqIdx);
+    values.setCouplingNeumann(Indices::momentumYBalanceIdx);
+}
+```
+
+Having changed the types of boundary conditions, we must now assign the correct values for them.
+
+Set a no-slip, no-flow condition for the velocity at the top:
+``` cpp
+values[Indices::velocityXIdx] = 0.0;
+values[Indices::velocityYIdx] = 0.0;
+```
+Apply a fixed pressure difference between the inlet and outlet, e.g.:
+``` cpp
+if(onLeftBoundary_(globalPos))
+    values[Indices::pressureIdx] = deltaP_;
+if(onRightBoundary_(globalPos))
+    values[Indices::pressureIdx] = 0.0;
+```
+
+For changing the flow direction, the boundary conditions for the porous medium have to be changed as well.
+
+Use Neumann no-flow boundaries everywhere, keep the coupling conditions.
+``` cpp
+values.setAllNeumann();
+
+if (couplingManager().isCoupledEntity(CouplingManager::darcyIdx, scvf))
+    values.setAllCouplingNeumann();
+```
+
+__Include slip-condition__
+
+This should make the flow go from left to right. However, we are still missing one important feature:
+the Beavers-Joseph-Saffman slip condition at the interface:
+
+
+$`\frac{\partial v_x}{\partial y} = \frac{\alpha}{\sqrt K} (v_x - q_{pm})\quad`$ at $`\quad y=0`$
+
+
+with  $`\quad q_{pm}=0`$.
+
+The include this, we just set:
+``` cpp
+values.setBJS(Indices::momentumXBalanceIdx);
+```
+
+at the position where the coupling boundary conditions are set in `ex_interface_ffproblem.hh`.
+
+To check if the simulation behaves as expected, we can compare the velocity profile $`v_x(y)`$ with the analytical solution provided by [Beavers and Joseph (1967)](https://doi.org/10.1017/S0022112067001375).
+For doing so, we uncomment line 212
+```cpp
+stokesVtkWriter.addField(stokesProblem->getAnalyticalVelocityX(), "analyticalV_x");
+```
+
+in `ex_interface_coupling_ff-pm.cc`. After re-compiling and re-running the executable, we should be able to see also
+the analytical solution of $`v_x`$ on the free flow domain. Play around with the grid resolution to see how that affects the velocity profile.
+
+__Cange shape of interface__
+
+Now we want to include a non-flat interface between the two domains. We use `dune-subgrid` to construct
+two grids for the two domains from one common host grid. Comment out lines 93-103 in `ex_interface_coupling_ff-pm.cc` and comment lines 112-147 in the same file. This will instantiate a host grid and define two helper lambda functions that are used to choose elements from to host grid for the respective sub grid. In the given case,
+the domain is split in two haves, separated by a sinusoidal interface.
+
+```cpp
+auto elementSelectorStokes = [&](const auto& element)
+{
+    double interface = params.amplitude * std::sin(( element.geometry().center()[0] -params.offset) / params.scaling * 2.0 * M_PI) + params.baseline;
+    return element.geometry().center()[1] > interface;
+};
+
+auto elementSelectorDarcy = [&](const auto& element)
+{
+    double interface  =  params.amplitude * std::sin(( element.geometry().center()[0] - params.offset) / params.scaling * 2.0 * M_PI) + params.baseline;
+    return element.geometry().center()[1] < interface;
+};
+```
+
+Make sure to comment in line 30 in both problem files
+```cpp
+#include <dumux/io/grid/subgridgridcreator.hh>
+```
+
+and do the changes in the respective lines for the `Grid` property.
+
+The problem should no compile and run. However, an error occurs due to the coupling conditions.
+So far, we assumed a flat interface, therefore the normal momentum coupling condition
+
+ $`[\sigma \cdot \mathbf{n}]^{FF} = p^{PM}`$
+
+ was always set for a fixed $`\mathbf{n} = (0,1)^T`$. We need to account for the curvature of the interface and thus replace
+ ```cpp
+values.setCouplingNeumann(Indices::momentumYBalanceIdx);
+ ```
+ with
+ ```cpp
+values.setCouplingNeumann(scvf.directionIndex());
+ ```
+The same if true for the BJS condition, however, here we need to consider the tangential direction:
+```cpp
+values.setCouplingNeumann(1 - scvf.directionIndex());
+```
+
+The final result should look something like this:
+![](../extradoc/ex_ff-pm-wave-interface.png)
+
+
+### 3. Change the models
+
+1p2c/1p2c -->1p2c/2p2c
+
+__Task__:
+
+...
+
+### 4. ...
diff --git a/exercises/exercise-coupling-ff-pm/interface/1pspatialparams.hh b/exercises/exercise-coupling-ff-pm/interface/1pspatialparams.hh
new file mode 100644
index 00000000..9708c05b
--- /dev/null
+++ b/exercises/exercise-coupling-ff-pm/interface/1pspatialparams.hh
@@ -0,0 +1,96 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ * \ingroup OnePTests
+ * \brief The spatial parameters class for the test problem using the 1p cc model
+ */
+#ifndef DUMUX_1P_TEST_SPATIALPARAMS_HH
+#define DUMUX_1P_TEST_SPATIALPARAMS_HH
+
+#include <dumux/material/spatialparams/fv1p.hh>
+
+namespace Dumux
+{
+
+/*!
+ * \ingroup OnePModel
+ * \ingroup ImplicitTestProblems
+ *
+ * \brief The spatial parameters class for the test problem using the
+ *        1p cc model
+ */
+template<class TypeTag>
+class OnePSpatialParams
+: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
+                             typename GET_PROP_TYPE(TypeTag, Scalar),
+                             OnePSpatialParams<TypeTag>>
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePSpatialParams<TypeTag>>;
+
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+public:
+    // export permeability type
+    using PermeabilityType = Scalar;
+
+    OnePSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
+        : ParentType(fvGridGeometry)
+    {
+        permeability_ = getParam<Scalar>("Darcy.SpatialParams.Permeability");
+        alphaBJ_ = getParam<Scalar>("Darcy.SpatialParams.AlphaBeaversJoseph");
+    }
+
+    /*!
+     * \brief Function for defining the (intrinsic) permeability \f$[m^2]\f$.
+     *
+     * \param globalPos The global position
+     * \return the intrinsic permeability
+     */
+    PermeabilityType permeabilityAtPos(const GlobalPosition& globalPos) const
+    { return permeability_; }
+
+    /*! \brief Define the porosity in [-].
+     *
+     * \param globalPos The global position
+     */
+    Scalar porosityAtPos(const GlobalPosition& globalPos) const
+    { return 0.4; }
+
+    /*! \brief Define the Beavers-Joseph coefficient in [-].
+     *
+     * \param globalPos The global position
+     */
+    Scalar beaversJosephCoeffAtPos(const GlobalPosition& globalPos) const
+    { return alphaBJ_; }
+
+
+private:
+    Scalar permeability_;
+    Scalar alphaBJ_;
+};
+
+} // end namespace
+
+#endif
diff --git a/exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt b/exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt
new file mode 100644
index 00000000..249f34aa
--- /dev/null
+++ b/exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt
@@ -0,0 +1,9 @@
+add_input_file_links()
+
+# executables for ex_interface_coupling_ff-pm
+dune_add_test(NAME ex_interface_coupling_ff-pm
+              SOURCES ex_interface_coupling_ff-pm.cc
+              CMD_ARGS ex_interface_coupling_ff-pm.input)
+
+# add tutorial to the common target
+add_dependencies(test_exercises ex_interface_coupling_ff-pm)
diff --git a/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc b/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
new file mode 100644
index 00000000..85226b99
--- /dev/null
+++ b/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
@@ -0,0 +1,281 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ *
+ * \brief A test problem for the coupled Stokes/Darcy problem (1p)
+ */
+#include <config.h>
+
+#include <iostream>
+
+#include <dune/common/parallel/mpihelper.hh>
+#include <dune/istl/io.hh>
+
+#include <dumux/common/properties.hh>
+#include <dumux/common/parameters.hh>
+#include <dumux/common/dumuxmessage.hh>
+#include <dumux/linear/seqsolverbackend.hh>
+#include <dumux/assembly/fvassembler.hh>
+#include <dumux/assembly/diffmethod.hh>
+#include <dumux/discretization/methods.hh>
+#include <dumux/io/vtkoutputmodule.hh>
+#include <dumux/io/staggeredvtkoutputmodule.hh>
+#include <dumux/io/grid/gridmanager.hh>
+
+#include <dumux/multidomain/staggeredtraits.hh>
+#include <dumux/multidomain/fvassembler.hh>
+#include <dumux/multidomain/newtonsolver.hh>
+
+#include <dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh>
+
+#include "ex_interface_pmproblem.hh"
+#include "ex_interface_ffproblem.hh"
+
+namespace Dumux {
+namespace Properties {
+
+SET_PROP(StokesOnePTypeTag, CouplingManager)
+{
+    using Traits = StaggeredMultiDomainTraits<TypeTag, TypeTag, TTAG(DarcyOnePTypeTag)>;
+    using type = Dumux::StokesDarcyCouplingManager<Traits>;
+};
+
+SET_PROP(DarcyOnePTypeTag, CouplingManager)
+{
+    using Traits = StaggeredMultiDomainTraits<TTAG(StokesOnePTypeTag), TTAG(StokesOnePTypeTag), TypeTag>;
+    using type = Dumux::StokesDarcyCouplingManager<Traits>;
+};
+
+} // end namespace Properties
+} // end namespace Dumux
+
+int main(int argc, char** argv) try
+{
+    using namespace Dumux;
+
+    // initialize MPI, finalize is done automatically on exit
+    const auto& mpiHelper = Dune::MPIHelper::instance(argc, argv);
+
+    // print dumux start message
+    if (mpiHelper.rank() == 0)
+        DumuxMessage::print(/*firstCall=*/true);
+
+    // parse command line arguments and input file
+    Parameters::init(argc, argv);
+
+    // Define the sub problem type tags
+    using StokesTypeTag = TTAG(StokesOnePTypeTag);
+    using DarcyTypeTag = TTAG(DarcyOnePTypeTag);
+
+
+
+    // ******************** comment-out this section for the last exercise **************** //
+
+    // create two individual grids (from the given grid file or the input file)
+    // for both sub-domains
+    using DarcyGridManager = Dumux::GridManager<typename GET_PROP_TYPE(DarcyTypeTag, Grid)>;
+    DarcyGridManager darcyGridManager;
+    darcyGridManager.init("Darcy"); // pass parameter group
+
+    using StokesGridManager = Dumux::GridManager<typename GET_PROP_TYPE(StokesTypeTag, Grid)>;
+    StokesGridManager stokesGridManager;
+    stokesGridManager.init("Stokes"); // pass parameter group
+
+    // we compute on the leaf grid view
+    const auto& darcyGridView = darcyGridManager.grid().leafGridView();
+    const auto& stokesGridView = stokesGridManager.grid().leafGridView();
+
+    // ************************************************************************************ //
+
+
+    // ******************** uncomment this section for the last exercise ****************** //
+
+    // // use dune-subgrid to create the individual grids
+    // static constexpr int dim = 2;
+    // using HostGrid = Dune::YaspGrid<2, Dune::TensorProductCoordinates<double, dim> >;
+    // using HostGridManager = Dumux::GridManager<HostGrid>;
+    // HostGridManager hostGridManager;
+    // hostGridManager.init();
+    // auto& hostGrid = hostGridManager.grid();
+    //
+    // struct Params
+    // {
+    //     double amplitude = getParam<double>("Grid.Amplitude");
+    //     double baseline = getParam<double>("Grid.Baseline");
+    //     double offset = getParam<double>("Grid.Offset");
+    //     double scaling = getParam<double>("Grid.Scaling");
+    // };
+    //
+    // Params params;
+    //
+    // auto elementSelectorStokes = [&](const auto& element)
+    // {
+    //     double interface = params.amplitude * std::sin(( element.geometry().center()[0] -params.offset) / params.scaling * 2.0 * M_PI) + params.baseline;
+    //     return element.geometry().center()[1] > interface;
+    // };
+    //
+    // auto elementSelectorDarcy = [&](const auto& element)
+    // {
+    //     double interface  =  params.amplitude * std::sin(( element.geometry().center()[0] - params.offset) / params.scaling * 2.0 * M_PI) + params.baseline;
+    //     return element.geometry().center()[1] < interface;
+    // };
+    //
+    // // subgrid Pointer
+    // auto stokesGridPtr = SubgridGridCreator<HostGrid>::makeGrid(hostGrid, elementSelectorStokes, "Stokes");
+    // auto darcyGridPtr = SubgridGridCreator<HostGrid>::makeGrid(hostGrid, elementSelectorDarcy, "Darcy");
+    //
+    // // we compute on the leaf grid view
+    // const auto& darcyGridView = darcyGridPtr->leafGridView();
+    // const auto& stokesGridView = stokesGridPtr->leafGridView();
+
+    // ************************************************************************************ //
+
+
+    // create the finite volume grid geometry
+    using StokesFVGridGeometry = typename GET_PROP_TYPE(StokesTypeTag, FVGridGeometry);
+    auto stokesFvGridGeometry = std::make_shared<StokesFVGridGeometry>(stokesGridView);
+    stokesFvGridGeometry->update();
+    using DarcyFVGridGeometry = typename GET_PROP_TYPE(DarcyTypeTag, FVGridGeometry);
+    auto darcyFvGridGeometry = std::make_shared<DarcyFVGridGeometry>(darcyGridView);
+    darcyFvGridGeometry->update();
+
+    using Traits = StaggeredMultiDomainTraits<StokesTypeTag, StokesTypeTag, DarcyTypeTag>;
+
+    // the coupling manager
+    using CouplingManager = StokesDarcyCouplingManager<Traits>;
+    auto couplingManager = std::make_shared<CouplingManager>(stokesFvGridGeometry, darcyFvGridGeometry);
+
+    // the indices
+    constexpr auto stokesCellCenterIdx = CouplingManager::stokesCellCenterIdx;
+    constexpr auto stokesFaceIdx = CouplingManager::stokesFaceIdx;
+    constexpr auto darcyIdx = CouplingManager::darcyIdx;
+
+    // the problem (initial and boundary conditions)
+    using StokesProblem = typename GET_PROP_TYPE(StokesTypeTag, Problem);
+    auto stokesProblem = std::make_shared<StokesProblem>(stokesFvGridGeometry, couplingManager);
+    using DarcyProblem = typename GET_PROP_TYPE(DarcyTypeTag, Problem);
+    auto darcyProblem = std::make_shared<DarcyProblem>(darcyFvGridGeometry, couplingManager);
+
+    // the solution vector
+    Traits::SolutionVector sol;
+    sol[stokesCellCenterIdx].resize(stokesFvGridGeometry->numCellCenterDofs());
+    sol[stokesFaceIdx].resize(stokesFvGridGeometry->numFaceDofs());
+    sol[darcyIdx].resize(darcyFvGridGeometry->numDofs());
+
+    const auto& cellCenterSol = sol[stokesCellCenterIdx];
+    const auto& faceSol = sol[stokesFaceIdx];
+
+    // apply initial solution for instationary problems
+    typename GET_PROP_TYPE(StokesTypeTag, SolutionVector) stokesSol;
+    std::get<0>(stokesSol) = cellCenterSol;
+    std::get<1>(stokesSol) = faceSol;
+    stokesProblem->applyInitialSolution(stokesSol);
+    sol[stokesCellCenterIdx] = stokesSol[stokesCellCenterIdx];
+    sol[stokesFaceIdx] = stokesSol[stokesFaceIdx];
+
+    couplingManager->init(stokesProblem, darcyProblem, sol);
+
+    // the grid variables
+    using StokesGridVariables = typename GET_PROP_TYPE(StokesTypeTag, GridVariables);
+    auto stokesGridVariables = std::make_shared<StokesGridVariables>(stokesProblem, stokesFvGridGeometry);
+    stokesGridVariables->init(stokesSol);
+    using DarcyGridVariables = typename GET_PROP_TYPE(DarcyTypeTag, GridVariables);
+    auto darcyGridVariables = std::make_shared<DarcyGridVariables>(darcyProblem, darcyFvGridGeometry);
+    darcyGridVariables->init(sol[darcyIdx]);
+
+    // intialize the vtk output module
+    const auto stokesName = getParam<std::string>("Problem.Name") + "_" + stokesProblem->name();
+    const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
+
+    StaggeredVtkOutputModule<StokesTypeTag> stokesVtkWriter(*stokesProblem, *stokesFvGridGeometry, *stokesGridVariables, stokesSol, stokesName);
+    GET_PROP_TYPE(StokesTypeTag, VtkOutputFields)::init(stokesVtkWriter);
+
+    //****** uncomment the add analytical solution of v_x *****//
+    // stokesVtkWriter.addField(stokesProblem->getAnalyticalVelocityX(), "analyticalV_x");
+
+    stokesVtkWriter.write(0.0);
+
+    VtkOutputModule<DarcyTypeTag> darcyVtkWriter(*darcyProblem, *darcyFvGridGeometry, *darcyGridVariables, sol[darcyIdx], darcyName);
+    GET_PROP_TYPE(DarcyTypeTag, VtkOutputFields)::init(darcyVtkWriter);
+    darcyVtkWriter.write(0.0);
+
+    // the assembler for a stationary problem
+    using Assembler = MultiDomainFVAssembler<Traits, CouplingManager, DiffMethod::numeric>;
+    auto assembler = std::make_shared<Assembler>(std::make_tuple(stokesProblem, stokesProblem, darcyProblem),
+                                                 std::make_tuple(stokesFvGridGeometry->cellCenterFVGridGeometryPtr(),
+                                                                 stokesFvGridGeometry->faceFVGridGeometryPtr(),
+                                                                 darcyFvGridGeometry),
+                                                 std::make_tuple(stokesGridVariables->cellCenterGridVariablesPtr(),
+                                                                 stokesGridVariables->faceGridVariablesPtr(),
+                                                                 darcyGridVariables),
+                                                 couplingManager);
+
+    // the linear solver
+    using LinearSolver = UMFPackBackend;
+    auto linearSolver = std::make_shared<LinearSolver>();
+
+    // the non-linear solver
+    using NewtonSolver = MultiDomainNewtonSolver<Assembler, LinearSolver, CouplingManager>;
+    NewtonSolver nonLinearSolver(assembler, linearSolver, couplingManager);
+
+    // solve the non-linear system
+    nonLinearSolver.solve(sol);
+
+    // write vtk output
+    stokesVtkWriter.write(1.0);
+    darcyVtkWriter.write(1.0);
+
+    ////////////////////////////////////////////////////////////
+    // finalize, print dumux message to say goodbye
+    ////////////////////////////////////////////////////////////
+
+    // print dumux end message
+    if (mpiHelper.rank() == 0)
+    {
+        Parameters::print();
+        DumuxMessage::print(/*firstCall=*/false);
+    }
+
+    return 0;
+} // end main
+catch (Dumux::ParameterException &e)
+{
+    std::cerr << std::endl << e << " ---> Abort!" << std::endl;
+    return 1;
+}
+catch (Dune::DGFException & e)
+{
+    std::cerr << "DGF exception thrown (" << e <<
+                 "). Most likely, the DGF file name is wrong "
+                 "or the DGF file is corrupted, "
+                 "e.g. missing hash at end of file or wrong number (dimensions) of entries."
+                 << " ---> Abort!" << std::endl;
+    return 2;
+}
+catch (Dune::Exception &e)
+{
+    std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl;
+    return 3;
+}
+catch (...)
+{
+    std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl;
+    return 4;
+}
diff --git a/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.input b/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.input
new file mode 100644
index 00000000..bd16b9e8
--- /dev/null
+++ b/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.input
@@ -0,0 +1,44 @@
+ # for dune-subgrid
+ [Grid]
+Positions0 = 0 1
+Positions1 = 0 0.2 0.3 0.65
+Cells0 = 100
+Cells1 = 10 50 18
+Baseline = 0.25 # [m]
+Amplitude = 0.04 # [m]
+Offset = 0.5 # [m]
+Scaling = 0.2 #[m]
+
+[Stokes.Grid]
+Verbosity = true
+Positions0 = 0.0 1.0
+Positions1 = 1.0 2.0
+Cells0 = 20
+Cells1 = 100
+Grading1 = 1
+
+[Darcy.Grid]
+Verbosity = true
+Positions0 = 0.0 1.0
+Positions1 = 0.0 1.0
+Cells0 = 20
+Cells1 = 20
+Grading1 = 1
+
+[Stokes.Problem]
+Name = stokes
+PressureDifference = 1e-9
+
+[Darcy.Problem]
+Name = darcy
+
+[Darcy.SpatialParams]
+Permeability = 1e-6 # m^2
+AlphaBeaversJoseph = 1.0
+
+[Problem]
+Name = ex_ff-pm-interface
+EnableGravity = false
+
+[Vtk]
+AddVelocity = 1
diff --git a/exercises/exercise-coupling-ff-pm/interface/ex_interface_ffproblem.hh b/exercises/exercise-coupling-ff-pm/interface/ex_interface_ffproblem.hh
new file mode 100644
index 00000000..48d29d66
--- /dev/null
+++ b/exercises/exercise-coupling-ff-pm/interface/ex_interface_ffproblem.hh
@@ -0,0 +1,323 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ * \brief The free flow sub problem
+ */
+#ifndef DUMUX_STOKES_SUBPROBLEM_HH
+#define DUMUX_STOKES_SUBPROBLEM_HH
+
+#include <dune/grid/yaspgrid.hh>
+
+//****** uncomment for the last exercise *****//
+// #include <dumux/io/grid/subgridgridcreator.hh>
+
+#include <dumux/material/fluidsystems/1pliquid.hh>
+#include <dumux/material/components/simpleh2o.hh>
+
+#include <dumux/freeflow/navierstokes/problem.hh>
+#include <dumux/discretization/staggered/freeflow/properties.hh>
+#include <dumux/freeflow/navierstokes/model.hh>
+
+namespace Dumux
+{
+template <class TypeTag>
+class StokesSubProblem;
+
+namespace Properties
+{
+NEW_TYPE_TAG(StokesOnePTypeTag, INHERITS_FROM(StaggeredFreeFlowModel, NavierStokes));
+
+// the fluid system
+SET_PROP(StokesOnePTypeTag, FluidSystem)
+{
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FluidSystems::OnePLiquid<Scalar, Dumux::Components::SimpleH2O<Scalar> > ;
+};
+
+// Set the grid type
+SET_PROP(StokesOnePTypeTag, Grid)
+{
+    static constexpr auto dim = 2;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using TensorGrid = Dune::YaspGrid<2, Dune::TensorProductCoordinates<Scalar, dim> >;
+
+//****** comment out for the last exercise *****//
+    using type = TensorGrid;
+
+//****** uncomment for the last exercise *****//
+    // using HostGrid = TensorGrid;
+    // using type = Dune::SubGrid<dim, HostGrid>;
+};
+
+// Set the problem property
+SET_TYPE_PROP(StokesOnePTypeTag, Problem, Dumux::StokesSubProblem<TypeTag> );
+
+SET_BOOL_PROP(StokesOnePTypeTag, EnableFVGridGeometryCache, true);
+SET_BOOL_PROP(StokesOnePTypeTag, EnableGridFluxVariablesCache, true);
+SET_BOOL_PROP(StokesOnePTypeTag, EnableGridVolumeVariablesCache, true);
+
+SET_BOOL_PROP(StokesOnePTypeTag, EnableInertiaTerms, false);
+}
+
+/*!
+ * \brief The free flow sub problem
+ */
+template <class TypeTag>
+class StokesSubProblem : public NavierStokesProblem<TypeTag>
+{
+    using ParentType = NavierStokesProblem<TypeTag>;
+
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+
+    using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices;
+
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using FVElementGeometry = typename FVGridGeometry::LocalView;
+    using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
+    using Element = typename GridView::template Codim<0>::Entity;
+
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+
+    using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager);
+
+public:
+    StokesSubProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, std::shared_ptr<CouplingManager> couplingManager)
+    : ParentType(fvGridGeometry, "Stokes"), eps_(1e-6), couplingManager_(couplingManager)
+    {
+        deltaP_ = getParamFromGroup<Scalar>(this->paramGroup(), "Problem.PressureDifference");
+    }
+
+   /*!
+     * \name Problem parameters
+     */
+    // \{
+
+   /*!
+     * \brief Return the temperature within the domain in [K].
+     *
+     * This problem assumes a temperature of 10 degrees Celsius.
+     */
+    Scalar temperature() const
+    { return 273.15 + 10; } // 10°C
+
+   /*!
+     * \brief Return the sources within the domain.
+     *
+     * \param globalPos The global position
+     */
+    NumEqVector sourceAtPos(const GlobalPosition &globalPos) const
+    { return NumEqVector(0.0); }
+    // \}
+
+   /*!
+     * \name Boundary conditions
+     */
+    // \{
+
+    /*!
+     * \brief Specifies which kind of boundary condition should be
+     *        used for which equation on a given boundary segment.
+     *
+     * \param element The finite element
+     * \param scvf The sub control volume face
+     */
+    BoundaryTypes boundaryTypes(const Element& element,
+                                const SubControlVolumeFace& scvf) const
+    {
+        BoundaryTypes values;
+
+        const auto& globalPos = scvf.dofPosition();
+
+        if(onUpperBoundary_(globalPos))
+        {
+            values.setDirichlet(Indices::velocityXIdx);
+            values.setDirichlet(Indices::velocityYIdx);
+        }
+
+        // left/right wall
+        if (onRightBoundary_(globalPos) || (onLeftBoundary_(globalPos)))
+        {
+            values.setDirichlet(Indices::velocityXIdx);
+            values.setDirichlet(Indices::velocityYIdx);
+        }
+
+        // coupling interface
+        if(couplingManager().isCoupledEntity(CouplingManager::stokesIdx, scvf))
+        {
+            values.setCouplingNeumann(Indices::conti0EqIdx);
+            values.setCouplingNeumann(Indices::momentumYBalanceIdx);
+        }
+
+        return values;
+    }
+
+    /*!
+     * \brief Evaluate the boundary conditions for a Dirichlet control volume.
+     *
+     * \param globalPos The global position
+     */
+    PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const
+    {
+        PrimaryVariables values(0.0);
+        values = initialAtPos(globalPos);
+
+        return values;
+    }
+
+    /*!
+     * \brief Evaluate the boundary conditions for a Neumann control volume.
+     *
+     * \param element The element for which the Neumann boundary condition is set
+     * \param fvGeomentry The fvGeometry
+     * \param elemVolVars The element volume variables
+     * \param elemFaceVars The element face variables
+     * \param scvf The boundary sub control volume face
+     */
+    template<class ElementVolumeVariables, class ElementFaceVariables>
+    NumEqVector neumann(const Element& element,
+                        const FVElementGeometry& fvGeometry,
+                        const ElementVolumeVariables& elemVolVars,
+                        const ElementFaceVariables& elemFaceVars,
+                        const SubControlVolumeFace& scvf) const
+    {
+        NumEqVector values(0.0);
+
+        if(couplingManager().isCoupledEntity(CouplingManager::stokesIdx, scvf))
+        {
+            values[Indices::conti0EqIdx] = couplingManager().couplingData().massCouplingCondition(fvGeometry, elemVolVars, elemFaceVars, scvf);
+            values[Indices::momentumYBalanceIdx] = couplingManager().couplingData().momentumCouplingCondition(fvGeometry, elemVolVars, elemFaceVars, scvf);
+        }
+
+        return values;
+    }
+
+    // \}
+
+    //! Set the coupling manager
+    void setCouplingManager(std::shared_ptr<CouplingManager> cm)
+    { couplingManager_ = cm; }
+
+    //! Get the coupling manager
+    const CouplingManager& couplingManager() const
+    { return *couplingManager_; }
+
+   /*!
+     * \name Volume terms
+     */
+    // \{
+
+   /*!
+     * \brief Evaluate the initial value for a control volume.
+     *
+     * \param globalPos The global position
+     */
+    PrimaryVariables initialAtPos(const GlobalPosition &globalPos) const
+    {
+        PrimaryVariables values(0.0);
+        values[Indices::velocityYIdx] = -1e-6 * globalPos[0] * (this->fvGridGeometry().bBoxMax()[0] - globalPos[0]);
+
+        return values;
+    }
+
+    /*!
+     * \brief Returns the intrinsic permeability of required as input parameter for the Beavers-Joseph-Saffman boundary condition
+     */
+    Scalar permeability(const SubControlVolumeFace& scvf) const
+    {
+        return couplingManager().couplingData().darcyPermeability(scvf);
+    }
+
+    /*!
+     * \brief Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition
+     */
+    Scalar alphaBJ(const SubControlVolumeFace& scvf) const
+    {
+        return couplingManager().problem(CouplingManager::darcyIdx).spatialParams().beaversJosephCoeffAtPos(scvf.center());
+    }
+
+    /*!
+     * \brief calculate the analytical velocity in x direction based on Beavers & Joseph (1967)
+     */
+    void calculateAnalyticalVelocityX() const
+    {
+        analyticalVelocityX_.resize(this->fvGridGeometry().gridView().size(0));
+
+        using std::sqrt;
+        const Scalar dPdX = -deltaP_ / (this->fvGridGeometry().bBoxMax()[0] - this->fvGridGeometry().bBoxMin()[0]);
+        static const Scalar mu = FluidSystem::viscosity(temperature(), 1e5);
+        static const Scalar alpha = getParam<Scalar>("Darcy.SpatialParams.AlphaBeaversJoseph");
+        static const Scalar K = getParam<Scalar>("Darcy.SpatialParams.Permeability");
+        static const Scalar sqrtK = sqrt(K);
+        const Scalar sigma = (this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1])/sqrtK;
+
+        const Scalar uB =  -K/(2.0*mu) * ((sigma*sigma + 2.0*alpha*sigma) / (1.0 + alpha*sigma)) * dPdX;
+
+        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        {
+            const auto eIdx = this->fvGridGeometry().gridView().indexSet().index(element);
+            const Scalar y = element.geometry().center()[1] - this->fvGridGeometry().bBoxMin()[1];
+
+            const Scalar u = uB*(1.0 + alpha/sqrtK*y) + 1.0/(2.0*mu) * (y*y + 2*alpha*y*sqrtK) * dPdX;
+            analyticalVelocityX_[eIdx] = u;
+        }
+    }
+
+    /*!
+     * \brief Get the analytical velocity in x direction
+     */
+    const std::vector<Scalar>& getAnalyticalVelocityX() const
+    {
+        if(analyticalVelocityX_.empty())
+            calculateAnalyticalVelocityX();
+        return analyticalVelocityX_;
+    }
+
+    // \}
+
+private:
+    bool onLeftBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+
+    bool onRightBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+
+    bool onLowerBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+
+    bool onUpperBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+
+    Scalar eps_;
+    Scalar deltaP_;
+
+    std::shared_ptr<CouplingManager> couplingManager_;
+
+    mutable std::vector<Scalar> analyticalVelocityX_;
+};
+} //end namespace
+
+#endif // DUMUX_STOKES_SUBPROBLEM_HH
diff --git a/exercises/exercise-coupling-ff-pm/interface/ex_interface_pmproblem.hh b/exercises/exercise-coupling-ff-pm/interface/ex_interface_pmproblem.hh
new file mode 100644
index 00000000..8013d5aa
--- /dev/null
+++ b/exercises/exercise-coupling-ff-pm/interface/ex_interface_pmproblem.hh
@@ -0,0 +1,251 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+* \file
+*
+* \brief The porous medium flow sub problem
+*/
+#ifndef DUMUX_DARCY_SUBPROBLEM_HH
+#define DUMUX_DARCY_SUBPROBLEM_HH
+
+#include <dune/grid/yaspgrid.hh>
+
+//****** uncomment for the last exercise *****//
+// #include <dumux/io/grid/subgridgridcreator.hh>
+
+#include <dumux/discretization/cellcentered/tpfa/properties.hh>
+
+#include <dumux/porousmediumflow/1p/model.hh>
+#include <dumux/porousmediumflow/problem.hh>
+
+#include "1pspatialparams.hh"
+
+#include <dumux/material/components/simpleh2o.hh>
+#include <dumux/material/fluidsystems/1pliquid.hh>
+
+namespace Dumux
+{
+template <class TypeTag>
+class DarcySubProblem;
+
+namespace Properties
+{
+NEW_TYPE_TAG(DarcyOnePTypeTag, INHERITS_FROM(CCTpfaModel, OneP));
+
+// Set the problem property
+SET_TYPE_PROP(DarcyOnePTypeTag, Problem, Dumux::DarcySubProblem<TypeTag>);
+
+// the fluid system
+SET_PROP(DarcyOnePTypeTag, FluidSystem)
+{
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FluidSystems::OnePLiquid<Scalar, Dumux::Components::SimpleH2O<Scalar> > ;
+};
+
+// Set the grid type
+SET_PROP(DarcyOnePTypeTag, Grid)
+{
+    static constexpr auto dim = 2;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using TensorGrid = Dune::YaspGrid<2, Dune::TensorProductCoordinates<Scalar, dim> >;
+
+//****** comment out for the last exercise *****//
+    using type = TensorGrid;
+
+//****** uncomment for the last exercise *****//
+    // using HostGrid = TensorGrid;
+    // using type = Dune::SubGrid<dim, HostGrid>;
+};
+
+SET_TYPE_PROP(DarcyOnePTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+}
+
+/*!
+ * \brief The porous medium flow sub problem
+ */
+template <class TypeTag>
+class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
+{
+    using ParentType = PorousMediumFlowProblem<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry)::LocalView;
+    using SubControlVolume = typename FVElementGeometry::SubControlVolume;
+    using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+
+    using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices;
+
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+    using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager);
+
+public:
+    DarcySubProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                   std::shared_ptr<CouplingManager> couplingManager)
+    : ParentType(fvGridGeometry, "Darcy"), eps_(1e-7), couplingManager_(couplingManager)
+    {}
+
+    /*!
+     * \name Simulation steering
+     */
+    // \{
+
+    /*!
+     * \brief Return the temperature within the domain in [K].
+     *
+     */
+    Scalar temperature() const
+    { return 273.15 + 10; } // 10°C
+    // \}
+
+    /*!
+     * \name Boundary conditions
+     */
+    // \{
+
+    /*!
+      * \brief Specifies which kind of boundary condition should be
+      *        used for which equation on a given boundary control volume.
+      *
+      * \param element The element
+      * \param scvf The boundary sub control volume face
+      */
+    BoundaryTypes boundaryTypes(const Element &element, const SubControlVolumeFace &scvf) const
+    {
+        BoundaryTypes values;
+        values.setAllNeumann();
+
+        if (onLowerBoundary_(scvf.center()))
+            values.setAllDirichlet();
+
+        return values;
+    }
+
+        /*!
+     * \brief Evaluate the boundary conditions for a Dirichlet control volume.
+     *
+     * \param element The element for which the Dirichlet boundary condition is set
+     * \param scvf The boundary subcontrolvolumeface
+     *
+     * For this method, the \a values parameter stores primary variables.
+     */
+    PrimaryVariables dirichlet(const Element &element, const SubControlVolumeFace &scvf) const
+    {
+        PrimaryVariables values(0.0);
+        values = initial(element);
+
+        return values;
+    }
+
+    /*!
+     * \brief Evaluate the boundary conditions for a Neumann control volume.
+     *
+     * \param element The element for which the Neumann boundary condition is set
+     * \param fvGeomentry The fvGeometry
+     * \param elemVolVars The element volume variables
+     * \param scvf The boundary sub control volume face
+     *
+     * For this method, the \a values variable stores primary variables.
+     */
+    template<class ElementVolumeVariables>
+    NumEqVector neumann(const Element& element,
+                        const FVElementGeometry& fvGeometry,
+                        const ElementVolumeVariables& elemVolVars,
+                        const SubControlVolumeFace& scvf) const
+    {
+        NumEqVector values(0.0);
+
+        if (couplingManager().isCoupledEntity(CouplingManager::darcyIdx, scvf))
+            values[Indices::conti0EqIdx] = couplingManager().couplingData().massCouplingCondition(fvGeometry, elemVolVars, scvf);
+
+        return values;
+    }
+
+    // \}
+
+    /*!
+     * \name Volume terms
+     */
+    // \{
+    /*!
+     * \brief Evaluate the source term for all phases within a given
+     *        sub-control-volume.
+     *
+     * \param element The element for which the source term is set
+     * \param fvGeomentry The fvGeometry
+     * \param elemVolVars The element volume variables
+     * \param scv The subcontrolvolume
+     */
+    template<class ElementVolumeVariables>
+    NumEqVector source(const Element &element,
+                       const FVElementGeometry& fvGeometry,
+                       const ElementVolumeVariables& elemVolVars,
+                       const SubControlVolume &scv) const
+    { return NumEqVector(0.0); }
+
+    // \}
+
+    /*!
+     * \brief Evaluate the initial value for a control volume.
+     *
+     * \param element The element
+     *
+     * For this method, the \a priVars parameter stores primary
+     * variables.
+     */
+    PrimaryVariables initial(const Element &element) const
+    {
+        return PrimaryVariables(0.0);
+    }
+
+    // \}
+
+    //! Set the coupling manager
+    void setCouplingManager(std::shared_ptr<CouplingManager> cm)
+    { couplingManager_ = cm; }
+
+    //! Get the coupling manager
+    const CouplingManager& couplingManager() const
+    { return *couplingManager_; }
+
+private:
+    bool onLeftBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+
+    bool onRightBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+
+    bool onLowerBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+
+    bool onUpperBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+
+    Scalar eps_;
+    std::shared_ptr<CouplingManager> couplingManager_;
+};
+} //end namespace
+
+#endif //DUMUX_DARCY_SUBPROBLEM_HH
diff --git a/exercises/extradoc/ex_ff-pm-vertical-flow.png b/exercises/extradoc/ex_ff-pm-vertical-flow.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c771210ad0f7d1c2d37a6f077642a32925483b4
GIT binary patch
literal 47564
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
XOeFWOJj!Je2>6ndQkE<iHwyeOJ5#zR

literal 0
HcmV?d00001

diff --git a/exercises/extradoc/ex_ff-pm-wave-interface.png b/exercises/extradoc/ex_ff-pm-wave-interface.png
new file mode 100644
index 0000000000000000000000000000000000000000..15c3a01caebfdd30885afd462f9eff4313436bd5
GIT binary patch
literal 89922
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

literal 0
HcmV?d00001

diff --git a/exercises/solution/CMakeLists.txt b/exercises/solution/CMakeLists.txt
index 50ac3c62..b55b7ace 100644
--- a/exercises/solution/CMakeLists.txt
+++ b/exercises/solution/CMakeLists.txt
@@ -1,4 +1,5 @@
 add_subdirectory(exercise-basic)
+add_subdirectory(exercise-coupling-ff-pm)
 add_subdirectory(exercise-fluidsystem)
 add_subdirectory(exercise-grids)
 add_subdirectory(exercise-mainfile)
diff --git a/exercises/solution/exercise-coupling-ff-pm/CMakeLists.txt b/exercises/solution/exercise-coupling-ff-pm/CMakeLists.txt
new file mode 100644
index 00000000..cc41f095
--- /dev/null
+++ b/exercises/solution/exercise-coupling-ff-pm/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(interface)
diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/1pspatialparams.hh b/exercises/solution/exercise-coupling-ff-pm/interface/1pspatialparams.hh
new file mode 100644
index 00000000..9708c05b
--- /dev/null
+++ b/exercises/solution/exercise-coupling-ff-pm/interface/1pspatialparams.hh
@@ -0,0 +1,96 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ * \ingroup OnePTests
+ * \brief The spatial parameters class for the test problem using the 1p cc model
+ */
+#ifndef DUMUX_1P_TEST_SPATIALPARAMS_HH
+#define DUMUX_1P_TEST_SPATIALPARAMS_HH
+
+#include <dumux/material/spatialparams/fv1p.hh>
+
+namespace Dumux
+{
+
+/*!
+ * \ingroup OnePModel
+ * \ingroup ImplicitTestProblems
+ *
+ * \brief The spatial parameters class for the test problem using the
+ *        1p cc model
+ */
+template<class TypeTag>
+class OnePSpatialParams
+: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
+                             typename GET_PROP_TYPE(TypeTag, Scalar),
+                             OnePSpatialParams<TypeTag>>
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePSpatialParams<TypeTag>>;
+
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+public:
+    // export permeability type
+    using PermeabilityType = Scalar;
+
+    OnePSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
+        : ParentType(fvGridGeometry)
+    {
+        permeability_ = getParam<Scalar>("Darcy.SpatialParams.Permeability");
+        alphaBJ_ = getParam<Scalar>("Darcy.SpatialParams.AlphaBeaversJoseph");
+    }
+
+    /*!
+     * \brief Function for defining the (intrinsic) permeability \f$[m^2]\f$.
+     *
+     * \param globalPos The global position
+     * \return the intrinsic permeability
+     */
+    PermeabilityType permeabilityAtPos(const GlobalPosition& globalPos) const
+    { return permeability_; }
+
+    /*! \brief Define the porosity in [-].
+     *
+     * \param globalPos The global position
+     */
+    Scalar porosityAtPos(const GlobalPosition& globalPos) const
+    { return 0.4; }
+
+    /*! \brief Define the Beavers-Joseph coefficient in [-].
+     *
+     * \param globalPos The global position
+     */
+    Scalar beaversJosephCoeffAtPos(const GlobalPosition& globalPos) const
+    { return alphaBJ_; }
+
+
+private:
+    Scalar permeability_;
+    Scalar alphaBJ_;
+};
+
+} // end namespace
+
+#endif
diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt b/exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt
new file mode 100644
index 00000000..24d0d12e
--- /dev/null
+++ b/exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt
@@ -0,0 +1,25 @@
+add_input_file_links()
+
+dune_add_test(NAME orig_ex_interface_coupling_ff-pm
+              SOURCES ex_interface_coupling_ff-pm.cc
+              COMPILE_DEFINITIONS EXNUMBER=0
+              CMD_ARGS ex_interface_coupling_ff-pm.input)
+
+dune_add_test(NAME sol_a_ex_interface_coupling_ff-pm
+              SOURCES ex_interface_coupling_ff-pm.cc
+              COMPILE_DEFINITIONS EXNUMBER=1
+              CMD_ARGS ex_interface_coupling_ff-pm.input)
+
+dune_add_test(NAME sol_b_ex_interface_coupling_ff-pm
+              SOURCES ex_interface_coupling_ff-pm.cc
+              COMPILE_DEFINITIONS EXNUMBER=2
+              CMD_ARGS ex_interface_coupling_ff-pm.input)
+
+dune_add_test(NAME sol_c_ex_interface_coupling_ff-pm
+              SOURCES ex_interface_coupling_ff-pm.cc
+              COMPILE_DEFINITIONS EXNUMBER=3
+              CMD_ARGS ex_interface_coupling_ff-pm.input)
+
+
+# add exercise to the common target
+add_dependencies(test_exercises sol_a_ex_interface_coupling_ff-pm sol_b_ex_interface_coupling_ff-pm sol_b_ex_interface_coupling_ff-pm)
diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
new file mode 100644
index 00000000..116ed7e2
--- /dev/null
+++ b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
@@ -0,0 +1,274 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ *
+ * \brief A test problem for the coupled Stokes/Darcy problem (1p)
+ */
+#include <config.h>
+
+#include <iostream>
+
+#include <dune/common/parallel/mpihelper.hh>
+#include <dune/istl/io.hh>
+
+#include <dumux/common/properties.hh>
+#include <dumux/common/parameters.hh>
+#include <dumux/common/dumuxmessage.hh>
+#include <dumux/linear/seqsolverbackend.hh>
+#include <dumux/assembly/fvassembler.hh>
+#include <dumux/assembly/diffmethod.hh>
+#include <dumux/discretization/methods.hh>
+#include <dumux/io/vtkoutputmodule.hh>
+#include <dumux/io/staggeredvtkoutputmodule.hh>
+#include <dumux/io/grid/gridmanager.hh>
+
+#include <dumux/multidomain/staggeredtraits.hh>
+#include <dumux/multidomain/fvassembler.hh>
+#include <dumux/multidomain/newtonsolver.hh>
+
+#include <dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh>
+
+#include "ex_interface_pmproblem.hh"
+#include "ex_interface_ffproblem.hh"
+
+namespace Dumux {
+namespace Properties {
+
+SET_PROP(StokesOnePTypeTag, CouplingManager)
+{
+    using Traits = StaggeredMultiDomainTraits<TypeTag, TypeTag, TTAG(DarcyOnePTypeTag)>;
+    using type = Dumux::StokesDarcyCouplingManager<Traits>;
+};
+
+SET_PROP(DarcyOnePTypeTag, CouplingManager)
+{
+    using Traits = StaggeredMultiDomainTraits<TTAG(StokesOnePTypeTag), TTAG(StokesOnePTypeTag), TypeTag>;
+    using type = Dumux::StokesDarcyCouplingManager<Traits>;
+};
+
+} // end namespace Properties
+} // end namespace Dumux
+
+int main(int argc, char** argv) try
+{
+    using namespace Dumux;
+
+    // initialize MPI, finalize is done automatically on exit
+    const auto& mpiHelper = Dune::MPIHelper::instance(argc, argv);
+
+    // print dumux start message
+    if (mpiHelper.rank() == 0)
+        DumuxMessage::print(/*firstCall=*/true);
+
+    // parse command line arguments and input file
+    Parameters::init(argc, argv);
+
+    // Define the sub problem type tags
+    using StokesTypeTag = TTAG(StokesOnePTypeTag);
+    using DarcyTypeTag = TTAG(DarcyOnePTypeTag);
+
+#if EXNUMBER < 3
+    // try to create a grid (from the given grid file or the input file)
+    // for both sub-domains
+    using DarcyGridManager = Dumux::GridManager<typename GET_PROP_TYPE(DarcyTypeTag, Grid)>;
+    DarcyGridManager darcyGridManager;
+    darcyGridManager.init("Darcy"); // pass parameter group
+
+    using StokesGridManager = Dumux::GridManager<typename GET_PROP_TYPE(StokesTypeTag, Grid)>;
+    StokesGridManager stokesGridManager;
+    stokesGridManager.init("Stokes"); // pass parameter group
+
+    // we compute on the leaf grid view
+    const auto& darcyGridView = darcyGridManager.grid().leafGridView();
+    const auto& stokesGridView = stokesGridManager.grid().leafGridView();
+#else
+    // use dune-subgrid to create the individual grids
+    static constexpr int dim = 2;
+    using HostGrid = Dune::YaspGrid<2, Dune::TensorProductCoordinates<double, dim> >;
+    using HostGridManager = Dumux::GridManager<HostGrid>;
+    HostGridManager hostGridManager;
+    hostGridManager.init();
+    auto& hostGrid = hostGridManager.grid();
+
+    struct Params
+    {
+        double amplitude = getParam<double>("Grid.Amplitude");
+        double baseline = getParam<double>("Grid.Baseline");
+        double offset = getParam<double>("Grid.Offset");
+        double scaling = getParam<double>("Grid.Scaling");
+    };
+
+    Params params;
+
+    auto elementSelectorStokes = [&](const auto& element)
+    {
+        double interface = params.amplitude * std::sin(( element.geometry().center()[0] -params.offset) / params.scaling * 2.0 * M_PI) + params.baseline;
+        return element.geometry().center()[1] > interface;
+    };
+
+    auto elementSelectorDarcy = [&](const auto& element)
+    {
+        double interface  =  params.amplitude * std::sin(( element.geometry().center()[0] - params.offset) / params.scaling * 2.0 * M_PI) + params.baseline;
+        return element.geometry().center()[1] < interface;
+    };
+
+    // subgrid Pointer
+    auto stokesGridPtr = SubgridGridCreator<HostGrid>::makeGrid(hostGrid, elementSelectorStokes, "Stokes");
+    auto darcyGridPtr = SubgridGridCreator<HostGrid>::makeGrid(hostGrid, elementSelectorDarcy, "Darcy");
+
+    // we compute on the leaf grid view
+    const auto& darcyGridView = darcyGridPtr->leafGridView();
+    const auto& stokesGridView = stokesGridPtr->leafGridView();
+
+#endif
+
+
+    // create the finite volume grid geometry
+    using StokesFVGridGeometry = typename GET_PROP_TYPE(StokesTypeTag, FVGridGeometry);
+    auto stokesFvGridGeometry = std::make_shared<StokesFVGridGeometry>(stokesGridView);
+    stokesFvGridGeometry->update();
+    using DarcyFVGridGeometry = typename GET_PROP_TYPE(DarcyTypeTag, FVGridGeometry);
+    auto darcyFvGridGeometry = std::make_shared<DarcyFVGridGeometry>(darcyGridView);
+    darcyFvGridGeometry->update();
+
+    using Traits = StaggeredMultiDomainTraits<StokesTypeTag, StokesTypeTag, DarcyTypeTag>;
+
+    // the coupling manager
+    using CouplingManager = StokesDarcyCouplingManager<Traits>;
+    auto couplingManager = std::make_shared<CouplingManager>(stokesFvGridGeometry, darcyFvGridGeometry);
+
+    // the indices
+    constexpr auto stokesCellCenterIdx = CouplingManager::stokesCellCenterIdx;
+    constexpr auto stokesFaceIdx = CouplingManager::stokesFaceIdx;
+    constexpr auto darcyIdx = CouplingManager::darcyIdx;
+
+    // the problem (initial and boundary conditions)
+    using StokesProblem = typename GET_PROP_TYPE(StokesTypeTag, Problem);
+    auto stokesProblem = std::make_shared<StokesProblem>(stokesFvGridGeometry, couplingManager);
+    using DarcyProblem = typename GET_PROP_TYPE(DarcyTypeTag, Problem);
+    auto darcyProblem = std::make_shared<DarcyProblem>(darcyFvGridGeometry, couplingManager);
+
+    // the solution vector
+    Traits::SolutionVector sol;
+    sol[stokesCellCenterIdx].resize(stokesFvGridGeometry->numCellCenterDofs());
+    sol[stokesFaceIdx].resize(stokesFvGridGeometry->numFaceDofs());
+    sol[darcyIdx].resize(darcyFvGridGeometry->numDofs());
+
+    const auto& cellCenterSol = sol[stokesCellCenterIdx];
+    const auto& faceSol = sol[stokesFaceIdx];
+
+    // apply initial solution for instationary problems
+    typename GET_PROP_TYPE(StokesTypeTag, SolutionVector) stokesSol;
+    std::get<0>(stokesSol) = cellCenterSol;
+    std::get<1>(stokesSol) = faceSol;
+    stokesProblem->applyInitialSolution(stokesSol);
+    sol[stokesCellCenterIdx] = stokesSol[stokesCellCenterIdx];
+    sol[stokesFaceIdx] = stokesSol[stokesFaceIdx];
+
+    couplingManager->init(stokesProblem, darcyProblem, sol);
+
+    // the grid variables
+    using StokesGridVariables = typename GET_PROP_TYPE(StokesTypeTag, GridVariables);
+    auto stokesGridVariables = std::make_shared<StokesGridVariables>(stokesProblem, stokesFvGridGeometry);
+    stokesGridVariables->init(stokesSol);
+    using DarcyGridVariables = typename GET_PROP_TYPE(DarcyTypeTag, GridVariables);
+    auto darcyGridVariables = std::make_shared<DarcyGridVariables>(darcyProblem, darcyFvGridGeometry);
+    darcyGridVariables->init(sol[darcyIdx]);
+
+    // intialize the vtk output module
+    const auto stokesName = getParam<std::string>("Problem.Name") + "_" + stokesProblem->name();
+    const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
+
+    StaggeredVtkOutputModule<StokesTypeTag> stokesVtkWriter(*stokesProblem, *stokesFvGridGeometry, *stokesGridVariables, stokesSol, stokesName);
+    GET_PROP_TYPE(StokesTypeTag, VtkOutputFields)::init(stokesVtkWriter);
+
+#if EXNUMBER >= 2
+    stokesVtkWriter.addField(stokesProblem->getAnalyticalVelocityX(), "analyticalV_x");
+#endif
+
+    stokesVtkWriter.write(0.0);
+
+    VtkOutputModule<DarcyTypeTag> darcyVtkWriter(*darcyProblem, *darcyFvGridGeometry, *darcyGridVariables, sol[darcyIdx], darcyName);
+    GET_PROP_TYPE(DarcyTypeTag, VtkOutputFields)::init(darcyVtkWriter);
+    darcyVtkWriter.write(0.0);
+
+    // the assembler for a stationary problem
+    using Assembler = MultiDomainFVAssembler<Traits, CouplingManager, DiffMethod::numeric>;
+    auto assembler = std::make_shared<Assembler>(std::make_tuple(stokesProblem, stokesProblem, darcyProblem),
+                                                 std::make_tuple(stokesFvGridGeometry->cellCenterFVGridGeometryPtr(),
+                                                                 stokesFvGridGeometry->faceFVGridGeometryPtr(),
+                                                                 darcyFvGridGeometry),
+                                                 std::make_tuple(stokesGridVariables->cellCenterGridVariablesPtr(),
+                                                                 stokesGridVariables->faceGridVariablesPtr(),
+                                                                 darcyGridVariables),
+                                                 couplingManager);
+
+    // the linear solver
+    using LinearSolver = UMFPackBackend;
+    auto linearSolver = std::make_shared<LinearSolver>();
+
+    // the non-linear solver
+    using NewtonSolver = MultiDomainNewtonSolver<Assembler, LinearSolver, CouplingManager>;
+    NewtonSolver nonLinearSolver(assembler, linearSolver, couplingManager);
+
+    // solve the non-linear system
+    nonLinearSolver.solve(sol);
+
+    // write vtk output
+    stokesVtkWriter.write(1.0);
+    darcyVtkWriter.write(1.0);
+
+    ////////////////////////////////////////////////////////////
+    // finalize, print dumux message to say goodbye
+    ////////////////////////////////////////////////////////////
+
+    // print dumux end message
+    if (mpiHelper.rank() == 0)
+    {
+        Parameters::print();
+        DumuxMessage::print(/*firstCall=*/false);
+    }
+
+    return 0;
+} // end main
+catch (Dumux::ParameterException &e)
+{
+    std::cerr << std::endl << e << " ---> Abort!" << std::endl;
+    return 1;
+}
+catch (Dune::DGFException & e)
+{
+    std::cerr << "DGF exception thrown (" << e <<
+                 "). Most likely, the DGF file name is wrong "
+                 "or the DGF file is corrupted, "
+                 "e.g. missing hash at end of file or wrong number (dimensions) of entries."
+                 << " ---> Abort!" << std::endl;
+    return 2;
+}
+catch (Dune::Exception &e)
+{
+    std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl;
+    return 3;
+}
+catch (...)
+{
+    std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl;
+    return 4;
+}
diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.input b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.input
new file mode 100644
index 00000000..bd16b9e8
--- /dev/null
+++ b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.input
@@ -0,0 +1,44 @@
+ # for dune-subgrid
+ [Grid]
+Positions0 = 0 1
+Positions1 = 0 0.2 0.3 0.65
+Cells0 = 100
+Cells1 = 10 50 18
+Baseline = 0.25 # [m]
+Amplitude = 0.04 # [m]
+Offset = 0.5 # [m]
+Scaling = 0.2 #[m]
+
+[Stokes.Grid]
+Verbosity = true
+Positions0 = 0.0 1.0
+Positions1 = 1.0 2.0
+Cells0 = 20
+Cells1 = 100
+Grading1 = 1
+
+[Darcy.Grid]
+Verbosity = true
+Positions0 = 0.0 1.0
+Positions1 = 0.0 1.0
+Cells0 = 20
+Cells1 = 20
+Grading1 = 1
+
+[Stokes.Problem]
+Name = stokes
+PressureDifference = 1e-9
+
+[Darcy.Problem]
+Name = darcy
+
+[Darcy.SpatialParams]
+Permeability = 1e-6 # m^2
+AlphaBeaversJoseph = 1.0
+
+[Problem]
+Name = ex_ff-pm-interface
+EnableGravity = false
+
+[Vtk]
+AddVelocity = 1
diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_ffproblem.hh b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_ffproblem.hh
new file mode 100644
index 00000000..369a7bd2
--- /dev/null
+++ b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_ffproblem.hh
@@ -0,0 +1,360 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ * \brief The free flow sub problem
+ */
+#ifndef DUMUX_STOKES_SUBPROBLEM_HH
+#define DUMUX_STOKES_SUBPROBLEM_HH
+
+#include <dune/grid/yaspgrid.hh>
+
+#if EXNUMBER >= 3
+#include <dumux/io/grid/subgridgridcreator.hh>
+#endif
+
+#include <dumux/material/fluidsystems/1pliquid.hh>
+#include <dumux/material/components/simpleh2o.hh>
+
+#include <dumux/freeflow/navierstokes/problem.hh>
+#include <dumux/discretization/staggered/freeflow/properties.hh>
+#include <dumux/freeflow/navierstokes/model.hh>
+
+namespace Dumux
+{
+template <class TypeTag>
+class StokesSubProblem;
+
+namespace Properties
+{
+NEW_TYPE_TAG(StokesOnePTypeTag, INHERITS_FROM(StaggeredFreeFlowModel, NavierStokes));
+
+// the fluid system
+SET_PROP(StokesOnePTypeTag, FluidSystem)
+{
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FluidSystems::OnePLiquid<Scalar, Dumux::Components::SimpleH2O<Scalar> > ;
+};
+
+// Set the grid type
+SET_PROP(StokesOnePTypeTag, Grid)
+{
+    static constexpr auto dim = 2;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using TensorGrid = Dune::YaspGrid<2, Dune::TensorProductCoordinates<Scalar, dim> >;
+
+#if EXNUMBER < 3 // use "normal" grid
+    using type = TensorGrid;
+#else // use dune-subgrid
+    using HostGrid = TensorGrid;
+    using type = Dune::SubGrid<dim, HostGrid>;
+#endif
+};
+
+// Set the problem property
+SET_TYPE_PROP(StokesOnePTypeTag, Problem, Dumux::StokesSubProblem<TypeTag> );
+
+SET_BOOL_PROP(StokesOnePTypeTag, EnableFVGridGeometryCache, true);
+SET_BOOL_PROP(StokesOnePTypeTag, EnableGridFluxVariablesCache, true);
+SET_BOOL_PROP(StokesOnePTypeTag, EnableGridVolumeVariablesCache, true);
+
+SET_BOOL_PROP(StokesOnePTypeTag, EnableInertiaTerms, false);
+}
+
+/*!
+ * \brief The free flow sub problem
+ */
+template <class TypeTag>
+class StokesSubProblem : public NavierStokesProblem<TypeTag>
+{
+    using ParentType = NavierStokesProblem<TypeTag>;
+
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+
+    using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices;
+
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using FVElementGeometry = typename FVGridGeometry::LocalView;
+    using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
+    using Element = typename GridView::template Codim<0>::Entity;
+
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+
+    using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager);
+
+public:
+    StokesSubProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, std::shared_ptr<CouplingManager> couplingManager)
+    : ParentType(fvGridGeometry, "Stokes"), eps_(1e-6), couplingManager_(couplingManager)
+    {
+        deltaP_ = getParamFromGroup<Scalar>(this->paramGroup(), "Problem.PressureDifference");
+    }
+
+   /*!
+     * \name Problem parameters
+     */
+    // \{
+
+   /*!
+     * \brief Return the temperature within the domain in [K].
+     *
+     * This problem assumes a temperature of 10 degrees Celsius.
+     */
+    Scalar temperature() const
+    { return 273.15 + 10; } // 10°C
+
+   /*!
+     * \brief Return the sources within the domain.
+     *
+     * \param globalPos The global position
+     */
+    NumEqVector sourceAtPos(const GlobalPosition &globalPos) const
+    { return NumEqVector(0.0); }
+    // \}
+
+   /*!
+     * \name Boundary conditions
+     */
+    // \{
+
+    /*!
+     * \brief Specifies which kind of boundary condition should be
+     *        used for which equation on a given boundary segment.
+     *
+     * \param element The finite element
+     * \param scvf The sub control volume face
+     */
+    BoundaryTypes boundaryTypes(const Element& element,
+                                const SubControlVolumeFace& scvf) const
+    {
+        BoundaryTypes values;
+
+        const auto& globalPos = scvf.dofPosition();
+
+#if EXNUMBER == 0 // flow from top to bottom
+        if(onUpperBoundary_(globalPos))
+        {
+            values.setDirichlet(Indices::velocityXIdx);
+            values.setDirichlet(Indices::velocityYIdx);
+        }
+
+        if (onRightBoundary_(globalPos) || (onLeftBoundary_(globalPos)))
+        {
+            values.setDirichlet(Indices::velocityXIdx);
+            values.setDirichlet(Indices::velocityYIdx);
+        }
+#else // flow flom left to right
+        if(onLeftBoundary_(globalPos) || onRightBoundary_(globalPos))
+            values.setDirichlet(Indices::pressureIdx);
+        else
+        {
+            values.setDirichlet(Indices::velocityXIdx);
+            values.setDirichlet(Indices::velocityYIdx);
+        }
+#endif
+
+        if(couplingManager().isCoupledEntity(CouplingManager::stokesIdx, scvf))
+        {
+            values.setCouplingNeumann(Indices::conti0EqIdx);
+#if EXNUMBER < 3
+            values.setCouplingNeumann(Indices::momentumYBalanceIdx);
+#else
+            //consider orientation of face automatically
+            values.setCouplingNeumann(scvf.directionIndex());
+#endif
+
+#if EXNUMBER == 2
+            // set the Beaver-Joseph-Saffman slip condition for the tangential momentum balance equation
+            values.setBJS(Indices::momentumXBalanceIdx);
+#endif
+
+#if EXNUMBER == 3
+            // set the Beaver-Joseph-Saffman slip condition for the tangential momentum balance equation,
+            // consider orientation of face automatically
+            values.setBJS(1 - scvf.directionIndex());
+#endif
+        }
+
+        return values;
+    }
+
+    /*!
+     * \brief Evaluate the boundary conditions for a Dirichlet control volume.
+     *
+     * \param globalPos The global position
+     */
+    PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const
+    {
+        PrimaryVariables values(0.0);
+        values = initialAtPos(globalPos);
+
+        return values;
+    }
+
+    /*!
+     * \brief Evaluate the boundary conditions for a Neumann control volume.
+     *
+     * \param element The element for which the Neumann boundary condition is set
+     * \param fvGeomentry The fvGeometry
+     * \param elemVolVars The element volume variables
+     * \param elemFaceVars The element face variables
+     * \param scvf The boundary sub control volume face
+     */
+    template<class ElementVolumeVariables, class ElementFaceVariables>
+    NumEqVector neumann(const Element& element,
+                        const FVElementGeometry& fvGeometry,
+                        const ElementVolumeVariables& elemVolVars,
+                        const ElementFaceVariables& elemFaceVars,
+                        const SubControlVolumeFace& scvf) const
+    {
+        NumEqVector values(0.0);
+
+        if(couplingManager().isCoupledEntity(CouplingManager::stokesIdx, scvf))
+        {
+            values[Indices::conti0EqIdx] = couplingManager().couplingData().massCouplingCondition(fvGeometry, elemVolVars, elemFaceVars, scvf);
+#if EXNUMBER < 3
+            values[Indices::momentumYBalanceIdx] = couplingManager().couplingData().momentumCouplingCondition(fvGeometry, elemVolVars, elemFaceVars, scvf);
+#else
+            values[scvf.directionIndex()] = couplingManager().couplingData().momentumCouplingCondition(fvGeometry, elemVolVars, elemFaceVars, scvf);
+#endif
+
+        }
+        return values;
+    }
+
+    // \}
+
+    //! Set the coupling manager
+    void setCouplingManager(std::shared_ptr<CouplingManager> cm)
+    { couplingManager_ = cm; }
+
+    //! Get the coupling manager
+    const CouplingManager& couplingManager() const
+    { return *couplingManager_; }
+
+   /*!
+     * \name Volume terms
+     */
+    // \{
+
+   /*!
+     * \brief Evaluate the initial value for a control volume.
+     *
+     * \param globalPos The global position
+     */
+    PrimaryVariables initialAtPos(const GlobalPosition &globalPos) const
+    {
+        PrimaryVariables values(0.0);
+#if EXNUMBER == 0
+        values[Indices::velocityYIdx] = -1e-6 * globalPos[0] * (this->fvGridGeometry().bBoxMax()[0] - globalPos[0]);
+#else
+        // set fixed pressures on the left and right boundary
+        if(onLeftBoundary_(globalPos))
+            values[Indices::pressureIdx] = deltaP_;
+        if(onRightBoundary_(globalPos))
+            values[Indices::pressureIdx] = 0.0;
+#endif
+
+        return values;
+    }
+
+    /*!
+     * \brief Returns the intrinsic permeability of required as input parameter for the Beavers-Joseph-Saffman boundary condition
+     */
+    Scalar permeability(const SubControlVolumeFace& scvf) const
+    {
+        return couplingManager().couplingData().darcyPermeability(scvf);
+    }
+
+    /*!
+     * \brief Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition
+     */
+    Scalar alphaBJ(const SubControlVolumeFace& scvf) const
+    {
+        return couplingManager().problem(CouplingManager::darcyIdx).spatialParams().beaversJosephCoeffAtPos(scvf.center());
+    }
+
+    /*!
+     * \brief calculate the analytical velocity in x direction based on Beavers & Joseph (1967)
+     */
+    void calculateAnalyticalVelocityX() const
+    {
+        analyticalVelocityX_.resize(this->fvGridGeometry().gridView().size(0));
+
+        using std::sqrt;
+        const Scalar dPdX = -deltaP_ / (this->fvGridGeometry().bBoxMax()[0] - this->fvGridGeometry().bBoxMin()[0]);
+        static const Scalar mu = FluidSystem::viscosity(temperature(), 1e5);
+        static const Scalar alpha = getParam<Scalar>("Darcy.SpatialParams.AlphaBeaversJoseph");
+        static const Scalar K = getParam<Scalar>("Darcy.SpatialParams.Permeability");
+        static const Scalar sqrtK = sqrt(K);
+        const Scalar sigma = (this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1])/sqrtK;
+
+        const Scalar uB =  -K/(2.0*mu) * ((sigma*sigma + 2.0*alpha*sigma) / (1.0 + alpha*sigma)) * dPdX;
+
+        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        {
+            const auto eIdx = this->fvGridGeometry().gridView().indexSet().index(element);
+            const Scalar y = element.geometry().center()[1] - this->fvGridGeometry().bBoxMin()[1];
+
+            const Scalar u = uB*(1.0 + alpha/sqrtK*y) + 1.0/(2.0*mu) * (y*y + 2*alpha*y*sqrtK) * dPdX;
+            analyticalVelocityX_[eIdx] = u;
+        }
+    }
+
+    /*!
+     * \brief Get the analytical velocity in x direction
+     */
+    const std::vector<Scalar>& getAnalyticalVelocityX() const
+    {
+        if(analyticalVelocityX_.empty())
+            calculateAnalyticalVelocityX();
+        return analyticalVelocityX_;
+    }
+
+    // \}
+
+private:
+    bool onLeftBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+
+    bool onRightBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+
+    bool onLowerBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+
+    bool onUpperBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+
+    Scalar eps_;
+    Scalar deltaP_;
+
+    std::shared_ptr<CouplingManager> couplingManager_;
+
+    mutable std::vector<Scalar> analyticalVelocityX_;
+};
+} //end namespace
+
+#endif // DUMUX_STOKES_SUBPROBLEM_HH
diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_pmproblem.hh b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_pmproblem.hh
new file mode 100644
index 00000000..eb1c5a20
--- /dev/null
+++ b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_pmproblem.hh
@@ -0,0 +1,257 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ *
+ * \brief The porous medium flow sub problem
+ */
+#ifndef DUMUX_DARCY_SUBPROBLEM_HH
+#define DUMUX_DARCY_SUBPROBLEM_HH
+
+#include <dune/grid/yaspgrid.hh>
+
+#if EXNUMBER >= 3
+#include <dumux/io/grid/subgridgridcreator.hh>
+#endif
+
+#include <dumux/discretization/cellcentered/tpfa/properties.hh>
+
+#include <dumux/porousmediumflow/1p/model.hh>
+#include <dumux/porousmediumflow/problem.hh>
+
+#include "1pspatialparams.hh"
+
+#include <dumux/material/components/simpleh2o.hh>
+#include <dumux/material/fluidsystems/1pliquid.hh>
+
+namespace Dumux
+{
+template <class TypeTag>
+class DarcySubProblem;
+
+namespace Properties
+{
+NEW_TYPE_TAG(DarcyOnePTypeTag, INHERITS_FROM(CCTpfaModel, OneP));
+
+// Set the problem property
+SET_TYPE_PROP(DarcyOnePTypeTag, Problem, Dumux::DarcySubProblem<TypeTag>);
+
+// the fluid system
+SET_PROP(DarcyOnePTypeTag, FluidSystem)
+{
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FluidSystems::OnePLiquid<Scalar, Dumux::Components::SimpleH2O<Scalar> > ;
+};
+
+// Set the grid type
+SET_PROP(DarcyOnePTypeTag, Grid)
+{
+    static constexpr auto dim = 2;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using TensorGrid = Dune::YaspGrid<2, Dune::TensorProductCoordinates<Scalar, dim> >;
+
+#if EXNUMBER < 3 // use "normal" grid
+    using type = TensorGrid;
+#else // use dune-subgrid
+    using HostGrid = TensorGrid;
+    using type = Dune::SubGrid<dim, HostGrid>;
+#endif
+};
+
+SET_TYPE_PROP(DarcyOnePTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+}
+
+/*!
+ * \brief The porous medium flow sub problem
+ */
+template <class TypeTag>
+class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
+{
+    using ParentType = PorousMediumFlowProblem<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using NumEqVector = typename GET_PROP_TYPE(TypeTag, NumEqVector);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry)::LocalView;
+    using SubControlVolume = typename FVElementGeometry::SubControlVolume;
+    using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+
+    using Indices = typename GET_PROP_TYPE(TypeTag, ModelTraits)::Indices;
+
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
+
+    using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager);
+
+public:
+    DarcySubProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                   std::shared_ptr<CouplingManager> couplingManager)
+    : ParentType(fvGridGeometry, "Darcy"), eps_(1e-7), couplingManager_(couplingManager)
+    {}
+
+    /*!
+     * \name Simulation steering
+     */
+    // \{
+
+    /*!
+     * \brief Return the temperature within the domain in [K].
+     *
+     */
+    Scalar temperature() const
+    { return 273.15 + 10; } // 10°C
+    // \}
+
+    /*!
+     * \name Boundary conditions
+     */
+    // \{
+
+    /*!
+      * \brief Specifies which kind of boundary condition should be
+      *        used for which equation on a given boundary control volume.
+      *
+      * \param element The element
+      * \param scvf The boundary sub control volume face
+      */
+    BoundaryTypes boundaryTypes(const Element &element, const SubControlVolumeFace &scvf) const
+    {
+        BoundaryTypes values;
+        values.setAllNeumann();
+
+#if EXNUMBER == 0 // flow from top to bottom
+        if (onLowerBoundary_(scvf.center()))
+            values.setAllDirichlet();
+#endif
+
+        if (couplingManager().isCoupledEntity(CouplingManager::darcyIdx, scvf))
+            values.setAllCouplingNeumann();
+
+        return values;
+    }
+
+        /*!
+     * \brief Evaluate the boundary conditions for a Dirichlet control volume.
+     *
+     * \param element The element for which the Dirichlet boundary condition is set
+     * \param scvf The boundary subcontrolvolumeface
+     *
+     * For this method, the \a values parameter stores primary variables.
+     */
+    PrimaryVariables dirichlet(const Element &element, const SubControlVolumeFace &scvf) const
+    {
+        PrimaryVariables values(0.0);
+        values = initial(element);
+
+        return values;
+    }
+
+    /*!
+     * \brief Evaluate the boundary conditions for a Neumann control volume.
+     *
+     * \param element The element for which the Neumann boundary condition is set
+     * \param fvGeomentry The fvGeometry
+     * \param elemVolVars The element volume variables
+     * \param scvf The boundary sub control volume face
+     *
+     * For this method, the \a values variable stores primary variables.
+     */
+    template<class ElementVolumeVariables>
+    NumEqVector neumann(const Element& element,
+                        const FVElementGeometry& fvGeometry,
+                        const ElementVolumeVariables& elemVolVars,
+                        const SubControlVolumeFace& scvf) const
+    {
+        NumEqVector values(0.0);
+
+        if (couplingManager().isCoupledEntity(CouplingManager::darcyIdx, scvf))
+            values[Indices::conti0EqIdx] = couplingManager().couplingData().massCouplingCondition(fvGeometry, elemVolVars, scvf);
+
+        return values;
+    }
+
+    // \}
+
+    /*!
+     * \name Volume terms
+     */
+    // \{
+    /*!
+     * \brief Evaluate the source term for all phases within a given
+     *        sub-control-volume.
+     *
+     * \param element The element for which the source term is set
+     * \param fvGeomentry The fvGeometry
+     * \param elemVolVars The element volume variables
+     * \param scv The subcontrolvolume
+     */
+    template<class ElementVolumeVariables>
+    NumEqVector source(const Element &element,
+                       const FVElementGeometry& fvGeometry,
+                       const ElementVolumeVariables& elemVolVars,
+                       const SubControlVolume &scv) const
+    { return NumEqVector(0.0); }
+
+    // \}
+
+    /*!
+     * \brief Evaluate the initial value for a control volume.
+     *
+     * \param element The element
+     *
+     * For this method, the \a priVars parameter stores primary
+     * variables.
+     */
+    PrimaryVariables initial(const Element &element) const
+    {
+        return PrimaryVariables(0.0);
+    }
+
+    // \}
+
+    //! Set the coupling manager
+    void setCouplingManager(std::shared_ptr<CouplingManager> cm)
+    { couplingManager_ = cm; }
+
+    //! Get the coupling manager
+    const CouplingManager& couplingManager() const
+    { return *couplingManager_; }
+
+private:
+    bool onLeftBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+
+    bool onRightBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+
+    bool onLowerBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+
+    bool onUpperBoundary_(const GlobalPosition &globalPos) const
+    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+
+    Scalar eps_;
+    std::shared_ptr<CouplingManager> couplingManager_;
+};
+} //end namespace
+
+#endif //DUMUX_DARCY_SUBPROBLEM_HH
-- 
GitLab