From 28cac62660372bd0929a1c1f3edbda1ba135fa1e Mon Sep 17 00:00:00 2001
From: hanchuan <>
Date: Mon, 3 May 2021 09:10:46 +0200
Subject: [PATCH] [cleanup] Replace NumEqVector property by Dumux::NumEqVector

---
 dumux/assembly/boxlocalresidual.hh                    |  3 ++-
 dumux/assembly/cclocalassembler.hh                    | 11 ++++++-----
 dumux/assembly/cclocalresidual.hh                     |  3 ++-
 dumux/assembly/fvlocalresidual.hh                     |  3 ++-
 dumux/common/fvproblem.hh                             |  3 ++-
 dumux/common/pointsource.hh                           |  5 +++--
 dumux/common/properties/grid.hh                       |  3 ++-
 dumux/common/staggeredfvproblem.hh                    |  3 ++-
 dumux/freeflow/shallowwater/fluxvariables.hh          |  3 ++-
 dumux/freeflow/shallowwater/localresidual.hh          |  3 ++-
 dumux/freeflow/shallowwater/model.hh                  |  5 +++--
 dumux/geomechanics/elastic/localresidual.hh           |  3 ++-
 dumux/geomechanics/poroelastic/localresidual.hh       |  3 ++-
 .../boundary/darcydarcy/couplingmanager.hh            |  3 ++-
 .../boundary/stokesdarcy/couplingmanager.hh           |  5 +++--
 .../embedded/circleaveragepointsourcetraits.hh        |  3 ++-
 dumux/multidomain/embedded/couplingmanagerbase.hh     |  3 ++-
 dumux/multidomain/facet/box/couplingmanager.hh        |  3 ++-
 dumux/multidomain/facet/box/localresidual.hh          |  3 ++-
 dumux/multidomain/facet/cellcentered/localresidual.hh |  3 ++-
 .../facet/cellcentered/mpfa/couplingmanager.hh        |  3 ++-
 .../facet/cellcentered/tpfa/couplingmanager.hh        |  3 ++-
 dumux/multidomain/subdomainboxlocalassembler.hh       |  3 ++-
 dumux/multidomain/subdomaincclocalassembler.hh        |  9 +++++----
 dumux/porousmediumflow/2p1c/localresidual.hh          |  3 ++-
 dumux/porousmediumflow/3p3c/localresidual.hh          |  3 ++-
 dumux/porousmediumflow/3pwateroil/localresidual.hh    |  3 ++-
 dumux/porousmediumflow/compositional/localresidual.hh |  3 ++-
 dumux/porousmediumflow/immiscible/localresidual.hh    |  3 ++-
 .../porousmediumflow/mineralization/localresidual.hh  |  3 ++-
 .../porousmediumflow/nonequilibrium/localresidual.hh  |  5 +++--
 .../nonequilibrium/thermal/localresidual.hh           |  5 +++--
 dumux/porousmediumflow/nonisothermal/localresidual.hh |  5 +++--
 dumux/porousmediumflow/richards/localresidual.hh      |  3 ++-
 dumux/porousmediumflow/solidenergy/localresidual.hh   |  3 ++-
 dumux/porousmediumflow/tracer/localresidual.hh        |  3 ++-
 examples/1ptracer/problem_tracer.hh                   |  3 ++-
 examples/2pinfiltration/problem.hh                    |  3 ++-
 examples/biomineralization/problem.hh                 |  3 ++-
 examples/liddrivencavity/problem.hh                   |  3 ++-
 examples/shallowwaterfriction/problem.hh              |  5 +++--
 test/freeflow/navierstokes/angeli/problem.hh          |  3 ++-
 test/freeflow/navierstokes/channel/1d/problem.hh      |  5 +++--
 test/freeflow/navierstokes/channel/2d/problem.hh      |  3 ++-
 test/freeflow/navierstokes/channel/3d/problem.hh      |  3 ++-
 test/freeflow/navierstokes/donea/problem.hh           |  5 +++--
 test/freeflow/navierstokes/kovasznay/problem.hh       |  3 ++-
 test/freeflow/navierstokes/sincos/problem.hh          |  3 ++-
 test/freeflow/navierstokesnc/channel/problem.hh       |  3 ++-
 .../navierstokesnc/densitydrivenflow/problem.hh       |  3 ++-
 test/freeflow/navierstokesnc/maxwellstefan/problem.hh |  3 ++-
 test/freeflow/rans/problem.hh                         |  3 ++-
 test/freeflow/ransnc/problem.hh                       |  3 ++-
 test/freeflow/shallowwater/bowl/problem.hh            |  5 +++--
 test/freeflow/shallowwater/dambreak/problem.hh        |  3 ++-
 test/freeflow/shallowwater/poiseuilleflow/problem.hh  |  5 +++--
 test/freeflow/shallowwater/roughchannel/problem.hh    |  5 +++--
 test/geomechanics/elastic/problem.hh                  |  3 ++-
 test/geomechanics/poroelastic/problem.hh              |  3 ++-
 test/multidomain/boundary/darcydarcy/1p_1p/problem.hh |  3 ++-
 test/multidomain/boundary/darcydarcy/1p_2p/problem.hh |  3 ++-
 .../1p2c_1p2c/diffusionlawcomparison/problem_darcy.hh |  3 ++-
 .../diffusionlawcomparison/problem_stokes.hh          |  3 ++-
 .../boundary/stokesdarcy/1p2c_1p2c/problem_darcy.hh   |  3 ++-
 .../boundary/stokesdarcy/1p2c_1p2c/problem_stokes.hh  |  3 ++-
 .../boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh   |  3 ++-
 .../boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh  |  3 ++-
 .../boundary/stokesdarcy/1p3c_1p3c/problem_darcy.hh   |  3 ++-
 .../boundary/stokesdarcy/1p3c_1p3c/problem_stokes.hh  |  3 ++-
 .../1p_1p/convergencetest/problem_darcy.hh            |  3 ++-
 .../1p_1p/convergencetest/problem_stokes.hh           |  3 ++-
 .../boundary/stokesdarcy/1p_1p/problem_darcy.hh       |  3 ++-
 .../boundary/stokesdarcy/1p_1p/problem_stokes.hh      |  4 ++--
 .../boundary/stokesdarcy/1p_2p/problem_darcy.hh       |  3 ++-
 .../boundary/stokesdarcy/1p_2p/problem_stokes.hh      |  3 ++-
 .../embedded/1d3d/1p2c_richards2c/problem_root.hh     |  5 +++--
 .../embedded/1d3d/1p2c_richards2c/problem_soil.hh     |  3 ++-
 .../multidomain/embedded/1d3d/1p_1p/problem_tissue.hh |  3 ++-
 .../embedded/1d3d/1p_richards/problem_root.hh         |  3 ++-
 .../embedded/2d3d/1p_1p/problem_fracture.hh           |  3 ++-
 .../multidomain/embedded/2d3d/1p_1p/problem_matrix.hh |  3 ++-
 .../facet/1p_1p/analytical/problem_bulk.hh            |  3 ++-
 .../facet/1p_1p/analytical/problem_lowdim.hh          |  3 ++-
 test/multidomain/facet/1p_1p/gravity/problem_bulk.hh  |  3 ++-
 .../multidomain/facet/1p_1p/gravity/problem_lowdim.hh |  3 ++-
 .../facet/1p_1p/linearprofile/problem_bulk.hh         |  3 ++-
 .../facet/1p_1p/linearprofile/problem_lowdim.hh       |  3 ++-
 .../facet/1p_1p/threedomain/problem_bulk.hh           |  4 ++--
 .../facet/1p_1p/threedomain/problem_edge.hh           |  6 +++---
 .../facet/1p_1p/threedomain/problem_facet.hh          |  6 +++---
 test/multidomain/facet/1pnc_1pnc/problem_bulk.hh      |  3 ++-
 test/multidomain/facet/1pnc_1pnc/problem_facet.hh     |  3 ++-
 .../facet/tracer_tracer/problem_1p_bulk.hh            |  3 ++-
 .../facet/tracer_tracer/problem_1p_lowdim.hh          |  3 ++-
 .../facet/tracer_tracer/problem_tracer_bulk.hh        |  3 ++-
 .../facet/tracer_tracer/problem_tracer_lowdim.hh      |  3 ++-
 test/multidomain/poromechanics/el1p/problem_1p.hh     |  3 ++-
 test/multidomain/poromechanics/el2p/problem_2p.hh     |  3 ++-
 .../1p/convergence/analyticsolution/problem.hh        |  3 ++-
 .../1p/convergence/discretesolution/problem.hh        |  3 ++-
 test/porousmediumflow/1p/internaldirichlet/problem.hh |  3 ++-
 .../1p/nonisothermal/problem_convection.hh            |  3 ++-
 test/porousmediumflow/1p/periodicbc/problem.hh        |  3 ++-
 test/porousmediumflow/1p/rootbenchmark/problem.hh     |  3 ++-
 test/porousmediumflow/1pnc/1p2c/isothermal/problem.hh |  3 ++-
 .../1pnc/1p2c/nonisothermal/conduction/problem.hh     |  3 ++-
 .../1pnc/1p2c/nonisothermal/convection/problem.hh     |  3 ++-
 .../1pnc/1p2c/nonisothermal/transientbc/problem.hh    |  3 ++-
 test/porousmediumflow/1pnc/1p3c/problem.hh            |  3 ++-
 test/porousmediumflow/1pnc/nonequilibrium/problem.hh  |  3 ++-
 .../porousmediumflow/1pncmin/nonisothermal/problem.hh |  3 ++-
 test/porousmediumflow/2p/boxdfm/problem.hh            |  3 ++-
 test/porousmediumflow/2p/cornerpoint/problem.hh       |  3 ++-
 test/porousmediumflow/2p/fracture/problem.hh          |  3 ++-
 test/porousmediumflow/2p/incompressible/problem.hh    |  3 ++-
 test/porousmediumflow/2p/nonisothermal/problem.hh     |  3 ++-
 test/porousmediumflow/2p1c/problem.hh                 |  3 ++-
 .../2p2c/chemicalnonequilibrium/problem.hh            |  3 ++-
 test/porousmediumflow/2p2c/mpnccomparison/problem.hh  |  3 ++-
 test/porousmediumflow/2p2c/waterair/problem.hh        |  3 ++-
 test/porousmediumflow/2pnc/diffusion/problem.hh       |  3 ++-
 test/porousmediumflow/2pnc/fuelcell/problem.hh        |  3 ++-
 test/porousmediumflow/2pncmin/isothermal/problem.hh   |  3 ++-
 .../porousmediumflow/2pncmin/nonisothermal/problem.hh |  3 ++-
 test/porousmediumflow/3p/conduction/problem.hh        |  3 ++-
 test/porousmediumflow/3p/convection/problem.hh        |  3 ++-
 test/porousmediumflow/3p/infiltration/problem.hh      |  3 ++-
 test/porousmediumflow/3p3c/columnxylol/problem.hh     |  3 ++-
 test/porousmediumflow/3p3c/infiltration/problem.hh    |  3 ++-
 test/porousmediumflow/3p3c/kuevette/problem.hh        |  3 ++-
 test/porousmediumflow/3pwateroil/problem.hh           |  3 ++-
 test/porousmediumflow/co2/problem.hh                  |  3 ++-
 test/porousmediumflow/mpnc/2p2ccomparison/problem.hh  |  3 ++-
 test/porousmediumflow/mpnc/kinetic/problem.hh         |  3 ++-
 test/porousmediumflow/mpnc/obstacle/problem.hh        |  3 ++-
 .../thermalnonequilibrium/combustionlocalresidual.hh  |  3 ++-
 .../mpnc/thermalnonequilibrium/problem.hh             |  3 ++-
 test/porousmediumflow/richards/analytical/problem.hh  |  3 ++-
 test/porousmediumflow/richards/benchmarks/problem.hh  |  3 ++-
 test/porousmediumflow/richards/lens/problem.hh        |  3 ++-
 .../richards/nonisothermal/conduction/problem.hh      |  3 ++-
 .../richards/nonisothermal/convection/problem.hh      |  3 ++-
 .../richards/nonisothermal/evaporation/problem.hh     |  3 ++-
 test/porousmediumflow/richardsnc/problem.hh           |  3 ++-
 test/porousmediumflow/solidenergy/problem.hh          |  3 ++-
 test/porousmediumflow/tracer/multiphase/problem.hh    |  3 ++-
 146 files changed, 314 insertions(+), 172 deletions(-)

diff --git a/dumux/assembly/boxlocalresidual.hh b/dumux/assembly/boxlocalresidual.hh
index 5be788e529..5b8853c4c7 100644
--- a/dumux/assembly/boxlocalresidual.hh
+++ b/dumux/assembly/boxlocalresidual.hh
@@ -29,6 +29,7 @@
 #include <dune/istl/matrix.hh>
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/assembly/fvlocalresidual.hh>
 #include <dumux/discretization/extrusion.hh>
 
@@ -55,7 +56,7 @@ class BoxLocalResidual : public FVLocalResidual<TypeTag>
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
 
 public:
     using ElementResidualVector = typename ParentType::ElementResidualVector;
diff --git a/dumux/assembly/cclocalassembler.hh b/dumux/assembly/cclocalassembler.hh
index a539283a12..408fd9b7ec 100644
--- a/dumux/assembly/cclocalassembler.hh
+++ b/dumux/assembly/cclocalassembler.hh
@@ -33,6 +33,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/numericdifferentiation.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/assembly/numericepsilon.hh>
 #include <dumux/assembly/diffmethod.hh>
 #include <dumux/assembly/fvlocalassemblerbase.hh>
@@ -61,7 +62,7 @@ class CCLocalAssemblerBase : public FVLocalAssemblerBase<TypeTag, Assembler, Imp
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
 
 public:
 
@@ -133,7 +134,7 @@ class CCLocalAssembler<TypeTag, Assembler, DiffMethod::numeric, /*implicit=*/tru
     using ThisType = CCLocalAssembler<TypeTag, Assembler, DiffMethod::numeric, true>;
     using ParentType = CCLocalAssemblerBase<TypeTag, Assembler, ThisType, true>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using Element = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView::template Codim<0>::Entity;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename GridGeometry::LocalView;
@@ -359,7 +360,7 @@ class CCLocalAssembler<TypeTag, Assembler, DiffMethod::numeric, /*implicit=*/fal
     using ThisType = CCLocalAssembler<TypeTag, Assembler, DiffMethod::numeric, false>;
     using ParentType = CCLocalAssemblerBase<TypeTag, Assembler, ThisType, false>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using Element = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView::template Codim<0>::Entity;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using JacobianMatrix = GetPropType<TypeTag, Properties::JacobianMatrix>;
@@ -491,7 +492,7 @@ class CCLocalAssembler<TypeTag, Assembler, DiffMethod::analytic, /*implicit=*/tr
 {
     using ThisType = CCLocalAssembler<TypeTag, Assembler, DiffMethod::analytic, true>;
     using ParentType = CCLocalAssemblerBase<TypeTag, Assembler, ThisType, true>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using JacobianMatrix = GetPropType<TypeTag, Properties::JacobianMatrix>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using Problem = typename GridVariables::GridVolumeVariables::Problem;
@@ -608,7 +609,7 @@ class CCLocalAssembler<TypeTag, Assembler, DiffMethod::analytic, /*implicit=*/fa
 {
     using ThisType = CCLocalAssembler<TypeTag, Assembler, DiffMethod::analytic, false>;
     using ParentType = CCLocalAssemblerBase<TypeTag, Assembler, ThisType, false>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using JacobianMatrix = GetPropType<TypeTag, Properties::JacobianMatrix>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using Problem = typename GridVariables::GridVolumeVariables::Problem;
diff --git a/dumux/assembly/cclocalresidual.hh b/dumux/assembly/cclocalresidual.hh
index 3c2759a421..e69b73f760 100644
--- a/dumux/assembly/cclocalresidual.hh
+++ b/dumux/assembly/cclocalresidual.hh
@@ -27,6 +27,7 @@
 
 #include <dumux/common/reservedblockvector.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/assembly/fvlocalresidual.hh>
 #include <dumux/discretization/extrusion.hh>
 
@@ -43,7 +44,7 @@ class CCLocalResidual : public FVLocalResidual<TypeTag>
     using ParentType = FVLocalResidual<TypeTag>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Element = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView::template Codim<0>::Entity;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using ElementBoundaryTypes = GetPropType<TypeTag, Properties::ElementBoundaryTypes>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
diff --git a/dumux/assembly/fvlocalresidual.hh b/dumux/assembly/fvlocalresidual.hh
index 3bbe70d4df..01713a4ee6 100644
--- a/dumux/assembly/fvlocalresidual.hh
+++ b/dumux/assembly/fvlocalresidual.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/timeloop.hh>
 #include <dumux/common/reservedblockvector.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/method.hh>
 #include <dumux/discretization/extrusion.hh>
 
@@ -55,7 +56,7 @@ class FVLocalResidual
     using SubControlVolume = typename GridGeometry::SubControlVolume;
     using SubControlVolumeFace = typename GridGeometry::SubControlVolumeFace;
     using Extrusion = Extrusion_t<GridGeometry>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using ElementBoundaryTypes = GetPropType<TypeTag, Properties::ElementBoundaryTypes>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
diff --git a/dumux/common/fvproblem.hh b/dumux/common/fvproblem.hh
index f306356947..7d12ea3f21 100644
--- a/dumux/common/fvproblem.hh
+++ b/dumux/common/fvproblem.hh
@@ -33,6 +33,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/method.hh>
 #include <dumux/discretization/extrusion.hh>
 
@@ -75,7 +76,7 @@ class FVProblem
 
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using BoundaryTypes = Dumux::BoundaryTypes<PrimaryVariables::size()>;
 
 public:
diff --git a/dumux/common/pointsource.hh b/dumux/common/pointsource.hh
index ff83a40305..c5df970e13 100644
--- a/dumux/common/pointsource.hh
+++ b/dumux/common/pointsource.hh
@@ -31,6 +31,7 @@
 #include <dune/common/reservedvector.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/geometry/boundingboxtree.hh>
 #include <dumux/geometry/intersectspointgeometry.hh>
 #include <dumux/geometry/intersectingentities.hh>
@@ -210,10 +211,10 @@ private:
 template<class TypeTag>
 class SolDependentPointSource : public PointSource<Dune::FieldVector<typename GetPropType<TypeTag, Properties::GridGeometry>::GridView::ctype,
                                                    GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimensionworld>,
-                                                   GetPropType<TypeTag, Properties::NumEqVector>>
+                                                   Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>>
 {
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
-    using SourceValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using SourceValues = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
diff --git a/dumux/common/properties/grid.hh b/dumux/common/properties/grid.hh
index 1adddcea02..e13bd74f41 100644
--- a/dumux/common/properties/grid.hh
+++ b/dumux/common/properties/grid.hh
@@ -28,6 +28,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/pointsource.hh>
+#include <dumux/common/numeqvector.hh>
 
 namespace Dumux {
 namespace Properties {
@@ -42,7 +43,7 @@ template<class TypeTag>
 struct PointSource<TypeTag, TTag::GridProperties>
 {
 private:
-    using SourceValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using SourceValues = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using GlobalPosition = typename Dune::FieldVector<typename GridView::ctype, GridView::dimensionworld>;
 public:
diff --git a/dumux/common/staggeredfvproblem.hh b/dumux/common/staggeredfvproblem.hh
index c74db38cfa..c328243660 100644
--- a/dumux/common/staggeredfvproblem.hh
+++ b/dumux/common/staggeredfvproblem.hh
@@ -29,6 +29,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/fvproblem.hh>
+#include <dumux/common/numeqvector.hh>
 
 namespace Dumux {
 
@@ -61,7 +62,7 @@ class StaggeredFVProblem : public FVProblem<TypeTag>
     using FVElementGeometry = typename GridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
 
     using CoordScalar = typename GridView::ctype;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/dumux/freeflow/shallowwater/fluxvariables.hh b/dumux/freeflow/shallowwater/fluxvariables.hh
index 1b70f8f767..22660557e2 100644
--- a/dumux/freeflow/shallowwater/fluxvariables.hh
+++ b/dumux/freeflow/shallowwater/fluxvariables.hh
@@ -25,6 +25,7 @@
 #define DUMUX_FREEFLOW_SHALLOW_WATER_FLUXVARIABLES_HH
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/flux/fluxvariablesbase.hh>
 
 namespace Dumux {
@@ -43,7 +44,7 @@ class ShallowWaterFluxVariables
 {
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using AdvectionType = GetPropType<TypeTag, Properties::AdvectionType>;
     using ViscousFluxType = GetPropType<TypeTag, Properties::ViscousFluxType>;
 
diff --git a/dumux/freeflow/shallowwater/localresidual.hh b/dumux/freeflow/shallowwater/localresidual.hh
index 1c00928c84..225794f22b 100644
--- a/dumux/freeflow/shallowwater/localresidual.hh
+++ b/dumux/freeflow/shallowwater/localresidual.hh
@@ -26,6 +26,7 @@
 
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 namespace Dumux{
 
@@ -40,7 +41,7 @@ class ShallowWaterResidual
     using ParentType = GetPropType<TypeTag, Properties::BaseLocalResidual>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
diff --git a/dumux/freeflow/shallowwater/model.hh b/dumux/freeflow/shallowwater/model.hh
index bf2a9d7456..4932bc4c94 100644
--- a/dumux/freeflow/shallowwater/model.hh
+++ b/dumux/freeflow/shallowwater/model.hh
@@ -64,6 +64,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/properties/model.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/flux/shallowwaterflux.hh>
 #include <dumux/flux/shallowwaterviscousflux.hh>
@@ -156,11 +157,11 @@ struct IOFields<TypeTag, TTag::ShallowWater>
 
 template<class TypeTag>
 struct AdvectionType<TypeTag, TTag::ShallowWater>
-{ using type = ShallowWaterFlux< GetPropType<TypeTag, Properties::NumEqVector> >; };
+{ using type = ShallowWaterFlux< Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>> >; };
 
 template<class TypeTag>
 struct ViscousFluxType<TypeTag, TTag::ShallowWater>
-{ using type = ShallowWaterViscousFlux< GetPropType<TypeTag, Properties::PrimaryVariables>, GetPropType<TypeTag, Properties::NumEqVector> >; };
+{ using type = ShallowWaterViscousFlux< GetPropType<TypeTag, Properties::PrimaryVariables>, Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>> >; };
 
 } // end properties
 } // end namespace Dumux
diff --git a/dumux/geomechanics/elastic/localresidual.hh b/dumux/geomechanics/elastic/localresidual.hh
index cf4bc3972c..c0f2e1bbfe 100644
--- a/dumux/geomechanics/elastic/localresidual.hh
+++ b/dumux/geomechanics/elastic/localresidual.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 namespace Dumux {
 
@@ -49,7 +50,7 @@ class ElasticLocalResidual : public GetPropType<TypeTag, Properties::BaseLocalRe
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using VolumeVariables = typename ElementVolumeVariables::VolumeVariables;
diff --git a/dumux/geomechanics/poroelastic/localresidual.hh b/dumux/geomechanics/poroelastic/localresidual.hh
index 9ee1188a70..ad65f0d81c 100644
--- a/dumux/geomechanics/poroelastic/localresidual.hh
+++ b/dumux/geomechanics/poroelastic/localresidual.hh
@@ -26,6 +26,7 @@
 #define DUMUX_PRORELASTIC_LOCAL_RESIDUAL_HH
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/geomechanics/elastic/localresidual.hh>
 
 namespace Dumux {
@@ -48,7 +49,7 @@ class PoroElasticLocalResidual: public ElasticLocalResidual<TypeTag>
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using VolumeVariables = typename ElementVolumeVariables::VolumeVariables;
diff --git a/dumux/multidomain/boundary/darcydarcy/couplingmanager.hh b/dumux/multidomain/boundary/darcydarcy/couplingmanager.hh
index 35323f130b..61fc26db77 100644
--- a/dumux/multidomain/boundary/darcydarcy/couplingmanager.hh
+++ b/dumux/multidomain/boundary/darcydarcy/couplingmanager.hh
@@ -33,6 +33,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/math.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/elementsolution.hh>
 #include <dumux/discretization/method.hh>
 #include <dumux/discretization/cellcentered/tpfa/computetransmissibility.hh>
@@ -57,7 +58,7 @@ class DarcyDarcyBoundaryCouplingManager
     template<std::size_t i> using SubDomainTypeTag = typename MDTraits::template SubDomain<i>::TypeTag;
     template<std::size_t i> using Problem = GetPropType<SubDomainTypeTag<i>, Properties::Problem>;
     template<std::size_t i> using PrimaryVariables = GetPropType<SubDomainTypeTag<i>, Properties::PrimaryVariables>;
-    template<std::size_t i> using NumEqVector = GetPropType<SubDomainTypeTag<i>, Properties::NumEqVector>;
+    template<std::size_t i> using NumEqVector = Dumux::NumEqVector<PrimaryVariables<i>>;
     template<std::size_t i> using ElementVolumeVariables = typename GetPropType<SubDomainTypeTag<i>, Properties::GridVolumeVariables>::LocalView;
     template<std::size_t i> using VolumeVariables = typename GetPropType<SubDomainTypeTag<i>, Properties::GridVolumeVariables>::VolumeVariables;
     template<std::size_t i> using GridGeometry = typename MDTraits::template SubDomain<i>::GridGeometry;
diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh b/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
index 29fbb1e217..e7884f18e5 100644
--- a/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
+++ b/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
@@ -31,6 +31,7 @@
 #include <dune/common/float_cmp.hh>
 #include <dune/common/exceptions.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/multidomain/staggeredcouplingmanager.hh>
 #include <dumux/discretization/staggered/elementsolution.hh>
 
@@ -75,7 +76,8 @@ private:
 
     template<std::size_t id> using GridView = typename GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>::GridView;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
-    template<std::size_t id> using NumEqVector = GetPropType<SubDomainTypeTag<id>, Properties::NumEqVector>;
+    template<std::size_t id> using PrimaryVariables = typename MDTraits::template SubDomain<id>::PrimaryVariables;
+    template<std::size_t id> using NumEqVector = Dumux::NumEqVector<PrimaryVariables<id>>;
     template<std::size_t id> using ElementVolumeVariables = typename GetPropType<SubDomainTypeTag<id>, Properties::GridVolumeVariables>::LocalView;
     template<std::size_t id> using GridVolumeVariables = GetPropType<SubDomainTypeTag<id>, Properties::GridVolumeVariables>;
     template<std::size_t id> using VolumeVariables = typename GetPropType<SubDomainTypeTag<id>, Properties::GridVolumeVariables>::VolumeVariables;
@@ -85,7 +87,6 @@ private:
     template<std::size_t id> using ElementFluxVariablesCache = typename GetPropType<SubDomainTypeTag<id>, Properties::GridFluxVariablesCache>::LocalView;
     template<std::size_t id> using GridVariables = GetPropType<SubDomainTypeTag<id>, Properties::GridVariables>;
     template<std::size_t id> using Element = typename GridView<id>::template Codim<0>::Entity;
-    template<std::size_t id> using PrimaryVariables = typename MDTraits::template SubDomain<id>::PrimaryVariables;
     template<std::size_t id> using SubControlVolumeFace  = typename FVElementGeometry<id>::SubControlVolumeFace;
 
     using CellCenterSolutionVector = GetPropType<StokesTypeTag, Properties::CellCenterSolutionVector>;
diff --git a/dumux/multidomain/embedded/circleaveragepointsourcetraits.hh b/dumux/multidomain/embedded/circleaveragepointsourcetraits.hh
index e2e5df8963..b95651cb34 100644
--- a/dumux/multidomain/embedded/circleaveragepointsourcetraits.hh
+++ b/dumux/multidomain/embedded/circleaveragepointsourcetraits.hh
@@ -26,6 +26,7 @@
 #define DUMUX_MULTIDOMAIN_EMBEDDED_CIRCLE_AVERAGE_POINT_SOURCE_TRAITS_HH
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/multidomain/embedded/pointsourcedata.hh>
 #include <dumux/multidomain/embedded/integrationpointsource.hh>
 
@@ -38,7 +39,7 @@ struct CircleAveragePointSourceTraits
 private:
     template<std::size_t i> using SubDomainTypeTag = typename MDTraits::template SubDomain<i>::TypeTag;
     template<std::size_t i> using GridGeometry = GetPropType<SubDomainTypeTag<i>, Properties::GridGeometry>;
-    template<std::size_t i> using NumEqVector = GetPropType<SubDomainTypeTag<i>, Properties::NumEqVector>;
+    template<std::size_t i> using NumEqVector = Dumux::NumEqVector<GetPropType<SubDomainTypeTag<i>, Properties::PrimaryVariables>>;
 public:
     //! export the point source type for domain i
     template<std::size_t i>
diff --git a/dumux/multidomain/embedded/couplingmanagerbase.hh b/dumux/multidomain/embedded/couplingmanagerbase.hh
index 11928c42bb..943f246fb9 100644
--- a/dumux/multidomain/embedded/couplingmanagerbase.hh
+++ b/dumux/multidomain/embedded/couplingmanagerbase.hh
@@ -36,6 +36,7 @@
 #include <dune/geometry/quadraturerules.hh>
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/geometry/distance.hh>
 #include <dumux/geometry/intersectingentities.hh>
 #include <dumux/discretization/method.hh>
@@ -53,7 +54,7 @@ struct DefaultPointSourceTraits
 private:
     template<std::size_t i> using SubDomainTypeTag = typename MDTraits::template SubDomain<i>::TypeTag;
     template<std::size_t i> using GridGeometry = GetPropType<SubDomainTypeTag<i>, Properties::GridGeometry>;
-    template<std::size_t i> using NumEqVector = GetPropType<SubDomainTypeTag<i>, Properties::NumEqVector>;
+    template<std::size_t i> using NumEqVector = Dumux::NumEqVector<GetPropType<SubDomainTypeTag<i>, Properties::PrimaryVariables>>;
 public:
     //! export the point source type for domain i
     template<std::size_t i>
diff --git a/dumux/multidomain/facet/box/couplingmanager.hh b/dumux/multidomain/facet/box/couplingmanager.hh
index 732705b5b7..3c8a0f5d7d 100644
--- a/dumux/multidomain/facet/box/couplingmanager.hh
+++ b/dumux/multidomain/facet/box/couplingmanager.hh
@@ -28,6 +28,7 @@
 #include <cassert>
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/method.hh>
 #include <dumux/discretization/elementsolution.hh>
 #include <dumux/multidomain/couplingmanager.hh>
@@ -64,7 +65,7 @@ class FacetCouplingManager<MDTraits, CouplingMapper, bulkDomainId, lowDimDomainI
     // further types specific to the sub-problems
     template<std::size_t id> using PrimaryVariables = GetPropType<SubDomainTypeTag<id>, Properties::PrimaryVariables>;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
-    template<std::size_t id> using NumEqVector = GetPropType<SubDomainTypeTag<id>, Properties::NumEqVector>;
+    template<std::size_t id> using NumEqVector = Dumux::NumEqVector<PrimaryVariables<id>>;
     template<std::size_t id> using ElementBoundaryTypes = GetPropType<SubDomainTypeTag<id>, Properties::ElementBoundaryTypes>;
     template<std::size_t id> using LocalResidual = GetPropType<SubDomainTypeTag<id>, Properties::LocalResidual>;
 
diff --git a/dumux/multidomain/facet/box/localresidual.hh b/dumux/multidomain/facet/box/localresidual.hh
index 15649e07b3..aff125fe8a 100644
--- a/dumux/multidomain/facet/box/localresidual.hh
+++ b/dumux/multidomain/facet/box/localresidual.hh
@@ -28,6 +28,7 @@
 #include <dune/geometry/type.hh>
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/assembly/fvlocalresidual.hh>
 #include <dumux/discretization/extrusion.hh>
 
@@ -53,7 +54,7 @@ class BoxFacetCouplingLocalResidual : public FVLocalResidual<TypeTag>
     using ElementBoundaryTypes = GetPropType<TypeTag, Properties::ElementBoundaryTypes>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
 
 public:
     using ElementResidualVector = typename ParentType::ElementResidualVector;
diff --git a/dumux/multidomain/facet/cellcentered/localresidual.hh b/dumux/multidomain/facet/cellcentered/localresidual.hh
index 77819a5918..4d70b14a21 100644
--- a/dumux/multidomain/facet/cellcentered/localresidual.hh
+++ b/dumux/multidomain/facet/cellcentered/localresidual.hh
@@ -28,6 +28,7 @@
 #define DUMUX_FACETCOUPLING_CC_LOCAL_RESIDUAL_HH
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/assembly/cclocalresidual.hh>
 
 namespace Dumux {
@@ -53,7 +54,7 @@ class CCFacetCouplingLocalResidual : public CCLocalResidual<TypeTag>
     using SubControlVolumeFace = typename GridGeometry::SubControlVolumeFace;
     using Element = typename GridGeometry::GridView::template Codim<0>::Entity;
 
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
 
 public:
     //! pull up the parent's constructor
diff --git a/dumux/multidomain/facet/cellcentered/mpfa/couplingmanager.hh b/dumux/multidomain/facet/cellcentered/mpfa/couplingmanager.hh
index ed364cf704..d38f2b6311 100644
--- a/dumux/multidomain/facet/cellcentered/mpfa/couplingmanager.hh
+++ b/dumux/multidomain/facet/cellcentered/mpfa/couplingmanager.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/indextraits.hh>
 #include <dumux/common/numericdifferentiation.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/assembly/numericepsilon.hh>
 
 #include <dumux/discretization/method.hh>
@@ -68,7 +69,7 @@ class FacetCouplingManager<MDTraits, CouplingMapper, bulkDomainId, lowDimDomainI
     // further types specific to the sub-problems
     template<std::size_t id> using Scalar = GetPropType<SubDomainTypeTag<id>, Properties::Scalar>;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
-    template<std::size_t id> using NumEqVector = GetPropType<SubDomainTypeTag<id>, Properties::NumEqVector>;
+    template<std::size_t id> using NumEqVector = Dumux::NumEqVector<GetPropType<SubDomainTypeTag<id>, Properties::PrimaryVariables>>;
     template<std::size_t id> using GridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using FVElementGeometry = typename GridGeometry<id>::LocalView;
     template<std::size_t id> using SubControlVolume = typename GridGeometry<id>::SubControlVolume;
diff --git a/dumux/multidomain/facet/cellcentered/tpfa/couplingmanager.hh b/dumux/multidomain/facet/cellcentered/tpfa/couplingmanager.hh
index 19fca678a6..08556c0c4a 100644
--- a/dumux/multidomain/facet/cellcentered/tpfa/couplingmanager.hh
+++ b/dumux/multidomain/facet/cellcentered/tpfa/couplingmanager.hh
@@ -29,6 +29,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/indextraits.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/method.hh>
 #include <dumux/discretization/elementsolution.hh>
 #include <dumux/multidomain/couplingmanager.hh>
@@ -65,7 +66,7 @@ class FacetCouplingManager<MDTraits, CouplingMapper, bulkDomainId, lowDimDomainI
     // further types specific to the sub-problems
     template<std::size_t id> using PrimaryVariables = GetPropType<SubDomainTypeTag<id>, Properties::PrimaryVariables>;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
-    template<std::size_t id> using NumEqVector = GetPropType<SubDomainTypeTag<id>, Properties::NumEqVector>;
+    template<std::size_t id> using NumEqVector = Dumux::NumEqVector<PrimaryVariables<id>>;
     template<std::size_t id> using LocalResidual = GetPropType<SubDomainTypeTag<id>, Properties::LocalResidual>;
 
     template<std::size_t id> using GridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
diff --git a/dumux/multidomain/subdomainboxlocalassembler.hh b/dumux/multidomain/subdomainboxlocalassembler.hh
index 2cab40adc1..f81dfaca33 100644
--- a/dumux/multidomain/subdomainboxlocalassembler.hh
+++ b/dumux/multidomain/subdomainboxlocalassembler.hh
@@ -36,6 +36,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/numericdifferentiation.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/assembly/numericepsilon.hh>
 #include <dumux/assembly/diffmethod.hh>
 #include <dumux/assembly/fvlocalassemblerbase.hh>
@@ -60,7 +61,7 @@ class SubDomainBoxLocalAssemblerBase : public FVLocalAssemblerBase<TypeTag, Asse
     using ParentType = FVLocalAssemblerBase<TypeTag, Assembler,Implementation, implicit>;
 
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using LocalResidualValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using LocalResidualValues = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using ElementResidualVector = typename ParentType::LocalResidual::ElementResidualVector;
     using JacobianMatrix = GetPropType<TypeTag, Properties::JacobianMatrix>;
     using SolutionVector = typename Assembler::SolutionVector;
diff --git a/dumux/multidomain/subdomaincclocalassembler.hh b/dumux/multidomain/subdomaincclocalassembler.hh
index 1af0ca57bd..2d9d865744 100644
--- a/dumux/multidomain/subdomaincclocalassembler.hh
+++ b/dumux/multidomain/subdomaincclocalassembler.hh
@@ -36,6 +36,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/numericdifferentiation.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/elementsolution.hh>
 #include <dumux/discretization/extrusion.hh>
 #include <dumux/assembly/numericepsilon.hh>
@@ -61,7 +62,7 @@ class SubDomainCCLocalAssemblerBase : public FVLocalAssemblerBase<TypeTag, Assem
     using ParentType = FVLocalAssemblerBase<TypeTag, Assembler,Implementation, implicit>;
 
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using LocalResidualValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using LocalResidualValues = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using JacobianMatrix = GetPropType<TypeTag, Properties::JacobianMatrix>;
     using SolutionVector = typename Assembler::SolutionVector;
     using SubSolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
@@ -283,7 +284,7 @@ class SubDomainCCLocalAssembler<id, TypeTag, Assembler, DiffMethod::numeric, /*i
     using Problem = GetPropType<TypeTag, Properties::Problem>;
 
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using LocalResidualValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using LocalResidualValues = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
 
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename GridGeometry::LocalView;
@@ -635,7 +636,7 @@ class SubDomainCCLocalAssembler<id, TypeTag, Assembler, DiffMethod::numeric, /*i
     using ParentType = SubDomainCCLocalAssemblerBase<id, TypeTag, Assembler, ThisType, /*implicit=*/false>;
 
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using LocalResidualValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using LocalResidualValues = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
 
     static constexpr int numEq = GetPropType<TypeTag, Properties::ModelTraits>::numEq();
@@ -781,7 +782,7 @@ class SubDomainCCLocalAssembler<id, TypeTag, Assembler, DiffMethod::analytic, /*
     using ThisType = SubDomainCCLocalAssembler<id, TypeTag, Assembler, DiffMethod::analytic, /*implicit=*/true>;
     using ParentType = SubDomainCCLocalAssemblerBase<id, TypeTag, Assembler, ThisType, /*implicit=*/true>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using LocalResidualValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using LocalResidualValues = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
diff --git a/dumux/porousmediumflow/2p1c/localresidual.hh b/dumux/porousmediumflow/2p1c/localresidual.hh
index c835cedd55..d6c211efdd 100644
--- a/dumux/porousmediumflow/2p1c/localresidual.hh
+++ b/dumux/porousmediumflow/2p1c/localresidual.hh
@@ -26,6 +26,7 @@
 #ifndef DUMUX_2P1C_LOCAL_RESIDUAL_HH
 #define DUMUX_2P1C_LOCAL_RESIDUAL_HH
 
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/immiscible/localresidual.hh>
 
 namespace Dumux {
@@ -38,7 +39,7 @@ class TwoPOneCLocalResidual : public ImmiscibleLocalResidual<TypeTag>
 {
     using ParentType = ImmiscibleLocalResidual<TypeTag>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
diff --git a/dumux/porousmediumflow/3p3c/localresidual.hh b/dumux/porousmediumflow/3p3c/localresidual.hh
index 1c8a6f9451..046b2647ee 100644
--- a/dumux/porousmediumflow/3p3c/localresidual.hh
+++ b/dumux/porousmediumflow/3p3c/localresidual.hh
@@ -27,6 +27,7 @@
 #define DUMUX_3P3C_LOCAL_RESIDUAL_HH
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/flux/referencesystemformulation.hh>
 
 namespace Dumux
@@ -45,7 +46,7 @@ class ThreePThreeCLocalResidual : public GetPropType<TypeTag, Properties::BaseLo
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
diff --git a/dumux/porousmediumflow/3pwateroil/localresidual.hh b/dumux/porousmediumflow/3pwateroil/localresidual.hh
index 51e82a556a..275c768897 100644
--- a/dumux/porousmediumflow/3pwateroil/localresidual.hh
+++ b/dumux/porousmediumflow/3pwateroil/localresidual.hh
@@ -27,6 +27,7 @@
 #define DUMUX_3P2CNI_LOCAL_RESIDUAL_HH
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/flux/referencesystemformulation.hh>
 
 namespace Dumux {
@@ -45,7 +46,7 @@ protected:
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
diff --git a/dumux/porousmediumflow/compositional/localresidual.hh b/dumux/porousmediumflow/compositional/localresidual.hh
index 7aefc7e34d..f5cb7a2c20 100644
--- a/dumux/porousmediumflow/compositional/localresidual.hh
+++ b/dumux/porousmediumflow/compositional/localresidual.hh
@@ -29,6 +29,7 @@
 #include <vector>
 #include <dune/common/exceptions.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/flux/referencesystemformulation.hh>
 
 namespace Dumux {
@@ -48,7 +49,7 @@ class CompositionalLocalResidual: public GetPropType<TypeTag, Properties::BaseLo
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
diff --git a/dumux/porousmediumflow/immiscible/localresidual.hh b/dumux/porousmediumflow/immiscible/localresidual.hh
index b6abc1d5a0..311ff5552e 100644
--- a/dumux/porousmediumflow/immiscible/localresidual.hh
+++ b/dumux/porousmediumflow/immiscible/localresidual.hh
@@ -26,6 +26,7 @@
 #define DUMUX_IMMISCIBLE_LOCAL_RESIDUAL_HH
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 namespace Dumux {
 
@@ -40,7 +41,7 @@ class ImmiscibleLocalResidual : public GetPropType<TypeTag, Properties::BaseLoca
     using ParentType = GetPropType<TypeTag, Properties::BaseLocalResidual>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
diff --git a/dumux/porousmediumflow/mineralization/localresidual.hh b/dumux/porousmediumflow/mineralization/localresidual.hh
index b1de59aab2..243f5f5f3b 100644
--- a/dumux/porousmediumflow/mineralization/localresidual.hh
+++ b/dumux/porousmediumflow/mineralization/localresidual.hh
@@ -26,6 +26,7 @@
 #ifndef DUMUX_COMPOSITIONAL_MINERALIZATION_LOCAL_RESIDUAL_HH
 #define DUMUX_COMPOSITIONAL_MINERALIZATION_LOCAL_RESIDUAL_HH
 
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/compositional/localresidual.hh>
 
 namespace Dumux
@@ -39,7 +40,7 @@ template<class TypeTag>
 class MineralizationLocalResidual: public CompositionalLocalResidual<TypeTag>
 {
     using ParentType = CompositionalLocalResidual<TypeTag>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
diff --git a/dumux/porousmediumflow/nonequilibrium/localresidual.hh b/dumux/porousmediumflow/nonequilibrium/localresidual.hh
index 65070c65cc..6029dbe392 100644
--- a/dumux/porousmediumflow/nonequilibrium/localresidual.hh
+++ b/dumux/porousmediumflow/nonequilibrium/localresidual.hh
@@ -28,6 +28,7 @@
 
 #include <cmath>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh>
 
 namespace Dumux {
@@ -49,7 +50,7 @@ class NonEquilibriumLocalResidualImplementation<TypeTag, false>: public GetPropT
 {
     using ParentType = GetPropType<TypeTag, Properties::EquilibriumLocalResidual>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
@@ -113,7 +114,7 @@ class NonEquilibriumLocalResidualImplementation<TypeTag, true>: public GetPropTy
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
diff --git a/dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh b/dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh
index 0921205728..63180863a9 100644
--- a/dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh
+++ b/dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/spline.hh>
 #include <dumux/common/exceptions.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/flux/referencesystemformulation.hh>
 
 namespace Dumux {
@@ -46,7 +47,7 @@ template<class TypeTag>
 class EnergyLocalResidualNonEquilibrium<TypeTag, 1/*numEnergyEqFluid*/>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
@@ -209,7 +210,7 @@ class EnergyLocalResidualNonEquilibrium<TypeTag, 2/*numEnergyEqFluid*/>
 : public EnergyLocalResidualNonEquilibrium<TypeTag, 1/*numEnergyEqFluid*/>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
diff --git a/dumux/porousmediumflow/nonisothermal/localresidual.hh b/dumux/porousmediumflow/nonisothermal/localresidual.hh
index 42ad880388..e049009582 100644
--- a/dumux/porousmediumflow/nonisothermal/localresidual.hh
+++ b/dumux/porousmediumflow/nonisothermal/localresidual.hh
@@ -27,6 +27,7 @@
 #define DUMUX_ENERGY_LOCAL_RESIDUAL_HH
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 namespace Dumux {
 
@@ -45,7 +46,7 @@ template<class TypeTag>
 class EnergyLocalResidualImplementation<TypeTag, false>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
@@ -109,7 +110,7 @@ template<class TypeTag>
 class EnergyLocalResidualImplementation<TypeTag, true>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
diff --git a/dumux/porousmediumflow/richards/localresidual.hh b/dumux/porousmediumflow/richards/localresidual.hh
index 705d08d41a..dac5b3d933 100644
--- a/dumux/porousmediumflow/richards/localresidual.hh
+++ b/dumux/porousmediumflow/richards/localresidual.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/typetraits/typetraits.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/method.hh>
 #include <dumux/discretization/extrusion.hh>
 #include <dumux/flux/referencesystemformulation.hh>
@@ -48,7 +49,7 @@ class RichardsLocalResidual : public GetPropType<TypeTag, Properties::BaseLocalR
     using ParentType = GetPropType<TypeTag, Properties::BaseLocalResidual>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
diff --git a/dumux/porousmediumflow/solidenergy/localresidual.hh b/dumux/porousmediumflow/solidenergy/localresidual.hh
index 8f88c3fa9f..2ec74f6573 100644
--- a/dumux/porousmediumflow/solidenergy/localresidual.hh
+++ b/dumux/porousmediumflow/solidenergy/localresidual.hh
@@ -25,6 +25,7 @@
 #define DUMUX_SOLID_ENERGY_LOCAL_RESIDUAL_HH
 
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 namespace Dumux {
 
@@ -38,7 +39,7 @@ class SolidEnergyLocalResidual : public GetPropType<TypeTag, Properties::BaseLoc
     using ParentType = GetPropType<TypeTag, Properties::BaseLocalResidual>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
diff --git a/dumux/porousmediumflow/tracer/localresidual.hh b/dumux/porousmediumflow/tracer/localresidual.hh
index 702ff39e99..717401ec70 100644
--- a/dumux/porousmediumflow/tracer/localresidual.hh
+++ b/dumux/porousmediumflow/tracer/localresidual.hh
@@ -30,6 +30,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/method.hh>
 #include <dumux/discretization/extrusion.hh>
 #include <dumux/flux/referencesystemformulation.hh>
@@ -52,7 +53,7 @@ class TracerLocalResidual: public GetPropType<TypeTag, Properties::BaseLocalResi
     using SubControlVolume = typename GridGeometry::SubControlVolume;
     using SubControlVolumeFace = typename GridGeometry::SubControlVolumeFace;
     using Extrusion = Extrusion_t<GridGeometry>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
diff --git a/examples/1ptracer/problem_tracer.hh b/examples/1ptracer/problem_tracer.hh
index f7dd53a304..3ba0b7c80e 100644
--- a/examples/1ptracer/problem_tracer.hh
+++ b/examples/1ptracer/problem_tracer.hh
@@ -33,6 +33,7 @@
 #include <dumux/porousmediumflow/problem.hh>
 // Include the `BoundaryTypes` class which specifies the boundary types set in this problem.
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 // ### The problem class
 //
@@ -57,7 +58,7 @@ class TracerTestProblem : public PorousMediumFlowProblem<TypeTag>
     using SpatialParams = GetPropType<TypeTag, Properties::SpatialParams>;
     using Element = typename GridGeometry::GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
diff --git a/examples/2pinfiltration/problem.hh b/examples/2pinfiltration/problem.hh
index 4a7d9d2905..9cbc03f3f3 100644
--- a/examples/2pinfiltration/problem.hh
+++ b/examples/2pinfiltration/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/io/container.hh>
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 // ### Problem class
 // The problem class `PointSourceProblem` implements boundary and initial conditions.
@@ -52,7 +53,7 @@ class PointSourceProblem : public PorousMediumFlowProblem<TypeTag>
     using PointSource =  GetPropType<TypeTag, Properties::PointSource>;
     using BoundaryTypes = Dumux::BoundaryTypes<PrimaryVariables::size()>;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
 
     enum {
diff --git a/examples/biomineralization/problem.hh b/examples/biomineralization/problem.hh
index 6c6530ae84..594507890b 100644
--- a/examples/biomineralization/problem.hh
+++ b/examples/biomineralization/problem.hh
@@ -32,6 +32,7 @@
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/common/boundarytypes.hh> // for `BoundaryTypes`
 #include <dumux/common/properties.hh> // GetPropType
+#include <dumux/common/numeqvector.hh>
 #include <dumux/material/components/ammonia.hh>
 #include <dumux/discretization/evalgradients.hh>
 #include <dumux/io/container.hh>
@@ -93,7 +94,7 @@ class MICPColumnProblemSimpleChemistry : public PorousMediumFlowProblem<TypeTag>
     };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<PrimaryVariables::size()>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
diff --git a/examples/liddrivencavity/problem.hh b/examples/liddrivencavity/problem.hh
index 8967dfc47a..fcfeda0976 100644
--- a/examples/liddrivencavity/problem.hh
+++ b/examples/liddrivencavity/problem.hh
@@ -31,6 +31,7 @@
 //
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 // Include the `NavierStokesProblem` class, the base
 // class from which we will derive.
@@ -54,8 +55,8 @@ class LidDrivenCavityExampleProblem : public NavierStokesProblem<TypeTag>
     using FVElementGeometry = typename GridGeometry::LocalView;
     using SubControlVolume = typename GridGeometry::SubControlVolume;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
     using Element = typename GridGeometry::GridView::template Codim<0>::Entity;
diff --git a/examples/shallowwaterfriction/problem.hh b/examples/shallowwaterfriction/problem.hh
index 5bba55d30c..7e7e605675 100644
--- a/examples/shallowwaterfriction/problem.hh
+++ b/examples/shallowwaterfriction/problem.hh
@@ -38,6 +38,7 @@
 #include <dumux/freeflow/shallowwater/boundaryfluxes.hh>
 // Include the `BoundaryTypes` class which specifies the boundary types set in this problem.
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 // ### The problem class
 // We enter the problem class where all necessary boundary conditions and initial conditions are set for our simulation.
@@ -56,7 +57,6 @@ class RoughChannelProblem : public ShallowWaterProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
@@ -65,7 +65,8 @@ class RoughChannelProblem : public ShallowWaterProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
+    using NeumannFluxes = NumEqVector;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
 public:
diff --git a/test/freeflow/navierstokes/angeli/problem.hh b/test/freeflow/navierstokes/angeli/problem.hh
index 7e2066c377..c793ab1e12 100644
--- a/test/freeflow/navierstokes/angeli/problem.hh
+++ b/test/freeflow/navierstokes/angeli/problem.hh
@@ -28,6 +28,7 @@
 
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -53,8 +54,8 @@ class AngeliTestProblem : public NavierStokesProblem<TypeTag>
     using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
 
diff --git a/test/freeflow/navierstokes/channel/1d/problem.hh b/test/freeflow/navierstokes/channel/1d/problem.hh
index fb44365730..e9f92c8566 100644
--- a/test/freeflow/navierstokes/channel/1d/problem.hh
+++ b/test/freeflow/navierstokes/channel/1d/problem.hh
@@ -30,6 +30,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
 
@@ -53,9 +54,9 @@ class NavierStokesAnalyticProblem : public NavierStokesProblem<TypeTag>
     using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
-    using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
+    using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
 
diff --git a/test/freeflow/navierstokes/channel/2d/problem.hh b/test/freeflow/navierstokes/channel/2d/problem.hh
index 90037005ae..977b7c5284 100644
--- a/test/freeflow/navierstokes/channel/2d/problem.hh
+++ b/test/freeflow/navierstokes/channel/2d/problem.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/timeloop.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -57,8 +58,8 @@ class ChannelTestProblem : public NavierStokesProblem<TypeTag>
     using FVElementGeometry = typename GridGeometry::LocalView;
     using SubControlVolumeFace = typename GridGeometry::SubControlVolumeFace;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
diff --git a/test/freeflow/navierstokes/channel/3d/problem.hh b/test/freeflow/navierstokes/channel/3d/problem.hh
index 94197e365f..c64755be9e 100644
--- a/test/freeflow/navierstokes/channel/3d/problem.hh
+++ b/test/freeflow/navierstokes/channel/3d/problem.hh
@@ -32,6 +32,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -78,7 +79,7 @@ class ThreeDChannelTestProblem : public NavierStokesProblem<TypeTag>
     using FacePrimaryVariables = GetPropType<TypeTag, Properties::FacePrimaryVariables>;
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     static constexpr bool enablePseudoThreeDWallFriction = !(GRID_DIM == 3);
 
diff --git a/test/freeflow/navierstokes/donea/problem.hh b/test/freeflow/navierstokes/donea/problem.hh
index 5aeb0dba29..c438717362 100644
--- a/test/freeflow/navierstokes/donea/problem.hh
+++ b/test/freeflow/navierstokes/donea/problem.hh
@@ -26,6 +26,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -50,9 +51,9 @@ class DoneaTestProblem : public NavierStokesProblem<TypeTag>
     using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
-    using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
+    using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
 
diff --git a/test/freeflow/navierstokes/kovasznay/problem.hh b/test/freeflow/navierstokes/kovasznay/problem.hh
index 05f34ba24d..407704ec70 100644
--- a/test/freeflow/navierstokes/kovasznay/problem.hh
+++ b/test/freeflow/navierstokes/kovasznay/problem.hh
@@ -27,6 +27,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -54,8 +55,8 @@ class KovasznayTestProblem : public NavierStokesProblem<TypeTag>
     using SubControlVolume = typename GridGeometry::SubControlVolume;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
 
diff --git a/test/freeflow/navierstokes/sincos/problem.hh b/test/freeflow/navierstokes/sincos/problem.hh
index 35544f5504..d197933e7d 100644
--- a/test/freeflow/navierstokes/sincos/problem.hh
+++ b/test/freeflow/navierstokes/sincos/problem.hh
@@ -26,6 +26,7 @@
 
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -50,8 +51,8 @@ class SincosTestProblem : public NavierStokesProblem<TypeTag>
 
     using BoundaryTypes = Dumux::NavierStokesBoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using SubControlVolume = typename GridGeometry::SubControlVolume;
diff --git a/test/freeflow/navierstokesnc/channel/problem.hh b/test/freeflow/navierstokesnc/channel/problem.hh
index 0ab2316740..4ef16c6518 100644
--- a/test/freeflow/navierstokesnc/channel/problem.hh
+++ b/test/freeflow/navierstokesnc/channel/problem.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/timeloop.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -52,8 +53,8 @@ class ChannelNCTestProblem : public NavierStokesProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
     static constexpr auto dimWorld = GridGeometry::GridView::dimensionworld;
diff --git a/test/freeflow/navierstokesnc/densitydrivenflow/problem.hh b/test/freeflow/navierstokesnc/densitydrivenflow/problem.hh
index c164124af1..d825632a4d 100644
--- a/test/freeflow/navierstokesnc/densitydrivenflow/problem.hh
+++ b/test/freeflow/navierstokesnc/densitydrivenflow/problem.hh
@@ -27,6 +27,7 @@
 
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -53,8 +54,8 @@ class DensityDrivenFlowProblem : public NavierStokesProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
     using Element = typename GridGeometry::GridView::template Codim<0>::Entity;
diff --git a/test/freeflow/navierstokesnc/maxwellstefan/problem.hh b/test/freeflow/navierstokesnc/maxwellstefan/problem.hh
index d1579df240..48de92a6ad 100644
--- a/test/freeflow/navierstokesnc/maxwellstefan/problem.hh
+++ b/test/freeflow/navierstokesnc/maxwellstefan/problem.hh
@@ -27,6 +27,7 @@
 
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -48,8 +49,8 @@ class MaxwellStefanNCTestProblem : public NavierStokesProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
     using Element = typename GridGeometry::GridView::template Codim<0>::Entity;
diff --git a/test/freeflow/rans/problem.hh b/test/freeflow/rans/problem.hh
index 43e2c0504a..9a419eec20 100644
--- a/test/freeflow/rans/problem.hh
+++ b/test/freeflow/rans/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/timeloop.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/rans/problem.hh>
@@ -55,8 +56,8 @@ class PipeLauferProblem : public RANSProblem<TypeTag>
     using FluidState = GetPropType<TypeTag, Properties::FluidState>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
diff --git a/test/freeflow/ransnc/problem.hh b/test/freeflow/ransnc/problem.hh
index 65988823be..10facf0299 100644
--- a/test/freeflow/ransnc/problem.hh
+++ b/test/freeflow/ransnc/problem.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/timeloop.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/turbulenceproperties.hh>
@@ -57,8 +58,8 @@ class FlatPlateNCTestProblem : public RANSProblem<TypeTag>
     using FluidState = GetPropType<TypeTag, Properties::FluidState>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
diff --git a/test/freeflow/shallowwater/bowl/problem.hh b/test/freeflow/shallowwater/bowl/problem.hh
index f9ca2b3450..fa01c60cd1 100644
--- a/test/freeflow/shallowwater/bowl/problem.hh
+++ b/test/freeflow/shallowwater/bowl/problem.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/shallowwater/problem.hh>
 #include <dumux/freeflow/shallowwater/boundaryfluxes.hh>
@@ -72,10 +73,10 @@ class BowlProblem : public ShallowWaterProblem<TypeTag>
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NeumannFluxes = NumEqVector;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
diff --git a/test/freeflow/shallowwater/dambreak/problem.hh b/test/freeflow/shallowwater/dambreak/problem.hh
index b2410f315a..7b596fdc42 100644
--- a/test/freeflow/shallowwater/dambreak/problem.hh
+++ b/test/freeflow/shallowwater/dambreak/problem.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/shallowwater/problem.hh>
 #include <dumux/flux/shallowwater/riemannproblem.hh>
@@ -66,7 +67,7 @@ class DamBreakProblem : public ShallowWaterProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NeumannFluxes = Dumux::NumEqVector<PrimaryVariables>;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
diff --git a/test/freeflow/shallowwater/poiseuilleflow/problem.hh b/test/freeflow/shallowwater/poiseuilleflow/problem.hh
index 55f3d4aead..9324dd4ab4 100644
--- a/test/freeflow/shallowwater/poiseuilleflow/problem.hh
+++ b/test/freeflow/shallowwater/poiseuilleflow/problem.hh
@@ -25,6 +25,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/shallowwater/problem.hh>
 #include <dumux/freeflow/shallowwater/boundaryfluxes.hh>
@@ -98,7 +99,6 @@ class PoiseuilleFlowProblem
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
@@ -108,7 +108,8 @@ class PoiseuilleFlowProblem
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
+    using NeumannFluxes = NumEqVector;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
 public:
diff --git a/test/freeflow/shallowwater/roughchannel/problem.hh b/test/freeflow/shallowwater/roughchannel/problem.hh
index b4d4f6e4e2..a2048d0ac4 100644
--- a/test/freeflow/shallowwater/roughchannel/problem.hh
+++ b/test/freeflow/shallowwater/roughchannel/problem.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/shallowwater/problem.hh>
 #include <dumux/freeflow/shallowwater/boundaryfluxes.hh>
@@ -73,7 +74,6 @@ class RoughChannelProblem : public ShallowWaterProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
@@ -83,7 +83,8 @@ class RoughChannelProblem : public ShallowWaterProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
+    using NeumannFluxes = NumEqVector;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
 public:
diff --git a/test/geomechanics/elastic/problem.hh b/test/geomechanics/elastic/problem.hh
index f5b4236cbb..c63b16e97a 100644
--- a/test/geomechanics/elastic/problem.hh
+++ b/test/geomechanics/elastic/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/geomechanics/fvproblem.hh>
 
@@ -48,7 +49,7 @@ class ElasticProblem : public GeomechanicsFVProblem<TypeTag>
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
diff --git a/test/geomechanics/poroelastic/problem.hh b/test/geomechanics/poroelastic/problem.hh
index 372c8315c9..ecece0cc51 100644
--- a/test/geomechanics/poroelastic/problem.hh
+++ b/test/geomechanics/poroelastic/problem.hh
@@ -26,6 +26,7 @@
 
 #include <dune/common/fmatrix.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/geomechanics/fvproblem.hh>
 
 namespace Dumux {
@@ -43,7 +44,7 @@ class PoroElasticProblem : public GeomechanicsFVProblem<TypeTag>
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
 
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
diff --git a/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh b/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh
index 83c1ea7795..3f2438fc04 100644
--- a/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh
+++ b/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -56,7 +57,7 @@ class OnePTestProblem
     using Element = typename GridView::template Codim<0>::Entity;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     static constexpr int dimWorld = GridView::dimensionworld;
diff --git a/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh b/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh
index a67c6fcf83..06dae84332 100644
--- a/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh
+++ b/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -57,7 +58,7 @@ class OnePTestProblem
     using Element = typename GridView::template Codim<0>::Entity;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_darcy.hh
index 9fb563c6cd..4029df89cb 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_darcy.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -42,7 +43,7 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_stokes.hh
index 112e9ea62c..907cb04956 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_stokes.hh
@@ -32,6 +32,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -60,7 +61,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using FVElementGeometry = typename GridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_darcy.hh
index f738274d64..37caacc18d 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_darcy.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -41,7 +42,7 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GridGeometry::GridView;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_stokes.hh
index 8820809c4f..f84ce0b4e2 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_stokes.hh
@@ -27,6 +27,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -51,7 +52,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using FVElementGeometry = typename GridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh
index 17ab7c3231..fe634c5b39 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh
@@ -26,6 +26,7 @@
 #define DUMUX_DARCY2P2C_SUBPROBLEM_HH
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh>
 #include <dumux/porousmediumflow/problem.hh>
 #include "spatialparams.hh"
@@ -41,7 +42,7 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh
index 2c15f8aca2..999f12ca5c 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/timeloop.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -64,7 +65,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
     using TimeLoopPtr = std::shared_ptr<TimeLoop<Scalar>>;
diff --git a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_darcy.hh
index 44da76e957..5ec83fd1a2 100644
--- a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_darcy.hh
@@ -26,6 +26,7 @@
 #define DUMUX_DARCY_SUBPROBLEM_ONEPTHREEC_HH
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh>
 #include <dumux/flux/maxwellstefanslaw.hh>
@@ -48,7 +49,7 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
diff --git a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_stokes.hh
index 166652efca..2be8cc8289 100644
--- a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_stokes.hh
@@ -25,6 +25,7 @@
 #ifndef DUMUX_STOKES_SUBPROBLEM_ONEPTHREEC_HH
 #define DUMUX_STOKES_SUBPROBLEM_ONEPTHREEC_HH
 
+#include <dumux/common/numeqvector.hh>
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
 
@@ -57,7 +58,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using FVElementGeometry = typename GridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using DiffusionCoefficientAveragingType = typename StokesDarcyCouplingOptions::DiffusionCoefficientAveragingType;
 
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/problem_darcy.hh
index fdc9d63989..8d73c6e0c9 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/problem_darcy.hh
@@ -31,6 +31,7 @@
 #include <dumux/discretization/cctpfa.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/material/components/constant.hh>
 #include <dumux/material/fluidsystems/1pliquid.hh>
@@ -56,7 +57,7 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/problem_stokes.hh
index 657a0ece08..42e954634e 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/convergencetest/problem_stokes.hh
@@ -26,6 +26,7 @@
 #define DUMUX_FREEFLOW_SUBPROBLEM_HH
 
 #include <dune/common/fvector.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dune/grid/yaspgrid.hh>
 
 #include <dumux/discretization/staggered/freeflow/properties.hh>
@@ -60,7 +61,7 @@ class FreeFlowSubProblem : public NavierStokesProblem<TypeTag>
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
 
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/problem_darcy.hh
index ea2e21c3dd..c7e7905724 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/problem_darcy.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -40,7 +41,7 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/problem_stokes.hh
index ff20909ae9..76e20b1c40 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/problem_stokes.hh
@@ -26,7 +26,7 @@
 #define DUMUX_STOKES_SUBPROBLEM_HH
 
 #include <dune/grid/yaspgrid.hh>
-
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/staggered/freeflow/properties.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
@@ -64,7 +64,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
 
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p_2p/problem_darcy.hh
index f5e9400fe4..3d64558f74 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/problem_darcy.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -40,7 +41,7 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p_2p/problem_stokes.hh
index 00e459412d..20e80d7315 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/problem_stokes.hh
@@ -27,6 +27,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/freeflow/navierstokes/boundarytypes.hh>
 #include <dumux/freeflow/navierstokes/problem.hh>
@@ -63,7 +64,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
 
diff --git a/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_root.hh b/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_root.hh
index 168fc148df..2101b4bfa0 100644
--- a/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_root.hh
+++ b/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_root.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -45,8 +46,8 @@ class RootProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PointSource = GetPropType<TypeTag, Properties::PointSource>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
-    using SourceValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using SourceValues = Dumux::NumEqVector<PrimaryVariables>;
+    using NeumannFluxes = SourceValues;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename GridGeometry::GridView;
diff --git a/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_soil.hh b/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_soil.hh
index b9ae188dcd..1fdc034e4c 100644
--- a/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_soil.hh
+++ b/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_soil.hh
@@ -33,6 +33,7 @@
 #include <dumux/common/math.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -54,7 +55,7 @@ class SoilProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GridGeometry::GridView;
     using GlobalPosition = typename GridGeometry::GlobalCoordinate;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
diff --git a/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh b/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh
index 1a28a49561..f18afe8ca2 100644
--- a/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh
+++ b/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh
@@ -33,6 +33,7 @@
 #include <dumux/common/math.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -56,7 +57,7 @@ class TissueProblem : public PorousMediumFlowProblem<TypeTag>
     using SubControlVolumeFace = typename GridGeometry::SubControlVolumeFace;
     using GridView = typename GridGeometry::GridView;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
diff --git a/test/multidomain/embedded/1d3d/1p_richards/problem_root.hh b/test/multidomain/embedded/1d3d/1p_richards/problem_root.hh
index acac794eb6..6027fa0896 100644
--- a/test/multidomain/embedded/1d3d/1p_richards/problem_root.hh
+++ b/test/multidomain/embedded/1d3d/1p_richards/problem_root.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -46,7 +47,7 @@ class RootProblem : public PorousMediumFlowProblem<TypeTag>
     using PointSource = GetPropType<TypeTag, Properties::PointSource>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NeumannFluxes = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename GridGeometry::GridView;
diff --git a/test/multidomain/embedded/2d3d/1p_1p/problem_fracture.hh b/test/multidomain/embedded/2d3d/1p_1p/problem_fracture.hh
index 51fdd6855b..8ab5a82083 100644
--- a/test/multidomain/embedded/2d3d/1p_1p/problem_fracture.hh
+++ b/test/multidomain/embedded/2d3d/1p_1p/problem_fracture.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/porousmediumflow/1p/incompressiblelocalresidual.hh>
@@ -46,7 +47,7 @@ class FractureProblem : public PorousMediumFlowProblem<TypeTag>
     using PointSource = GetPropType<TypeTag, Properties::PointSource>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename GridGeometry::GridView;
diff --git a/test/multidomain/embedded/2d3d/1p_1p/problem_matrix.hh b/test/multidomain/embedded/2d3d/1p_1p/problem_matrix.hh
index 5e2c53831c..a0480b76db 100644
--- a/test/multidomain/embedded/2d3d/1p_1p/problem_matrix.hh
+++ b/test/multidomain/embedded/2d3d/1p_1p/problem_matrix.hh
@@ -32,6 +32,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/math.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/porousmediumflow/1p/incompressiblelocalresidual.hh>
@@ -52,7 +53,7 @@ class MatrixProblem : public PorousMediumFlowProblem<TypeTag>
     using FVElementGeometry = typename GridGeometry::LocalView;
     using SubControlVolume = typename GridGeometry::SubControlVolume;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
diff --git a/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh b/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh
index 345f5f4d01..d9c432ab51 100644
--- a/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh
+++ b/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -57,7 +58,7 @@ class OnePBulkProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
 public:
     OnePBulkProblem(std::shared_ptr<const GridGeometry> gridGeometry,
diff --git a/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh b/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh
index d49be8dd30..dce49c0be7 100644
--- a/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh
+++ b/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -57,7 +58,7 @@ class OnePLowDimProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
 public:
     OnePLowDimProblem(std::shared_ptr<const GridGeometry> gridGeometry,
diff --git a/test/multidomain/facet/1p_1p/gravity/problem_bulk.hh b/test/multidomain/facet/1p_1p/gravity/problem_bulk.hh
index 2fe06c34fe..f85dd262cd 100644
--- a/test/multidomain/facet/1p_1p/gravity/problem_bulk.hh
+++ b/test/multidomain/facet/1p_1p/gravity/problem_bulk.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -56,7 +57,7 @@ class OnePBulkProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
 
diff --git a/test/multidomain/facet/1p_1p/gravity/problem_lowdim.hh b/test/multidomain/facet/1p_1p/gravity/problem_lowdim.hh
index d9f6a8b5ab..e6cebf86c1 100644
--- a/test/multidomain/facet/1p_1p/gravity/problem_lowdim.hh
+++ b/test/multidomain/facet/1p_1p/gravity/problem_lowdim.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -56,7 +57,7 @@ class OnePLowDimProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
 
diff --git a/test/multidomain/facet/1p_1p/linearprofile/problem_bulk.hh b/test/multidomain/facet/1p_1p/linearprofile/problem_bulk.hh
index 1af4ede20a..525b399ee6 100644
--- a/test/multidomain/facet/1p_1p/linearprofile/problem_bulk.hh
+++ b/test/multidomain/facet/1p_1p/linearprofile/problem_bulk.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -56,7 +57,7 @@ class OnePBulkProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
 public:
     OnePBulkProblem(std::shared_ptr<const GridGeometry> gridGeometry,
diff --git a/test/multidomain/facet/1p_1p/linearprofile/problem_lowdim.hh b/test/multidomain/facet/1p_1p/linearprofile/problem_lowdim.hh
index 2152893e70..95810a87fc 100644
--- a/test/multidomain/facet/1p_1p/linearprofile/problem_lowdim.hh
+++ b/test/multidomain/facet/1p_1p/linearprofile/problem_lowdim.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -56,7 +57,7 @@ class OnePLowDimProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
 public:
     OnePLowDimProblem(std::shared_ptr<const GridGeometry> gridGeometry,
diff --git a/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh b/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh
index 61040a0987..9e1fd28984 100644
--- a/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh
@@ -26,6 +26,7 @@
 #define DUMUX_TEST_FACETCOUPLING_THREEDOMAIN_ONEP_BULKPROBLEM_HH
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -40,10 +41,9 @@ template<class TypeTag>
 class OnePBulkProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
-
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using PrimaryVariables = typename GridVariables::PrimaryVariables;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = typename GridVariables::Scalar;
 
     using GridGeometry = typename GridVariables::GridGeometry;
diff --git a/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh b/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh
index b049117de1..3556fd2363 100644
--- a/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh
@@ -27,6 +27,7 @@
 #define DUMUX_TEST_FACETCOUPLING_THREEDOMAIN_ONEP_EDGEPROBLEM_HH
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -41,11 +42,10 @@ template<class TypeTag>
 class OnePEdgeProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
-
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
-    using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using PrimaryVariables = typename GridVariables::PrimaryVariables;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
+    using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using Scalar = typename GridVariables::Scalar;
 
     using GridGeometry = typename GridVariables::GridGeometry;
diff --git a/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh b/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh
index 2786d17159..160ff516a4 100644
--- a/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh
@@ -27,6 +27,7 @@
 #define DUMUX_TEST_FACETCOUPLING_THREEDOMAIN_ONEP_FACETPROBLEM_HH
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -41,11 +42,10 @@ template<class TypeTag>
 class OnePFacetProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
-
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
-    using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using PrimaryVariables = typename GridVariables::PrimaryVariables;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
+    using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using Scalar = typename GridVariables::Scalar;
 
     using GridGeometry = typename GridVariables::GridGeometry;
diff --git a/test/multidomain/facet/1pnc_1pnc/problem_bulk.hh b/test/multidomain/facet/1pnc_1pnc/problem_bulk.hh
index 04e0c985e7..52cf0121cd 100644
--- a/test/multidomain/facet/1pnc_1pnc/problem_bulk.hh
+++ b/test/multidomain/facet/1pnc_1pnc/problem_bulk.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -61,7 +62,7 @@ class OnePNCBulkProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
 
diff --git a/test/multidomain/facet/1pnc_1pnc/problem_facet.hh b/test/multidomain/facet/1pnc_1pnc/problem_facet.hh
index 6a4d8ef346..93f783f9eb 100644
--- a/test/multidomain/facet/1pnc_1pnc/problem_facet.hh
+++ b/test/multidomain/facet/1pnc_1pnc/problem_facet.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -56,7 +57,7 @@ class OnePNCLowDimProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
 
diff --git a/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh b/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh
index 475119d6f6..b8a840a6d3 100644
--- a/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh
+++ b/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -58,7 +59,7 @@ class OnePBulkProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
 
 public:
diff --git a/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh b/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh
index b03a50b93c..73c66ea399 100644
--- a/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh
+++ b/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -58,7 +59,7 @@ class OnePLowDimProblem : public PorousMediumFlowProblem<TypeTag>
 
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
 
 public:
diff --git a/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh b/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh
index 673dfb2742..9bc7a0c84d 100644
--- a/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh
+++ b/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -50,7 +51,7 @@ class TracerBulkProblem : public PorousMediumFlowProblem<TypeTag>
     using FVElementGeometry = typename GridGeometry::LocalView;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
 
diff --git a/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh b/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh
index d44ed95559..8739f9e849 100644
--- a/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh
+++ b/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -50,7 +51,7 @@ class TracerLowDimProblem : public PorousMediumFlowProblem<TypeTag>
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
 
diff --git a/test/multidomain/poromechanics/el1p/problem_1p.hh b/test/multidomain/poromechanics/el1p/problem_1p.hh
index 8c4546b416..aa10e7866b 100644
--- a/test/multidomain/poromechanics/el1p/problem_1p.hh
+++ b/test/multidomain/poromechanics/el1p/problem_1p.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -50,8 +51,8 @@ class OnePSubProblem : public PorousMediumFlowProblem<TypeTag>
     // copy pressure index for convenience
     enum { pressureIdx = GetPropType<TypeTag, Properties::ModelTraits>::Indices::pressureIdx };
 
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
diff --git a/test/multidomain/poromechanics/el2p/problem_2p.hh b/test/multidomain/poromechanics/el2p/problem_2p.hh
index 3ab0efc2f9..c36171eccc 100644
--- a/test/multidomain/poromechanics/el2p/problem_2p.hh
+++ b/test/multidomain/poromechanics/el2p/problem_2p.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -58,8 +59,8 @@ class TwoPSubProblem : public PorousMediumFlowProblem<TypeTag>
           dimWorld = GridView::dimensionworld
     };
 
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
diff --git a/test/porousmediumflow/1p/convergence/analyticsolution/problem.hh b/test/porousmediumflow/1p/convergence/analyticsolution/problem.hh
index a9b6ce136d..dddd97a4d7 100644
--- a/test/porousmediumflow/1p/convergence/analyticsolution/problem.hh
+++ b/test/porousmediumflow/1p/convergence/analyticsolution/problem.hh
@@ -29,6 +29,7 @@
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 namespace Dumux {
@@ -44,7 +45,7 @@ class ConvergenceProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/test/porousmediumflow/1p/convergence/discretesolution/problem.hh b/test/porousmediumflow/1p/convergence/discretesolution/problem.hh
index f51d671aaf..e7aeda7baa 100644
--- a/test/porousmediumflow/1p/convergence/discretesolution/problem.hh
+++ b/test/porousmediumflow/1p/convergence/discretesolution/problem.hh
@@ -32,6 +32,7 @@
 #include <dumux/common/parameters.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 namespace Dumux {
@@ -46,8 +47,8 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag>
     using ParentType = PorousMediumFlowProblem<TypeTag>;
 
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
 
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
diff --git a/test/porousmediumflow/1p/internaldirichlet/problem.hh b/test/porousmediumflow/1p/internaldirichlet/problem.hh
index fa973da804..0319092383 100644
--- a/test/porousmediumflow/1p/internaldirichlet/problem.hh
+++ b/test/porousmediumflow/1p/internaldirichlet/problem.hh
@@ -26,6 +26,7 @@
 #define DUMUX_INCOMPRESSIBLE_ONEP_TEST_PROBLEM_INTERNAL_DIRICHLET_HH
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <test/porousmediumflow/1p/incompressible/problem.hh>
 
@@ -42,7 +43,7 @@ class OnePTestProblemInternalDirichlet : public OnePTestProblem<TypeTag>
     using Element = typename GridView::template Codim<0>::Entity;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NeumannValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NeumannValues = Dumux::NumEqVector<PrimaryVariables>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using BoundaryTypes = Dumux::BoundaryTypes<ModelTraits::numEq()>;
     using Indices = typename ModelTraits::Indices;
diff --git a/test/porousmediumflow/1p/nonisothermal/problem_convection.hh b/test/porousmediumflow/1p/nonisothermal/problem_convection.hh
index e63db68855..d43cdaf25e 100644
--- a/test/porousmediumflow/1p/nonisothermal/problem_convection.hh
+++ b/test/porousmediumflow/1p/nonisothermal/problem_convection.hh
@@ -34,6 +34,7 @@
 #include <dumux/common/parameters.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 #include <dumux/material/components/h2o.hh>
@@ -96,7 +97,7 @@ class OnePNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
         energyEqIdx = Indices::energyEqIdx
     };
 
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
diff --git a/test/porousmediumflow/1p/periodicbc/problem.hh b/test/porousmediumflow/1p/periodicbc/problem.hh
index 3314322229..c417421052 100644
--- a/test/porousmediumflow/1p/periodicbc/problem.hh
+++ b/test/porousmediumflow/1p/periodicbc/problem.hh
@@ -31,6 +31,7 @@
 #define FVGEOMCACHING 0
 #endif
 
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 namespace Dumux {
@@ -50,7 +51,7 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag>
     using Element = typename GridView::template Codim<0>::Entity;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using SourceValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using SourceValues = Dumux::NumEqVector<PrimaryVariables>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     static constexpr int dimWorld = GridView::dimensionworld;
diff --git a/test/porousmediumflow/1p/rootbenchmark/problem.hh b/test/porousmediumflow/1p/rootbenchmark/problem.hh
index 0b748697ef..3e44b87af0 100644
--- a/test/porousmediumflow/1p/rootbenchmark/problem.hh
+++ b/test/porousmediumflow/1p/rootbenchmark/problem.hh
@@ -31,6 +31,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/io/format.hh>
 
@@ -60,7 +61,7 @@ class RootBenchmarkProblem : public PorousMediumFlowProblem<TypeTag>
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
 public:
     RootBenchmarkProblem(std::shared_ptr<const GridGeometry> gridGeometry)
diff --git a/test/porousmediumflow/1pnc/1p2c/isothermal/problem.hh b/test/porousmediumflow/1pnc/1p2c/isothermal/problem.hh
index edcd18def4..7a399a5635 100644
--- a/test/porousmediumflow/1pnc/1p2c/isothermal/problem.hh
+++ b/test/porousmediumflow/1pnc/1p2c/isothermal/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/parameters.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 
@@ -69,7 +70,7 @@ class OnePTwoCTestProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
 
diff --git a/test/porousmediumflow/1pnc/1p2c/nonisothermal/conduction/problem.hh b/test/porousmediumflow/1pnc/1p2c/nonisothermal/conduction/problem.hh
index 1d75a69cae..92875d12f1 100644
--- a/test/porousmediumflow/1pnc/1p2c/nonisothermal/conduction/problem.hh
+++ b/test/porousmediumflow/1pnc/1p2c/nonisothermal/conduction/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/parameters.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 #include <dumux/material/components/h2o.hh>
@@ -71,7 +72,7 @@ class OnePTwoCNIConductionProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Element = typename GridView::template Codim<0>::Entity;
     using ThermalConductivityModel = GetPropType<TypeTag, Properties::ThermalConductivityModel>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
diff --git a/test/porousmediumflow/1pnc/1p2c/nonisothermal/convection/problem.hh b/test/porousmediumflow/1pnc/1p2c/nonisothermal/convection/problem.hh
index 7ccfe17c05..027fe96e11 100644
--- a/test/porousmediumflow/1pnc/1p2c/nonisothermal/convection/problem.hh
+++ b/test/porousmediumflow/1pnc/1p2c/nonisothermal/convection/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/parameters.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 #include <dumux/material/components/h2o.hh>
@@ -73,7 +74,7 @@ class OnePTwoCNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
diff --git a/test/porousmediumflow/1pnc/1p2c/nonisothermal/transientbc/problem.hh b/test/porousmediumflow/1pnc/1p2c/nonisothermal/transientbc/problem.hh
index 8a3c4b4143..24c51b1d3c 100644
--- a/test/porousmediumflow/1pnc/1p2c/nonisothermal/transientbc/problem.hh
+++ b/test/porousmediumflow/1pnc/1p2c/nonisothermal/transientbc/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/parameters.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/material/components/h2o.hh>
 
@@ -73,7 +74,7 @@ class OnePTwoCNITransientBCProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/test/porousmediumflow/1pnc/1p3c/problem.hh b/test/porousmediumflow/1pnc/1p3c/problem.hh
index 37df0c5110..1217268db3 100644
--- a/test/porousmediumflow/1pnc/1p3c/problem.hh
+++ b/test/porousmediumflow/1pnc/1p3c/problem.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/parameters.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 #include <dumux/io/gnuplotinterface.hh>
@@ -58,7 +59,7 @@ class MaxwellStefanOnePThreeCTestProblem : public PorousMediumFlowProblem<TypeTa
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
diff --git a/test/porousmediumflow/1pnc/nonequilibrium/problem.hh b/test/porousmediumflow/1pnc/nonequilibrium/problem.hh
index 42adfbec84..6950b05e46 100644
--- a/test/porousmediumflow/1pnc/nonequilibrium/problem.hh
+++ b/test/porousmediumflow/1pnc/nonequilibrium/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/parameters.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 #include <dumux/material/components/h2o.hh>
@@ -66,7 +67,7 @@ class OnePTwoCThermalNonequilibriumProblem : public PorousMediumFlowProblem<Type
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
diff --git a/test/porousmediumflow/1pncmin/nonisothermal/problem.hh b/test/porousmediumflow/1pncmin/nonisothermal/problem.hh
index 83f52cffb2..00ca273678 100644
--- a/test/porousmediumflow/1pncmin/nonisothermal/problem.hh
+++ b/test/porousmediumflow/1pncmin/nonisothermal/problem.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/discretization/elementsolution.hh>
 #include <dumux/porousmediumflow/problem.hh>
@@ -71,7 +72,7 @@ class ThermoChemProblem : public PorousMediumFlowProblem<TypeTag>
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using ReactionRate = ThermoChemReaction;
 
diff --git a/test/porousmediumflow/2p/boxdfm/problem.hh b/test/porousmediumflow/2p/boxdfm/problem.hh
index 4fcc584b80..605bf5123f 100644
--- a/test/porousmediumflow/2p/boxdfm/problem.hh
+++ b/test/porousmediumflow/2p/boxdfm/problem.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -47,7 +48,7 @@ class TwoPTestProblem : public PorousMediumFlowProblem<TypeTag>
 
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SubControlVolume = typename GridGeometry::SubControlVolume;
diff --git a/test/porousmediumflow/2p/cornerpoint/problem.hh b/test/porousmediumflow/2p/cornerpoint/problem.hh
index 84f53984f4..e3263cb65b 100644
--- a/test/porousmediumflow/2p/cornerpoint/problem.hh
+++ b/test/porousmediumflow/2p/cornerpoint/problem.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -52,7 +53,7 @@ class TwoPCornerPointTestProblem : public PorousMediumFlowProblem<TypeTag>
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     enum { dimWorld = GridView::dimensionworld };
 
diff --git a/test/porousmediumflow/2p/fracture/problem.hh b/test/porousmediumflow/2p/fracture/problem.hh
index dab7fb15dc..1b6cd24f54 100644
--- a/test/porousmediumflow/2p/fracture/problem.hh
+++ b/test/porousmediumflow/2p/fracture/problem.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -49,7 +50,7 @@ class FractureProblem : public PorousMediumFlowProblem<TypeTag>
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     enum
     {
diff --git a/test/porousmediumflow/2p/incompressible/problem.hh b/test/porousmediumflow/2p/incompressible/problem.hh
index ef6228e4b9..4132376e54 100644
--- a/test/porousmediumflow/2p/incompressible/problem.hh
+++ b/test/porousmediumflow/2p/incompressible/problem.hh
@@ -26,6 +26,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -47,7 +48,7 @@ class TwoPTestProblem : public PorousMediumFlowProblem<TypeTag>
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     enum {
         pressureH2OIdx = Indices::pressureIdx,
diff --git a/test/porousmediumflow/2p/nonisothermal/problem.hh b/test/porousmediumflow/2p/nonisothermal/problem.hh
index 1e81ef0129..0bcb48b1a3 100644
--- a/test/porousmediumflow/2p/nonisothermal/problem.hh
+++ b/test/porousmediumflow/2p/nonisothermal/problem.hh
@@ -31,6 +31,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -97,7 +98,7 @@ class InjectionProblem2PNI : public PorousMediumFlowProblem<TypeTag>
     };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
diff --git a/test/porousmediumflow/2p1c/problem.hh b/test/porousmediumflow/2p1c/problem.hh
index d4a97bdbac..6e054df3c8 100644
--- a/test/porousmediumflow/2p1c/problem.hh
+++ b/test/porousmediumflow/2p1c/problem.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -51,7 +52,7 @@ class InjectionProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = Dumux::BoundaryTypes<ModelTraits::numEq()>;
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
diff --git a/test/porousmediumflow/2p2c/chemicalnonequilibrium/problem.hh b/test/porousmediumflow/2p2c/chemicalnonequilibrium/problem.hh
index 45addcfad1..d94f5ae819 100644
--- a/test/porousmediumflow/2p2c/chemicalnonequilibrium/problem.hh
+++ b/test/porousmediumflow/2p2c/chemicalnonequilibrium/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -49,7 +50,7 @@ class TwoPTwoCChemicalNonequilibriumProblem : public PorousMediumFlowProblem<Typ
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NeumannFluxes = Dumux::NumEqVector<PrimaryVariables>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
diff --git a/test/porousmediumflow/2p2c/mpnccomparison/problem.hh b/test/porousmediumflow/2p2c/mpnccomparison/problem.hh
index 71cee588bd..20bddf504a 100644
--- a/test/porousmediumflow/2p2c/mpnccomparison/problem.hh
+++ b/test/porousmediumflow/2p2c/mpnccomparison/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -49,7 +50,7 @@ class TwoPTwoCComparisonProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NeumannFluxes = Dumux::NumEqVector<PrimaryVariables>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
diff --git a/test/porousmediumflow/2p2c/waterair/problem.hh b/test/porousmediumflow/2p2c/waterair/problem.hh
index 681ed000e4..63069a2a51 100644
--- a/test/porousmediumflow/2p2c/waterair/problem.hh
+++ b/test/porousmediumflow/2p2c/waterair/problem.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/material/components/n2.hh>
 #include <dumux/porousmediumflow/problem.hh>
@@ -103,7 +104,7 @@ class WaterAirProblem : public PorousMediumFlowProblem<TypeTag>
     enum { N2Idx = FluidSystem::N2Idx };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/2pnc/diffusion/problem.hh b/test/porousmediumflow/2pnc/diffusion/problem.hh
index be946cc013..fb3b1279cb 100644
--- a/test/porousmediumflow/2pnc/diffusion/problem.hh
+++ b/test/porousmediumflow/2pnc/diffusion/problem.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -52,7 +53,7 @@ class TwoPNCDiffusionProblem : public PorousMediumFlowProblem<TypeTag>
 
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/2pnc/fuelcell/problem.hh b/test/porousmediumflow/2pnc/fuelcell/problem.hh
index d0fa1eb0c5..e601b70adb 100644
--- a/test/porousmediumflow/2pnc/fuelcell/problem.hh
+++ b/test/porousmediumflow/2pnc/fuelcell/problem.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -56,7 +57,7 @@ class FuelCellProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
diff --git a/test/porousmediumflow/2pncmin/isothermal/problem.hh b/test/porousmediumflow/2pncmin/isothermal/problem.hh
index 1c73c44c92..358aafd60e 100644
--- a/test/porousmediumflow/2pncmin/isothermal/problem.hh
+++ b/test/porousmediumflow/2pncmin/isothermal/problem.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -106,7 +107,7 @@ class DissolutionProblem : public PorousMediumFlowProblem<TypeTag>
     };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/test/porousmediumflow/2pncmin/nonisothermal/problem.hh b/test/porousmediumflow/2pncmin/nonisothermal/problem.hh
index cd38da30af..d7a4f99b52 100644
--- a/test/porousmediumflow/2pncmin/nonisothermal/problem.hh
+++ b/test/porousmediumflow/2pncmin/nonisothermal/problem.hh
@@ -27,6 +27,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/io/gnuplotinterface.hh>
@@ -110,7 +111,7 @@ class SalinizationProblem : public PorousMediumFlowProblem<TypeTag>
     };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
diff --git a/test/porousmediumflow/3p/conduction/problem.hh b/test/porousmediumflow/3p/conduction/problem.hh
index aaf40af3d8..6597bc5eab 100644
--- a/test/porousmediumflow/3p/conduction/problem.hh
+++ b/test/porousmediumflow/3p/conduction/problem.hh
@@ -32,6 +32,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/material/components/h2o.hh>
@@ -77,7 +78,7 @@ class ThreePNIConductionProblem : public PorousMediumFlowProblem<TypeTag>
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using IapwsH2O = Components::H2O<Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     // copy some indices for convenience
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
diff --git a/test/porousmediumflow/3p/convection/problem.hh b/test/porousmediumflow/3p/convection/problem.hh
index 7f2b92bf84..9e68077ebf 100644
--- a/test/porousmediumflow/3p/convection/problem.hh
+++ b/test/porousmediumflow/3p/convection/problem.hh
@@ -31,6 +31,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/material/components/h2o.hh>
@@ -73,7 +74,7 @@ class ThreePNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
 
diff --git a/test/porousmediumflow/3p/infiltration/problem.hh b/test/porousmediumflow/3p/infiltration/problem.hh
index 306e0686db..03695247a7 100644
--- a/test/porousmediumflow/3p/infiltration/problem.hh
+++ b/test/porousmediumflow/3p/infiltration/problem.hh
@@ -26,6 +26,7 @@
 #define DUMUX_INFILTRATION_THREEP_PROBLEM_HH
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -79,7 +80,7 @@ class InfiltrationThreePProblem : public PorousMediumFlowProblem<TypeTag>
     };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
diff --git a/test/porousmediumflow/3p3c/columnxylol/problem.hh b/test/porousmediumflow/3p3c/columnxylol/problem.hh
index cc5e338838..35c79ce73a 100644
--- a/test/porousmediumflow/3p3c/columnxylol/problem.hh
+++ b/test/porousmediumflow/3p3c/columnxylol/problem.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -89,7 +90,7 @@ class ColumnProblem : public PorousMediumFlowProblem<TypeTag>
     };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/3p3c/infiltration/problem.hh b/test/porousmediumflow/3p3c/infiltration/problem.hh
index fc91470d1d..4f48a995d6 100644
--- a/test/porousmediumflow/3p3c/infiltration/problem.hh
+++ b/test/porousmediumflow/3p3c/infiltration/problem.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -93,7 +94,7 @@ class InfiltrationThreePThreeCProblem : public PorousMediumFlowProblem<TypeTag>
     };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
diff --git a/test/porousmediumflow/3p3c/kuevette/problem.hh b/test/porousmediumflow/3p3c/kuevette/problem.hh
index 3a22412930..b6c1a84aea 100644
--- a/test/porousmediumflow/3p3c/kuevette/problem.hh
+++ b/test/porousmediumflow/3p3c/kuevette/problem.hh
@@ -32,6 +32,7 @@
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -96,7 +97,7 @@ class KuevetteProblem : public PorousMediumFlowProblem<TypeTag>
     };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
diff --git a/test/porousmediumflow/3pwateroil/problem.hh b/test/porousmediumflow/3pwateroil/problem.hh
index ce7207eb13..3cd8697ae4 100644
--- a/test/porousmediumflow/3pwateroil/problem.hh
+++ b/test/porousmediumflow/3pwateroil/problem.hh
@@ -28,6 +28,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -68,7 +69,7 @@ class SagdProblem : public PorousMediumFlowProblem<TypeTag>
     };
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
diff --git a/test/porousmediumflow/co2/problem.hh b/test/porousmediumflow/co2/problem.hh
index f9cafaaa74..f9ff56e0d7 100644
--- a/test/porousmediumflow/co2/problem.hh
+++ b/test/porousmediumflow/co2/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/parallel/vectorcommdatahandle.hh>
 
@@ -111,7 +112,7 @@ class HeterogeneousProblem : public PorousMediumFlowProblem<TypeTag>
 #endif
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/mpnc/2p2ccomparison/problem.hh b/test/porousmediumflow/mpnc/2p2ccomparison/problem.hh
index 43225c7b53..034f6fed05 100644
--- a/test/porousmediumflow/mpnc/2p2ccomparison/problem.hh
+++ b/test/porousmediumflow/mpnc/2p2ccomparison/problem.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/material/constraintsolvers/misciblemultiphasecomposition.hh>
@@ -52,7 +53,7 @@ class MPNCComparisonProblem
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NeumannFluxes = Dumux::NumEqVector<PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
diff --git a/test/porousmediumflow/mpnc/kinetic/problem.hh b/test/porousmediumflow/mpnc/kinetic/problem.hh
index c7da4b3aea..e5e6554528 100644
--- a/test/porousmediumflow/mpnc/kinetic/problem.hh
+++ b/test/porousmediumflow/mpnc/kinetic/problem.hh
@@ -38,6 +38,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/material/constraintsolvers/misciblemultiphasecomposition.hh>
@@ -59,7 +60,7 @@ class EvaporationAtmosphereProblem: public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
diff --git a/test/porousmediumflow/mpnc/obstacle/problem.hh b/test/porousmediumflow/mpnc/obstacle/problem.hh
index 0ce105e35f..f3af7d98c3 100644
--- a/test/porousmediumflow/mpnc/obstacle/problem.hh
+++ b/test/porousmediumflow/mpnc/obstacle/problem.hh
@@ -31,6 +31,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/material/constraintsolvers/computefromreferencephase.hh>
@@ -73,8 +74,8 @@ class ObstacleProblem
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
diff --git a/test/porousmediumflow/mpnc/thermalnonequilibrium/combustionlocalresidual.hh b/test/porousmediumflow/mpnc/thermalnonequilibrium/combustionlocalresidual.hh
index e1102bea27..4f049f251d 100644
--- a/test/porousmediumflow/mpnc/thermalnonequilibrium/combustionlocalresidual.hh
+++ b/test/porousmediumflow/mpnc/thermalnonequilibrium/combustionlocalresidual.hh
@@ -29,6 +29,7 @@
 #include <dumux/common/spline.hh>
 #include <dumux/common/exceptions.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh>
 
@@ -44,7 +45,7 @@ class CombustionEnergyLocalResidual
 : public  EnergyLocalResidualNonEquilibrium<TypeTag, 1/*numEnergyEqFluid*/>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<GetPropType<TypeTag, Properties::PrimaryVariables>>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
diff --git a/test/porousmediumflow/mpnc/thermalnonequilibrium/problem.hh b/test/porousmediumflow/mpnc/thermalnonequilibrium/problem.hh
index 6378d36aad..b4df7bde65 100644
--- a/test/porousmediumflow/mpnc/thermalnonequilibrium/problem.hh
+++ b/test/porousmediumflow/mpnc/thermalnonequilibrium/problem.hh
@@ -33,6 +33,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/material/constraintsolvers/computefromreferencephase.hh>
@@ -52,7 +53,7 @@ class CombustionProblemOneComponent: public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
diff --git a/test/porousmediumflow/richards/analytical/problem.hh b/test/porousmediumflow/richards/analytical/problem.hh
index bd02b6d670..d613fd52d0 100644
--- a/test/porousmediumflow/richards/analytical/problem.hh
+++ b/test/porousmediumflow/richards/analytical/problem.hh
@@ -36,6 +36,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -63,7 +64,7 @@ class RichardsAnalyticalProblem :  public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
diff --git a/test/porousmediumflow/richards/benchmarks/problem.hh b/test/porousmediumflow/richards/benchmarks/problem.hh
index 097cbb10aa..477f84114b 100644
--- a/test/porousmediumflow/richards/benchmarks/problem.hh
+++ b/test/porousmediumflow/richards/benchmarks/problem.hh
@@ -36,6 +36,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/io/format.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
@@ -59,7 +60,7 @@ class RichardsBenchmarkProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
 
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
 
diff --git a/test/porousmediumflow/richards/lens/problem.hh b/test/porousmediumflow/richards/lens/problem.hh
index 196daf954d..b7f8e09359 100644
--- a/test/porousmediumflow/richards/lens/problem.hh
+++ b/test/porousmediumflow/richards/lens/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -68,7 +69,7 @@ class RichardsLensProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
diff --git a/test/porousmediumflow/richards/nonisothermal/conduction/problem.hh b/test/porousmediumflow/richards/nonisothermal/conduction/problem.hh
index 1230c423db..503d9319d7 100644
--- a/test/porousmediumflow/richards/nonisothermal/conduction/problem.hh
+++ b/test/porousmediumflow/richards/nonisothermal/conduction/problem.hh
@@ -31,6 +31,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/discretization/elementsolution.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
@@ -71,7 +72,7 @@ class RichardsNIConductionProblem :public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using ThermalConductivityModel = GetPropType<TypeTag, Properties::ThermalConductivityModel>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
diff --git a/test/porousmediumflow/richards/nonisothermal/convection/problem.hh b/test/porousmediumflow/richards/nonisothermal/convection/problem.hh
index 89911bf8a2..35462fa464 100644
--- a/test/porousmediumflow/richards/nonisothermal/convection/problem.hh
+++ b/test/porousmediumflow/richards/nonisothermal/convection/problem.hh
@@ -32,6 +32,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -72,7 +73,7 @@ class RichardsNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using ThermalConductivityModel = GetPropType<TypeTag, Properties::ThermalConductivityModel>;
diff --git a/test/porousmediumflow/richards/nonisothermal/evaporation/problem.hh b/test/porousmediumflow/richards/nonisothermal/evaporation/problem.hh
index 60becef3bf..eeab97c9f3 100644
--- a/test/porousmediumflow/richards/nonisothermal/evaporation/problem.hh
+++ b/test/porousmediumflow/richards/nonisothermal/evaporation/problem.hh
@@ -31,6 +31,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/material/components/h2o.hh>
@@ -60,7 +61,7 @@ class RichardsNIEvaporationProblem : public PorousMediumFlowProblem<TypeTag>
     using FVElementGeometry = typename GridGeometry::LocalView;
     using SubControlVolumeFace = typename GridGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using ThermalConductivityModel = GetPropType<TypeTag, Properties::ThermalConductivityModel>;
diff --git a/test/porousmediumflow/richardsnc/problem.hh b/test/porousmediumflow/richardsnc/problem.hh
index 77cd9a4f78..58e64a945f 100644
--- a/test/porousmediumflow/richardsnc/problem.hh
+++ b/test/porousmediumflow/richardsnc/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 
 #include <dumux/porousmediumflow/problem.hh>
 
@@ -72,7 +73,7 @@ class RichardsWellTracerProblem : public PorousMediumFlowProblem<TypeTag>
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using PointSource = GetPropType<TypeTag, Properties::PointSource>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
diff --git a/test/porousmediumflow/solidenergy/problem.hh b/test/porousmediumflow/solidenergy/problem.hh
index 6ad839d2bf..72585e26c9 100644
--- a/test/porousmediumflow/solidenergy/problem.hh
+++ b/test/porousmediumflow/solidenergy/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/properties.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 namespace Dumux {
@@ -45,7 +46,7 @@ class SolidEnergyProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using NeumannValues = GetPropType<TypeTag, Properties::NumEqVector>;
+    using NeumannValues = Dumux::NumEqVector<PrimaryVariables>;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
diff --git a/test/porousmediumflow/tracer/multiphase/problem.hh b/test/porousmediumflow/tracer/multiphase/problem.hh
index 3bcd57a40f..9dcb4631c1 100644
--- a/test/porousmediumflow/tracer/multiphase/problem.hh
+++ b/test/porousmediumflow/tracer/multiphase/problem.hh
@@ -30,6 +30,7 @@
 #include <dumux/common/parameters.hh>
 
 #include <dumux/common/boundarytypes.hh>
+#include <dumux/common/numeqvector.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
 namespace Dumux {
@@ -51,8 +52,8 @@ class TracerTest : public PorousMediumFlowProblem<TypeTag>
     using SubControlVolumeFace = typename GridGeometry::SubControlVolumeFace;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>;
-    using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
+    using NumEqVector = Dumux::NumEqVector<PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using SpatialParams = GetPropType<TypeTag, Properties::SpatialParams>;
 
-- 
GitLab