From 69cf5b850d17cda1acfc665e31327940565903e2 Mon Sep 17 00:00:00 2001
From: Thomas Fetzer <thomas.fetzer@iws.uni-stuttgart.de>
Date: Tue, 13 Jan 2015 16:22:43 +0000
Subject: [PATCH] [multidomain]

introduced proporties and propertydefaults for the coupled stokes-darcy
models, that the model does not have to use runtime parameters.
properties from the test problem headers have been moved to the model
properties.

reviewed by gruenich



git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@14045 2fb0f335-1f38-0410-981e-8018bf24f1b0
---
 .../2cnistokes2p2cniproperties.hh             | 58 +++++++++++++
 .../2cnistokes2p2cnipropertydefaults.hh       | 46 +++++++++++
 .../2cstokes2p2c/2cstokes2p2clocaloperator.hh | 23 ++----
 .../2cstokes2p2c/2cstokes2p2cproperties.hh    | 61 ++++++++++++++
 .../2cstokes2p2cpropertydefaults.hh           | 81 +++++++++++++++++++
 .../2cnistokes2p2cniproblem.hh                | 43 ++--------
 .../2cnistokes2p2cni/2p2cnisubproblem.hh      |  3 -
 .../test_2cnistokes2p2cni.input               |  2 -
 .../test_2cnistokes2p2cni_reference.input     |  4 +-
 .../2cstokes2p2c/2cstokes2p2cproblem.hh       | 41 ++--------
 .../2cstokes2p2c/2p2csubproblem.hh            |  3 -
 .../2cstokes2p2c/test_2cstokes2p2c.input      |  4 +-
 .../test_2cstokes2p2c_reference.input         |  4 +-
 13 files changed, 272 insertions(+), 101 deletions(-)
 create mode 100644 dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproperties.hh
 create mode 100644 dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnipropertydefaults.hh
 create mode 100644 dumux/multidomain/2cstokes2p2c/2cstokes2p2cproperties.hh
 create mode 100644 dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh

diff --git a/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproperties.hh b/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproperties.hh
new file mode 100644
index 0000000000..7c888bcfa1
--- /dev/null
+++ b/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproperties.hh
@@ -0,0 +1,58 @@
+// -*- 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 Properties
+ * \ingroup ImplicitProperties
+ * \ingroup MultidomainModel
+ *
+ * \brief Defines the properties required for the coupled 2cnistokes2p2cni model.
+ */
+
+#ifndef DUMUX_TWOCNISTOKESTWOPTWOCNI_PROPERTIES_HH
+#define DUMUX_TWOCNISTOKESTWOPTWOCNI_PROPERTIES_HH
+
+#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh>
+
+namespace Dumux
+{
+
+////////////////////////////////
+// properties
+////////////////////////////////
+namespace Properties
+{
+
+//////////////////////////////////////////////////////////////////
+// Type tags
+//////////////////////////////////////////////////////////////////
+
+//! The type tags for the coupled 2cnistokes2p2cni model
+NEW_TYPE_TAG(TwoCNIStokesTwoPTwoCNI, INHERITS_FROM(TwoCStokesTwoPTwoC));
+
+//////////////////////////////////////////////////////////////////
+// Property tags
+//////////////////////////////////////////////////////////////////
+
+} // end namespace properties
+
+} // end namespace Dumux
+
+
+#endif
diff --git a/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnipropertydefaults.hh b/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnipropertydefaults.hh
new file mode 100644
index 0000000000..d84e2d64c9
--- /dev/null
+++ b/dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnipropertydefaults.hh
@@ -0,0 +1,46 @@
+// -*- 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 Properties
+ * \ingroup ImplicitProperties
+ * \ingroup MultidomainModel
+ *
+ * \brief Defines default values for the properties required by the
+ *        coupled 2cnistokes2p2cni model.
+ */
+#ifndef DUMUX_TWOCNISTOKESTWOPTWOCNI_PROPERTY_DEFAULTS_HH
+#define DUMUX_TWOCNISTOKESTWOPTWOCNI_PROPERTY_DEFAULTS_HH
+
+#include "2cnistokes2p2cniproperties.hh"
+
+namespace Dumux
+{
+namespace Properties
+{
+//////////////////////////////////////////////////////////////////
+// Property defaults
+//////////////////////////////////////////////////////////////////
+
+
+} // end namespace properties
+
+} // end namespace Dumux
+
+#endif
diff --git a/dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh b/dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh
index ba3f8be44a..ad2f1620b9 100644
--- a/dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh
+++ b/dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh
@@ -33,6 +33,7 @@
 #include <dune/pdelab/localoperator/idefault.hh>
 
 #include <dumux/multidomain/common/multidomainproperties.hh>
+#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh>
 #include <dumux/freeflow/stokesnc/stokesncmodel.hh>
 #include <dumux/implicit/2p2c/2p2cmodel.hh>
 
@@ -129,23 +130,13 @@ class TwoCStokesTwoPTwoCLocalOperator :
     TwoCStokesTwoPTwoCLocalOperator(GlobalProblem& globalProblem)
         : globalProblem_(globalProblem)
     {
-        try
-        {
-            blModel_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, UseBoundaryLayerModel);
-            massTransferModel_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, MassTransferModel);
-        }
-        catch (...) {
-            blModel_ = 0;
-            massTransferModel_ = 1;
-            std::cout << "For using the mass transfer model, the following paremeters have to be set:\n";
-            std::cout << "FreeFlow.UseBoundaryLayerModel\n";
-            std::cout << "FreeFlow.MassTransferModel\n";
-        }
+        blModel_ = GET_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, BoundaryLayerModel);
+        massTransferModel_ = GET_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, MassTransferModel);
 
-        if (massTransferModel_ == 1)
-            std::cout << "Using power law for mass transfer coefficient\n";
-        else if (massTransferModel_ == 2)
-            std::cout << "Using Schluender model for mass transfer\n";
+        if (blModel_ > 0)
+            std::cout << "Using boundary layer model " << blModel_ << std::endl;
+        if (massTransferModel_ > 0)
+            std::cout << "Using mass transfer model " << massTransferModel_ << std::endl;
     }
 
     // multidomain flags
diff --git a/dumux/multidomain/2cstokes2p2c/2cstokes2p2cproperties.hh b/dumux/multidomain/2cstokes2p2c/2cstokes2p2cproperties.hh
new file mode 100644
index 0000000000..f31823ecd4
--- /dev/null
+++ b/dumux/multidomain/2cstokes2p2c/2cstokes2p2cproperties.hh
@@ -0,0 +1,61 @@
+// -*- 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 Properties
+ * \ingroup ImplicitProperties
+ * \ingroup MultidomainModel
+ *
+ * \brief Defines the properties required for the coupled 2cstokes2p2c model.
+ */
+
+#ifndef DUMUX_TWOCSTOKESTWOPTWOC_PROPERTIES_HH
+#define DUMUX_TWOCSTOKESTWOPTWOC_PROPERTIES_HH
+
+#include <dumux/multidomain/common/multidomainpropertydefaults.hh>
+
+namespace Dumux
+{
+
+////////////////////////////////
+// properties
+////////////////////////////////
+namespace Properties
+{
+
+//////////////////////////////////////////////////////////////////
+// Type tags
+//////////////////////////////////////////////////////////////////
+
+//! The type tags for the coupled 2cstokes2p2c model
+NEW_TYPE_TAG(TwoCStokesTwoPTwoC, INHERITS_FROM(MultiDomain));
+
+//////////////////////////////////////////////////////////////////
+// Property tags
+//////////////////////////////////////////////////////////////////
+
+NEW_PROP_TAG(FreeFlowBoundaryLayerModel); //!< Type of the used boundary layer model
+NEW_PROP_TAG(FreeFlowMassTransferModel); //!< Type of the used mass transfer model
+
+} // end namespace properties
+
+} // end namespace Dumux
+
+
+#endif
diff --git a/dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh b/dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh
new file mode 100644
index 0000000000..0bf48e4854
--- /dev/null
+++ b/dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh
@@ -0,0 +1,81 @@
+// -*- 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 Properties
+ * \ingroup ImplicitProperties
+ * \ingroup MultidomainModel
+ *
+ * \brief Defines default values for the properties required by the
+ *        coupled 2cstokes2p2c model.
+ */
+#ifndef DUMUX_TWOCSTOKESTWOPTWOC_PROPERTY_DEFAULTS_HH
+#define DUMUX_TWOCSTOKESTWOPTWOC_PROPERTY_DEFAULTS_HH
+
+#include "2cstokes2p2cproperties.hh"
+#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cnewtoncontroller.hh>
+
+namespace Dumux
+{
+namespace Properties
+{
+//////////////////////////////////////////////////////////////////
+// Property defaults
+//////////////////////////////////////////////////////////////////
+
+// Specify the multidomain gridview
+SET_PROP(TwoCStokesTwoPTwoC, GridView)
+{
+    typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGrid) MDGrid;
+ public:
+    typedef typename MDGrid::LeafGridView type;
+};
+
+// Specify the type of the used solution vector
+SET_PROP(TwoCStokesTwoPTwoC, SolutionVector)
+{
+ private:
+    typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGridOperator) MDGridOperator;
+ public:
+    typedef typename MDGridOperator::Traits::Domain type;
+};
+
+// Specify the type of the multidomain assembler
+SET_TYPE_PROP(TwoCStokesTwoPTwoC, JacobianAssembler, Dumux::MultiDomainAssembler<TypeTag>);
+
+// Specif the used Newton controller
+SET_TYPE_PROP(TwoCStokesTwoPTwoC, NewtonController, Dumux::TwoCStokesTwoPTwoCNewtonController<TypeTag>);
+
+// set this to one here (must fit to the structure of the coupled matrix which has block length 1)
+SET_INT_PROP(TwoCStokesTwoPTwoC, NumEq, 1);
+
+// Write the solutions of individual newton iterations?
+SET_BOOL_PROP(TwoCStokesTwoPTwoC, NewtonWriteConvergence, false);
+
+//! 0 = none, 1 = Blasius, 2 and 3 = turbulent BL, 9 = constant thickness
+SET_INT_PROP(TwoCStokesTwoPTwoC, FreeFlowBoundaryLayerModel, 0);
+
+//! 0 = none, 1 = power law, 2 = Schluender model mass transfer model
+SET_INT_PROP(TwoCStokesTwoPTwoC, FreeFlowMassTransferModel, 0);
+
+} // end namespace properties
+
+} // end namespace Dumux
+
+#endif
diff --git a/test/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproblem.hh b/test/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproblem.hh
index b2bd6092de..3752008c23 100644
--- a/test/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproblem.hh
+++ b/test/multidomain/2cnistokes2p2cni/2cnistokes2p2cniproblem.hh
@@ -38,8 +38,8 @@
 
 #include <dumux/material/fluidsystems/h2oairfluidsystem.hh>
 #include <dumux/multidomain/common/multidomainproblem.hh>
-#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cnewtoncontroller.hh>
 #include <dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnilocaloperator.hh>
+#include <dumux/multidomain/2cnistokes2p2cni/2cnistokes2p2cnipropertydefaults.hh>
 //#include <dumux/linear/amgbackend.hh>
 #include <dumux/linear/seqsolverbackend.hh>
 #ifdef HAVE_PARDISO
@@ -57,7 +57,7 @@ class TwoCNIStokesTwoPTwoCNIProblem;
 
 namespace Properties
 {
-NEW_TYPE_TAG(TwoCNIStokesTwoPTwoCNIProblem, INHERITS_FROM(MultiDomain));
+NEW_TYPE_TAG(TwoCNIStokesTwoPTwoCNIProblem, INHERITS_FROM(TwoCNIStokesTwoPTwoCNI));
 
 // Set the grid type
 SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, Grid)
@@ -72,17 +72,13 @@ SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, Grid)
 #endif
 };
 
-// Specify the multidomain gridview
-SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, GridView)
-{
-    typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGrid) MDGrid;
- public:
-    typedef typename MDGrid::LeafGridView type;
-};
-
 // Set the global problem
 SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, Problem, TwoCNIStokesTwoPTwoCNIProblem<TypeTag>);
 
+// Set the local coupling operator
+SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, MultiDomainCouplingLocalOperator, 
+              Dumux::TwoCNIStokesTwoPTwoCNILocalOperator<TypeTag>);
+
 // Set the two sub-problems of the global problem
 SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, SubDomain1TypeTag, TTAG(Stokes2cniSubProblem));
 SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, SubDomain2TypeTag, TTAG(TwoPTwoCNISubProblem));
@@ -110,37 +106,11 @@ SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, FluidSystem)
         /*useComplexrelations=*/true> type;
 };
 
-SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, JacobianAssembler, Dumux::MultiDomainAssembler<TypeTag>);
-
-// Set the local coupling operator
-SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, MultiDomainCouplingLocalOperator, 
-				Dumux::TwoCNIStokesTwoPTwoCNILocalOperator<TypeTag>);
-
-SET_PROP(TwoCNIStokesTwoPTwoCNIProblem, SolutionVector)
-{
- private:
-    typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGridOperator) MDGridOperator;
- public:
-    typedef typename MDGridOperator::Traits::Domain type;
-};
-
-// the newton controller from the TwoCStokesTwoPTwoC model is used
-SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, NewtonController, TwoCStokesTwoPTwoCNewtonController<TypeTag>);
-
-//SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, LinearSolver, SSORRestartedGMResBackend<TypeTag>);
-// if you do not have PARDISO, the SuperLU solver is used:
 #ifdef HAVE_PARDISO
 SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, LinearSolver, PardisoBackend<TypeTag>);
 #else
 SET_TYPE_PROP(TwoCNIStokesTwoPTwoCNIProblem, LinearSolver, SuperLUBackend<TypeTag>);
 #endif // HAVE_PARDISO
-
-
-// set this to one here (must fit to the structure of the coupled matrix which has block length 1)
-SET_INT_PROP(TwoCNIStokesTwoPTwoCNIProblem, NumEq, 1);
-
-// Write the solutions of individual newton iterations?
-SET_BOOL_PROP(TwoCNIStokesTwoPTwoCNIProblem, NewtonWriteConvergence, false);
 }
 
 /*!
@@ -170,7 +140,6 @@ class TwoCNIStokesTwoPTwoCNIProblem : public MultiDomainProblem<TypeTag>
     typedef MultiDomainProblem<TypeTag> ParentType;
 
     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Model) Model;
     typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
 
     typedef typename GET_PROP_TYPE(TypeTag, SubDomain1TypeTag) Stokes2cniTypeTag;
diff --git a/test/multidomain/2cnistokes2p2cni/2p2cnisubproblem.hh b/test/multidomain/2cnistokes2p2cni/2p2cnisubproblem.hh
index f94e2a8665..05d7f51674 100644
--- a/test/multidomain/2cnistokes2p2cni/2p2cnisubproblem.hh
+++ b/test/multidomain/2cnistokes2p2cni/2p2cnisubproblem.hh
@@ -259,9 +259,6 @@ public:
         ParentType::init();
 
         this->model().globalStorage(storageLastTimestep_);
-
-        const int blModel = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, UseBoundaryLayerModel);
-        std::cout << "Using boundary layer model " << blModel << std::endl;
     }
 
     // \}
diff --git a/test/multidomain/2cnistokes2p2cni/test_2cnistokes2p2cni.input b/test/multidomain/2cnistokes2p2cni/test_2cnistokes2p2cni.input
index 8518d2c790..5f511f6c1f 100644
--- a/test/multidomain/2cnistokes2p2cni/test_2cnistokes2p2cni.input
+++ b/test/multidomain/2cnistokes2p2cni/test_2cnistokes2p2cni.input
@@ -93,10 +93,8 @@ SinusTemperatureAmplitude = 0.0   # 0.5
 SinusTemperaturePeriod = 3600     # in seconds
 BeaversJosephSlipVel = 0.00134
 ExponentMTC = 0.0           # 1./6., Mass transfer coefficient for S^MTC
-UseBoundaryLayerModel = 0   # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
 BoundaryLayerOffset = 0.0   # for BL model like Blasius, determines a virtual run-up distance for the flow
 ConstThickness = 0.0016     # for a constant BL thickness, use BL model 9
-MassTransferModel = 0       # 0 for none, 1 for power law, 2 for Schluender model
 
 #############################################################
 [PorousMedium]
diff --git a/test/multidomain/2cnistokes2p2cni/test_2cnistokes2p2cni_reference.input b/test/multidomain/2cnistokes2p2cni/test_2cnistokes2p2cni_reference.input
index 9ccbf29d19..48cf1a5d7b 100644
--- a/test/multidomain/2cnistokes2p2cni/test_2cnistokes2p2cni_reference.input
+++ b/test/multidomain/2cnistokes2p2cni/test_2cnistokes2p2cni_reference.input
@@ -93,10 +93,10 @@ SinusTemperatureAmplitude = 0.0   # 0.5
 SinusTemperaturePeriod = 3600     # in seconds
 BeaversJosephSlipVel = 0.00134
 ExponentMTC = 0.0           # 1./6., Mass transfer coefficient for S^MTC
-UseBoundaryLayerModel = 0   # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
+# UseBoundaryLayerModel = 0   # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
 BoundaryLayerOffset = 0.0   # for BL model like Blasius, determines a virtual run-up distance for the flow
 ConstThickness = 0.0016     # for a constant BL thickness, use BL model 9
-MassTransferModel = 0       # 0 for none, 1 for power law, 2 for Schluender model
+# MassTransferModel = 0       # 0 for none, 1 for power law, 2 for Schluender model
 
 #############################################################
 [PorousMedium]
diff --git a/test/multidomain/2cstokes2p2c/2cstokes2p2cproblem.hh b/test/multidomain/2cstokes2p2c/2cstokes2p2cproblem.hh
index d3cb6293e8..9d9b45ab3d 100644
--- a/test/multidomain/2cstokes2p2c/2cstokes2p2cproblem.hh
+++ b/test/multidomain/2cstokes2p2c/2cstokes2p2cproblem.hh
@@ -36,10 +36,10 @@
 #include <dune/grid/multidomaingrid.hh>
 #include <dune/grid/io/file/dgfparser.hh>
 
+#include <dumux/material/fluidsystems/h2oairfluidsystem.hh>
 #include <dumux/multidomain/common/multidomainproblem.hh>
 #include <dumux/multidomain/2cstokes2p2c/2cstokes2p2clocaloperator.hh>
-#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cnewtoncontroller.hh>
-#include <dumux/material/fluidsystems/h2oairfluidsystem.hh>
+#include <dumux/multidomain/2cstokes2p2c/2cstokes2p2cpropertydefaults.hh>
 #ifdef HAVE_PARDISO
 #include <dumux/linear/pardisobackend.hh>
 #endif // HAVE_PARDISO
@@ -55,7 +55,7 @@ class TwoCStokesTwoPTwoCProblem;
 
 namespace Properties
 {
-NEW_TYPE_TAG(TwoCStokesTwoPTwoCProblem, INHERITS_FROM(MultiDomain));
+NEW_TYPE_TAG(TwoCStokesTwoPTwoCProblem, INHERITS_FROM(TwoCStokesTwoPTwoC));
 
 // Set the grid type
 SET_PROP(TwoCStokesTwoPTwoCProblem, Grid)
@@ -70,17 +70,13 @@ SET_PROP(TwoCStokesTwoPTwoCProblem, Grid)
 #endif
 };
 
-// Specify the multidomain gridview
-SET_PROP(TwoCStokesTwoPTwoCProblem, GridView)
-{
-    typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGrid) MDGrid;
- public:
-    typedef typename MDGrid::LeafGridView type;
-};
-
 // Set the global problem
 SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, Problem, Dumux::TwoCStokesTwoPTwoCProblem<TypeTag>);
 
+// Set the local coupling operator
+SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, MultiDomainCouplingLocalOperator,
+              Dumux::TwoCStokesTwoPTwoCLocalOperator<TypeTag>);
+
 // Set the two sub-problems of the global problem
 SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, SubDomain1TypeTag, TTAG(Stokes2cSubProblem));
 SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, SubDomain2TypeTag, TTAG(TwoPTwoCSubProblem));
@@ -107,34 +103,12 @@ SET_PROP(TwoCStokesTwoPTwoCProblem, FluidSystem)
         /*useComplexrelations=*/false> type;
 };
 
-SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, JacobianAssembler, Dumux::MultiDomainAssembler<TypeTag>);
-
-// Set the local coupling operator
-SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, MultiDomainCouplingLocalOperator, Dumux::TwoCStokesTwoPTwoCLocalOperator<TypeTag>);
-
-SET_PROP(TwoCStokesTwoPTwoCProblem, SolutionVector)
-{
- private:
-    typedef typename GET_PROP_TYPE(TypeTag, MultiDomainGridOperator) MDGridOperator;
- public:
-    typedef typename MDGridOperator::Traits::Domain type;
-};
-
-// newton controller
-SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, NewtonController, Dumux::TwoCStokesTwoPTwoCNewtonController<TypeTag>);
-
 // if you do not have PARDISO, the SuperLU solver is used:
 #ifdef HAVE_PARDISO
 SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, LinearSolver, PardisoBackend<TypeTag>);
 #else
 SET_TYPE_PROP(TwoCStokesTwoPTwoCProblem, LinearSolver, SuperLUBackend<TypeTag>);
 #endif // HAVE_PARDISO
-
-// set this to one here (must fit to the structure of the coupled matrix which has block length 1)
-SET_INT_PROP(TwoCStokesTwoPTwoCProblem, NumEq, 1);
-
-// Write the solutions of individual newton iterations?
-SET_BOOL_PROP(TwoCStokesTwoPTwoCProblem, NewtonWriteConvergence, false);
 }
 
 /*!
@@ -164,7 +138,6 @@ class TwoCStokesTwoPTwoCProblem : public MultiDomainProblem<TypeTag>
     typedef MultiDomainProblem<TypeTag> ParentType;
 
     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, NewtonController) NewtonController;
     typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
 
     typedef typename GET_PROP_TYPE(TypeTag, SubDomain1TypeTag) Stokes2cTypeTag;
diff --git a/test/multidomain/2cstokes2p2c/2p2csubproblem.hh b/test/multidomain/2cstokes2p2c/2p2csubproblem.hh
index b142a3e90f..832ad94caf 100644
--- a/test/multidomain/2cstokes2p2c/2p2csubproblem.hh
+++ b/test/multidomain/2cstokes2p2c/2p2csubproblem.hh
@@ -224,9 +224,6 @@ public:
         ParentType::init();
 
         this->model().globalStorage(storageLastTimestep_);
-
-        const int blModel = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FreeFlow, UseBoundaryLayerModel);
-        std::cout << "Using boundary layer model " << blModel << std::endl;
     }
 
     /*!
diff --git a/test/multidomain/2cstokes2p2c/test_2cstokes2p2c.input b/test/multidomain/2cstokes2p2c/test_2cstokes2p2c.input
index e2befdcdbd..d67308428f 100644
--- a/test/multidomain/2cstokes2p2c/test_2cstokes2p2c.input
+++ b/test/multidomain/2cstokes2p2c/test_2cstokes2p2c.input
@@ -92,10 +92,10 @@ SinusTemperatureAmplitude = 0.0   # 0.5
 SinusTemperaturePeriod = 3600     # in seconds
 BeaversJosephSlipVel = 0.00134
 ExponentMTC = 0.0           # 1./6., Mass transfer coefficient for S^MTC
-UseBoundaryLayerModel = 0   # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
+# UseBoundaryLayerModel = 0   # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
 BoundaryLayerOffset = 0.0   # for BL model like Blasius, determines a virtual run-up distance for the flow
 ConstThickness = 0.0016     # for a constant BL thickness, use BL model 9
-MassTransferModel = 0       # 0 for none, 1 for power law, 2 for Schluender model
+# MassTransferModel = 0       # 0 for none, 1 for power law, 2 for Schluender model
 
 #############################################################
 [PorousMedium]
diff --git a/test/multidomain/2cstokes2p2c/test_2cstokes2p2c_reference.input b/test/multidomain/2cstokes2p2c/test_2cstokes2p2c_reference.input
index ee9eb71d56..a9d01f9cc0 100644
--- a/test/multidomain/2cstokes2p2c/test_2cstokes2p2c_reference.input
+++ b/test/multidomain/2cstokes2p2c/test_2cstokes2p2c_reference.input
@@ -92,10 +92,10 @@ SinusTemperatureAmplitude = 0.0   # 0.5
 SinusTemperaturePeriod = 3600     # in seconds
 BeaversJosephSlipVel = 0.00134
 ExponentMTC = 0.0           # 1./6., Mass transfer coefficient for S^MTC
-UseBoundaryLayerModel = 0   # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
+# UseBoundaryLayerModel = 0   # 0 for no boundary layer model, 1 for Blasius, 2 and 3 for turbulent BL, 9 for constant thickness
 BoundaryLayerOffset = 0.0   # for BL model like Blasius, determines a virtual run-up distance for the flow
 ConstThickness = 0.0016     # for a constant BL thickness, use BL model 9
-MassTransferModel = 0       # 0 for none, 1 for power law, 2 for Schluender model
+# MassTransferModel = 0       # 0 for none, 1 for power law, 2 for Schluender model
 
 #############################################################
 [PorousMedium]
-- 
GitLab