From 5cc02855be39831f87d2787505896edf9a44f2c5 Mon Sep 17 00:00:00 2001
From: Bernd Flemisch <bernd@iws.uni-stuttgart.de>
Date: Sat, 25 Aug 2018 12:23:35 +0200
Subject: [PATCH] [spatialparams] free several spatialparams from typetag

---
 .../stokesdarcy/1p2c_1p2c/1pspatialparams.hh  | 15 +++++------
 .../1p2c_1p2c/horizontalflow/darcyproblem.hh  |  7 ++++-
 .../1p2c_1p2c/verticalflow/darcyproblem.hh    |  7 ++++-
 .../stokesdarcy/1p2c_2p2c/darcyproblem.hh     |  8 +++++-
 .../stokesdarcy/1p2c_2p2c/spatialparams.hh    | 13 +++-------
 .../stokesdarcy/1p_1p/1pspatialparams.hh      | 15 +++++------
 .../1p_1p/horizontalflow/darcyproblem.hh      |  7 ++++-
 .../1p_1p/verticalflow/darcyproblem.hh        |  7 ++++-
 .../stokesdarcy/1p_2p/darcyproblem.hh         |  7 ++++-
 .../stokesdarcy/1p_2p/spatialparams.hh        | 15 +++++------
 .../facet/1p_1p/threedomain/bulkproblem.hh    |  7 ++++-
 .../facet/1p_1p/threedomain/edgeproblem.hh    |  7 ++++-
 .../facet/1p_1p/threedomain/facetproblem.hh   |  7 ++++-
 .../facet/1p_1p/threedomain/spatialparams.hh  | 12 +++------
 .../1p/implicit/1pniconductionproblem.hh      |  7 ++++-
 .../1p/implicit/1pniconvectionproblem.hh      |  7 ++++-
 .../1p/implicit/1pnispatialparams.hh          | 12 ++++-----
 .../1p/implicit/compressible/problem.hh       |  7 ++++-
 .../1p/implicit/compressible/spatialparams.hh | 12 ++++-----
 .../1p/implicit/fractureproblem.hh            |  7 ++++-
 .../1p/implicit/fracturespatialparams.hh      | 12 ++++-----
 .../1p/implicit/incompressible/problem.hh     |  7 ++++-
 .../implicit/incompressible/spatialparams.hh  | 12 ++++-----
 .../pointsources/1psingularityproblem.hh      |  7 ++++-
 .../1psingularityspatialparams.hh             | 12 ++++-----
 .../1p/implicit/tubesproblem.hh               |  7 ++++-
 .../1p/implicit/tubesspatialparams.hh         | 12 ++++-----
 .../1pnc/implicit/1p2cniconductionproblem.hh  |  7 ++++-
 .../1pnc/implicit/1p2cniconvectionproblem.hh  |  7 ++++-
 .../1pnc/implicit/1p2ctestproblem.hh          |  7 ++++-
 .../1pnc/implicit/1pnctestspatialparams.hh    | 12 ++++-----
 .../implicit/saltwaterintrusionproblem.hh     |  7 ++++-
 .../1pncmin/implicit/thermochemproblem.hh     |  7 ++++-
 .../implicit/thermochemspatialparams.hh       | 15 ++++-------
 .../2p/implicit/fracture/problem.hh           |  7 ++++-
 .../2p/implicit/fracture/spatialparams.hh     | 12 ++++-----
 .../2p1c/implicit/steaminjectionproblem.hh    |  9 ++++++-
 .../implicit/steaminjectionspatialparams.hh   | 26 ++++---------------
 .../2pnc/implicit/2pncdiffusionproblem.hh     |  7 ++++-
 .../implicit/2pncdiffusionspatialparams.hh    | 12 ++++-----
 .../2pnc/implicit/fuelcellproblem.hh          |  7 ++++-
 .../2pnc/implicit/fuelcellspatialparams.hh    | 12 ++++-----
 .../2pncmin/implicit/dissolutionproblem.hh    |  7 ++++-
 .../implicit/dissolutionspatialparams.hh      | 17 +++++-------
 .../3p/implicit/3pniconductionproblem.hh      |  7 ++++-
 .../3p/implicit/3pniconvectionproblem.hh      |  7 ++++-
 .../3p/implicit/3pnispatialparams.hh          | 13 ++++------
 .../3p/implicit/infiltration3pproblem.hh      | 11 ++++----
 .../implicit/infiltration3pspatialparams.hh   | 12 ++++-----
 .../implicit/3pwateroilsagdproblem.hh         |  7 ++++-
 .../implicit/3pwateroilsagdspatialparams.hh   | 12 ++++-----
 .../implicit/richardsanalyticalproblem.hh     |  7 ++++-
 .../richardsanalyticalspatialparams.hh        | 12 ++++-----
 .../implicit/richardsniconductionproblem.hh   |  7 ++++-
 .../implicit/richardsniconvectionproblem.hh   |  7 ++++-
 .../implicit/richardsnievaporationproblem.hh  |  7 ++++-
 .../implicit/richardsnispatialparams.hh       | 12 ++++-----
 .../tracer/1ptracer/1ptestproblem.hh          |  9 ++++++-
 .../tracer/1ptracer/1ptestspatialparams.hh    | 12 ++++-----
 .../tracer/1ptracer/tracertestproblem.hh      |  7 ++++-
 .../1ptracer/tracertestspatialparams.hh       | 12 ++++-----
 .../tracer/constvel/tracertestproblem.hh      |  7 ++++-
 .../constvel/tracertestspatialparams.hh       | 12 ++++-----
 .../multicomp/maxwellstefantestproblem.hh     |  7 ++++-
 .../maxwellstefantestspatialparams.hh         | 12 ++++-----
 65 files changed, 371 insertions(+), 261 deletions(-)

diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/1pspatialparams.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/1pspatialparams.hh
index 3366bf7018..fff3f84112 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/1pspatialparams.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/1pspatialparams.hh
@@ -36,17 +36,14 @@ namespace Dumux
  * \brief The spatial parameters class for the test problem using the
  *        1p cc model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePSpatialParams<FVGridGeometry, Scalar>>
 {
-    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 GridView = typename FVGridGeometry::GridView;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePSpatialParams<FVGridGeometry, Scalar>>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/darcyproblem.hh
index f4d864dc0d..65432f7cbe 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/darcyproblem.hh
@@ -71,7 +71,12 @@ SET_TYPE_PROP(DarcyOnePTwoCTypeTag, EffectiveDiffusivityModel,
 SET_TYPE_PROP(DarcyOnePTwoCTypeTag, Grid, Dune::YaspGrid<2>);
 
 // Set the spatial paramaters type
-SET_TYPE_PROP(DarcyOnePTwoCTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(DarcyOnePTwoCTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/darcyproblem.hh
index 6fc7a42f49..81b6d0e20e 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/darcyproblem.hh
@@ -71,7 +71,12 @@ SET_TYPE_PROP(DarcyOnePTwoCTypeTag, EffectiveDiffusivityModel,
 SET_TYPE_PROP(DarcyOnePTwoCTypeTag, Grid, Dune::YaspGrid<2>);
 
 // Set the spatial paramaters type
-SET_TYPE_PROP(DarcyOnePTwoCTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(DarcyOnePTwoCTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/darcyproblem.hh
index e7484f51be..c956484ebe 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/darcyproblem.hh
@@ -66,7 +66,13 @@ SET_TYPE_PROP(DarcyTwoPTwoCTypeTag, Grid, Dune::YaspGrid<2, Dune::TensorProductC
 
 SET_BOOL_PROP(DarcyTwoPTwoCTypeTag, UseMoles, true);
 
-SET_TYPE_PROP(DarcyTwoPTwoCTypeTag, SpatialParams, TwoPTwoCSpatialParams<TypeTag>);
+SET_PROP(DarcyTwoPTwoCTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TwoPTwoCSpatialParams<FVGridGeometry, Scalar>;
+};
+
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/spatialparams.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/spatialparams.hh
index dcc5f7d118..bab494de69 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/spatialparams.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/spatialparams.hh
@@ -39,20 +39,15 @@ namespace Dumux
  * \brief The spatial parameters class for the test problem using the
  *        1p cc model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TwoPTwoCSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         TwoPTwoCSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar, TwoPTwoCSpatialParams<FVGridGeometry, Scalar>>
 {
-    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 GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, TwoPTwoCSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, TwoPTwoCSpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
     using EffectiveLaw = RegularizedVanGenuchten<Scalar>;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/1pspatialparams.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/1pspatialparams.hh
index 9708c05b7e..59517c5ea5 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/1pspatialparams.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/1pspatialparams.hh
@@ -36,17 +36,14 @@ namespace Dumux
  * \brief The spatial parameters class for the test problem using the
  *        1p cc model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePSpatialParams<FVGridGeometry, Scalar>>
 {
-    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 GridView = typename FVGridGeometry::GridView;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePSpatialParams<FVGridGeometry, Scalar>>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/darcyproblem.hh
index 76e364de60..0ca036a9ac 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/darcyproblem.hh
@@ -58,7 +58,12 @@ SET_PROP(DarcyOnePTypeTag, FluidSystem)
 // Set the grid type
 SET_TYPE_PROP(DarcyOnePTypeTag, Grid, Dune::YaspGrid<2>);
 
-SET_TYPE_PROP(DarcyOnePTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(DarcyOnePTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/darcyproblem.hh
index 266e64dccc..73892b33aa 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/darcyproblem.hh
@@ -58,7 +58,12 @@ SET_PROP(DarcyOnePTypeTag, FluidSystem)
 // Set the grid type
 SET_TYPE_PROP(DarcyOnePTypeTag, Grid, Dune::YaspGrid<2>);
 
-SET_TYPE_PROP(DarcyOnePTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(DarcyOnePTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p_2p/darcyproblem.hh
index 234c34f6b1..362367b851 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/darcyproblem.hh
@@ -54,7 +54,12 @@ SET_TYPE_PROP(DarcyTwoPTypeTag, Grid, Dune::YaspGrid<2>);
 
 SET_BOOL_PROP(DarcyTwoPTypeTag, UseMoles, false);
 
-SET_TYPE_PROP(DarcyTwoPTypeTag, SpatialParams, ConservationSpatialParams<TypeTag>);
+SET_PROP(DarcyTwoPTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = ConservationSpatialParams<FVGridGeometry, Scalar>;
+};
 
 //! Set the default formulation to pw-Sn: This can be over written in the problem.
 SET_PROP(DarcyTwoPTypeTag, Formulation)
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/spatialparams.hh b/test/multidomain/boundary/stokesdarcy/1p_2p/spatialparams.hh
index 3590c56cd4..22db4d8ff9 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/spatialparams.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/spatialparams.hh
@@ -39,20 +39,17 @@ namespace Dumux
  * \brief The spatial parameters class for the test problem using the
  *        1p cc model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class ConservationSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         ConservationSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         ConservationSpatialParams<FVGridGeometry, Scalar>>
 {
-    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 GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ConservationSpatialParams<TypeTag>>;
+    using ThisType = ConservationSpatialParams<FVGridGeometry, Scalar>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThisType>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
     using EffectiveLaw = RegularizedVanGenuchten<Scalar>;
diff --git a/test/multidomain/facet/1p_1p/threedomain/bulkproblem.hh b/test/multidomain/facet/1p_1p/threedomain/bulkproblem.hh
index 6098c8ea0a..3d3998aa82 100644
--- a/test/multidomain/facet/1p_1p/threedomain/bulkproblem.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/bulkproblem.hh
@@ -50,7 +50,12 @@ SET_TYPE_PROP(OnePBulk, Grid, Dune::ALUGrid<3, 3, Dune::simplex, Dune::nonconfor
 // Set the problem type
 SET_TYPE_PROP(OnePBulk, Problem, OnePBulkProblem<TypeTag>);
 // set the spatial params
-SET_TYPE_PROP(OnePBulk, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(OnePBulk, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(OnePBulk, FluidSystem)
diff --git a/test/multidomain/facet/1p_1p/threedomain/edgeproblem.hh b/test/multidomain/facet/1p_1p/threedomain/edgeproblem.hh
index 0495cc85e4..f9fcfcabf0 100644
--- a/test/multidomain/facet/1p_1p/threedomain/edgeproblem.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/edgeproblem.hh
@@ -52,7 +52,12 @@ SET_TYPE_PROP(OnePEdge, Grid, Dune::FoamGrid<1, 3>);
 // Set the problem type
 SET_TYPE_PROP(OnePEdge, Problem, OnePEdgeProblem<TypeTag>);
 // set the spatial params
-SET_TYPE_PROP(OnePEdge, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(OnePEdge, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(OnePEdge, FluidSystem)
diff --git a/test/multidomain/facet/1p_1p/threedomain/facetproblem.hh b/test/multidomain/facet/1p_1p/threedomain/facetproblem.hh
index d6302e1045..a72c5af1f9 100644
--- a/test/multidomain/facet/1p_1p/threedomain/facetproblem.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/facetproblem.hh
@@ -51,7 +51,12 @@ SET_TYPE_PROP(OnePFacet, Grid, Dune::FoamGrid<2, 3>);
 // Set the problem type
 SET_TYPE_PROP(OnePFacet, Problem, OnePFacetProblem<TypeTag>);
 // set the spatial params
-SET_TYPE_PROP(OnePFacet, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(OnePFacet, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(OnePFacet, FluidSystem)
diff --git a/test/multidomain/facet/1p_1p/threedomain/spatialparams.hh b/test/multidomain/facet/1p_1p/threedomain/spatialparams.hh
index 48b577e9f4..2a57fa02c7 100644
--- a/test/multidomain/facet/1p_1p/threedomain/spatialparams.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/spatialparams.hh
@@ -32,19 +32,15 @@ namespace Dumux {
  * \ingroup OnePTests
  * \brief The spatial params the single-phase facet coupling test
  */
-template<class TypeTag>
-class OnePSpatialParams : public FVSpatialParamsOneP< typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                                                      typename GET_PROP_TYPE(TypeTag, Scalar),
-                                                      OnePSpatialParams<TypeTag> >
+template<class FVGridGeometry, class Scalar>
+class OnePSpatialParams : public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                                     OnePSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
-    using ThisType = OnePSpatialParams<TypeTag>;
+    using ThisType = OnePSpatialParams<FVGridGeometry, Scalar>;
     using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, ThisType>;
 
 public:
diff --git a/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh b/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh
index 3ba1bdd208..ad5e238833 100644
--- a/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh
+++ b/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh
@@ -67,7 +67,12 @@ SET_TYPE_PROP(OnePNIConductionTypeTag, FluidSystem,
             FluidSystems::OnePLiquid<typename GET_PROP_TYPE(TypeTag, Scalar),
                                                            Components::H2O<typename GET_PROP_TYPE(TypeTag, Scalar)> >);
 // Set the spatial parameters
-SET_TYPE_PROP(OnePNIConductionTypeTag, SpatialParams, OnePNISpatialParams<TypeTag>);
+SET_PROP(OnePNIConductionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNISpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 
diff --git a/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh b/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh
index 0ca5a8cc0c..2bc5d51e78 100644
--- a/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh
+++ b/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh
@@ -66,7 +66,12 @@ SET_TYPE_PROP(OnePNIConvectionTypeTag, FluidSystem,
                                                            Components::H2O<typename GET_PROP_TYPE(TypeTag, Scalar)> >);
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePNIConvectionTypeTag, SpatialParams, OnePNISpatialParams<TypeTag>);
+SET_PROP(OnePNIConvectionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNISpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 
diff --git a/test/porousmediumflow/1p/implicit/1pnispatialparams.hh b/test/porousmediumflow/1p/implicit/1pnispatialparams.hh
index 6d55649aeb..88e0c4696a 100644
--- a/test/porousmediumflow/1p/implicit/1pnispatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/1pnispatialparams.hh
@@ -33,16 +33,14 @@ namespace Dumux {
  * \ingroup OnePTests
  * \brief Definition of the spatial parameters for the 1pni problems.
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePNISpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePNISpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePNISpatialParams<FVGridGeometry, Scalar>>
 {
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePNISpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePNISpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/test/porousmediumflow/1p/implicit/compressible/problem.hh b/test/porousmediumflow/1p/implicit/compressible/problem.hh
index b70307908e..5bcade3c59 100644
--- a/test/porousmediumflow/1p/implicit/compressible/problem.hh
+++ b/test/porousmediumflow/1p/implicit/compressible/problem.hh
@@ -59,7 +59,12 @@ SET_TYPE_PROP(OnePCompressible, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(OnePCompressible, Problem, OnePTestProblem<TypeTag>);
 
 // set the spatial params
-SET_TYPE_PROP(OnePCompressible, SpatialParams, OnePTestSpatialParams<TypeTag>);
+SET_PROP(OnePCompressible, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(OnePCompressible, FluidSystem)
diff --git a/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh b/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh
index 812aad6042..dfc19c4e64 100644
--- a/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh
@@ -34,19 +34,17 @@ namespace Dumux {
  * \brief The spatial parameters class for the test problem using the
  *        compressible 1p model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/1p/implicit/fractureproblem.hh b/test/porousmediumflow/1p/implicit/fractureproblem.hh
index 96b9fafcdf..7b2a7280df 100644
--- a/test/porousmediumflow/1p/implicit/fractureproblem.hh
+++ b/test/porousmediumflow/1p/implicit/fractureproblem.hh
@@ -71,7 +71,12 @@ SET_PROP(FractureTypeTag, FluidSystem)
     using type = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 };
 // Set the spatial parameters
-SET_TYPE_PROP(FractureTypeTag, SpatialParams, FractureSpatialParams<TypeTag>);
+SET_PROP(FractureTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FractureSpatialParams<FVGridGeometry, Scalar>;
+};
 
 } // end namespace Properties
 
diff --git a/test/porousmediumflow/1p/implicit/fracturespatialparams.hh b/test/porousmediumflow/1p/implicit/fracturespatialparams.hh
index 516d743503..ea81dea7bf 100644
--- a/test/porousmediumflow/1p/implicit/fracturespatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/fracturespatialparams.hh
@@ -35,16 +35,14 @@ namespace Dumux {
  * \brief The spatial parameters for the LensProblem which uses the
  *        two-phase fully implicit model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class FractureSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             FractureSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             FractureSpatialParams<FVGridGeometry, Scalar>>
 {
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
     using GridView = typename FVGridGeometry::GridView;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, FractureSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           FractureSpatialParams<FVGridGeometry, Scalar>>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/1p/implicit/incompressible/problem.hh b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
index 0d7ae66f77..71c6c88649 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/problem.hh
+++ b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
@@ -59,7 +59,12 @@ SET_TYPE_PROP(OnePIncompressible, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(OnePIncompressible, Problem, OnePTestProblem<TypeTag>);
 
 // set the spatial params
-SET_TYPE_PROP(OnePIncompressible, SpatialParams, OnePTestSpatialParams<TypeTag>);
+SET_PROP(OnePIncompressible, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // use the incompressible local residual (provides analytic jacobian)
 SET_TYPE_PROP(OnePIncompressible, LocalResidual, OnePIncompressibleLocalResidual<TypeTag>);
diff --git a/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh b/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh
index 749052ac0f..2e36b043f1 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh
@@ -34,19 +34,17 @@ namespace Dumux {
  * \brief The spatial parameters class for the test problem using the
  *        incompressible 1p model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh b/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh
index e77b07c1fc..824dde61a2 100644
--- a/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh
+++ b/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh
@@ -62,7 +62,12 @@ SET_TYPE_PROP(OnePSingularityTypeTag, Grid,
 SET_TYPE_PROP(OnePSingularityTypeTag, Problem, OnePSingularityProblem<TypeTag> );
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePSingularityTypeTag, SpatialParams, OnePSingularitySpatialParams<TypeTag> );
+SET_PROP(OnePSingularityTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSingularitySpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 /*!
diff --git a/test/porousmediumflow/1p/implicit/pointsources/1psingularityspatialparams.hh b/test/porousmediumflow/1p/implicit/pointsources/1psingularityspatialparams.hh
index ed20e2d3b4..04f5eb0133 100644
--- a/test/porousmediumflow/1p/implicit/pointsources/1psingularityspatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/pointsources/1psingularityspatialparams.hh
@@ -35,19 +35,17 @@ namespace Dumux {
  * \brief The spatial parameters class for the test problem using the
  *        1p model with point sources
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePSingularitySpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePSingularitySpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePSingularitySpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePSingularitySpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePSingularitySpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 public:
diff --git a/test/porousmediumflow/1p/implicit/tubesproblem.hh b/test/porousmediumflow/1p/implicit/tubesproblem.hh
index b3832cdf29..905306eeeb 100644
--- a/test/porousmediumflow/1p/implicit/tubesproblem.hh
+++ b/test/porousmediumflow/1p/implicit/tubesproblem.hh
@@ -93,7 +93,12 @@ public:
 SET_TYPE_PROP(TubesTestTypeTag, Problem, TubesTestProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(TubesTestTypeTag, SpatialParams, TubesTestSpatialParams<TypeTag>);
+SET_PROP(TubesTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TubesTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(TubesTestTypeTag, FluidSystem)
diff --git a/test/porousmediumflow/1p/implicit/tubesspatialparams.hh b/test/porousmediumflow/1p/implicit/tubesspatialparams.hh
index 4d88979cfc..b6d3ce7a8b 100644
--- a/test/porousmediumflow/1p/implicit/tubesspatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/tubesspatialparams.hh
@@ -35,19 +35,17 @@ namespace Dumux {
  * \brief A test problem for the 1p model. A pipe system with circular cross-section
  *        and a branching point embedded in a three-dimensional world
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TubesTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             TubesTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             TubesTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, TubesTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           TubesTestSpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
diff --git a/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh
index e720bbccf4..11fa5795c7 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh
@@ -74,7 +74,12 @@ SET_PROP(OnePTwoCNIConductionTypeTag, FluidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePTwoCNIConductionTypeTag, SpatialParams, OnePNCTestSpatialParams<TypeTag>);
+SET_PROP(OnePTwoCNIConductionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(OnePTwoCNIConductionTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh
index 52b75eaf85..5e15469124 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh
@@ -74,7 +74,12 @@ SET_PROP(OnePTwoCNIConvectionTypeTag, FluidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePTwoCNIConvectionTypeTag, SpatialParams, OnePNCTestSpatialParams<TypeTag>);
+SET_PROP(OnePTwoCNIConvectionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(OnePTwoCNIConvectionTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh
index 9f76cef50c..585e1823f9 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh
@@ -74,7 +74,12 @@ SET_PROP(OnePTwoCTestTypeTag, FluidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePTwoCTestTypeTag, SpatialParams, OnePNCTestSpatialParams<TypeTag>);
+SET_PROP(OnePTwoCTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(OnePTwoCTestTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/1pnc/implicit/1pnctestspatialparams.hh b/test/porousmediumflow/1pnc/implicit/1pnctestspatialparams.hh
index 1106a1683a..d4e0ae63f0 100644
--- a/test/porousmediumflow/1pnc/implicit/1pnctestspatialparams.hh
+++ b/test/porousmediumflow/1pnc/implicit/1pnctestspatialparams.hh
@@ -35,19 +35,17 @@ namespace Dumux {
  * \brief Definition of the spatial parameters for the 1pnc
  *        test problems.
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePNCTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePNCTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePNCTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePNCTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePNCTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Dune::FieldVector<Scalar, dimWorld>;
diff --git a/test/porousmediumflow/1pnc/implicit/saltwaterintrusionproblem.hh b/test/porousmediumflow/1pnc/implicit/saltwaterintrusionproblem.hh
index 754486f0a4..0ca5541c70 100644
--- a/test/porousmediumflow/1pnc/implicit/saltwaterintrusionproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/saltwaterintrusionproblem.hh
@@ -52,7 +52,12 @@ SET_TYPE_PROP(SaltWaterIntrusionTestTypeTag,
               FluidSystems::Brine< typename GET_PROP_TYPE(TypeTag, Scalar) >);
 
 // Set the spatial parameters
-SET_TYPE_PROP(SaltWaterIntrusionTestTypeTag, SpatialParams, OnePNCTestSpatialParams<TypeTag>);
+SET_PROP(SaltWaterIntrusionTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Use mass fractions to set salinity conveniently
 SET_BOOL_PROP(SaltWaterIntrusionTestTypeTag, UseMoles, false);
diff --git a/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh b/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh
index 6f483698ec..58cb2662d6 100644
--- a/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh
+++ b/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh
@@ -77,7 +77,12 @@ SET_PROP(ThermoChemTypeTag, SolidSystem)
 // SET_BOOL_PROP(ThermoChemTypeTag, VtkAddVelocity, false);
 
 // Set the spatial parameters
-SET_TYPE_PROP(ThermoChemTypeTag, SpatialParams, ThermoChemSpatialParams<TypeTag>);
+SET_PROP(ThermoChemTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = ThermoChemSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(ThermoChemTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/1pncmin/implicit/thermochemspatialparams.hh b/test/porousmediumflow/1pncmin/implicit/thermochemspatialparams.hh
index 78dcf7ef39..956a31a745 100644
--- a/test/porousmediumflow/1pncmin/implicit/thermochemspatialparams.hh
+++ b/test/porousmediumflow/1pncmin/implicit/thermochemspatialparams.hh
@@ -39,22 +39,17 @@ namespace Dumux {
  * \brief Definition of the spatial parameters for the FuelCell
  *        problem which uses the isothermal 2p2c box model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class ThermoChemSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             ThermoChemSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             ThermoChemSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, ThermoChemSpatialParams<TypeTag>>;
-
-    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
-    using ModelTraits = typename GET_PROP_TYPE(TypeTag, ModelTraits);
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           ThermoChemSpatialParams<FVGridGeometry, Scalar>>;
 
     enum { dimWorld=GridView::dimensionworld };
 
diff --git a/test/porousmediumflow/2p/implicit/fracture/problem.hh b/test/porousmediumflow/2p/implicit/fracture/problem.hh
index a52fefa518..1110782180 100644
--- a/test/porousmediumflow/2p/implicit/fracture/problem.hh
+++ b/test/porousmediumflow/2p/implicit/fracture/problem.hh
@@ -72,7 +72,12 @@ SET_PROP(FractureTypeTag, FluidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(FractureTypeTag, SpatialParams, FractureSpatialParams<TypeTag>);
+SET_PROP(FractureTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FractureSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Use global caching
 SET_BOOL_PROP(FractureTypeTag, EnableFVGridGeometryCache, true);
diff --git a/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh b/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh
index 65e5beb1b4..d242dea180 100644
--- a/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh
+++ b/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh
@@ -39,19 +39,17 @@ namespace Dumux {
  * \brief The spatial parameters for the LensProblem which uses the
  *        two-phase fully implicit model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class FractureSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         FractureSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         FractureSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, FractureSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       FractureSpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
index a052c282c5..bb2047fe2c 100644
--- a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
+++ b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
@@ -44,7 +44,7 @@ template <class TypeTag>
 class InjectionProblem;
 
 namespace Properties {
-NEW_TYPE_TAG(InjectionProblemTypeTag, INHERITS_FROM(TwoPOneCNI, InjectionProblemSpatialParams));
+NEW_TYPE_TAG(InjectionProblemTypeTag, INHERITS_FROM(TwoPOneCNI));
 NEW_TYPE_TAG(TwoPOneCNIBoxTypeTag, INHERITS_FROM(BoxModel, InjectionProblemTypeTag));
 NEW_TYPE_TAG(TwoPOneCNICCTpfaTypeTag, INHERITS_FROM(CCTpfaModel, InjectionProblemTypeTag));
 
@@ -64,6 +64,13 @@ public:
     using type = Dumux::FluidSystems::TwoPOneC<Scalar, H2OType >;
 };
 
+// Set the spatial parameters
+SET_PROP(InjectionProblemTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = InjectionProblemSpatialParams<FVGridGeometry, Scalar>;
+};
 
 //Define whether spurious cold-water flow into the steam is blocked
 SET_BOOL_PROP(InjectionProblemTypeTag, UseBlockingOfSpuriousFlow, true);
diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh
index b2c68e2176..44e16f6dff 100644
--- a/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh
+++ b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh
@@ -31,37 +31,21 @@
 #include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh>
 
 namespace Dumux {
-
-//forward declaration
-template<class TypeTag>
-class InjectionProblemSpatialParams;
-
-namespace Properties
-{
-// The spatial parameters TypeTag
-NEW_TYPE_TAG(InjectionProblemSpatialParams);
-
-// Set the spatial parameters
-SET_TYPE_PROP(InjectionProblemSpatialParams, SpatialParams, Dumux::InjectionProblemSpatialParams<TypeTag>);
-}
-
 /*!
  * \ingroup TwoPOneCTests
  * \brief Definition of the spatial parameters for various steam injection problems
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class InjectionProblemSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         InjectionProblemSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         InjectionProblemSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, InjectionProblemSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       InjectionProblemSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
 
diff --git a/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh b/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh
index 11134d2bc7..77e7dc1d35 100644
--- a/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh
+++ b/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh
@@ -60,7 +60,12 @@ SET_TYPE_PROP(TwoPNCDiffusionTypeTag,
               FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/true>>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(TwoPNCDiffusionTypeTag, SpatialParams, TwoPNCDiffusionSpatialParams<TypeTag>);
+SET_PROP(TwoPNCDiffusionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TwoPNCDiffusionSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(TwoPNCDiffusionTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh b/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh
index 10381263a7..1da7c6f810 100644
--- a/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh
+++ b/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh
@@ -39,16 +39,14 @@ namespace Dumux {
  * \brief Definition of the spatial parameters for the TwoPNCDiffusion
  *        problem which uses the isothermal 2p2c box model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TwoPNCDiffusionSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         TwoPNCDiffusionSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         TwoPNCDiffusionSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, TwoPNCDiffusionSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       TwoPNCDiffusionSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
 
diff --git a/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh b/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh
index 9d72928587..8f492fbf62 100644
--- a/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh
+++ b/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh
@@ -65,7 +65,12 @@ SET_TYPE_PROP(FuelCellTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(FuelCellTypeTag, Problem, FuelCellProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(FuelCellTypeTag, SpatialParams, FuelCellSpatialParams<TypeTag>);
+SET_PROP(FuelCellTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FuelCellSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Set the primary variable combination for the 2pnc model
 SET_PROP(FuelCellTypeTag, Formulation)
diff --git a/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh b/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh
index 78f4079f1c..1975f6453a 100644
--- a/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh
+++ b/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh
@@ -39,16 +39,14 @@ namespace Dumux {
  * \brief Definition of the spatial parameters for the FuelCell
  *        problem which uses the isothermal 2p2c box model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class FuelCellSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         FuelCellSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         FuelCellSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, FuelCellSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       FuelCellSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
 
diff --git a/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh b/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh
index 5ad6c884e4..337b091a03 100644
--- a/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh
+++ b/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh
@@ -76,7 +76,12 @@ SET_PROP(DissolutionTypeTag, SolidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(DissolutionTypeTag, SpatialParams, DissolutionSpatialparams<TypeTag>);
+SET_PROP(DissolutionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = DissolutionSpatialParams<FVGridGeometry, Scalar>;
+};
 
 //Set properties here to override the default property settings
 SET_INT_PROP(DissolutionTypeTag, ReplaceCompEqIdx, 1); //!< Replace gas balance by total mass balance
diff --git a/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh b/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh
index 8098722211..af2360afe6 100644
--- a/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh
+++ b/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh
@@ -39,21 +39,18 @@ namespace Dumux {
  * \brief Spatial parameters for the dissolution problem
  * where water is injected in a for flushing precipitated salt clogging a gas reservoir.
  */
-template<class TypeTag>
-class DissolutionSpatialparams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         DissolutionSpatialparams<TypeTag>>
+template<class FVGridGeometry, class Scalar>
+class DissolutionSpatialParams
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         DissolutionSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
 
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, DissolutionSpatialparams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       DissolutionSpatialParams<FVGridGeometry, Scalar>>;
 
     using EffectiveLaw = RegularizedBrooksCorey<Scalar>;
 
@@ -66,7 +63,7 @@ public:
     using MaterialLaw = EffToAbsLaw<EffectiveLaw>;
     using MaterialLawParams = typename MaterialLaw::Params;
 
-    DissolutionSpatialparams(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
+    DissolutionSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
     : ParentType(fvGridGeometry)
     {
         solubilityLimit_       = getParam<Scalar>("SpatialParams.SolubilityLimit", 0.26);
diff --git a/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh b/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh
index 49fc43ed79..ef01ff6782 100644
--- a/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh
+++ b/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh
@@ -68,7 +68,12 @@ SET_TYPE_PROP(ThreePNIConductionTypeTag,
               FluidSystems::H2OAirMesitylene<typename GET_PROP_TYPE(TypeTag, Scalar)>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(ThreePNIConductionTypeTag, SpatialParams, ThreePNISpatialParams<TypeTag>);
+SET_PROP(ThreePNIConductionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = ThreePNISpatialParams<FVGridGeometry, Scalar>;
+};
 }// end namespace Properties
 
 
diff --git a/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh b/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh
index 8e3f52422b..c2203d1487 100644
--- a/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh
+++ b/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh
@@ -68,7 +68,12 @@ SET_TYPE_PROP(ThreePNIConvectionTypeTag,
               FluidSystems::H2OAirMesitylene<typename GET_PROP_TYPE(TypeTag, Scalar)>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(ThreePNIConvectionTypeTag, SpatialParams, ThreePNISpatialParams<TypeTag>);
+SET_PROP(ThreePNIConvectionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = ThreePNISpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 /*!
diff --git a/test/porousmediumflow/3p/implicit/3pnispatialparams.hh b/test/porousmediumflow/3p/implicit/3pnispatialparams.hh
index c85e9f3f32..86253c8529 100644
--- a/test/porousmediumflow/3p/implicit/3pnispatialparams.hh
+++ b/test/porousmediumflow/3p/implicit/3pnispatialparams.hh
@@ -36,20 +36,17 @@ namespace Dumux {
  * \ingroup ThreePTests
  * \brief Definition of the spatial parameters for the 3pni problems.
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class ThreePNISpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         ThreePNISpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         ThreePNISpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThreePNISpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       ThreePNISpatialParams<FVGridGeometry, Scalar>>;
 
     using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>;
 
diff --git a/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh b/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh
index 132641ca79..777889b6e2 100644
--- a/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh
+++ b/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh
@@ -79,11 +79,12 @@ public:
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(InfiltrationThreePTypeTag, SpatialParams, InfiltrationThreePSpatialParams<TypeTag>);
-
-// SET_TYPE_PROP(InfiltrationThreePTypeTag,
-//               FluidSystem,
-//               FluidSystems::ThreePImmiscible<typename GET_PROP_TYPE(TypeTag, Scalar)>);
+SET_PROP(InfiltrationThreePTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = InfiltrationThreePSpatialParams<FVGridGeometry, Scalar>;
+};
 
 }// end namespace Properties
 
diff --git a/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh b/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh
index db78723e17..01ce61ece6 100644
--- a/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh
+++ b/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh
@@ -40,19 +40,17 @@ namespace Dumux {
  *
  * \brief Definition of the spatial parameters for the infiltration problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class InfiltrationThreePSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         InfiltrationThreePSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         InfiltrationThreePSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, InfiltrationThreePSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       InfiltrationThreePSpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename SubControlVolume::GlobalPosition;
 
diff --git a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
index a5733fecd7..f67c3f5ef2 100644
--- a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
+++ b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
@@ -58,7 +58,12 @@ SET_TYPE_PROP(SagdTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(SagdTypeTag, Problem, Dumux::SagdProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(SagdTypeTag, SpatialParams, SagdSpatialParams<TypeTag>);
+SET_PROP(SagdTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = SagdSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Set the fluid system
 SET_TYPE_PROP(SagdTypeTag,
diff --git a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh
index 7a95e68047..8e43b62f89 100644
--- a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh
+++ b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh
@@ -41,14 +41,11 @@ namespace Dumux {
  *
  * \brief Definition of the spatial parameters for the SAGD problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class SagdSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         SagdSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         SagdSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
@@ -58,7 +55,8 @@ class SagdSpatialParams
     using GlobalPosition = typename SubControlVolume::GlobalPosition;
 
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, SagdSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       SagdSpatialParams<FVGridGeometry, Scalar>>;
 
     using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>;
 
diff --git a/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh b/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh
index 993db884bd..9acdacc83a 100644
--- a/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh
@@ -70,7 +70,12 @@ SET_TYPE_PROP(RichardsAnalyticalTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(RichardsAnalyticalTypeTag, Problem, RichardsAnalyticalProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(RichardsAnalyticalTypeTag, SpatialParams, RichardsAnalyticalSpatialParams<TypeTag>);
+SET_PROP(RichardsAnalyticalTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = RichardsAnalyticalSpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 /*!
diff --git a/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh b/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh
index cca140422b..e3da4a35f4 100644
--- a/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh
+++ b/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh
@@ -40,16 +40,14 @@ namespace Dumux {
  * \ingroup ImplicitTestProblems
  * \brief The spatial parameters for the RichardsAnalyticalProblem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class RichardsAnalyticalSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         RichardsAnalyticalSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         RichardsAnalyticalSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, RichardsAnalyticalSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       RichardsAnalyticalSpatialParams<FVGridGeometry, Scalar>>;
 
     enum { dimWorld=GridView::dimensionworld };
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
index 2ebfbc3db1..ebc6e7796d 100644
--- a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
@@ -64,7 +64,12 @@ SET_TYPE_PROP(RichardsNIConductionTypeTag, Problem,
 SET_TYPE_PROP(RichardsNIConductionTypeTag, FluidSystem, FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/true>>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(RichardsNIConductionTypeTag, SpatialParams, RichardsNISpatialParams<TypeTag>);
+SET_PROP(RichardsNIConductionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = RichardsNISpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 /*!
diff --git a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
index aeafdd276f..72cf700377 100644
--- a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
@@ -64,7 +64,12 @@ SET_TYPE_PROP(RichardsNIConvectionTypeTag, Problem, RichardsNIConvectionProblem<
 SET_TYPE_PROP(RichardsNIConvectionTypeTag, FluidSystem, FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/true>>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(RichardsNIConvectionTypeTag, SpatialParams, RichardsNISpatialParams<TypeTag>);
+SET_PROP(RichardsNIConvectionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = RichardsNISpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 /*!
diff --git a/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh b/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh
index 0663c39230..ef244ab247 100644
--- a/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh
@@ -63,7 +63,12 @@ SET_TYPE_PROP(RichardsNIEvaporationTypeTag, Problem,
 SET_TYPE_PROP(RichardsNIEvaporationTypeTag, FluidSystem, FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/true>>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(RichardsNIEvaporationTypeTag, SpatialParams, RichardsNISpatialParams<TypeTag>);
+SET_PROP(RichardsNIEvaporationTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = RichardsNISpatialParams<FVGridGeometry, Scalar>;
+};
 
 SET_BOOL_PROP(RichardsNIEvaporationTypeTag, EnableWaterDiffusionInAir, true);
 } // end namespace Properties
diff --git a/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh b/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh
index ae497ac99b..dea3c9332e 100644
--- a/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh
+++ b/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh
@@ -32,19 +32,17 @@
 
 namespace Dumux {
 
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class RichardsNISpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         RichardsNISpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         RichardsNISpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, RichardsNISpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       RichardsNISpatialParams<FVGridGeometry, Scalar>>;
 
     enum { dimWorld=GridView::dimensionworld };
 
diff --git a/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh b/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh
index 82b465f368..4cae1d439b 100644
--- a/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh
+++ b/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh
@@ -53,7 +53,14 @@ SET_TYPE_PROP(IncompressibleTestTypeTag, Grid, Dune::YaspGrid<2>);
 
 // Set the problem type
 SET_TYPE_PROP(IncompressibleTestTypeTag, Problem, OnePTestProblem<TypeTag>);
-SET_TYPE_PROP(IncompressibleTestTypeTag, SpatialParams, OnePTestSpatialParams<TypeTag>);
+
+SET_PROP(IncompressibleTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
+};
+
 SET_TYPE_PROP(IncompressibleTestTypeTag, LocalResidual, OnePIncompressibleLocalResidual<TypeTag>);
 
 // the fluid system
diff --git a/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh b/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh
index 8ff623ee2f..4dd4e35730 100644
--- a/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh
+++ b/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh
@@ -34,19 +34,17 @@ namespace Dumux {
  * \ingroup TracerTests
  * \brief The spatial params the incompressible test
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename SubControlVolume::GlobalPosition;
diff --git a/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh b/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh
index 9e9a4c4027..176631562b 100644
--- a/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh
+++ b/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh
@@ -59,7 +59,12 @@ SET_TYPE_PROP(TracerTestTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(TracerTestTypeTag, Problem, TracerTestProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(TracerTestTypeTag, SpatialParams, TracerTestSpatialParams<TypeTag>);
+SET_PROP(TracerTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TracerTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(TracerTestTypeTag, UseMoles, false);
diff --git a/test/porousmediumflow/tracer/1ptracer/tracertestspatialparams.hh b/test/porousmediumflow/tracer/1ptracer/tracertestspatialparams.hh
index ab7e36f45d..17eb067c9f 100644
--- a/test/porousmediumflow/tracer/1ptracer/tracertestspatialparams.hh
+++ b/test/porousmediumflow/tracer/1ptracer/tracertestspatialparams.hh
@@ -33,20 +33,18 @@ namespace Dumux {
  * \ingroup TracerTests
  * \brief Definition of the spatial parameters for the tracer problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TracerTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             TracerTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             TracerTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, TracerTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           TracerTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Dune::FieldVector<Scalar, dimWorld>;
diff --git a/test/porousmediumflow/tracer/constvel/tracertestproblem.hh b/test/porousmediumflow/tracer/constvel/tracertestproblem.hh
index 837fa04d10..8ae67572ee 100644
--- a/test/porousmediumflow/tracer/constvel/tracertestproblem.hh
+++ b/test/porousmediumflow/tracer/constvel/tracertestproblem.hh
@@ -67,7 +67,12 @@ SET_TYPE_PROP(TracerTest, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(TracerTest, Problem, TracerTest<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(TracerTest, SpatialParams, TracerTestSpatialParams<TypeTag>);
+SET_PROP(TracerTest, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TracerTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(TracerTest, UseMoles, USEMOLES);
diff --git a/test/porousmediumflow/tracer/constvel/tracertestspatialparams.hh b/test/porousmediumflow/tracer/constvel/tracertestspatialparams.hh
index 486f031c13..395823bd92 100644
--- a/test/porousmediumflow/tracer/constvel/tracertestspatialparams.hh
+++ b/test/porousmediumflow/tracer/constvel/tracertestspatialparams.hh
@@ -33,20 +33,18 @@ namespace Dumux {
  * \ingroup TracerTests
  * \brief Definition of the spatial parameters for the tracer problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TracerTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             TracerTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             TracerTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, TracerTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           TracerTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Dune::FieldVector<Scalar, dimWorld>;
diff --git a/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh b/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh
index 4321821526..ba5a1b2de2 100644
--- a/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh
+++ b/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh
@@ -56,7 +56,12 @@ SET_TYPE_PROP(MaxwellStefanTestTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(MaxwellStefanTestTypeTag, Problem, MaxwellStefanTestProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(MaxwellStefanTestTypeTag, SpatialParams, MaxwellStefanTestSpatialParams<TypeTag>);
+SET_PROP(MaxwellStefanTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = MaxwellStefanTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(MaxwellStefanTestTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/tracer/multicomp/maxwellstefantestspatialparams.hh b/test/porousmediumflow/tracer/multicomp/maxwellstefantestspatialparams.hh
index 9d329e7078..ec3c044c0e 100644
--- a/test/porousmediumflow/tracer/multicomp/maxwellstefantestspatialparams.hh
+++ b/test/porousmediumflow/tracer/multicomp/maxwellstefantestspatialparams.hh
@@ -33,20 +33,18 @@ namespace Dumux {
  * \ingroup TracerTest
  * \brief Definition of the spatial parameters for the MaxwellStefan problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class MaxwellStefanTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             MaxwellStefanTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             MaxwellStefanTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, MaxwellStefanTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           MaxwellStefanTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Dune::FieldVector<Scalar, dimWorld>;
-- 
GitLab