diff --git a/dumux/adaptive/initializationindicator.hh b/dumux/adaptive/initializationindicator.hh
index 596b8e46ee39e4f8c25354de4255989366886529..c073f9d2ff9abd970a01a2217dae5d3accd8da52 100644
--- a/dumux/adaptive/initializationindicator.hh
+++ b/dumux/adaptive/initializationindicator.hh
@@ -49,10 +49,10 @@ class GridAdaptInitializationIndicator
     using Element = typename GridView::Traits::template Codim<0>::Entity;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
 
-    static constexpr bool isBox = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box;
+    static constexpr bool isBox = GetPropType<TypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box;
 
 public:
 
diff --git a/dumux/assembly/boxlocalassembler.hh b/dumux/assembly/boxlocalassembler.hh
index e300b5272961bdc8664b9a09846f0091ca3e38ac..89980bded3a342c8c3baa7c8028d8a7eb5385b06 100644
--- a/dumux/assembly/boxlocalassembler.hh
+++ b/dumux/assembly/boxlocalassembler.hh
@@ -80,7 +80,7 @@ public:
                                      const PartialReassembler* partialReassembler = nullptr)
     {
         this->asImp_().bindLocalViews();
-        const auto eIdxGlobal = this->assembler().fvGridGeometry().elementMapper().index(this->element());
+        const auto eIdxGlobal = this->assembler().gridGeometry().elementMapper().index(this->element());
         if (partialReassembler
             && partialReassembler->elementColor(eIdxGlobal) == EntityColor::green)
         {
@@ -113,7 +113,7 @@ public:
                 }
 
                 // set main diagonal entries for the vertex
-                int vIdx = this->assembler().fvGridGeometry().vertexMapper().index(vertex);
+                int vIdx = this->assembler().gridGeometry().vertexMapper().index(vertex);
 
                 typedef typename JacobianMatrix::block_type BlockType;
                 BlockType &J = jac[vIdx][vIdx];
@@ -139,9 +139,9 @@ public:
             jac[scvI.dofIndex()][scvI.dofIndex()][eqIdx][pvIdx] = 1.0;
 
             // if a periodic dof has Dirichlet values also apply the same Dirichlet values to the other dof
-            if (this->assembler().fvGridGeometry().dofOnPeriodicBoundary(scvI.dofIndex()))
+            if (this->assembler().gridGeometry().dofOnPeriodicBoundary(scvI.dofIndex()))
             {
-                const auto periodicDof = this->assembler().fvGridGeometry().periodicallyMappedDof(scvI.dofIndex());
+                const auto periodicDof = this->assembler().gridGeometry().periodicallyMappedDof(scvI.dofIndex());
                 res[periodicDof][eqIdx] = this->curElemVolVars()[scvI].priVars()[pvIdx] - dirichletValues[pvIdx];
                 const auto end = jac[periodicDof].end();
                 for (auto it = jac[periodicDof].begin(); it != end; ++it)
@@ -309,7 +309,7 @@ public:
         //////////////////////////////////////////////////////////////////////////////////////////////////
 
         // create the element solution
-        auto elemSol = elementSolution(element, curSol, fvGeometry.fvGridGeometry());
+        auto elemSol = elementSolution(element, curSol, fvGeometry.gridGeometry());
 
         // create the vector storing the partial derivatives
         ElementResidualVector partialDerivs(element.subEntities(dim));
@@ -430,7 +430,7 @@ public:
         //////////////////////////////////////////////////////////////////////////////////////////////////
 
         // create the element solution
-        auto elemSol = elementSolution(element, curSol, fvGeometry.fvGridGeometry());
+        auto elemSol = elementSolution(element, curSol, fvGeometry.gridGeometry());
 
         // create the vector storing the partial derivatives
         ElementResidualVector partialDerivs(element.subEntities(dim));
diff --git a/dumux/assembly/boxlocalresidual.hh b/dumux/assembly/boxlocalresidual.hh
index b81a7db0a4f88a9eb96ded2de88afb8e57ece265..7e28e5a254d69b9506c63e6ad76d17c6812910c0 100644
--- a/dumux/assembly/boxlocalresidual.hh
+++ b/dumux/assembly/boxlocalresidual.hh
@@ -49,7 +49,7 @@ class BoxLocalResidual : public FVLocalResidual<TypeTag>
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
     using ElementBoundaryTypes = GetPropType<TypeTag, Properties::ElementBoundaryTypes>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
diff --git a/dumux/assembly/cclocalassembler.hh b/dumux/assembly/cclocalassembler.hh
index 36dce650919f8a0f5cec996c8ea54c9ef1fc7466..633f8668b78b6eb10d078e396acfdd1e11c88b25 100644
--- a/dumux/assembly/cclocalassembler.hh
+++ b/dumux/assembly/cclocalassembler.hh
@@ -78,7 +78,7 @@ public:
                                      const PartialReassembler* partialReassembler)
     {
         this->asImp_().bindLocalViews();
-        const auto globalI = this->assembler().fvGridGeometry().elementMapper().index(this->element());
+        const auto globalI = this->assembler().gridGeometry().elementMapper().index(this->element());
         if (partialReassembler
             && partialReassembler->elementColor(globalI) == EntityColor::green)
         {
@@ -106,7 +106,7 @@ public:
     void assembleResidual(SolutionVector& res)
     {
         this->asImp_().bindLocalViews();
-        const auto globalI = this->assembler().fvGridGeometry().elementMapper().index(this->element());
+        const auto globalI = this->assembler().gridGeometry().elementMapper().index(this->element());
         res[globalI] = this->asImp_().evalLocalResidual()[0]; // forward to the internal implementation
     }
 };
@@ -137,7 +137,7 @@ class CCLocalAssembler<TypeTag, Assembler, DiffMethod::numeric, /*implicit=*/tru
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using Element = typename GetPropType<TypeTag, Properties::GridView>::template Codim<0>::Entity;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using JacobianMatrix = GetPropType<TypeTag, Properties::JacobianMatrix>;
@@ -170,7 +170,7 @@ public:
         // get some aliases for convenience
         const auto& element = this->element();
         const auto& fvGeometry = this->fvGeometry();
-        const auto& fvGridGeometry = this->assembler().fvGridGeometry();
+        const auto& fvGridGeometry = this->assembler().gridGeometry();
         auto&& curElemVolVars = this->curElemVolVars();
         auto&& elemFluxVarsCache = this->elemFluxVarsCache();
 
@@ -349,7 +349,7 @@ public:
         // get some aliases for convenience
         const auto& element = this->element();
         const auto& fvGeometry = this->fvGeometry();
-        const auto& fvGridGeometry = this->assembler().fvGridGeometry();
+        const auto& fvGridGeometry = this->assembler().gridGeometry();
         auto&& curElemVolVars = this->curElemVolVars();
 
         // reference to the element's scv (needed later) and corresponding vol vars
@@ -452,7 +452,7 @@ public:
         const auto& elemFluxVarsCache = this->elemFluxVarsCache();
 
         // get reference to the element's current vol vars
-        const auto globalI = this->assembler().fvGridGeometry().elementMapper().index(element);
+        const auto globalI = this->assembler().gridGeometry().elementMapper().index(element);
         const auto& scv = fvGeometry.scv(globalI);
         const auto& volVars = curElemVolVars[scv];
 
@@ -524,7 +524,7 @@ public:
         const auto residual = this->evalLocalResidual()[0];
 
         // get reference to the element's current vol vars
-        const auto globalI = this->assembler().fvGridGeometry().elementMapper().index(this->element());
+        const auto globalI = this->assembler().gridGeometry().elementMapper().index(this->element());
         const auto& scv = this->fvGeometry().scv(globalI);
         const auto& volVars = this->curElemVolVars()[scv];
 
diff --git a/dumux/assembly/cclocalresidual.hh b/dumux/assembly/cclocalresidual.hh
index b49d7623fd509d99f83981ff861e187d3eef869a..fb0da30614116d06e6ce2dd833ccb359161d87e9 100644
--- a/dumux/assembly/cclocalresidual.hh
+++ b/dumux/assembly/cclocalresidual.hh
@@ -47,7 +47,7 @@ class CCLocalResidual : 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 FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
 
 public:
diff --git a/dumux/assembly/fvassembler.hh b/dumux/assembly/fvassembler.hh
index 421667059aff1875a575c8cf20c9b81ce6d01402..a8f0c94fea7fd2812258acde7995618054d43046 100644
--- a/dumux/assembly/fvassembler.hh
+++ b/dumux/assembly/fvassembler.hh
@@ -56,7 +56,7 @@ class FVAssembler
     using TimeLoop = TimeLoopBase<GetPropType<TypeTag, Properties::Scalar>>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
 
-    static constexpr DiscretizationMethod discMethod = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod;
+    static constexpr DiscretizationMethod discMethod = GetPropType<TypeTag, Properties::GridGeometry>::discMethod;
     static constexpr bool isBox = discMethod == DiscretizationMethod::box;
 
     using ThisType = FVAssembler<TypeTag, diffMethod, isImplicit>;
@@ -66,7 +66,8 @@ class FVAssembler
 public:
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using JacobianMatrix = GetPropType<TypeTag, Properties::JacobianMatrix>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVGridGeometry [[deprecated("Use GridGeometry instead. FVGridGeometry will be removed after 3.1!")]] = GridGeometry;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
 
@@ -78,10 +79,10 @@ public:
      *       it is however guaranteed that the state after assembly will be the same as before
      */
     FVAssembler(std::shared_ptr<const Problem> problem,
-                std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                std::shared_ptr<const GridGeometry> gridGeometry,
                 std::shared_ptr<GridVariables> gridVariables)
     : problem_(problem)
-    , fvGridGeometry_(fvGridGeometry)
+    , gridGeometry_(gridGeometry)
     , gridVariables_(gridVariables)
     , timeLoop_()
     , isStationaryProblem_(true)
@@ -95,11 +96,11 @@ public:
      */
     [[deprecated("Please use constructor taking the previous solution instead. Will be removed after release 3.2!")]]
     FVAssembler(std::shared_ptr<const Problem> problem,
-                std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                std::shared_ptr<const GridGeometry> gridGeometry,
                 std::shared_ptr<GridVariables> gridVariables,
                 std::shared_ptr<const TimeLoop> timeLoop)
     : problem_(problem)
-    , fvGridGeometry_(fvGridGeometry)
+    , gridGeometry_(gridGeometry)
     , gridVariables_(gridVariables)
     , timeLoop_(timeLoop)
     , isStationaryProblem_(!timeLoop)
@@ -111,12 +112,12 @@ public:
      *       it is however guaranteed that the state after assembly will be the same as before
      */
     FVAssembler(std::shared_ptr<const Problem> problem,
-                std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                std::shared_ptr<const GridGeometry> gridGeometry,
                 std::shared_ptr<GridVariables> gridVariables,
                 std::shared_ptr<const TimeLoop> timeLoop,
                 const SolutionVector& prevSol)
     : problem_(problem)
-    , fvGridGeometry_(fvGridGeometry)
+    , gridGeometry_(gridGeometry)
     , gridVariables_(gridVariables)
     , timeLoop_(timeLoop)
     , prevSol_(&prevSol)
@@ -140,7 +141,7 @@ public:
             localAssembler.assembleJacobianAndResidual(*jacobian_, *residual_, *gridVariables_, partialReassembler);
         });
 
-        enforcePeriodicConstraints_(*jacobian_, *residual_, *fvGridGeometry_);
+        enforcePeriodicConstraints_(*jacobian_, *residual_, *gridGeometry_);
     }
 
     /*!
@@ -189,9 +190,9 @@ public:
         // for box communicate the residual with the neighboring processes
         if (isBox && gridView().comm().size() > 1)
         {
-            using VertexMapper = typename FVGridGeometry::VertexMapper;
+            using VertexMapper = typename GridGeometry::VertexMapper;
             VertexHandleSum<typename SolutionVector::block_type, SolutionVector, VertexMapper>
-            sumResidualHandle(residual, fvGridGeometry_->vertexMapper());
+            sumResidualHandle(residual, gridGeometry_->vertexMapper());
             gridView().communicate(sumResidualHandle,
                                    Dune::InteriorBorder_InteriorBorder_Interface,
                                    Dune::ForwardCommunication);
@@ -251,7 +252,7 @@ public:
         jacobian_->setSize(numDofs, numDofs);
 
         // create occupation pattern of the jacobian
-        const auto occupationPattern = getJacobianPattern<isImplicit>(fvGridGeometry());
+        const auto occupationPattern = getJacobianPattern<isImplicit>(gridGeometry());
 
         // export pattern to jacobian
         occupationPattern.exportIdx(*jacobian_);
@@ -263,19 +264,24 @@ public:
 
     //! Returns the number of degrees of freedom
     std::size_t numDofs() const
-    { return fvGridGeometry_->numDofs(); }
+    { return gridGeometry_->numDofs(); }
 
     //! The problem
     const Problem& problem() const
     { return *problem_; }
 
     //! The global finite volume geometry
-    const FVGridGeometry& fvGridGeometry() const
-    { return *fvGridGeometry_; }
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
+    const GridGeometry& fvGridGeometry() const
+    { return gridGeometry(); }
+
+    //! The global finite volume geometry
+    const GridGeometry& gridGeometry() const
+    { return *gridGeometry_; }
 
     //! The gridview
     const GridView& gridView() const
-    { return fvGridGeometry().gridView(); }
+    { return gridGeometry().gridView(); }
 
     //! The global grid variables
     GridVariables& gridVariables()
@@ -416,9 +422,9 @@ private:
     }
 
     template<class GG> std::enable_if_t<GG::discMethod == DiscretizationMethod::box, void>
-    enforcePeriodicConstraints_(JacobianMatrix& jac, SolutionVector& res, const GG& fvGridGeometry)
+    enforcePeriodicConstraints_(JacobianMatrix& jac, SolutionVector& res, const GG& gridGeometry)
     {
-        for (const auto& m : fvGridGeometry.periodicVertexMap())
+        for (const auto& m : gridGeometry.periodicVertexMap())
         {
             if (m.first < m.second)
             {
@@ -436,13 +442,13 @@ private:
     }
 
     template<class GG> std::enable_if_t<GG::discMethod != DiscretizationMethod::box, void>
-    enforcePeriodicConstraints_(JacobianMatrix& jac, SolutionVector& res, const GG& fvGridGeometry) {}
+    enforcePeriodicConstraints_(JacobianMatrix& jac, SolutionVector& res, const GG& gridGeometry) {}
 
     //! pointer to the problem to be solved
     std::shared_ptr<const Problem> problem_;
 
     //! the finite volume geometry of the grid
-    std::shared_ptr<const FVGridGeometry> fvGridGeometry_;
+    std::shared_ptr<const GridGeometry> gridGeometry_;
 
     //! the variables container for the grid
     std::shared_ptr<GridVariables> gridVariables_;
diff --git a/dumux/assembly/fvlocalassemblerbase.hh b/dumux/assembly/fvlocalassemblerbase.hh
index 6bb781b2a76aaf8e6c65a81266efc3b7687f4366..3574cbb25d86e5a2a9091fe16c873fb06d16e197 100644
--- a/dumux/assembly/fvlocalassemblerbase.hh
+++ b/dumux/assembly/fvlocalassemblerbase.hh
@@ -53,7 +53,7 @@ class FVLocalAssemblerBase
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using SolutionVector = typename Assembler::ResidualType;
     using ElementBoundaryTypes = GetPropType<TypeTag, Properties::ElementBoundaryTypes>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridVolumeVariables = GetPropType<TypeTag, Properties::GridVolumeVariables>;
@@ -76,7 +76,7 @@ public:
     : FVLocalAssemblerBase(assembler,
                            element,
                            curSol,
-                           localView(assembler.fvGridGeometry()),
+                           localView(assembler.gridGeometry()),
                            localView(assembler.gridVariables().curGridVolVars()),
                            localView(assembler.gridVariables().prevGridVolVars()),
                            localView(assembler.gridVariables().gridFluxVarsCache()),
diff --git a/dumux/assembly/fvlocalresidual.hh b/dumux/assembly/fvlocalresidual.hh
index e9dc875751aa9bb010ea81298aa2f13378607c53..b933a7d7d07002b407391ab7b09eaeefc7595f49 100644
--- a/dumux/assembly/fvlocalresidual.hh
+++ b/dumux/assembly/fvlocalresidual.hh
@@ -48,9 +48,9 @@ class FVLocalResidual
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
@@ -423,7 +423,7 @@ public:
 
     //! Compute the derivative of the flux residual
     template<class PartialDerivativeMatrices, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod != DiscretizationMethod::box, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod != DiscretizationMethod::box, void>
     addFluxDerivatives(PartialDerivativeMatrices& derivativeMatrices,
                             const Problem& problem,
                             const Element& element,
@@ -437,7 +437,7 @@ public:
 
     //! Compute the derivative of the flux residual for the box method
     template<class JacobianMatrix, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::box, void>
     addFluxDerivatives(JacobianMatrix& A,
                             const Problem& problem,
                             const Element& element,
diff --git a/dumux/assembly/partialreassembler.hh b/dumux/assembly/partialreassembler.hh
index 34551cc9c824c6007f3574cdc7b9441bbbeca1d0..9e986758b827e6f166c42ba33add94be371c1797 100644
--- a/dumux/assembly/partialreassembler.hh
+++ b/dumux/assembly/partialreassembler.hh
@@ -99,15 +99,15 @@ template<class Assembler>
 class PartialReassemblerEngine<Assembler, DiscretizationMethod::box>
 {
     using Scalar = typename Assembler::Scalar;
-    using FVGridGeometry = typename Assembler::FVGridGeometry;
+    using FVGridGeometry = typename Assembler::GridGeometry;
     using JacobianMatrix = typename Assembler::JacobianMatrix;
     using VertexMapper = typename FVGridGeometry::VertexMapper;
     static constexpr int dim = FVGridGeometry::GridView::dimension;
 
 public:
     PartialReassemblerEngine(const Assembler& assembler)
-    : elementColor_(assembler.fvGridGeometry().elementMapper().size(), EntityColor::red)
-    , vertexColor_(assembler.fvGridGeometry().vertexMapper().size(), EntityColor::red)
+    : elementColor_(assembler.gridGeometry().elementMapper().size(), EntityColor::red)
+    , vertexColor_(assembler.gridGeometry().vertexMapper().size(), EntityColor::red)
     {}
 
     // returns number of green elements
@@ -115,7 +115,7 @@ public:
                               const std::vector<Scalar>& distanceFromLastLinearization,
                               Scalar threshold)
     {
-        const auto& fvGridGeometry = assembler.fvGridGeometry();
+        const auto& fvGridGeometry = assembler.gridGeometry();
         const auto& gridView = fvGridGeometry.gridView();
         const auto& elementMapper = fvGridGeometry.elementMapper();
         const auto& vertexMapper = fvGridGeometry.vertexMapper();
@@ -305,12 +305,12 @@ template<class Assembler>
 class PartialReassemblerEngine<Assembler, DiscretizationMethod::cctpfa>
 {
     using Scalar = typename Assembler::Scalar;
-    using FVGridGeometry = typename Assembler::FVGridGeometry;
+    using FVGridGeometry = typename Assembler::GridGeometry;
     using JacobianMatrix = typename Assembler::JacobianMatrix;
 
 public:
     PartialReassemblerEngine(const Assembler& assembler)
-    : elementColor_(assembler.fvGridGeometry().elementMapper().size(), EntityColor::red)
+    : elementColor_(assembler.gridGeometry().elementMapper().size(), EntityColor::red)
     {}
 
     // returns number of green elements
@@ -318,7 +318,7 @@ public:
                               const std::vector<Scalar>& distanceFromLastLinearization,
                               Scalar threshold)
     {
-        const auto& fvGridGeometry = assembler.fvGridGeometry();
+        const auto& fvGridGeometry = assembler.gridGeometry();
         const auto& gridView = fvGridGeometry.gridView();
         const auto& elementMapper = fvGridGeometry.elementMapper();
 
@@ -362,7 +362,7 @@ public:
     void resetJacobian(Assembler& assembler) const
     {
         auto& jacobian = assembler.jacobian();
-        const auto& connectivityMap = assembler.fvGridGeometry().connectivityMap();
+        const auto& connectivityMap = assembler.gridGeometry().connectivityMap();
 
         // loop over all dofs
         for (unsigned int colIdx = 0; colIdx < jacobian.M(); ++colIdx)
@@ -423,7 +423,7 @@ template<class Assembler>
 class PartialReassembler
 {
     using Scalar = typename Assembler::Scalar;
-    using FVGridGeometry = typename Assembler::FVGridGeometry;
+    using FVGridGeometry = typename Assembler::GridGeometry;
     using JacobianMatrix = typename Assembler::JacobianMatrix;
     using VertexMapper = typename FVGridGeometry::VertexMapper;
 
@@ -440,7 +440,7 @@ public:
     : engine_(assembler)
     , greenElems_(0)
     {
-        const auto& fvGridGeometry = assembler.fvGridGeometry();
+        const auto& fvGridGeometry = assembler.gridGeometry();
         totalElems_ = fvGridGeometry.elementMapper().size();
         totalElems_ = fvGridGeometry.gridView().comm().sum(totalElems_);
     }
diff --git a/dumux/assembly/staggeredfvassembler.hh b/dumux/assembly/staggeredfvassembler.hh
index 82a005b10fc36c829dab82ccb4151484863a2bfc..bcd7f3d7a75e4d905f688167ecc63b54f1ae7633 100644
--- a/dumux/assembly/staggeredfvassembler.hh
+++ b/dumux/assembly/staggeredfvassembler.hh
@@ -65,16 +65,17 @@ class StaggeredFVAssembler: public MultiDomainFVAssembler<StaggeredMultiDomainTr
     using TimeLoop = TimeLoopBase<GetPropType<TypeTag, Properties::Scalar>>;
 
 public:
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVGridGeometry [[deprecated("Use GridGeometry instead. FVGridGeometry will be removed after 3.1!")]] = GridGeometry;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using CouplingManager = typename ParentType::CouplingManager;
 
     //! The constructor for stationary problems
     StaggeredFVAssembler(std::shared_ptr<const Problem> problem,
-                         std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                         std::shared_ptr<const GridGeometry> gridGeometry,
                          std::shared_ptr<GridVariables> gridVariables)
     : ParentType(std::make_tuple(problem, problem),
-                 std::make_tuple(fvGridGeometry->cellCenterFVGridGeometryPtr(), fvGridGeometry->faceFVGridGeometryPtr()),
+                 std::make_tuple(gridGeometry->cellCenterFVGridGeometryPtr(), gridGeometry->faceFVGridGeometryPtr()),
                  std::make_tuple(gridVariables->cellCenterGridVariablesPtr(), gridVariables->faceGridVariablesPtr()),
                  std::make_shared<CouplingManager>())
     {
@@ -85,11 +86,11 @@ public:
     //! The constructor for instationary problems
     [[deprecated("Please use the constructor additionally taking the previous solution. Will be removed after 3.2 release!")]]
     StaggeredFVAssembler(std::shared_ptr<const Problem> problem,
-                         std::shared_ptr<const FVGridGeometry> fvGridGeometry,
+                         std::shared_ptr<const GridGeometry> gridGeometry,
                          std::shared_ptr<GridVariables> gridVariables,
                          std::shared_ptr<const TimeLoop> timeLoop)
     : ParentType(std::make_tuple(problem, problem),
-                 std::make_tuple(fvGridGeometry->cellCenterFVGridGeometryPtr(), fvGridGeometry->faceFVGridGeometryPtr()),
+                 std::make_tuple(gridGeometry->cellCenterFVGridGeometryPtr(), gridGeometry->faceFVGridGeometryPtr()),
                  std::make_tuple(gridVariables->cellCenterGridVariablesPtr(), gridVariables->faceGridVariablesPtr()),
                  std::make_shared<CouplingManager>(),
                  timeLoop)
@@ -123,8 +124,12 @@ public:
     { return ParentType::gridVariables(Dune::index_constant<0>()); }
 
     //! The global finite volume geometry
-    const FVGridGeometry& fvGridGeometry() const
-    { return ParentType::fvGridGeometry(Dune::index_constant<0>()).actualfvGridGeometry(); }
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
+    const GridGeometry& fvGridGeometry() const
+    { return gridGeometry(); }
+
+    const GridGeometry& gridGeometry() const
+    { return ParentType::gridGeometry(Dune::index_constant<0>()).actualfvGridGeometry(); }
 
 };
 
diff --git a/dumux/assembly/staggeredlocalresidual.hh b/dumux/assembly/staggeredlocalresidual.hh
index f6e7c692ee775ca00934979f649a2f96f4853e39..aee023b791aa6ff84c0d0da86399a17b44203512 100644
--- a/dumux/assembly/staggeredlocalresidual.hh
+++ b/dumux/assembly/staggeredlocalresidual.hh
@@ -47,7 +47,7 @@ class StaggeredLocalResidual
     using ElementBoundaryTypes = GetPropType<TypeTag, Properties::ElementBoundaryTypes>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
diff --git a/dumux/common/fvproblem.hh b/dumux/common/fvproblem.hh
index 80b5065ff743837dd86b064c0226adf920f849d0..b40f3337b15e32898c07ad25ec54832260967087 100644
--- a/dumux/common/fvproblem.hh
+++ b/dumux/common/fvproblem.hh
@@ -50,7 +50,7 @@ class FVProblem
 {
     using Implementation = GetPropType<TypeTag, Properties::Problem>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
@@ -580,7 +580,12 @@ public:
     // \}
 
     //! The finite volume grid geometry
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const FVGridGeometry& fvGridGeometry() const
+    { return gridGeometry(); }
+
+    //! The finite volume grid geometry
+    const FVGridGeometry& gridGeometry() const
     { return *fvGridGeometry_; }
 
     //! The parameter group in which to retrieve runtime parameters
diff --git a/dumux/common/pointsource.hh b/dumux/common/pointsource.hh
index 56afc59c99a73a73cfe6c5975a65efa6eb4dd6d6..7123186fc48fb4071770cc3ad50e5930c2159b91 100644
--- a/dumux/common/pointsource.hh
+++ b/dumux/common/pointsource.hh
@@ -119,7 +119,7 @@ public:
     // to be overloaded by derived classes
     template<class Problem, class FVElementGeometry, class ElementVolumeVariables>
     void update(const Problem &problem,
-                const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity &element,
+                const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity &element,
                 const FVElementGeometry &fvGeometry,
                 const ElementVolumeVariables &elemVolVars,
                 const typename FVElementGeometry::SubControlVolume &scv)
@@ -215,7 +215,7 @@ class SolDependentPointSource : public PointSource<Dune::FieldVector<typename Ge
     using SourceValues = GetPropType<TypeTag, Properties::NumEqVector>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
 
diff --git a/dumux/common/properties.hh b/dumux/common/properties.hh
index 7b6e54457cfb2987b0a97feaab64db143011fda3..a61b16a2c0a7330ef3b4dbe92068ae07a29786f5 100644
--- a/dumux/common/properties.hh
+++ b/dumux/common/properties.hh
@@ -111,8 +111,22 @@ struct BalanceEqOpts { using type = UndefinedProperty; };          //!< A class
 template<class TypeTag, class MyTypeTag>
 struct ElementBoundaryTypes { using type = UndefinedProperty; };                //!< Stores the boundary types on an element
 
+// TODO: Remove deprecated property FVGridGeometry after 3.1
 template<class TypeTag, class MyTypeTag>
-struct FVGridGeometry { using type = UndefinedProperty; };                      //!< The type of the global finite volume geometry
+struct [[deprecated("Use GridGeometry instead.")]] FVGridGeometry { using type = UndefinedProperty; }; //!< The type of the global finite volume geometry
+
+// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
+// For ensuring backward compatibility, it is necessary to set the default value
+// of the new property to the old one, see the discussion in MR 1647.
+// Use diagnostic pragmas to prevent the emission of a warning message.
+// TODO after 3.1: change default vale to `UndefinedProperty`, remove pragmas
+// and comment.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+template<class TypeTag, class MyTypeTag>
+struct GridGeometry { using type = GetPropType<TypeTag, Properties::FVGridGeometry>;  };       //!< The type of the global finite volume geometry
+#pragma GCC diagnostic pop
+
 template<class TypeTag, class MyTypeTag>
 struct EnableFVGridGeometryCache { using type = UndefinedProperty; };           //!< specifies if geometric data is saved (faster, but more memory consuming)
 
diff --git a/dumux/common/properties/propertysystem.hh b/dumux/common/properties/propertysystem.hh
index 5819af0ed76729d758f07370974bcb08ec1447e8..c58b032f1f838cd850db20f14b315794346b6b62 100644
--- a/dumux/common/properties/propertysystem.hh
+++ b/dumux/common/properties/propertysystem.hh
@@ -91,7 +91,17 @@ struct GetNextTypeTag<TypeTag, Property, std::tuple<FirstTypeTag, Args...>, std:
 template<class TypeTag, template<class,class> class Property, class LastTypeTag>
 struct GetDefined<TypeTag, Property, std::tuple<LastTypeTag>>
 {
+// As of clang 8, the following alias triggers compiler warnings if instantiated
+// from something like `GetPropType<..., DeprecatedProperty>`, even if that is
+// contained in a diagnostic pragma construct that should prevent these warnings.
+// As a workaround, also add the pragmas around this line. The desired warnings
+// from instantiating `GetPropType<..., DeprecatedProperty>` without pragmas are
+// still issued both by gcc and clang.
+// See the discussion in MR 1647 for more details.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
      using LastType = Property<TypeTag, LastTypeTag>;
+#pragma GCC diagnostic pop
      using type = std::conditional_t<isDefinedProperty<LastType>(int{}), LastType,
                                      typename GetNextTypeTag<TypeTag, Property, std::tuple<LastTypeTag>, void>::type>;
 };
@@ -99,7 +109,11 @@ struct GetDefined<TypeTag, Property, std::tuple<LastTypeTag>>
 template<class TypeTag, template<class,class> class Property, class FirstTypeTag, class ...Args>
 struct GetDefined<TypeTag, Property, std::tuple<FirstTypeTag, Args...>>
 {
+// See the comment above.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
      using FirstType = Property<TypeTag, FirstTypeTag>;
+#pragma GCC diagnostic pop
      using type = std::conditional_t<isDefinedProperty<FirstType>(int{}), FirstType,
                                      typename GetNextTypeTag<TypeTag, Property, std::tuple<FirstTypeTag, Args...>, void>::type>;
 };
diff --git a/dumux/common/staggeredfvproblem.hh b/dumux/common/staggeredfvproblem.hh
index 574a7867c99907a0532ba8eee32120e2f8892641..8ce229b555776715d50124238ce71f76274dd5ca 100644
--- a/dumux/common/staggeredfvproblem.hh
+++ b/dumux/common/staggeredfvproblem.hh
@@ -55,7 +55,7 @@ class StaggeredFVProblem : public FVProblem<TypeTag>
     using ElementFaceVariables = typename GridFaceVariables::LocalView;
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
@@ -167,12 +167,12 @@ public:
     template<class SolutionVector>
     void applyInitialSolution(SolutionVector& sol) const
     {
-        sol[cellCenterIdx].resize(this->fvGridGeometry().numCellCenterDofs());
-        sol[faceIdx].resize(this->fvGridGeometry().numFaceDofs());
+        sol[cellCenterIdx].resize(this->gridGeometry().numCellCenterDofs());
+        sol[faceIdx].resize(this->gridGeometry().numFaceDofs());
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             // loop over sub control volumes
diff --git a/dumux/discretization/box.hh b/dumux/discretization/box.hh
index a7811a21b023ec618fb1cc5fcc0425639335a762..3ac7189877cb8b1babec82fad0b8c6cfa333d788 100644
--- a/dumux/discretization/box.hh
+++ b/dumux/discretization/box.hh
@@ -51,6 +51,13 @@ namespace TTag {
 struct BoxModel { using InheritsFrom = std::tuple<FiniteVolumeModel>; };
 } // end namespace TTag
 
+// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
+// For ensuring backward compatibility on the user side, it is necessary to
+// stick to the old name for the specializations, see the discussion in MR 1647.
+// Use diagnostic pragmas to prevent the emission of a warning message.
+// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 //! Set the default for the global finite volume geometry
 template<class TypeTag>
 struct FVGridGeometry<TypeTag, TTag::BoxModel>
@@ -62,6 +69,7 @@ private:
 public:
     using type = BoxFVGridGeometry<Scalar, GridView, enableCache>;
 };
+#pragma GCC diagnostic pop
 
 //! The grid volume variables vector class
 template<class TypeTag>
diff --git a/dumux/discretization/box/elementboundarytypes.hh b/dumux/discretization/box/elementboundarytypes.hh
index 995feddeb9cf99c89d41fa90159cb52284ad5b53..aff498420f1717bada74c75393d27f1925232fd0 100644
--- a/dumux/discretization/box/elementboundarytypes.hh
+++ b/dumux/discretization/box/elementboundarytypes.hh
@@ -52,7 +52,7 @@ public:
                 const Element &element,
                 const FVElementGeometry &fvGeometry)
     {
-        using FVGridGeometry = typename FVElementGeometry::FVGridGeometry;
+        using FVGridGeometry = typename FVElementGeometry::GridGeometry;
         using GridView = typename FVGridGeometry::GridView;
 
         vertexBCTypes_.resize( element.subEntities(GridView::dimension) );
@@ -66,7 +66,7 @@ public:
             int scvIdxLocal = scv.localDofIndex();
             vertexBCTypes_[scvIdxLocal].reset();
 
-            if (fvGeometry.fvGridGeometry().dofOnBoundary(scv.dofIndex()))
+            if (fvGeometry.gridGeometry().dofOnBoundary(scv.dofIndex()))
             {
                 vertexBCTypes_[scvIdxLocal] = problem.boundaryTypes(element, scv);
 
diff --git a/dumux/discretization/box/elementfluxvariablescache.hh b/dumux/discretization/box/elementfluxvariablescache.hh
index 6f89242559f81ef7fbf3f6d7e6c5da53e873b291..17cb49bc52ae7385e0b052b50ec9c76f6e99ccff 100644
--- a/dumux/discretization/box/elementfluxvariablescache.hh
+++ b/dumux/discretization/box/elementfluxvariablescache.hh
@@ -61,7 +61,7 @@ public:
     // Function is called by the BoxLocalJacobian prior to flux calculations on the element.
     // We assume the FVGeometries to be bound at this point
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const ElementVolumeVariables& elemVolVars)
     {
@@ -69,15 +69,15 @@ public:
     }
 
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const ElementVolumeVariables& elemVolVars)
     {
-        eIdx_ = fvGeometry.fvGridGeometry().elementMapper().index(element);
+        eIdx_ = fvGeometry.gridGeometry().elementMapper().index(element);
     }
 
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindScvf(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindScvf(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                   const FVElementGeometry& fvGeometry,
                   const ElementVolumeVariables& elemVolVars,
                   const typename FVElementGeometry::SubControlVolumeFace& scvf)
@@ -119,7 +119,7 @@ public:
     // Function is called by the BoxLocalJacobian prior to flux calculations on the element.
     // We assume the FVGeometries to be bound at this point
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const ElementVolumeVariables& elemVolVars)
     {
@@ -127,7 +127,7 @@ public:
     }
 
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const ElementVolumeVariables& elemVolVars)
     {
@@ -138,7 +138,7 @@ public:
     }
 
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindScvf(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindScvf(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                   const FVElementGeometry& fvGeometry,
                   const ElementVolumeVariables& elemVolVars,
                   const typename FVElementGeometry::SubControlVolumeFace& scvf)
diff --git a/dumux/discretization/box/elementsolution.hh b/dumux/discretization/box/elementsolution.hh
index 833875e0a8587d3dce853cea5ac795f5f0bd176e..68e3bc362832e64d0d1f9353032137469ed9c1ce 100644
--- a/dumux/discretization/box/elementsolution.hh
+++ b/dumux/discretization/box/elementsolution.hh
@@ -37,7 +37,7 @@ namespace Dumux {
 template<class FVElementGeometry, class PV>
 class BoxElementSolution
 {
-    using FVGridGeometry = typename FVElementGeometry::FVGridGeometry;
+    using FVGridGeometry = typename FVElementGeometry::GridGeometry;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
 
@@ -128,7 +128,7 @@ auto elementSolution(const Element& element, const SolutionVector& sol, const FV
  */
 template<class Element, class ElementVolumeVariables, class FVElementGeometry>
 auto elementSolution(const Element& element, const ElementVolumeVariables& elemVolVars, const FVElementGeometry& gg)
--> std::enable_if_t<FVElementGeometry::FVGridGeometry::discMethod == DiscretizationMethod::box,
+-> std::enable_if_t<FVElementGeometry::GridGeometry::discMethod == DiscretizationMethod::box,
                     BoxElementSolution<FVElementGeometry,
                                        typename ElementVolumeVariables::VolumeVariables::PrimaryVariables>>
 {
diff --git a/dumux/discretization/box/elementvolumevariables.hh b/dumux/discretization/box/elementvolumevariables.hh
index adbd044e71cc3f2b2ba9e5c27d79f5ba25a71111..2ddb9591a67f91b90822bf71a67c3da68e8a3d4b 100644
--- a/dumux/discretization/box/elementvolumevariables.hh
+++ b/dumux/discretization/box/elementvolumevariables.hh
@@ -69,7 +69,7 @@ public:
     // For compatibility reasons with the case of not storing the vol vars.
     // function to be called before assembling an element, preparing the vol vars within the stencil
     template<class FVElementGeometry, class SolutionVector>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {
@@ -78,11 +78,11 @@ public:
 
     // function to prepare the vol vars within the element
     template<class FVElementGeometry, class SolutionVector>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {
-        eIdx_ = fvGeometry.fvGridGeometry().elementMapper().index(element);
+        eIdx_ = fvGeometry.gridGeometry().elementMapper().index(element);
     }
 
     //! The global volume variables object we are a restriction of
@@ -115,7 +115,7 @@ public:
 
     // specialization for box models, simply forwards to the bindElement method
     template<class FVElementGeometry, class SolutionVector>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {
@@ -124,12 +124,12 @@ public:
 
     // specialization for box models
     template<class FVElementGeometry, class SolutionVector>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {
         // get the solution at the dofs of the element
-        auto elemSol = elementSolution(element, sol, fvGeometry.fvGridGeometry());
+        auto elemSol = elementSolution(element, sol, fvGeometry.gridGeometry());
 
         // resize volume variables to the required size
         volumeVariables_.resize(fvGeometry.numScv());
diff --git a/dumux/discretization/box/fvelementgeometry.hh b/dumux/discretization/box/fvelementgeometry.hh
index df1d397a94d81996d79cd4dbf7e9bd95bf3fc3c6..eaae427ae9efcc13d8953df2608eae24a37bb411 100644
--- a/dumux/discretization/box/fvelementgeometry.hh
+++ b/dumux/discretization/box/fvelementgeometry.hh
@@ -66,24 +66,25 @@ public:
     //! export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    using FVGridGeometry [[deprecated ("Use GridGeometry instead. Will be removed after 3.1!")]]= GridGeometry;
     //! the maximum number of scvs per element (2^dim for cubes)
     static constexpr std::size_t maxNumElementScvs = (1<<dim);
 
     //! Constructor
-    BoxFVElementGeometry(const FVGridGeometry& fvGridGeometry)
-    : fvGridGeometryPtr_(&fvGridGeometry) {}
+    BoxFVElementGeometry(const GridGeometry& gridGeometry)
+    : gridGeometryPtr_(&gridGeometry) {}
 
     //! Get a sub control volume with a local scv index
     const SubControlVolume& scv(LocalIndexType scvIdx) const
     {
-        return fvGridGeometry().scvs(eIdx_)[scvIdx];
+        return gridGeometry().scvs(eIdx_)[scvIdx];
     }
 
     //! Get a sub control volume face with a local scvf index
     const SubControlVolumeFace& scvf(LocalIndexType scvfIdx) const
     {
-        return fvGridGeometry().scvfs(eIdx_)[scvfIdx];
+        return gridGeometry().scvfs(eIdx_)[scvfIdx];
     }
 
     //! iterator range for sub control volumes. Iterates over
@@ -94,7 +95,7 @@ public:
     friend inline Dune::IteratorRange<typename std::vector<SubControlVolume>::const_iterator>
     scvs(const BoxFVElementGeometry& fvGeometry)
     {
-        const auto& g = fvGeometry.fvGridGeometry();
+        const auto& g = fvGeometry.gridGeometry();
         using Iter = typename std::vector<SubControlVolume>::const_iterator;
         return Dune::IteratorRange<Iter>(g.scvs(fvGeometry.eIdx_).begin(), g.scvs(fvGeometry.eIdx_).end());
     }
@@ -107,7 +108,7 @@ public:
     friend inline Dune::IteratorRange<typename std::vector<SubControlVolumeFace>::const_iterator>
     scvfs(const BoxFVElementGeometry& fvGeometry)
     {
-        const auto& g = fvGeometry.fvGridGeometry();
+        const auto& g = fvGeometry.gridGeometry();
         using Iter = typename std::vector<SubControlVolumeFace>::const_iterator;
         return Dune::IteratorRange<Iter>(g.scvfs(fvGeometry.eIdx_).begin(), g.scvfs(fvGeometry.eIdx_).end());
     }
@@ -115,19 +116,19 @@ public:
     //! Get a local finite element basis
     const FeLocalBasis& feLocalBasis() const
     {
-        return fvGridGeometry().feCache().get(elemGeometryType_).localBasis();
+        return gridGeometry().feCache().get(elemGeometryType_).localBasis();
     }
 
     //! The total number of sub control volumes
     std::size_t numScv() const
     {
-        return fvGridGeometry().scvs(eIdx_).size();
+        return gridGeometry().scvs(eIdx_).size();
     }
 
     //! The total number of sub control volume faces
     std::size_t numScvf() const
     {
-        return fvGridGeometry().scvfs(eIdx_).size();
+        return gridGeometry().scvfs(eIdx_).size();
     }
 
     //! this function is for compatibility reasons with cc methods
@@ -144,20 +145,23 @@ public:
     void bindElement(const Element& element)
     {
         elemGeometryType_ = element.type();
-        eIdx_ = fvGridGeometry().elementMapper().index(element);
+        eIdx_ = gridGeometry().elementMapper().index(element);
     }
 
     //! The global finite volume geometry we are a restriction of
+    [[deprecated ("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const FVGridGeometry& fvGridGeometry() const
-    { return *fvGridGeometryPtr_; }
+    { return gridGeometry(); }
+    const GridGeometry& gridGeometry() const
+    { return *gridGeometryPtr_; }
 
     //! Returns whether one of the geometry's scvfs lies on a boundary
     bool hasBoundaryScvf() const
-    { return fvGridGeometry().hasBoundaryScvf(eIdx_); }
+    { return gridGeometry().hasBoundaryScvf(eIdx_); }
 
 private:
     Dune::GeometryType elemGeometryType_;
-    const FVGridGeometry* fvGridGeometryPtr_;
+    const GridGeometry* gridGeometryPtr_;
 
     GridIndexType eIdx_;
 };
@@ -185,13 +189,14 @@ public:
     //! export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    using FVGridGeometry [[deprecated ("Use GridGeometry instead. Will be removed after 3.1!")]]= GridGeometry;
     //! the maximum number of scvs per element (2^dim for cubes)
     static constexpr std::size_t maxNumElementScvs = (1<<dim);
 
     //! Constructor
-    BoxFVElementGeometry(const FVGridGeometry& fvGridGeometry)
-    : fvGridGeometryPtr_(&fvGridGeometry) {}
+    BoxFVElementGeometry(const GridGeometry& gridGeometry)
+    : gridGeometryPtr_(&gridGeometry) {}
 
     //! Get a sub control volume with a local scv index
     const SubControlVolume& scv(LocalIndexType scvIdx) const
@@ -232,7 +237,7 @@ public:
     //! Get a local finite element basis
     const FeLocalBasis& feLocalBasis() const
     {
-        return fvGridGeometry().feCache().get(elemGeometryType_).localBasis();
+        return gridGeometry().feCache().get(elemGeometryType_).localBasis();
     }
 
     //! The total number of sub control volumes
@@ -260,13 +265,16 @@ public:
     //! For compatibility reasons with the FVGeometry cache being disabled
     void bindElement(const Element& element)
     {
-        eIdx_ = fvGridGeometry().elementMapper().index(element);
+        eIdx_ = gridGeometry().elementMapper().index(element);
         makeElementGeometries(element);
     }
 
     //! The global finite volume geometry we are a restriction of
+    [[deprecated ("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const FVGridGeometry& fvGridGeometry() const
-    { return *fvGridGeometryPtr_; }
+    { return gridGeometry(); }
+    const GridGeometry& gridGeometry() const
+    { return *gridGeometryPtr_; }
 
     //! Returns whether one of the geometry's scvfs lies on a boundary
     bool hasBoundaryScvf() const
@@ -291,7 +299,7 @@ private:
         for (LocalIndexType scvLocalIdx = 0; scvLocalIdx < elementGeometry.corners(); ++scvLocalIdx)
         {
             // get asssociated dof index
-            const auto dofIdxGlobal = fvGridGeometry().vertexMapper().subIndex(element, scvLocalIdx, dim);
+            const auto dofIdxGlobal = gridGeometry().vertexMapper().subIndex(element, scvLocalIdx, dim);
 
             // add scv to the local container
             scvs_[scvLocalIdx] = SubControlVolume(geometryHelper,
@@ -320,7 +328,7 @@ private:
         }
 
         // construct the sub control volume faces on the domain boundary
-        for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& intersection : intersections(gridGeometry().gridView(), element))
         {
             if (intersection.boundary() && !intersection.neighbor())
             {
@@ -353,7 +361,7 @@ private:
     GridIndexType eIdx_;
 
     //! The global geometry this is a restriction of
-    const FVGridGeometry* fvGridGeometryPtr_;
+    const GridGeometry* gridGeometryPtr_;
 
     //! vectors to store the geometries locally after binding an element
     std::vector<SubControlVolume> scvs_;
diff --git a/dumux/discretization/box/scvftoscvboundarytypes.hh b/dumux/discretization/box/scvftoscvboundarytypes.hh
index eb52fd1930e6eeda38909b03108ab3fcf6fd4b3f..b7f511c1cfb373bcf1523d65ee9df282aa13f019 100644
--- a/dumux/discretization/box/scvftoscvboundarytypes.hh
+++ b/dumux/discretization/box/scvftoscvboundarytypes.hh
@@ -46,7 +46,7 @@ public:
         // only do something for box
         if (discMethod == DiscretizationMethod::box)
         {
-            const auto& fvGridGeometry = problem.fvGridGeometry();
+            const auto& fvGridGeometry = problem.gridGeometry();
             scvBoundaryTypes.resize(fvGridGeometry.vertexMapper().size());
             // set all equations to Neumann by default
             for (std::size_t vIdx = 0; vIdx < scvBoundaryTypes.size(); vIdx++)
diff --git a/dumux/discretization/ccmpfa.hh b/dumux/discretization/ccmpfa.hh
index c59c73a4e189934fb31ea1e35a24d954b346d61c..8268d077ff1ffdf73b7d6c399e3fef50ff89bec6 100644
--- a/dumux/discretization/ccmpfa.hh
+++ b/dumux/discretization/ccmpfa.hh
@@ -96,6 +96,13 @@ public:
     using type = CCMpfaOInteractionVolume< Traits >;
 };
 
+// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
+// For ensuring backward compatibility on the user side, it is necessary to
+// stick to the old name for the specializations, see the discussion in MR 1647.
+// Use diagnostic pragmas to prevent the emission of a warning message.
+// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 //! Set the default for the global finite volume geometry
 template<class TypeTag>
 struct FVGridGeometry<TypeTag, TTag::CCMpfaModel>
@@ -109,6 +116,7 @@ private:
 public:
     using type = CCMpfaFVGridGeometry<GridView, Traits, getPropValue<TypeTag, Properties::EnableFVGridGeometryCache>()>;
 };
+#pragma GCC diagnostic pop
 
 //! The grid volume variables vector class
 template<class TypeTag>
diff --git a/dumux/discretization/cctpfa.hh b/dumux/discretization/cctpfa.hh
index 66f2230181217d5f8f6acc4acce45b646d8ab300..b81a0779103753b95d3c6e7fa3c3fd8f4bf585b9 100644
--- a/dumux/discretization/cctpfa.hh
+++ b/dumux/discretization/cctpfa.hh
@@ -50,6 +50,13 @@ namespace TTag {
 struct CCTpfaModel { using InheritsFrom = std::tuple<FiniteVolumeModel>; };
 } // end namespace TTag
 
+// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
+// For ensuring backward compatibility on the user side, it is necessary to
+// stick to the old name for the specializations, see the discussion in MR 1647.
+// Use diagnostic pragmas to prevent the emission of a warning message.
+// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 //! Set the default for the global finite volume geometry
 template<class TypeTag>
 struct FVGridGeometry<TypeTag, TTag::CCTpfaModel>
@@ -60,6 +67,7 @@ private:
 public:
     using type = CCTpfaFVGridGeometry<GridView, enableCache>;
 };
+#pragma GCC diagnostic pop
 
 //! The grid volume variables vector class
 template<class TypeTag>
diff --git a/dumux/discretization/cellcentered/elementsolution.hh b/dumux/discretization/cellcentered/elementsolution.hh
index d9b9522d1cf7056414a036295d8955ba9aed3475..abf1a0bad7e484dbc64ba8e0bee005bee6f5efb5 100644
--- a/dumux/discretization/cellcentered/elementsolution.hh
+++ b/dumux/discretization/cellcentered/elementsolution.hh
@@ -38,7 +38,7 @@ namespace Dumux {
 template<class FVElementGeometry, class PV>
 class CCElementSolution
 {
-    using FVGridGeometry = typename FVElementGeometry::FVGridGeometry;
+    using FVGridGeometry = typename FVElementGeometry::GridGeometry;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
 
@@ -127,8 +127,8 @@ auto elementSolution(const Element& element, const SolutionVector& sol, const FV
  */
 template<class Element, class ElementVolumeVariables, class FVElementGeometry>
 auto elementSolution(const Element& element, const ElementVolumeVariables& elemVolVars, const FVElementGeometry& gg)
--> std::enable_if_t<FVElementGeometry::FVGridGeometry::discMethod == DiscretizationMethod::cctpfa ||
-                    FVElementGeometry::FVGridGeometry::discMethod == DiscretizationMethod::ccmpfa,
+-> std::enable_if_t<FVElementGeometry::GridGeometry::discMethod == DiscretizationMethod::cctpfa ||
+                    FVElementGeometry::GridGeometry::discMethod == DiscretizationMethod::ccmpfa,
                     CCElementSolution<FVElementGeometry, typename ElementVolumeVariables::VolumeVariables::PrimaryVariables>>
 {
     using PrimaryVariables = typename ElementVolumeVariables::VolumeVariables::PrimaryVariables;
@@ -142,8 +142,8 @@ auto elementSolution(const Element& element, const ElementVolumeVariables& elemV
  */
 template<class FVElementGeometry, class PrimaryVariables>
 auto elementSolution(PrimaryVariables&& priVars)
--> std::enable_if_t<FVElementGeometry::FVGridGeometry::discMethod == DiscretizationMethod::cctpfa ||
-                    FVElementGeometry::FVGridGeometry::discMethod == DiscretizationMethod::ccmpfa,
+-> std::enable_if_t<FVElementGeometry::GridGeometry::discMethod == DiscretizationMethod::cctpfa ||
+                    FVElementGeometry::GridGeometry::discMethod == DiscretizationMethod::ccmpfa,
                     CCElementSolution<FVElementGeometry, PrimaryVariables>>
 {
     return CCElementSolution<FVElementGeometry, PrimaryVariables>(std::move(priVars));
@@ -156,8 +156,8 @@ auto elementSolution(PrimaryVariables&& priVars)
  */
 template<class FVElementGeometry, class PrimaryVariables>
 auto elementSolution(const PrimaryVariables& priVars)
--> std::enable_if_t<FVElementGeometry::FVGridGeometry::discMethod == DiscretizationMethod::cctpfa ||
-                    FVElementGeometry::FVGridGeometry::discMethod == DiscretizationMethod::ccmpfa,
+-> std::enable_if_t<FVElementGeometry::GridGeometry::discMethod == DiscretizationMethod::cctpfa ||
+                    FVElementGeometry::GridGeometry::discMethod == DiscretizationMethod::ccmpfa,
                     CCElementSolution<FVElementGeometry, PrimaryVariables>>
 {
     return CCElementSolution<FVElementGeometry, PrimaryVariables>(priVars);
diff --git a/dumux/discretization/cellcentered/mpfa/elementfluxvariablescache.hh b/dumux/discretization/cellcentered/mpfa/elementfluxvariablescache.hh
index 15350276ebcce82884c622d51839d42dc6c3fe19..3c6940f60e3cf0775e3f154ac5d764dae1c87532 100644
--- a/dumux/discretization/cellcentered/mpfa/elementfluxvariablescache.hh
+++ b/dumux/discretization/cellcentered/mpfa/elementfluxvariablescache.hh
@@ -144,14 +144,14 @@ public:
 
     //! Bind the flux var caches for scvfs inside the element only
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const ElementVolumeVariables& elemVolVars)
     { DUNE_THROW(Dune::NotImplemented, "Local element binding of the flux variables cache in mpfa schemes"); }
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const ElementVolumeVariables& elemVolVars)
     {
@@ -162,7 +162,7 @@ public:
         std::size_t numSecondaryIv; numSecondaryIv = 0;
         std::size_t numCaches;      numCaches = 0;
 
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         const auto& gridIvIndexSets = fvGridGeometry.gridInteractionVolumeIndexSets();
 
         // lambda to check if a scvf was handled already
@@ -236,7 +236,7 @@ public:
 
     //! Bind the flux var caches for an individual scvf
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindScvf(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindScvf(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                   const FVElementGeometry& fvGeometry,
                   const ElementVolumeVariables& elemVolVars,
                   const typename FVElementGeometry::SubControlVolumeFace& scvf)
@@ -244,7 +244,7 @@ public:
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void update(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void update(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                 const FVElementGeometry& fvGeometry,
                 const ElementVolumeVariables& elemVolVars)
     {
@@ -320,7 +320,7 @@ private:
     template<class SubControlVolumeFace>
     bool isEmbeddedInBoundaryIV_(const SubControlVolumeFace& scvf) const
     {
-        const auto& fvGridGeometry = gridFluxVarsCachePtr_->problem().fvGridGeometry();
+        const auto& fvGridGeometry = gridFluxVarsCachePtr_->problem().gridGeometry();
         const auto& gridIvIndexSets = fvGridGeometry.gridInteractionVolumeIndexSets();
         if (fvGridGeometry.vertexUsesSecondaryInteractionVolume(scvf.vertexIndex()))
             return gridIvIndexSets.secondaryIndexSet(scvf).nodalIndexSet().numBoundaryScvfs() > 0;
@@ -374,7 +374,7 @@ public:
      * \note this function has to be called prior to flux calculations on the element.
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const ElementVolumeVariables& elemVolVars)
     {
@@ -389,7 +389,7 @@ public:
      * \note this function has to be called prior to flux calculations on the element.
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const ElementVolumeVariables& elemVolVars)
     {
@@ -397,7 +397,7 @@ public:
 
         // some references for convenience
         const auto& problem = gridFluxVarsCache().problem();
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
 
         // the assembly map of the given element
         const auto& assemblyMapI = fvGridGeometry.connectivityMap()[fvGridGeometry.elementMapper().index(element)];
@@ -461,7 +461,7 @@ public:
      * \note this function has to be called prior to flux calculations on this scvf.
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindScvf(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindScvf(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                   const FVElementGeometry& fvGeometry,
                   const ElementVolumeVariables& elemVolVars,
                   const typename FVElementGeometry::SubControlVolumeFace& scvf)
@@ -476,7 +476,7 @@ public:
      * \note Results in undefined behaviour if called before bind() or with a different element
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void update(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void update(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                 const FVElementGeometry& fvGeometry,
                 const ElementVolumeVariables& elemVolVars)
     {
@@ -485,7 +485,7 @@ public:
         if (FluxVariablesCacheFiller::isSolDependent)
         {
             const auto& problem = gridFluxVarsCache().problem();
-            const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+            const auto& fvGridGeometry = fvGeometry.gridGeometry();
             const auto& assemblyMapI = fvGridGeometry.connectivityMap()[fvGridGeometry.elementMapper().index(element)];
 
             // helper class to fill flux variables caches
diff --git a/dumux/discretization/cellcentered/mpfa/elementvolumevariables.hh b/dumux/discretization/cellcentered/mpfa/elementvolumevariables.hh
index 919dec4c9b0061949c8453333ebd3b752f3753a2..8d3ba2f1968f7f32a81c06882774b35e8cf1c631 100644
--- a/dumux/discretization/cellcentered/mpfa/elementvolumevariables.hh
+++ b/dumux/discretization/cellcentered/mpfa/elementvolumevariables.hh
@@ -48,7 +48,7 @@ namespace CCMpfa {
     template<class FVElementGeometry>
     std::size_t maxNumBoundaryVolVars(const FVElementGeometry& fvGeometry)
     {
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         const auto& gridIvIndexSets = fvGridGeometry.gridInteractionVolumeIndexSets();
 
         std::size_t numBoundaryVolVars = 0;
@@ -81,7 +81,7 @@ namespace CCMpfa {
     void addBoundaryVolVarsAtNode(std::vector<VolumeVariables>& volVars,
                                   std::vector<IndexType>& volVarIndices,
                                   const Problem& problem,
-                                  const typename FVElemGeom::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+                                  const typename FVElemGeom::GridGeometry::GridView::template Codim<0>::Entity& element,
                                   const FVElemGeom& fvGeometry,
                                   const NodalIndexSet& nodalIndexSet)
     {
@@ -89,7 +89,7 @@ namespace CCMpfa {
             return;
 
         // index of the element the fvGeometry was bound to
-        const auto boundElemIdx = fvGeometry.fvGridGeometry().elementMapper().index(element);
+        const auto boundElemIdx = fvGeometry.gridGeometry().elementMapper().index(element);
 
         // check each scvf in the index set for boundary presence
         for (auto scvfIdx : nodalIndexSet.gridScvfIndices())
@@ -101,7 +101,7 @@ namespace CCMpfa {
                 continue;
 
             const auto insideScvIdx = ivScvf.insideScvIdx();
-            const auto insideElement = fvGeometry.fvGridGeometry().element(insideScvIdx);
+            const auto insideElement = fvGeometry.gridGeometry().element(insideScvIdx);
             const auto bcTypes = problem.boundaryTypes(insideElement, ivScvf);
 
             // Only proceed on dirichlet boundaries. On Neumann
@@ -135,10 +135,10 @@ namespace CCMpfa {
     void addBoundaryVolVars(std::vector<VolumeVariables>& volVars,
                             std::vector<IndexType>& volVarIndices,
                             const Problem& problem,
-                            const typename FVElemGeom::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+                            const typename FVElemGeom::GridGeometry::GridView::template Codim<0>::Entity& element,
                             const FVElemGeom& fvGeometry)
     {
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
 
         // treat the BCs inside the element
         if (fvGeometry.hasBoundaryScvf())
@@ -209,7 +209,7 @@ public:
     //! Constructor
     CCMpfaElementVolumeVariables(const GridVolumeVariables& gridVolVars)
     : gridVolVarsPtr_(&gridVolVars)
-    , numScv_(gridVolVars.problem().fvGridGeometry().numScv())
+    , numScv_(gridVolVars.problem().gridGeometry().numScv())
     {}
 
     //! operator for the access with an scv
@@ -229,7 +229,7 @@ public:
 
     //! precompute all volume variables in a stencil of an element - bind Dirichlet vol vars in the stencil
     template<class FVElementGeometry, class SolutionVector>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {
@@ -247,7 +247,7 @@ public:
 
     //! precompute the volume variables of an element - do nothing: volVars are cached
     template<class FVElementGeometry, class SolutionVector>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {}
@@ -300,14 +300,14 @@ public:
 
     //! Prepares the volume variables within the element stencil
     template<class FVElementGeometry, class SolutionVector>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {
         clear();
 
         const auto& problem = gridVolVars().problem();
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
 
         // stencil information
         const auto globalI = fvGridGeometry.elementMapper().index(element);
@@ -374,13 +374,13 @@ public:
 
     //! Prepares the volume variables of an element
     template<class FVElementGeometry, class SolutionVector>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {
         clear();
 
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         auto eIdx = fvGridGeometry.elementMapper().index(element);
         volumeVariables_.resize(1);
         volVarIndices_.resize(1);
diff --git a/dumux/discretization/cellcentered/mpfa/fvelementgeometry.hh b/dumux/discretization/cellcentered/mpfa/fvelementgeometry.hh
index 230a3233057d73a2c808dff8e1411132a18e760c..426d8a3ae23b1c09e00d50112024665284fe036c 100644
--- a/dumux/discretization/cellcentered/mpfa/fvelementgeometry.hh
+++ b/dumux/discretization/cellcentered/mpfa/fvelementgeometry.hh
@@ -70,33 +70,34 @@ public:
     //! export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    using FVGridGeometry [[deprecated("Use GridGeometry instead. Will be removed after 3.1!" )]] = GridGeometry;
     //! the maximum number of scvs per element
     static constexpr std::size_t maxNumElementScvs = 1;
     //! the maximum number of scvfs per element (use cubes for maximum)
     static constexpr std::size_t maxNumElementScvfs = dim == 3 ? 24 : 8;
 
     //! Constructor
-    CCMpfaFVElementGeometry(const FVGridGeometry& fvGridGeometry)
-    : fvGridGeometryPtr_(&fvGridGeometry) {}
+    CCMpfaFVElementGeometry(const GridGeometry& gridGeometry)
+    : gridGeometryPtr_(&gridGeometry) {}
 
     //! Get an element sub control volume with a global scv index
     const SubControlVolume& scv(GridIndexType scvIdx) const
     {
-        return fvGridGeometry().scv(scvIdx);
+        return gridGeometry().scv(scvIdx);
     }
 
     //! Get an element sub control volume face with a global scvf index
     const SubControlVolumeFace& scvf(GridIndexType scvfIdx) const
     {
-        return fvGridGeometry().scvf(scvfIdx);
+        return gridGeometry().scvf(scvfIdx);
     }
 
     //! Get the scvf on the same face but from the other side
     //! Note that e.g. the normals might be different in the case of surface grids
     const SubControlVolumeFace& flipScvf(GridIndexType scvfIdx, unsigned int outsideScvIdx = 0) const
     {
-        return fvGridGeometry().flipScvf(scvfIdx, outsideScvIdx);
+        return gridGeometry().flipScvf(scvfIdx, outsideScvIdx);
     }
 
     //! iterator range for sub control volumes. Iterates over
@@ -120,7 +121,7 @@ public:
     friend inline Dune::IteratorRange< ScvfIterator<SubControlVolumeFace, std::vector<GridIndexType>, ThisType> >
     scvfs(const CCMpfaFVElementGeometry& fvGeometry)
     {
-        const auto& g = fvGeometry.fvGridGeometry();
+        const auto& g = fvGeometry.gridGeometry();
         const auto scvIdx = fvGeometry.scvIndices_[0];
         using ScvfIterator = Dumux::ScvfIterator<SubControlVolumeFace, std::vector<GridIndexType>, ThisType>;
         return Dune::IteratorRange<ScvfIterator>(ScvfIterator(g.scvfIndicesOfScv(scvIdx).begin(), fvGeometry),
@@ -136,7 +137,7 @@ public:
     //! number of sub control volumes in this fv element geometry
     std::size_t numScvf() const
     {
-        return fvGridGeometry().scvfIndicesOfScv(scvIndices_[0]).size();
+        return gridGeometry().scvfIndicesOfScv(scvIndices_[0]).size();
     }
 
     //! Binding of an element, called by the local assembler to prepare element assembly
@@ -148,21 +149,23 @@ public:
     //! Bind only element-local
     void bindElement(const Element& element)
     {
-        scvIndices_[0] = fvGridGeometry().elementMapper().index(element);
+        scvIndices_[0] = gridGeometry().elementMapper().index(element);
     }
 
     //! The global finite volume geometry we are a restriction of
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const FVGridGeometry& fvGridGeometry() const
-    { return *fvGridGeometryPtr_; }
-
+    { return gridGeometry(); }
+    const GridGeometry& gridGeometry() const
+    { return *gridGeometryPtr_; }
     //! Returns whether one of the geometry's scvfs lies on a boundary
     bool hasBoundaryScvf() const
-    { return fvGridGeometry().hasBoundaryScvf(scvIndices_[0]); }
+    { return gridGeometry().hasBoundaryScvf(scvIndices_[0]); }
 
 private:
 
     std::array<GridIndexType, 1> scvIndices_;
-    const FVGridGeometry* fvGridGeometryPtr_;
+    const GridGeometry* gridGeometryPtr_;
 };
 
 /*!
@@ -189,16 +192,17 @@ public:
     using SubControlVolume = typename GG::SubControlVolume;
     //! export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
-    //! export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    //! export type of finite volume grid geometrys
+    using GridGeometry = GG;
+    using FVGridGeometry [[deprecated("Use GridGeometry instead. Will be removed after 3.1!")]] = GridGeometry;
     //! the maximum number of scvs per element
     static constexpr std::size_t maxNumElementScvs = 1;
     //! the maximum number of scvfs per element (use cubes for maximum)
     static constexpr std::size_t maxNumElementScvfs = dim == 3 ? 24 : 8;
 
     //! Constructor
-    CCMpfaFVElementGeometry(const FVGridGeometry& fvGridGeometry)
-    : fvGridGeometryPtr_(&fvGridGeometry) {}
+    CCMpfaFVElementGeometry(const GridGeometry& gridGeometry)
+    : gridGeometryPtr_(&gridGeometry) {}
 
     //! Get an elment sub control volume with a global scv index
     //! We separate element and neighbor scvs to speed up mapping
@@ -225,7 +229,7 @@ public:
     //! Note that e.g. the normals might be different in the case of surface grids
     const SubControlVolumeFace& flipScvf(GridIndexType scvfIdx, unsigned int outsideScvIdx = 0) const
     {
-        return scvf( fvGridGeometry().flipScvfIdx(scvfIdx, outsideScvIdx) );
+        return scvf( gridGeometry().flipScvfIdx(scvfIdx, outsideScvIdx) );
     }
 
     //! iterator range for sub control volumes. Iterates over
@@ -268,8 +272,8 @@ public:
         bindElement(element);
 
         // get some references for convenience
-        const auto globalI = fvGridGeometry().elementMapper().index(element);
-        const auto& assemblyMapI = fvGridGeometry().connectivityMap()[globalI];
+        const auto globalI = gridGeometry().elementMapper().index(element);
+        const auto& assemblyMapI = gridGeometry().connectivityMap()[globalI];
 
         // reserve memory
         const auto numNeighbors = assemblyMapI.size();
@@ -282,7 +286,7 @@ public:
         // make neighbor geometries
         // use the assembly map to determine which faces are necessary
         for (const auto& dataJ : assemblyMapI)
-            makeNeighborGeometries(fvGridGeometry().element(dataJ.globalJ),
+            makeNeighborGeometries(gridGeometry().element(dataJ.globalJ),
                                    dataJ.globalJ,
                                    dataJ.scvfsJ,
                                    dataJ.additionalScvfs);
@@ -297,7 +301,7 @@ public:
         //     neighborScvIndices_.reserve(newNumNeighbors);
         //     for (auto globalJ : additionalDofDependencies)
         //     {
-        //         neighborScvs_.emplace_back(fvGridGeometry().element(globalJ).geometry(), globalJ);
+        //         neighborScvs_.emplace_back(gridGeometry().element(globalJ).geometry(), globalJ);
         //         neighborScvIndices_.emplace_back(globalJ);
         //     }
         // }
@@ -311,9 +315,11 @@ public:
     }
 
     //! The global finite volume geometry we are a restriction of
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const FVGridGeometry& fvGridGeometry() const
-    { return *fvGridGeometryPtr_; }
-
+    { return gridGeometry(); }
+    const GridGeometry& gridGeometry() const
+    { return *gridGeometryPtr_; }
     //! Returns whether one of the geometry's scvfs lies on a boundary
     bool hasBoundaryScvf() const
     { return hasBoundaryScvf_; }
@@ -334,13 +340,13 @@ private:
     void makeElementGeometries(const Element& element)
     {
         // make the scv
-        const auto eIdx = fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = gridGeometry().elementMapper().index(element);
         scvs_[0] = SubControlVolume(element.geometry(), eIdx);
         scvIndices_[0] = eIdx;
 
         // get data on the scv faces
-        const auto& scvFaceIndices = fvGridGeometry().scvfIndicesOfScv(eIdx);
-        const auto& neighborVolVarIndices = fvGridGeometry().neighborVolVarIndices(eIdx);
+        const auto& scvFaceIndices = gridGeometry().scvfIndicesOfScv(eIdx);
+        const auto& neighborVolVarIndices = gridGeometry().neighborVolVarIndices(eIdx);
 
         // the quadrature point parameterizaion to be used on scvfs
         static const auto q = getParam<CoordScalar>("Mpfa.Q");
@@ -357,7 +363,7 @@ private:
             finishedFacets.resize(element.subEntities(1), false);
 
         int scvfCounter = 0;
-        for (const auto& is : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& is : intersections(gridGeometry().gridView(), element))
         {
             // if we are dealing with a lower dimensional network
             // only make a new scvf if we haven't handled it yet
@@ -389,10 +395,10 @@ private:
             {
                 // get the global vertex index the scv face is connected to
                 auto vIdxLocal = refElement.subEntity(indexInElement, 1, c, dim);
-                auto vIdxGlobal = fvGridGeometry().vertexMapper().subIndex(e, vIdxLocal, dim);
+                auto vIdxGlobal = gridGeometry().vertexMapper().subIndex(e, vIdxLocal, dim);
 
                 // do not build scvfs connected to a processor boundary
-                if (fvGridGeometry().isGhostVertex(vIdxGlobal))
+                if (gridGeometry().isGhostVertex(vIdxGlobal))
                     continue;
 
                 hasBoundaryScvf_ = (hasBoundaryScvf_ || is.boundary());
@@ -426,8 +432,8 @@ private:
         neighborScvIndices_.push_back(eIdxGlobal);
 
         // get data on the scv faces
-        const auto& scvFaceIndices = fvGridGeometry().scvfIndicesOfScv(eIdxGlobal);
-        const auto& neighborVolVarIndices = fvGridGeometry().neighborVolVarIndices(eIdxGlobal);
+        const auto& scvFaceIndices = gridGeometry().scvfIndicesOfScv(eIdxGlobal);
+        const auto& neighborVolVarIndices = gridGeometry().neighborVolVarIndices(eIdxGlobal);
 
         // the quadrature point parameterizaion to be used on scvfs
         static const auto q = getParam<CoordScalar>("Mpfa.Q");
@@ -439,7 +445,7 @@ private:
             finishedFacets.resize(element.subEntities(1), false);
 
         int scvfCounter = 0;
-        for (const auto& is : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& is : intersections(gridGeometry().gridView(), element))
         {
             // if we are dealing with a lower dimensional network
             // only make a new scvf if we haven't handled it yet
@@ -480,10 +486,10 @@ private:
 
                 // get the global vertex index the scv face is connected to
                 auto vIdxLocal = refElement.subEntity(indexInElement, 1, c, dim);
-                auto vIdxGlobal = fvGridGeometry().vertexMapper().subIndex(e, vIdxLocal, dim);
+                auto vIdxGlobal = gridGeometry().vertexMapper().subIndex(e, vIdxLocal, dim);
 
                 // do not build scvfs connected to a processor boundary
-                if (fvGridGeometry().isGhostVertex(vIdxGlobal))
+                if (gridGeometry().isGhostVertex(vIdxGlobal))
                     continue;
 
                 // build scvf
@@ -529,7 +535,7 @@ private:
         hasBoundaryScvf_ = false;
     }
 
-    const FVGridGeometry* fvGridGeometryPtr_;
+    const GridGeometry* gridGeometryPtr_;
 
     // local storage after binding an element
     std::array<GridIndexType, 1> scvIndices_;
diff --git a/dumux/discretization/cellcentered/mpfa/gridfluxvariablescache.hh b/dumux/discretization/cellcentered/mpfa/gridfluxvariablescache.hh
index c2bbe545a722e14826d86e1be2fe00949b872a66..a0c3cbb396ee40741e3aa97dee73990645c55f69 100644
--- a/dumux/discretization/cellcentered/mpfa/gridfluxvariablescache.hh
+++ b/dumux/discretization/cellcentered/mpfa/gridfluxvariablescache.hh
@@ -176,7 +176,7 @@ public:
     }
 
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void updateElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void updateElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                        const FVElementGeometry& fvGeometry,
                        const ElementVolumeVariables& elemVolVars)
     {
@@ -184,7 +184,7 @@ public:
         // solution-dependent stuff into the caches
         if (FluxVariablesCacheFiller::isSolDependent)
         {
-            const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+            const auto& fvGridGeometry = fvGeometry.gridGeometry();
             const auto& assemblyMapI = fvGridGeometry.connectivityMap()[fvGridGeometry.elementMapper().index(element)];
 
             // helper class to fill flux variables caches
@@ -330,7 +330,7 @@ public:
 
     //! When global flux variables caching is disabled, we don't need to update the cache
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void updateElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void updateElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                        const FVElementGeometry& fvGeometry,
                        const ElementVolumeVariables& elemVolVars) {}
 
diff --git a/dumux/discretization/cellcentered/mpfa/omethod/interactionvolume.hh b/dumux/discretization/cellcentered/mpfa/omethod/interactionvolume.hh
index 82d737ff958a87422ef58f7dd9f7546cc6605b8c..1482483db8928e9035d5ef33c2cc6e658cb9f939 100644
--- a/dumux/discretization/cellcentered/mpfa/omethod/interactionvolume.hh
+++ b/dumux/discretization/cellcentered/mpfa/omethod/interactionvolume.hh
@@ -167,8 +167,8 @@ public:
         // set up stuff related to sub-control volumes
         for (LocalIndexType scvIdxLocal = 0; scvIdxLocal < numLocalScvs; scvIdxLocal++)
         {
-            elements_.emplace_back(fvGeometry.fvGridGeometry().element( stencil()[scvIdxLocal] ));
-            scvs_.emplace_back(fvGeometry.fvGridGeometry().mpfaHelper(),
+            elements_.emplace_back(fvGeometry.gridGeometry().element( stencil()[scvIdxLocal] ));
+            scvs_.emplace_back(fvGeometry.gridGeometry().mpfaHelper(),
                                fvGeometry,
                                fvGeometry.scv( stencil()[scvIdxLocal] ),
                                scvIdxLocal,
@@ -209,7 +209,7 @@ public:
                 {
                     // loop over scvfs in outside scv until we find the one coinciding with current scvf
                     const auto outsideLocalScvIdx = neighborScvIndicesLocal[i];
-                    const auto& flipScvfIndex = fvGeometry.fvGridGeometry().flipScvfIndexSet()[scvf.index()][i-1];
+                    const auto& flipScvfIndex = fvGeometry.gridGeometry().flipScvfIndexSet()[scvf.index()][i-1];
                     const auto& flipScvf = fvGeometry.scvf(flipScvfIndex);
                     localFaceData_.emplace_back(faceIdxLocal,       // iv-local scvf idx
                                                 outsideLocalScvIdx, // iv-local scv index
diff --git a/dumux/discretization/cellcentered/mpfa/omethod/scvgeometryhelper.hh b/dumux/discretization/cellcentered/mpfa/omethod/scvgeometryhelper.hh
index 097b36e258228565601b4d3aa250ce78f3ec91e5..32ba0871b92bdea86a6e9de4786069ce0e2d4303 100644
--- a/dumux/discretization/cellcentered/mpfa/omethod/scvgeometryhelper.hh
+++ b/dumux/discretization/cellcentered/mpfa/omethod/scvgeometryhelper.hh
@@ -91,7 +91,7 @@ public:
             typename LocalScvType::LocalBasis basis;
             basis[0] = corners[1] - corners[0];
             basis[1] = corners[2] - corners[0];
-            if ( !fvGeometry.fvGridGeometry().mpfaHelper().isRightHandSystem(basis) )
+            if ( !fvGeometry.gridGeometry().mpfaHelper().isRightHandSystem(basis) )
                 swap(corners[1], corners[2]);
 
             return ScvGeometry(Dune::GeometryTypes::cube(ScvGeometry::mydimension), corners);
diff --git a/dumux/discretization/cellcentered/mpfa/omethod/staticinteractionvolume.hh b/dumux/discretization/cellcentered/mpfa/omethod/staticinteractionvolume.hh
index 3c9c45a3ffe221fb5520d4314f9aa10dabc1680d..15a957be5dace3b49acade7f4298069a88d38b15 100644
--- a/dumux/discretization/cellcentered/mpfa/omethod/staticinteractionvolume.hh
+++ b/dumux/discretization/cellcentered/mpfa/omethod/staticinteractionvolume.hh
@@ -168,8 +168,8 @@ public:
         // set up stuff related to sub-control volumes
         for (LocalIndexType scvIdxLocal = 0; scvIdxLocal < numScv; scvIdxLocal++)
         {
-            elements_[scvIdxLocal] = fvGeometry.fvGridGeometry().element( stencil()[scvIdxLocal] );
-            scvs_[scvIdxLocal] = LocalScvType(fvGeometry.fvGridGeometry().mpfaHelper(),
+            elements_[scvIdxLocal] = fvGeometry.gridGeometry().element( stencil()[scvIdxLocal] );
+            scvs_[scvIdxLocal] = LocalScvType(fvGeometry.gridGeometry().mpfaHelper(),
                                               fvGeometry,
                                               fvGeometry.scv( stencil()[scvIdxLocal] ),
                                               scvIdxLocal,
diff --git a/dumux/discretization/cellcentered/tpfa/elementfluxvariablescache.hh b/dumux/discretization/cellcentered/tpfa/elementfluxvariablescache.hh
index abbf19dd4aec2f5cb2e201c6339d040b2e1a34e6..b6686a5dd5825ad33980d6195f07777bd5857914 100644
--- a/dumux/discretization/cellcentered/tpfa/elementfluxvariablescache.hh
+++ b/dumux/discretization/cellcentered/tpfa/elementfluxvariablescache.hh
@@ -64,26 +64,26 @@ public:
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const ElementVolumeVariables& elemVolVars) {}
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const ElementVolumeVariables& elemVolVars) {}
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindScvf(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindScvf(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                   const FVElementGeometry& fvGeometry,
                   const ElementVolumeVariables& elemVolVars,
                   const typename FVElementGeometry::SubControlVolumeFace& scvf) {}
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void update(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void update(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                 const FVElementGeometry& fvGeometry,
                 const ElementVolumeVariables& elemVolVars) {}
 
@@ -126,7 +126,7 @@ public:
      * \note this function has to be called prior to flux calculations on the element.
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const ElementVolumeVariables& elemVolVars)
     {
@@ -154,12 +154,12 @@ public:
      * \note this function has to be called prior to flux calculations on the element.
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const ElementVolumeVariables& elemVolVars)
     {
         const auto& problem = gridFluxVarsCache().problem();
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         const auto globalI = fvGridGeometry.elementMapper().index(element);
         const auto& connectivityMapI = fvGridGeometry.connectivityMap()[globalI];
         const auto numNeighbors = connectivityMapI.size();
@@ -203,7 +203,7 @@ public:
      * \note this function has to be called prior to flux calculations on the element.
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindScvf(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindScvf(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                   const FVElementGeometry& fvGeometry,
                   const ElementVolumeVariables& elemVolVars,
                   const typename FVElementGeometry::SubControlVolumeFace& scvf)
@@ -223,14 +223,14 @@ public:
      * \note Results in undefined behaviour if called before bind() or with a different element
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void update(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void update(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                 const FVElementGeometry& fvGeometry,
                 const ElementVolumeVariables& elemVolVars)
     {
         if (FluxVariablesCacheFiller::isSolDependent)
         {
             const auto& problem = gridFluxVarsCache().problem();
-            const auto globalI = fvGeometry.fvGridGeometry().elementMapper().index(element);
+            const auto globalI = fvGeometry.gridGeometry().elementMapper().index(element);
 
             // instantiate filler class
             FluxVariablesCacheFiller filler(problem);
@@ -243,7 +243,7 @@ public:
                 const auto scvfInsideScvIdx = scvf.insideScvIdx();
                 const auto& insideElement = scvfInsideScvIdx == globalI ?
                                             element :
-                                            fvGeometry.fvGridGeometry().element(scvfInsideScvIdx);
+                                            fvGeometry.gridGeometry().element(scvfInsideScvIdx);
 
                 filler.fill(*this, fluxVarsCache_[localScvfIdx], insideElement, fvGeometry, elemVolVars, scvf);
             }
diff --git a/dumux/discretization/cellcentered/tpfa/elementvolumevariables.hh b/dumux/discretization/cellcentered/tpfa/elementvolumevariables.hh
index 78d1246395172324a12431dfb66720ad13315ffc..4344892d3f950554de3d9136876f2b97b70376ac 100644
--- a/dumux/discretization/cellcentered/tpfa/elementvolumevariables.hh
+++ b/dumux/discretization/cellcentered/tpfa/elementvolumevariables.hh
@@ -61,7 +61,7 @@ public:
     //! Constructor
     CCTpfaElementVolumeVariables(const GridVolumeVariables& gridVolVars)
     : gridVolVarsPtr_(&gridVolVars)
-    , numScv_(gridVolVars.problem().fvGridGeometry().numScv())
+    , numScv_(gridVolVars.problem().gridGeometry().numScv())
     {}
 
     //! operator for the access with an scv
@@ -85,7 +85,7 @@ public:
 
     //! precompute all boundary volume variables in a stencil of an element, the remaining ones are cached
     template<class FVElementGeometry, class SolutionVector>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {
@@ -123,7 +123,7 @@ public:
 
     //! precompute the volume variables of an element - do nothing: volVars are cached
     template<class FVElementGeometry, class SolutionVector>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {}
@@ -175,14 +175,14 @@ public:
 
     //! Prepares the volume variables within the element stencil
     template<class FVElementGeometry, class SolutionVector>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {
         clear_();
 
         const auto& problem = gridVolVars().problem();
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         const auto globalI = fvGridGeometry.elementMapper().index(element);
         const auto& connectivityMapI = fvGridGeometry.connectivityMap()[globalI];
         const auto numDofs = connectivityMapI.size() + 1;
@@ -264,19 +264,19 @@ public:
     }
 
     template<class FVElementGeometry, class SolutionVector>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {
         clear_();
 
-        const auto eIdx = fvGeometry.fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = fvGeometry.gridGeometry().elementMapper().index(element);
         volumeVariables_.resize(1);
         volVarIndices_.resize(1);
 
         // update the volume variables of the element
         auto&& scv = fvGeometry.scv(eIdx);
-        volumeVariables_[0].update(elementSolution(element, sol, fvGeometry.fvGridGeometry()),
+        volumeVariables_[0].update(elementSolution(element, sol, fvGeometry.gridGeometry()),
                                    gridVolVars().problem(),
                                    element,
                                    scv);
diff --git a/dumux/discretization/cellcentered/tpfa/fvelementgeometry.hh b/dumux/discretization/cellcentered/tpfa/fvelementgeometry.hh
index 7e9a798ae74b39e8e27ba2c071a828f95d8311f6..07798af3303373d043507069dff4ab5202ac99b0 100644
--- a/dumux/discretization/cellcentered/tpfa/fvelementgeometry.hh
+++ b/dumux/discretization/cellcentered/tpfa/fvelementgeometry.hh
@@ -53,7 +53,7 @@ class CCTpfaFVElementGeometry;
  * \ingroup CCTpfaDiscretization
  * \brief Stencil-local finite volume geometry (scvs and scvfs) for cell-centered TPFA models
  *        Specialization for grid caching enabled
- * \note The finite volume geometries are stored in the corresponding FVGridGeometry
+ * \note The finite volume geometries are stored in the corresponding GridGeometry
  */
 template<class GG>
 class CCTpfaFVElementGeometry<GG, true>
@@ -69,35 +69,37 @@ public:
     //! export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    using FVGridGeometry [[deprecated("Use GridGeometry instead. Will be removed after 3.1!")]]  = GridGeometry;
+
     //! the maximum number of scvs per element
     static constexpr std::size_t maxNumElementScvs = 1;
     //! the maximum number of scvfs per element (use cubes for maximum)
     static constexpr std::size_t maxNumElementScvfs = 2*GridView::dimension;
 
     //! Constructor
-    CCTpfaFVElementGeometry(const FVGridGeometry& fvGridGeometry)
-    : fvGridGeometryPtr_(&fvGridGeometry) {}
+    CCTpfaFVElementGeometry(const GridGeometry& gridGeometry)
+    : gridGeometryPtr_(&gridGeometry) {}
 
     //! Get an elment sub control volume with a global scv index
     //! We separate element and neighbor scvs to speed up mapping
     const SubControlVolume& scv(GridIndexType scvIdx) const
     {
-        return fvGridGeometry().scv(scvIdx);
+        return gridGeometry().scv(scvIdx);
     }
 
     //! Get an element sub control volume face with a global scvf index
     //! We separate element and neighbor scvfs to speed up mapping
     const SubControlVolumeFace& scvf(GridIndexType scvfIdx) const
     {
-        return fvGridGeometry().scvf(scvfIdx);
+        return gridGeometry().scvf(scvfIdx);
     }
 
     //! Get the scvf on the same face but from the other side
     //! Note that e.g. the normals might be different in the case of surface grids
     const SubControlVolumeFace& flipScvf(GridIndexType scvfIdx, unsigned int outsideScvIdx = 0) const
     {
-        return fvGridGeometry().flipScvf(scvfIdx, outsideScvIdx);
+        return gridGeometry().flipScvf(scvfIdx, outsideScvIdx);
     }
 
     //! iterator range for sub control volumes. Iterates over
@@ -121,7 +123,7 @@ public:
     friend inline Dune::IteratorRange< ScvfIterator<SubControlVolumeFace, std::vector<GridIndexType>, ThisType> >
     scvfs(const CCTpfaFVElementGeometry& fvGeometry)
     {
-        const auto& g = fvGeometry.fvGridGeometry();
+        const auto& g = fvGeometry.gridGeometry();
         const auto scvIdx = fvGeometry.scvIndices_[0];
         using ScvfIterator = Dumux::ScvfIterator<SubControlVolumeFace, std::vector<GridIndexType>, ThisType>;
         return Dune::IteratorRange<ScvfIterator>(ScvfIterator(g.scvfIndicesOfScv(scvIdx).begin(), fvGeometry),
@@ -137,7 +139,7 @@ public:
     //! number of sub control volumes in this fv element geometry
     std::size_t numScvf() const
     {
-        return fvGridGeometry().scvfIndicesOfScv(scvIndices_[0]).size();
+        return gridGeometry().scvfIndicesOfScv(scvIndices_[0]).size();
     }
 
     //! Binding of an element, called by the local jacobian to prepare element assembly
@@ -150,22 +152,25 @@ public:
     void bindElement(const Element& element)
     {
         elementPtr_ = &element;
-        scvIndices_[0] = fvGridGeometry().elementMapper().index(*elementPtr_);
+        scvIndices_[0] = gridGeometry().elementMapper().index(*elementPtr_);
     }
 
     //! The global finite volume geometry we are a restriction of
+    const GridGeometry& gridGeometry() const
+    { return *gridGeometryPtr_; }
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const FVGridGeometry& fvGridGeometry() const
-    { return *fvGridGeometryPtr_; }
+    { return gridGeometry(); }
 
     //! Returns whether one of the geometry's scvfs lies on a boundary
     bool hasBoundaryScvf() const
-    { return fvGridGeometry().hasBoundaryScvf(scvIndices_[0]); }
+    { return gridGeometry().hasBoundaryScvf(scvIndices_[0]); }
 
 private:
 
     const Element* elementPtr_;
     std::array<GridIndexType, 1> scvIndices_;
-    const FVGridGeometry* fvGridGeometryPtr_;
+    const GridGeometry* gridGeometryPtr_;
 };
 
 /*!
@@ -191,15 +196,16 @@ public:
     //! export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    using FVGridGeometry [[deprecated("Use GridGeometry instead. Will be removed after 3.1!")]]  = GridGeometry;
     //! the maximum number of scvs per element
     static constexpr std::size_t maxNumElementScvs = 1;
     //! the maximum number of scvfs per element (use cubes for maximum)
     static constexpr std::size_t maxNumElementScvfs = 2*dim;
 
     //! Constructor
-    CCTpfaFVElementGeometry(const FVGridGeometry& fvGridGeometry)
-    : fvGridGeometryPtr_(&fvGridGeometry) {}
+    CCTpfaFVElementGeometry(const GridGeometry& gridGeometry)
+    : gridGeometryPtr_(&gridGeometry) {}
 
     //! Get an elment sub control volume with a global scv index
     //! We separate element and neighbor scvs to speed up mapping
@@ -288,13 +294,13 @@ public:
         std::vector<GridIndexType> handledNeighbors;
         handledNeighbors.reserve(element.subEntities(1));
 
-        for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& intersection : intersections(gridGeometry().gridView(), element))
         {
             // for inner intersections and periodic (according to grid interface) intersections make neighbor geometry
             if (intersection.neighbor())
             {
                 const auto outside = intersection.outside();
-                const auto outsideIdx = fvGridGeometry().elementMapper().index(outside);
+                const auto outsideIdx = gridGeometry().elementMapper().index(outside);
 
                 // make outside geometries only if not done yet (could happen on non-conforming grids)
                 if ( std::find(handledNeighbors.begin(), handledNeighbors.end(), outsideIdx) == handledNeighbors.end() )
@@ -306,7 +312,7 @@ public:
         }
 
         // build flip index set for network, surface, and periodic grids
-        if (dim < dimWorld || fvGridGeometry().isPeriodic())
+        if (dim < dimWorld || gridGeometry().isPeriodic())
         {
             flippedScvfIndices_.resize(scvfs_.size());
             for (unsigned int localScvfIdx = 0; localScvfIdx < scvfs_.size(); ++localScvfIdx)
@@ -354,8 +360,11 @@ public:
     }
 
     //! The global finite volume geometry we are a restriction of
+    const GridGeometry& gridGeometry() const
+    { return *gridGeometryPtr_; }
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const FVGridGeometry& fvGridGeometry() const
-    { return *fvGridGeometryPtr_; }
+    { return gridGeometry(); }
 
     //! Returns whether one of the geometry's scvfs lies on a boundary
     bool hasBoundaryScvf() const
@@ -394,12 +403,12 @@ private:
     {
         using ScvfGridIndexStorage = typename SubControlVolumeFace::Traits::GridIndexStorage;
 
-        const auto eIdx = fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = gridGeometry().elementMapper().index(element);
         scvs_[0] = SubControlVolume(element.geometry(), eIdx);
         scvIndices_[0] = eIdx;
 
-        const auto& scvFaceIndices = fvGridGeometry().scvfIndicesOfScv(eIdx);
-        const auto& neighborVolVarIndices = fvGridGeometry().neighborVolVarIndices(eIdx);
+        const auto& scvFaceIndices = gridGeometry().scvfIndicesOfScv(eIdx);
+        const auto& neighborVolVarIndices = gridGeometry().neighborVolVarIndices(eIdx);
 
         // for network grids there might be multiple intersection with the same geometryInInside
         // we indentify those by the indexInInside for now (assumes conforming grids at branching facets)
@@ -409,7 +418,7 @@ private:
             handledScvf.resize(element.subEntities(1), false);
 
         int scvfCounter = 0;
-        for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& intersection : intersections(gridGeometry().gridView(), element))
         {
             if (dim < dimWorld)
                 if (handledScvf[intersection.indexInInside()])
@@ -450,8 +459,8 @@ private:
         neighborScvs_.emplace_back(element.geometry(), eIdx);
         neighborScvIndices_.push_back(eIdx);
 
-        const auto& scvFaceIndices = fvGridGeometry().scvfIndicesOfScv(eIdx);
-        const auto& neighborVolVarIndices = fvGridGeometry().neighborVolVarIndices(eIdx);
+        const auto& scvFaceIndices = gridGeometry().scvfIndicesOfScv(eIdx);
+        const auto& neighborVolVarIndices = gridGeometry().neighborVolVarIndices(eIdx);
 
         // for network grids there might be multiple intersection with the same geometryInInside
         // we indentify those by the indexInInside for now (assumes conforming grids at branching facets)
@@ -461,7 +470,7 @@ private:
             handledScvf.resize(element.subEntities(1), false);
 
         int scvfCounter = 0;
-        for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& intersection : intersections(gridGeometry().gridView(), element))
         {
             if (dim < dimWorld)
                 if (handledScvf[intersection.indexInInside()])
@@ -471,12 +480,12 @@ private:
             {
                 // this catches inner and periodic scvfs
                 const auto& scvfNeighborVolVarIndices = neighborVolVarIndices[scvfCounter];
-                if (scvfNeighborVolVarIndices[0] < fvGridGeometry().gridView().size(0))
+                if (scvfNeighborVolVarIndices[0] < gridGeometry().gridView().size(0))
                 {
                     // only create subcontrol faces where the outside element is the bound element
                     if (dim == dimWorld)
                     {
-                        if (scvfNeighborVolVarIndices[0] == fvGridGeometry().elementMapper().index(*elementPtr_))
+                        if (scvfNeighborVolVarIndices[0] == gridGeometry().elementMapper().index(*elementPtr_))
                         {
                             ScvfGridIndexStorage scvIndices({eIdx, scvfNeighborVolVarIndices[0]});
                             neighborScvfs_.emplace_back(intersection,
@@ -496,7 +505,7 @@ private:
                     {
                         for (unsigned outsideScvIdx = 0; outsideScvIdx < scvfNeighborVolVarIndices.size(); ++outsideScvIdx)
                         {
-                            if (scvfNeighborVolVarIndices[outsideScvIdx] == fvGridGeometry().elementMapper().index(*elementPtr_))
+                            if (scvfNeighborVolVarIndices[outsideScvIdx] == gridGeometry().elementMapper().index(*elementPtr_))
                             {
                                 ScvfGridIndexStorage scvIndices;
                                 scvIndices.resize(scvfNeighborVolVarIndices.size() + 1);
@@ -558,7 +567,7 @@ private:
     }
 
     const Element* elementPtr_; //!< the element to which this fvgeometry is bound
-    const FVGridGeometry* fvGridGeometryPtr_;  //!< the grid fvgeometry
+    const GridGeometry* gridGeometryPtr_;  //!< the grid fvgeometry
 
     // local storage after binding an element
     std::array<GridIndexType, 1> scvIndices_;
diff --git a/dumux/discretization/cellcentered/tpfa/gridfluxvariablescache.hh b/dumux/discretization/cellcentered/tpfa/gridfluxvariablescache.hh
index 17daeaae4a9f35255ab626265afcef1b69923164..fce7d81ec35140812fe57027829d5cf7bfc16ea6 100644
--- a/dumux/discretization/cellcentered/tpfa/gridfluxvariablescache.hh
+++ b/dumux/discretization/cellcentered/tpfa/gridfluxvariablescache.hh
@@ -118,13 +118,13 @@ public:
     }
 
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void updateElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void updateElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                        const FVElementGeometry& fvGeometry,
                        const ElementVolumeVariables& elemVolVars)
     {
         if (FluxVariablesCacheFiller::isSolDependent)
         {
-            const auto globalI = fvGeometry.fvGridGeometry().elementMapper().index(element);
+            const auto globalI = fvGeometry.gridGeometry().elementMapper().index(element);
 
             // instantiate filler class
             FluxVariablesCacheFiller filler(problem());
@@ -134,9 +134,9 @@ public:
                 filler.fill(*this, fluxVarsCache_[scvf.index()], element, fvGeometry, elemVolVars, scvf);
 
             // update the caches in the neighbors
-            for (const auto& dataJ : fvGeometry.fvGridGeometry().connectivityMap()[globalI])
+            for (const auto& dataJ : fvGeometry.gridGeometry().connectivityMap()[globalI])
             {
-                const auto elementJ = fvGeometry.fvGridGeometry().element(dataJ.globalJ);
+                const auto elementJ = fvGeometry.gridGeometry().element(dataJ.globalJ);
                 for (const auto scvfIdxJ : dataJ.scvfsJ)
                 {
                     const auto& scvfJ = fvGeometry.scvf(scvfIdxJ);
@@ -202,7 +202,7 @@ public:
 
     //! When global flux variables caching is disabled, we don't need to update the cache
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void updateElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void updateElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                        const FVElementGeometry& fvGeometry,
                        const ElementVolumeVariables& elemVolVars) {}
 
diff --git a/dumux/discretization/evalgradients.hh b/dumux/discretization/evalgradients.hh
index 090a0670b79499c357b05b3162b1e8aa842e4865..555dc8a350564f5bfff9afe8f2ef3266985221ad 100644
--- a/dumux/discretization/evalgradients.hh
+++ b/dumux/discretization/evalgradients.hh
@@ -54,7 +54,7 @@ namespace Dumux {
 template<class Element, class FVElementGeometry, class PrimaryVariables>
 auto evalGradients(const Element& element,
                    const typename Element::Geometry& geometry,
-                   const typename FVElementGeometry::FVGridGeometry& fvGridGeometry,
+                   const typename FVElementGeometry::GridGeometry& fvGridGeometry,
                    const BoxElementSolution<FVElementGeometry, PrimaryVariables>& elemSol,
                    const typename Element::Geometry::GlobalCoordinate& globalPos,
                    bool ignoreState = false)
@@ -127,7 +127,7 @@ template<class Element, class FVElementGeometry, class PrimaryVariables>
 Dune::FieldVector<typename Element::Geometry::GlobalCoordinate, PrimaryVariables::dimension>
 evalGradients(const Element& element,
               const typename Element::Geometry& geometry,
-              const typename FVElementGeometry::FVGridGeometry& fvGridGeometry,
+              const typename FVElementGeometry::GridGeometry& fvGridGeometry,
               const CCElementSolution<FVElementGeometry, PrimaryVariables>& elemSol,
               const typename Element::Geometry::GlobalCoordinate& globalPos)
 { DUNE_THROW(Dune::NotImplemented, "General gradient evaluation for cell-centered methods"); }
diff --git a/dumux/discretization/evalsolution.hh b/dumux/discretization/evalsolution.hh
index cb2a762eab0d4513d636aa0ddf2732217eecf76c..56cc98e815035decca21a3e788659627ade55472 100644
--- a/dumux/discretization/evalsolution.hh
+++ b/dumux/discretization/evalsolution.hh
@@ -94,7 +94,7 @@ auto minDistVertexSol(const Geometry& geometry, const typename Geometry::GlobalC
 template<class Element, class FVElementGeometry, class PrimaryVariables>
 PrimaryVariables evalSolution(const Element& element,
                               const typename Element::Geometry& geometry,
-                              const typename FVElementGeometry::FVGridGeometry& fvGridGeometry,
+                              const typename FVElementGeometry::GridGeometry& fvGridGeometry,
                               const BoxElementSolution<FVElementGeometry, PrimaryVariables>& elemSol,
                               const typename Element::Geometry::GlobalCoordinate& globalPos,
                               bool ignoreState = false)
@@ -236,7 +236,7 @@ PrimaryVariables evalSolution(const Element& element,
 template<class Element, class FVElementGeometry, class PrimaryVariables>
 PrimaryVariables evalSolution(const Element& element,
                               const typename Element::Geometry& geometry,
-                              const typename FVElementGeometry::FVGridGeometry& fvGridGeometry,
+                              const typename FVElementGeometry::GridGeometry& fvGridGeometry,
                               const CCElementSolution<FVElementGeometry, PrimaryVariables>& elemSol,
                               const typename Element::Geometry::GlobalCoordinate& globalPos,
                               bool ignoreState = false)
diff --git a/dumux/discretization/fluxstencil.hh b/dumux/discretization/fluxstencil.hh
index 6f3cc27cc34c95e0f8ec60ac53adfd75d20429f9..c892fef6da22a18847e5c06504db8b2bbf30777e 100644
--- a/dumux/discretization/fluxstencil.hh
+++ b/dumux/discretization/fluxstencil.hh
@@ -41,7 +41,7 @@ namespace Dumux {
  *       since we use the flux stencil for matrix and assembly. This might lead to some zeros stored
  *       in the matrix.
  */
-template<class FVElementGeometry, DiscretizationMethod discMethod = FVElementGeometry::FVGridGeometry::discMethod>
+template<class FVElementGeometry, DiscretizationMethod discMethod = FVElementGeometry::GridGeometry::discMethod>
 class FluxStencil;
 
 /*
@@ -52,7 +52,7 @@ class FluxStencil;
 template<class FVElementGeometry>
 class FluxStencil<FVElementGeometry, DiscretizationMethod::cctpfa>
 {
-    using FVGridGeometry = typename FVElementGeometry::FVGridGeometry;
+    using FVGridGeometry = typename FVElementGeometry::GridGeometry;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -92,7 +92,7 @@ public:
 template<class FVElementGeometry>
 class FluxStencil<FVElementGeometry, DiscretizationMethod::ccmpfa>
 {
-    using FVGridGeometry = typename FVElementGeometry::FVGridGeometry;
+    using FVGridGeometry = typename FVElementGeometry::GridGeometry;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -113,7 +113,7 @@ public:
                                   const FVElementGeometry& fvGeometry,
                                   const SubControlVolumeFace& scvf)
     {
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
 
         // return the scv (element) indices in the interaction region
         if (fvGridGeometry.vertexUsesSecondaryInteractionVolume(scvf.vertexIndex()))
diff --git a/dumux/discretization/fvgridvariables.hh b/dumux/discretization/fvgridvariables.hh
index 5b6549d9e38d82f739bcf616733f6f0388e43ce4..751bfff5a06e72109cf940486c0939070566bff4 100644
--- a/dumux/discretization/fvgridvariables.hh
+++ b/dumux/discretization/fvgridvariables.hh
@@ -162,7 +162,12 @@ public:
     { return prevGridVolVars_; }
 
     //! return the finite volume grid geometry
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const GridGeometry& fvGridGeometry() const
+    { return gridGeometry(); }
+
+    //! return the finite volume grid geometry
+    const GridGeometry& gridGeometry() const
     { return *fvGridGeometry_; }
 
 protected:
diff --git a/dumux/discretization/fvproperties.hh b/dumux/discretization/fvproperties.hh
index 4b3da5a3105222e53d84986bea945399cdd6a94c..f1a796b692bb7ea4c641cdb296de981ac964e8e2 100644
--- a/dumux/discretization/fvproperties.hh
+++ b/dumux/discretization/fvproperties.hh
@@ -48,7 +48,7 @@ template<class TypeTag>
 struct GridVariables<TypeTag, TTag::FiniteVolumeModel>
 {
 private:
-    using GG = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using GG = GetPropType<TypeTag, Properties::GridGeometry>;
     using GVV = GetPropType<TypeTag, Properties::GridVolumeVariables>;
     using GFVC = GetPropType<TypeTag, Properties::GridFluxVariablesCache>;
 public:
diff --git a/dumux/discretization/staggered.hh b/dumux/discretization/staggered.hh
index f601e09618a74631bf616696282efa1fd621c3ca..585bab9d8f24ec5e23273202ea18b91427bc5160 100644
--- a/dumux/discretization/staggered.hh
+++ b/dumux/discretization/staggered.hh
@@ -105,7 +105,7 @@ template<class TypeTag>
 struct GridVariables<TypeTag, TTag::StaggeredModel>
 {
 private:
-    using GG = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using GG = GetPropType<TypeTag, Properties::GridGeometry>;
     using GVV = GetPropType<TypeTag, Properties::GridVolumeVariables>;
     using GFVC = GetPropType<TypeTag, Properties::GridFluxVariablesCache>;
     using GFV = GetPropType<TypeTag, Properties::GridFaceVariables>;
diff --git a/dumux/discretization/staggered/elementfacevariables.hh b/dumux/discretization/staggered/elementfacevariables.hh
index e0e44761516ab68189b639bacd596ec5f7040ce3..08358d2fc22dbd993d3d07ee19e2b19c3ecb2840 100644
--- a/dumux/discretization/staggered/elementfacevariables.hh
+++ b/dumux/discretization/staggered/elementfacevariables.hh
@@ -68,7 +68,7 @@ public:
     //! For compatibility reasons with the case of not storing the face vars.
     //! function to be called before assembling an element, preparing the vol vars within the stencil
     template<class FVElementGeometry, class SolutionVector>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {}
@@ -76,7 +76,7 @@ public:
     //! Binding of an element, prepares only the face variables of the element
     //! specialization for Staggered models
     template<class FVElementGeometry, class SolutionVector>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {}
@@ -128,14 +128,14 @@ public:
     //! For compatibility reasons with the case of not storing the vol vars.
     //! function to be called before assembling an element, preparing the vol vars within the stencil
     template<class FVElementGeometry, class SolutionVector>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {
         faceVariables_.resize(fvGeometry.numScvf());
         faceVarIndices_.resize(fvGeometry.numScvf());
 
-        constexpr auto faceIdx = FVElementGeometry::FVGridGeometry::faceIdx();
+        constexpr auto faceIdx = FVElementGeometry::GridGeometry::faceIdx();
 
         for(auto&& scvf : scvfs(fvGeometry))
         {
@@ -147,14 +147,14 @@ public:
     //! Binding of an element, prepares only the face variables of the element
     //! specialization for Staggered models
     template<class FVElementGeometry, class SolutionVector>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {
         faceVariables_.resize(fvGeometry.numScvf());
         faceVarIndices_.resize(fvGeometry.numScvf());
 
-        constexpr auto faceIdx = FVElementGeometry::FVGridGeometry::faceIdx();
+        constexpr auto faceIdx = FVElementGeometry::GridGeometry::faceIdx();
 
         for(auto&& scvf : scvfs(fvGeometry))
         {
diff --git a/dumux/discretization/staggered/elementfluxvariablescache.hh b/dumux/discretization/staggered/elementfluxvariablescache.hh
index 627d116835b0ef0a8c026de5f7f62ef2fe0c917a..53df9dbf52d9f0d5ae4cab31b5fab8d60c8fee70 100644
--- a/dumux/discretization/staggered/elementfluxvariablescache.hh
+++ b/dumux/discretization/staggered/elementfluxvariablescache.hh
@@ -64,26 +64,26 @@ public:
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const ElementVolumeVariables& elemVolVars) {}
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const ElementVolumeVariables& elemVolVars) {}
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindScvf(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindScvf(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                   const FVElementGeometry& fvGeometry,
                   const ElementVolumeVariables& elemVolVars,
                   const typename FVElementGeometry::SubControlVolumeFace& scvf) {}
 
     //! Specialization for the global caching being enabled - do nothing here
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void update(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void update(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                 const FVElementGeometry& fvGeometry,
                 const ElementVolumeVariables& elemVolVars)
     {
@@ -130,7 +130,7 @@ public:
      * \note this function has to be called prior to flux calculations on the element.
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const ElementVolumeVariables& elemVolVars)
     {
@@ -158,7 +158,7 @@ public:
      * \note this function has to be called prior to flux calculations on the element.
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const ElementVolumeVariables& elemVolVars)
     {
@@ -186,7 +186,7 @@ public:
      * \note this function has to be called prior to flux calculations on the element.
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void bindScvf(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindScvf(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                   const FVElementGeometry& fvGeometry,
                   const ElementVolumeVariables& elemVolVars,
                   const typename FVElementGeometry::SubControlVolumeFace& scvf)
@@ -207,14 +207,14 @@ public:
      * \note Results in undefined behaviour if called before bind() or with a different element
      */
     template<class FVElementGeometry, class ElementVolumeVariables>
-    void update(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void update(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                 const FVElementGeometry& fvGeometry,
                 const ElementVolumeVariables& elemVolVars)
     {
         // if (FluxVariablesCacheFiller::isSolDependent) TODO
         // {
         //     const auto& problem = gridFluxVarsCache().problem();
-        //     const auto globalI = fvGeometry.fvGridGeometry().elementMapper().index(element);
+        //     const auto globalI = fvGeometry.gridGeometry().elementMapper().index(element);
         //
         //     // instantiate filler class
         //     FluxVariablesCacheFiller filler(problem);
@@ -227,7 +227,7 @@ public:
         //         const auto scvfInsideScvIdx = scvf.insideScvIdx();
         //         const auto& insideElement = scvfInsideScvIdx == globalI ?
         //                                     element :
-        //                                     fvGeometry.fvGridGeometry().element(scvfInsideScvIdx);
+        //                                     fvGeometry.gridGeometry().element(scvfInsideScvIdx);
         //
         //         filler.fill(*this, fluxVarsCache_[localScvfIdx], insideElement, fvGeometry, elemVolVars, scvf);
         //     }
diff --git a/dumux/discretization/staggered/elementsolution.hh b/dumux/discretization/staggered/elementsolution.hh
index 8634cbf76374352dd34db74335ce5129ea84c069..ebb23bf2a6d5d736e78e18f6eec3e171616e7414 100644
--- a/dumux/discretization/staggered/elementsolution.hh
+++ b/dumux/discretization/staggered/elementsolution.hh
@@ -60,7 +60,7 @@ using StaggeredElementSolution = Dune::BlockVector<PrimaryVariables>;
  */
 template<class FVElementGeometry, class PrimaryVariables>
 auto elementSolution(PrimaryVariables&& priVars)
--> std::enable_if_t<FVElementGeometry::FVGridGeometry::discMethod == DiscretizationMethod::staggered,
+-> std::enable_if_t<FVElementGeometry::GridGeometry::discMethod == DiscretizationMethod::staggered,
                     StaggeredElementSolution<PrimaryVariables>>
 {
     return StaggeredElementSolution<PrimaryVariables>({std::move(priVars)});
diff --git a/dumux/discretization/staggered/freeflow/elementvolumevariables.hh b/dumux/discretization/staggered/freeflow/elementvolumevariables.hh
index 4da5e6a857379d1de801e0f45ef506f5c9f5505b..7c57103a7ca525f983c17d294640e5696323ba05 100644
--- a/dumux/discretization/staggered/freeflow/elementvolumevariables.hh
+++ b/dumux/discretization/staggered/freeflow/elementvolumevariables.hh
@@ -60,7 +60,7 @@ public:
     //! Constructor
     StaggeredElementVolumeVariables(const GridVolumeVariables& gridVolVars)
     : gridVolVarsPtr_(&gridVolVars)
-    , numScv_(gridVolVars.problem().fvGridGeometry().numScv())
+    , numScv_(gridVolVars.problem().gridGeometry().numScv())
     {}
 
     //! operator for the access with an scv
@@ -86,18 +86,18 @@ public:
     //! Binding of an element, prepares the volume variables within the element stencil
     //! called by the local jacobian to prepare element assembly. Specialization callable with MultiTypeBlockVector.
     template<class FVElementGeometry, class ...Args>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const Dune::MultiTypeBlockVector<Args...>& sol)
     {
         // forward to the actual method
-        bind(element, fvGeometry, sol[FVElementGeometry::FVGridGeometry::cellCenterIdx()]);
+        bind(element, fvGeometry, sol[FVElementGeometry::GridGeometry::cellCenterIdx()]);
     }
 
     //! Binding of an element, prepares the volume variables within the element stencil
     //! called by the local jacobian to prepare element assembly
     template<class FVElementGeometry, class SolutionVector, typename std::enable_if_t<!isMultiTypeBlockVector<SolutionVector>(), int> = 0>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {
@@ -133,7 +133,7 @@ public:
 
     //! function to prepare the vol vars within the element
     template<class FVElementGeometry, class SolutionVector>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {}
@@ -191,28 +191,28 @@ public:
     //! Binding of an element, prepares the volume variables within the element stencil
     //! called by the local jacobian to prepare element assembly. Specialization callable with MultiTypeBlockVector.
     template<class FVElementGeometry, class ...Args>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const Dune::MultiTypeBlockVector<Args...>& sol)
     {
         // forward to the actual method
-        bind(element, fvGeometry, sol[FVElementGeometry::FVGridGeometry::cellCenterIdx()]);
+        bind(element, fvGeometry, sol[FVElementGeometry::GridGeometry::cellCenterIdx()]);
     }
 
     //! Binding of an element, prepares the volume variables within the element stencil
     //! called by the local jacobian to prepare element assembly
     template<class FVElementGeometry, class SolutionVector, typename std::enable_if_t<!isMultiTypeBlockVector<SolutionVector>(), int> = 0>
-    void bind(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bind(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
               const FVElementGeometry& fvGeometry,
               const SolutionVector& sol)
     {
         clear_();
 
         const auto& problem = gridVolVars().problem();
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         const auto globalI = fvGridGeometry.elementMapper().index(element);
         const auto& map = fvGridGeometry.connectivityMap();
-        constexpr auto cellCenterIdx = FVElementGeometry::FVGridGeometry::cellCenterIdx();
+        constexpr auto cellCenterIdx = FVElementGeometry::GridGeometry::cellCenterIdx();
         const auto& connectivityMapI = map(cellCenterIdx, cellCenterIdx, globalI);
         const auto numDofs = connectivityMapI.size();
 
@@ -271,24 +271,24 @@ public:
     //! Binding of an element, prepares the volume variables within the element stencil
     //! called by the local jacobian to prepare element assembly. Specialization callable with MultiTypeBlockVector.
     template<class FVElementGeometry, class ...Args>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const Dune::MultiTypeBlockVector<Args...>& sol)
     {
         // forward to the actual method
-        bindElement(element, fvGeometry, sol[FVElementGeometry::FVGridGeometry::cellCenterIdx()]);
+        bindElement(element, fvGeometry, sol[FVElementGeometry::GridGeometry::cellCenterIdx()]);
     }
 
     //! Binding of an element, prepares only the volume variables of the element.
     //! Specialization for Staggered models
     template<class FVElementGeometry, class SolutionVector, typename std::enable_if_t<!isMultiTypeBlockVector<SolutionVector>(), int> = 0>
-    void bindElement(const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+    void bindElement(const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                      const FVElementGeometry& fvGeometry,
                      const SolutionVector& sol)
     {
         clear_();
 
-        const auto globalI = fvGeometry.fvGridGeometry().elementMapper().index(element);
+        const auto globalI = fvGeometry.gridGeometry().elementMapper().index(element);
         volumeVariables_.resize(1);
         volVarIndices_.resize(1);
 
diff --git a/dumux/discretization/staggered/freeflow/properties.hh b/dumux/discretization/staggered/freeflow/properties.hh
index 1588ca21e4783c0eeeee8c980c99fe339ccce426..78e5e4ebd30b8c12916274ccf45d28feaa29c2f2 100644
--- a/dumux/discretization/staggered/freeflow/properties.hh
+++ b/dumux/discretization/staggered/freeflow/properties.hh
@@ -76,6 +76,13 @@ public:
     static constexpr int value = numEq - dim;
 };
 
+// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
+// For ensuring backward compatibility on the user side, it is necessary to
+// stick to the old name for the specializations, see the discussion in MR 1647.
+// Use diagnostic pragmas to prevent the emission of a warning message.
+// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 //! The default fv grid geometry
 template<class TypeTag>
 struct FVGridGeometry<TypeTag, TTag::StaggeredFreeFlowModel>
@@ -88,6 +95,7 @@ private:
 public:
     using type = StaggeredFVGridGeometry<GridView, enableCache, Traits>;
 };
+#pragma GCC diagnostic pop
 
 //! The variables living on the faces
 template<class TypeTag>
diff --git a/dumux/discretization/staggered/fvelementgeometry.hh b/dumux/discretization/staggered/fvelementgeometry.hh
index 73fed22fa4f07e563d5888907235b39953146217..f1e91e583002abf28648633f453005a890d82c98 100644
--- a/dumux/discretization/staggered/fvelementgeometry.hh
+++ b/dumux/discretization/staggered/fvelementgeometry.hh
@@ -65,14 +65,14 @@ public:
     //! Constructor getting a auxiliary cell center of face specific FvGridGeometry type.
     //! Needed for the multi-domain framework.
     template<class CellCenterOrFaceFVGridGeometry>
-    StaggeredFVElementGeometry(const CellCenterOrFaceFVGridGeometry& fvGridGeometry)
-    : ParentType(fvGridGeometry.actualfvGridGeometry()) {}
+    StaggeredFVElementGeometry(const CellCenterOrFaceFVGridGeometry& gridGeometry)
+    : ParentType(gridGeometry.actualfvGridGeometry()) {}
 
     //! Get a sub control volume face with an element index and a local scvf index
     using ParentType::scvf;
     const SubControlVolumeFace& scvf(GridIndexType eIdx, LocalIndexType localScvfIdx) const
     {
-        return this->fvGridGeometry().scvf(eIdx, localScvfIdx);
+        return this->gridGeometry().scvf(eIdx, localScvfIdx);
     }
 };
 
@@ -98,22 +98,23 @@ public:
     //! export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    using FVGridGeometry [[deprecated ("Use GridGeometry instead. Will be removed after 3.1!")]] = GridGeometry;
 
     //! Constructor getting a auxiliary cell center of face specific FvGridGeometry type.
     //! Needed for the multi-domain framework.
     template<class CellCenterOrFaceFVGridGeometry>
-    StaggeredFVElementGeometry(const CellCenterOrFaceFVGridGeometry& fvGridGeometry)
-    : fvGridGeometryPtr_(&fvGridGeometry.actualfvGridGeometry()) {}
+    StaggeredFVElementGeometry(const CellCenterOrFaceFVGridGeometry& gridGeometry)
+    : gridGeometryPtr_(&gridGeometry.actualfvGridGeometry()) {}
 
     //! Constructor
-    StaggeredFVElementGeometry(const FVGridGeometry& fvGridGeometry)
-    : fvGridGeometryPtr_(&fvGridGeometry) {}
+    StaggeredFVElementGeometry(const GridGeometry& gridGeometry)
+    : gridGeometryPtr_(&gridGeometry) {}
 
     //! Get a sub control volume face with an element index and a local scvf index
     const SubControlVolumeFace& scvf(GridIndexType eIdx, LocalIndexType localScvfIdx) const
     {
-        return scvf(this->fvGridGeometry().localToGlobalScvfIndex(eIdx, localScvfIdx));
+        return scvf(this->gridGeometry().localToGlobalScvfIndex(eIdx, localScvfIdx));
     }
 
     //! Get an elment sub control volume with a global scv index
@@ -181,12 +182,12 @@ public:
 
         std::vector<GridIndexType> handledNeighbors;
         handledNeighbors.reserve(element.subEntities(1));
-        for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& intersection : intersections(gridGeometry().gridView(), element))
         {
             if (intersection.neighbor())
             {
                 const auto outside = intersection.outside();
-                const auto outsideIdx = fvGridGeometry().elementMapper().index(outside);
+                const auto outsideIdx = gridGeometry().elementMapper().index(outside);
 
                 // make outside geometries only if not done yet (could happen on non-conforming grids)
                 if ( std::find(handledNeighbors.begin(), handledNeighbors.end(), outsideIdx) == handledNeighbors.end() )
@@ -209,8 +210,11 @@ public:
     }
 
     //! The global finite volume geometry we are a restriction of
-    const FVGridGeometry& fvGridGeometry() const
-    { return *fvGridGeometryPtr_; }
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
+    const GridGeometry& fvGridGeometry() const
+    { return gridGeometry(); }
+    const GridGeometry& gridGeometry() const
+    { return *gridGeometryPtr_; }
 
     //! Returns whether one of the geometry's scvfs lies on a boundary
     bool hasBoundaryScvf() const
@@ -221,23 +225,23 @@ private:
     //! create scvs and scvfs of the bound element
     void makeElementGeometries_(const Element& element)
     {
-        const auto eIdx = fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = gridGeometry().elementMapper().index(element);
         scvs_[0] = SubControlVolume(element.geometry(), eIdx);
         scvIndices_[0] = eIdx;
 
-        const auto& scvFaceIndices = fvGridGeometry().scvfIndicesOfScv(eIdx);
-        const auto& neighborVolVarIndices = fvGridGeometry().neighborVolVarIndices(eIdx);
+        const auto& scvFaceIndices = gridGeometry().scvfIndicesOfScv(eIdx);
+        const auto& neighborVolVarIndices = gridGeometry().neighborVolVarIndices(eIdx);
 
-        typename FVGridGeometry::GeometryHelper geometryHelper(element, fvGridGeometry().gridView());
+        typename GridGeometry::GeometryHelper geometryHelper(element, gridGeometry().gridView());
 
         int scvfCounter = 0;
-        for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& intersection : intersections(gridGeometry().gridView(), element))
         {
             const auto& scvfNeighborVolVarIndex = neighborVolVarIndices[scvfCounter];
 
             if (intersection.neighbor() || intersection.boundary())
             {
-                geometryHelper.updateLocalFace(fvGridGeometry().intersectionMapper(), intersection);
+                geometryHelper.updateLocalFace(gridGeometry().intersectionMapper(), intersection);
                 std::vector<GridIndexType> scvIndices{eIdx, scvfNeighborVolVarIndex};
                 scvfs_.emplace_back(intersection,
                                     intersection.geometry(),
@@ -262,16 +266,16 @@ private:
         neighborScvs_.emplace_back(element.geometry(), eIdx);
         neighborScvIndices_.push_back(eIdx);
 
-        const auto& scvFaceIndices = fvGridGeometry().scvfIndicesOfScv(eIdx);
-        const auto& neighborVolVarIndices = fvGridGeometry().neighborVolVarIndices(eIdx);
+        const auto& scvFaceIndices = gridGeometry().scvfIndicesOfScv(eIdx);
+        const auto& neighborVolVarIndices = gridGeometry().neighborVolVarIndices(eIdx);
 
-        typename FVGridGeometry::GeometryHelper geometryHelper(element, fvGridGeometry().gridView());
+        typename GridGeometry::GeometryHelper geometryHelper(element, gridGeometry().gridView());
 
         int scvfCounter = 0;
-        for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& intersection : intersections(gridGeometry().gridView(), element))
         {
             const auto& scvfNeighborVolVarIndex = neighborVolVarIndices[scvfCounter];
-            geometryHelper.updateLocalFace(fvGridGeometry().intersectionMapper(), intersection);
+            geometryHelper.updateLocalFace(gridGeometry().intersectionMapper(), intersection);
 
             if (intersection.neighbor())
             {
@@ -317,7 +321,7 @@ private:
     }
 
     const Element* elementPtr_; //!< the element to which this fvgeometry is bound
-    const FVGridGeometry* fvGridGeometryPtr_;  //!< the grid fvgeometry
+    const GridGeometry* gridGeometryPtr_;  //!< the grid fvgeometry
 
     // local storage after binding an element
     std::array<GridIndexType, 1> scvIndices_;
diff --git a/dumux/discretization/staggered/gridvariables.hh b/dumux/discretization/staggered/gridvariables.hh
index 4e2f9dc709dce658bacf9dd7d01f360972da622a..95d8578a926db9f69bbe7cc6d16ff3d92879308f 100644
--- a/dumux/discretization/staggered/gridvariables.hh
+++ b/dumux/discretization/staggered/gridvariables.hh
@@ -46,7 +46,8 @@ public:
 
     //! export primary variable type
     using PrimaryVariables = typename VolumeVariables::PrimaryVariables;
-    using FVGridGeometry = typename ActualGridVariables::FVGridGeometry;
+    using GridGeometry = typename ActualGridVariables::GridGeometry;
+    using FVGridGeometry [[deprecated ("Use GridGeometry instead. Will be removed after 3.1!")]]= GridGeometry;
 
     explicit StaggeredGridVariablesView(ActualGridVariables* gridVariables)
     : gridVariables_(gridVariables) {}
@@ -92,8 +93,12 @@ public:
     { return gridVariables_->prevGridFaceVars(); }
 
     //! return the fv grid geometry
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const FVGridGeometry& fvGridGeometry() const
     { return (*gridVariables_->fvGridGeometry_);    }
+    //! return the fv grid geometry
+    const FVGridGeometry& gridGeometry() const
+    { return (*gridVariables_->fvGridGeometry_);    }
 
     // return the actual grid variables
     const ActualGridVariables& gridVariables() const
@@ -123,9 +128,9 @@ public:
     template<class SolVector>
     void init(const SolVector& curSol)
     {
-        this->curGridVolVars().update(this->fvGridGeometry(), curSol);
-        this->gridFluxVarsCache().update(this->fvGridGeometry(), this->curGridVolVars(), curSol, true);
-        this->prevGridVolVars().update(this->fvGridGeometry(), curSol);
+        this->curGridVolVars().update(this->gridGeometry(), curSol);
+        this->gridFluxVarsCache().update(this->gridGeometry(), this->curGridVolVars(), curSol, true);
+        this->prevGridVolVars().update(this->gridGeometry(), curSol);
     }
 
     //! initialize all variables (instationary case)
@@ -140,8 +145,8 @@ public:
     template<class SolVector>
     void update(const SolVector& curSol)
     {
-        this->curGridVolVars().update(this->fvGridGeometry(), curSol);
-        this->gridFluxVarsCache().update(this->fvGridGeometry(), this->curGridVolVars(), curSol);
+        this->curGridVolVars().update(this->gridGeometry(), curSol);
+        this->gridFluxVarsCache().update(this->gridGeometry(), this->curGridVolVars(), curSol);
     }
 
     //! resets state to the one before time integration
@@ -149,7 +154,7 @@ public:
     void resetTimeStep(const SolVector& sol)
     {
         this->curGridVolVars() = this->prevGridVolVars();
-        this->gridFluxVarsCache().update(this->fvGridGeometry(), this->curGridVolVars(), sol);
+        this->gridFluxVarsCache().update(this->gridGeometry(), this->curGridVolVars(), sol);
     }
 };
 
@@ -169,8 +174,8 @@ public:
     template<class SolVector>
     void init(const SolVector& curSol)
     {
-        this->curGridFaceVars().update(this->fvGridGeometry(), curSol);
-        this->prevGridFaceVars().update(this->fvGridGeometry(), curSol);
+        this->curGridFaceVars().update(this->gridGeometry(), curSol);
+        this->prevGridFaceVars().update(this->gridGeometry(), curSol);
     }
 
     //! initialize all variables (instationary case)
@@ -185,7 +190,7 @@ public:
     template<class SolVector>
     void update(const SolVector& curSol)
     {
-        this->curGridFaceVars().update(this->fvGridGeometry(), curSol);
+        this->curGridFaceVars().update(this->gridGeometry(), curSol);
     }
 
     //! resets state to the one before time integration
@@ -221,18 +226,19 @@ public:
     using CellCenterGridVariablesType = CellCenterGridVariablesView<ThisType>;
     using FaceGridVariablesType = FaceGridVariablesView<ThisType>;
 
-
     //! export the type of the grid volume variables
     using GridVolumeVariables = GVV;
     //! export the type of the grid flux variables cache
     using GridFluxVariablesCache = GFVC;
     //! export the type of the grid face variables
     using GridFaceVariables = GFV;
+    //! export the type of the grid geometry
+    using GridGeometry = GG;
 
     //! Constructor
     template<class Problem>
     StaggeredGridVariables(std::shared_ptr<Problem> problem,
-                           std::shared_ptr<FVGridGeometry> fvGridGeometry)
+                           std::shared_ptr<GridGeometry> fvGridGeometry)
     : ParentType(problem, fvGridGeometry)
     , curGridFaceVariables_(*problem)
     , prevGridFaceVariables_(*problem)
diff --git a/dumux/flux/box/darcyslaw.hh b/dumux/flux/box/darcyslaw.hh
index 973fd3e8557da298c1663180ec0d7f882d06aaa1..d97dc02378812ccc204eaddf7476cbbd4e59e13c 100644
--- a/dumux/flux/box/darcyslaw.hh
+++ b/dumux/flux/box/darcyslaw.hh
@@ -49,7 +49,7 @@ class BoxDarcysLaw;
  */
 template<class TypeTag>
 class DarcysLawImplementation<TypeTag, DiscretizationMethod::box>
-: public BoxDarcysLaw<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::FVGridGeometry>>
+: public BoxDarcysLaw<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::GridGeometry>>
 { };
 
 /*!
diff --git a/dumux/flux/box/fickslaw.hh b/dumux/flux/box/fickslaw.hh
index f7d6742494eb2afe7578110545ea2bf8fbc330bf..bde47554f63a38ec708cc98596076f21c87be568 100644
--- a/dumux/flux/box/fickslaw.hh
+++ b/dumux/flux/box/fickslaw.hh
@@ -46,7 +46,7 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::box, referenceSystem
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
diff --git a/dumux/flux/box/fourierslaw.hh b/dumux/flux/box/fourierslaw.hh
index bfcf3c031ca13db95940e017387362dc91de0967..4101f1daed977b525ae7fa9138747882ee9445dc 100644
--- a/dumux/flux/box/fourierslaw.hh
+++ b/dumux/flux/box/fourierslaw.hh
@@ -45,7 +45,7 @@ class FouriersLawImplementation<TypeTag, DiscretizationMethod::box>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ThermalConductivityModel = GetPropType<TypeTag, Properties::ThermalConductivityModel>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
diff --git a/dumux/flux/box/fourierslawnonequilibrium.hh b/dumux/flux/box/fourierslawnonequilibrium.hh
index a969bfc318201b08346f0b214187692f0d3061ed..1e28474831c28385ab829c630cd2d37419ff074d 100644
--- a/dumux/flux/box/fourierslawnonequilibrium.hh
+++ b/dumux/flux/box/fourierslawnonequilibrium.hh
@@ -49,7 +49,7 @@ class FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethod::box
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
diff --git a/dumux/flux/box/maxwellstefanslaw.hh b/dumux/flux/box/maxwellstefanslaw.hh
index ceb50bda2cc61b74dc1acd05843c5be3f626b63d..86a1a3bceeac703072c899ed4be9edfd9b26d89c 100644
--- a/dumux/flux/box/maxwellstefanslaw.hh
+++ b/dumux/flux/box/maxwellstefanslaw.hh
@@ -50,7 +50,7 @@ class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::box, refere
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
diff --git a/dumux/flux/ccmpfa/darcyslaw.hh b/dumux/flux/ccmpfa/darcyslaw.hh
index a6df28b8ddaeab54f29291238f6a15fa5b714f0b..d2558effe8ecbf9796399e99f61f1772b3e2a062 100644
--- a/dumux/flux/ccmpfa/darcyslaw.hh
+++ b/dumux/flux/ccmpfa/darcyslaw.hh
@@ -54,7 +54,7 @@ class DarcysLawImplementation<TypeTag, DiscretizationMethod::ccmpfa>
     static constexpr int dim = GridView::dimension;
     static constexpr int dimWorld = GridView::dimensionworld;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
@@ -75,7 +75,7 @@ class DarcysLawImplementation<TypeTag, DiscretizationMethod::ccmpfa>
                          const FluxVariablesCacheFiller& fluxVarsCacheFiller)
         {
             // get interaction volume related data from the filler class & upate the cache
-            if (fvGeometry.fvGridGeometry().vertexUsesSecondaryInteractionVolume(scvf.vertexIndex()))
+            if (fvGeometry.gridGeometry().vertexUsesSecondaryInteractionVolume(scvf.vertexIndex()))
                 scvfFluxVarsCache.updateAdvection(fluxVarsCacheFiller.secondaryInteractionVolume(),
                                                   fluxVarsCacheFiller.secondaryIvLocalFaceData(),
                                                   fluxVarsCacheFiller.secondaryIvDataHandle());
diff --git a/dumux/flux/ccmpfa/fickslaw.hh b/dumux/flux/ccmpfa/fickslaw.hh
index 72db88e22e539f76b4d4cb67410780c75fa216ec..a06fb2f95bfb13640fbddf88669027a27d891a91 100644
--- a/dumux/flux/ccmpfa/fickslaw.hh
+++ b/dumux/flux/ccmpfa/fickslaw.hh
@@ -49,7 +49,7 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::ccmpfa, referenceSys
     static constexpr int dim = GridView::dimension;
     static constexpr int dimWorld = GridView::dimensionworld;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
@@ -78,7 +78,7 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::ccmpfa, referenceSys
                          const FluxVariablesCacheFiller& fluxVarsCacheFiller)
         {
             // get interaction volume related data from the filler class & upate the cache
-            if (fvGeometry.fvGridGeometry().vertexUsesSecondaryInteractionVolume(scvf.vertexIndex()))
+            if (fvGeometry.gridGeometry().vertexUsesSecondaryInteractionVolume(scvf.vertexIndex()))
                 scvfFluxVarsCache.updateDiffusion(fluxVarsCacheFiller.secondaryInteractionVolume(),
                                                   fluxVarsCacheFiller.secondaryIvLocalFaceData(),
                                                   fluxVarsCacheFiller.secondaryIvDataHandle(),
diff --git a/dumux/flux/ccmpfa/fourierslaw.hh b/dumux/flux/ccmpfa/fourierslaw.hh
index 82d88c0a107a9b35f38d2f0b461b2e864bbdc6aa..fcb8ec28a57a90e8089a88af1c15695b5c07af36 100644
--- a/dumux/flux/ccmpfa/fourierslaw.hh
+++ b/dumux/flux/ccmpfa/fourierslaw.hh
@@ -51,7 +51,7 @@ class FouriersLawImplementation<TypeTag, DiscretizationMethod::ccmpfa>
     static constexpr int dim = GridView::dimension;
     static constexpr int dimWorld = GridView::dimensionworld;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
@@ -75,7 +75,7 @@ class FouriersLawImplementation<TypeTag, DiscretizationMethod::ccmpfa>
                          const FluxVariablesCacheFiller& fluxVarsCacheFiller)
         {
           // get interaction volume from the flux vars cache filler & upate the cache
-          if (fvGeometry.fvGridGeometry().vertexUsesSecondaryInteractionVolume(scvf.vertexIndex()))
+          if (fvGeometry.gridGeometry().vertexUsesSecondaryInteractionVolume(scvf.vertexIndex()))
               scvfFluxVarsCache.updateHeatConduction(fluxVarsCacheFiller.secondaryInteractionVolume(),
                                                      fluxVarsCacheFiller.secondaryIvLocalFaceData(),
                                                      fluxVarsCacheFiller.secondaryIvDataHandle());
diff --git a/dumux/flux/cctpfa/darcyslaw.hh b/dumux/flux/cctpfa/darcyslaw.hh
index 41c1fc92fb2e3e818aa97e36fa45a7d13904ffe5..80d949f5ca4079aec8c84fdd90f0d7df56298b9d 100644
--- a/dumux/flux/cctpfa/darcyslaw.hh
+++ b/dumux/flux/cctpfa/darcyslaw.hh
@@ -56,8 +56,8 @@ class CCTpfaDarcysLaw;
 template <class TypeTag>
 class DarcysLawImplementation<TypeTag, DiscretizationMethod::cctpfa>
 : public CCTpfaDarcysLaw<GetPropType<TypeTag, Properties::Scalar>,
-                         GetPropType<TypeTag, Properties::FVGridGeometry>,
-                         (GetPropType<TypeTag, Properties::FVGridGeometry>::GridView::dimension < GetPropType<TypeTag, Properties::FVGridGeometry>::GridView::dimensionworld)>
+                         GetPropType<TypeTag, Properties::GridGeometry>,
+                         (GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimension < GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimensionworld)>
 {};
 
 /*!
@@ -191,7 +191,7 @@ class CCTpfaDarcysLaw<ScalarType, FVGridGeometry, /*isNetwork*/ false>
             {
                 const auto& outsideScv = fvGeometry.scv(scvf.outsideScvIdx());
                 const auto outsideK = outsideVolVars.permeability();
-                const auto outsideTi = fvGeometry.fvGridGeometry().isPeriodic()
+                const auto outsideTi = fvGeometry.gridGeometry().isPeriodic()
                     ? computeTpfaTransmissibility(fvGeometry.flipScvf(scvf.index()), outsideScv, outsideK, outsideVolVars.extrusionFactor())
                     : -1.0*computeTpfaTransmissibility(scvf, outsideScv, outsideK, outsideVolVars.extrusionFactor());
                 const auto alpha_outside = vtmv(scvf.unitOuterNormal(), outsideK, g)*outsideVolVars.extrusionFactor();
@@ -243,7 +243,7 @@ class CCTpfaDarcysLaw<ScalarType, FVGridGeometry, /*isNetwork*/ false>
             // refers to the scv of our element, so we use the scv method
             const auto& outsideScv = fvGeometry.scv(outsideScvIdx);
             const auto& outsideVolVars = elemVolVars[outsideScvIdx];
-            const Scalar tj = fvGeometry.fvGridGeometry().isPeriodic()
+            const Scalar tj = fvGeometry.gridGeometry().isPeriodic()
                 ? computeTpfaTransmissibility(fvGeometry.flipScvf(scvf.index()), outsideScv, getPermeability_(problem, outsideVolVars, scvf.ipGlobal()), outsideVolVars.extrusionFactor())
                 : -1.0*computeTpfaTransmissibility(scvf, outsideScv, getPermeability_(problem, outsideVolVars, scvf.ipGlobal()), outsideVolVars.extrusionFactor());
 
diff --git a/dumux/flux/cctpfa/fickslaw.hh b/dumux/flux/cctpfa/fickslaw.hh
index 2331b6299755129299e32e0af2ef41417bd42856..cae12bb6385929bbfc3b26b271aa515d53c7ca3d 100644
--- a/dumux/flux/cctpfa/fickslaw.hh
+++ b/dumux/flux/cctpfa/fickslaw.hh
@@ -46,7 +46,7 @@ class FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSys
     using Implementation = FicksLawImplementation<TypeTag, DiscretizationMethod::cctpfa, referenceSystem>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
diff --git a/dumux/flux/cctpfa/forchheimerslaw.hh b/dumux/flux/cctpfa/forchheimerslaw.hh
index 366c24cdc9a7fa11736856e124d33a4f69ae6331..b721a1c12dbea62ca15528cbfe775435613fa863 100644
--- a/dumux/flux/cctpfa/forchheimerslaw.hh
+++ b/dumux/flux/cctpfa/forchheimerslaw.hh
@@ -60,8 +60,8 @@ class CCTpfaForchheimersLaw;
 template <class TypeTag>
 class ForchheimersLawImplementation<TypeTag, DiscretizationMethod::cctpfa>
 : public CCTpfaForchheimersLaw<GetPropType<TypeTag, Properties::Scalar>,
-                         GetPropType<TypeTag, Properties::FVGridGeometry>,
-                         (GetPropType<TypeTag, Properties::FVGridGeometry>::GridView::dimension < GetPropType<TypeTag, Properties::FVGridGeometry>::GridView::dimensionworld)>
+                         GetPropType<TypeTag, Properties::GridGeometry>,
+                         (GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimension < GetPropType<TypeTag, Properties::GridGeometry>::GridView::dimensionworld)>
 {};
 
 /*!
diff --git a/dumux/flux/cctpfa/fourierslaw.hh b/dumux/flux/cctpfa/fourierslaw.hh
index 65947081bc5604d24c8ce308236944b324f303e8..7c876945eaa3139dfc0b6bba5b09d0f95972d75f 100644
--- a/dumux/flux/cctpfa/fourierslaw.hh
+++ b/dumux/flux/cctpfa/fourierslaw.hh
@@ -48,7 +48,7 @@ class FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa>
     using Implementation = FouriersLawImplementation<TypeTag, DiscretizationMethod::cctpfa>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
@@ -159,7 +159,7 @@ public:
             const auto outsideScvIdx = scvf.outsideScvIdx();
             const auto& outsideScv = fvGeometry.scv(outsideScvIdx);
             const auto& outsideVolVars = elemVolVars[outsideScvIdx];
-            const auto outsideElement = fvGeometry.fvGridGeometry().element(outsideScvIdx);
+            const auto outsideElement = fvGeometry.gridGeometry().element(outsideScvIdx);
 
             const auto outsideLambda = Deprecated::template effectiveThermalConductivity<ThermalConductivityModel>(
                                         outsideVolVars, problem.spatialParams(), outsideElement, fvGeometry, outsideScv);
diff --git a/dumux/flux/cctpfa/fourierslawnonequilibrium.hh b/dumux/flux/cctpfa/fourierslawnonequilibrium.hh
index 3b478195faaad99f14dd94563bea1e463abe7698..b9a1ca868e5e41e093311a23175e8c52d6425247 100644
--- a/dumux/flux/cctpfa/fourierslawnonequilibrium.hh
+++ b/dumux/flux/cctpfa/fourierslawnonequilibrium.hh
@@ -46,7 +46,7 @@ class FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethod::cct
     using Implementation = FouriersLawNonEquilibriumImplementation<TypeTag, DiscretizationMethod::cctpfa>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
diff --git a/dumux/flux/cctpfa/maxwellstefanslaw.hh b/dumux/flux/cctpfa/maxwellstefanslaw.hh
index c0682083e09212089ae5ff367e9c3dd9abcf2716..55b9abd6ab581d586854af88ac913aa8a7a13b8b 100644
--- a/dumux/flux/cctpfa/maxwellstefanslaw.hh
+++ b/dumux/flux/cctpfa/maxwellstefanslaw.hh
@@ -49,7 +49,7 @@ class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::cctpfa, ref
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using EffDiffModel = GetPropType<TypeTag, Properties::EffectiveDiffusivityModel>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
diff --git a/dumux/flux/darcyslaw.hh b/dumux/flux/darcyslaw.hh
index 51b6822d0316ce491f9cc7975cab689fce85ad6d..de930e5604669af28a7ebd18585a830c8c20192b 100644
--- a/dumux/flux/darcyslaw.hh
+++ b/dumux/flux/darcyslaw.hh
@@ -44,7 +44,7 @@ class DarcysLawImplementation
  * These specializations are found in the headers included below.
  */
 template <class TypeTag>
-using DarcysLaw = DarcysLawImplementation<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using DarcysLaw = DarcysLawImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace Dumux
 
diff --git a/dumux/flux/fickslaw.hh b/dumux/flux/fickslaw.hh
index ad5aa09ed9b09e14fcdbd094fae377b7326bd4b4..b2bb6f09719a3cbfcb42a77c6385351c396641d3 100644
--- a/dumux/flux/fickslaw.hh
+++ b/dumux/flux/fickslaw.hh
@@ -41,7 +41,7 @@ class FicksLawImplementation;
  * \brief Evaluates the diffusive mass flux according to Fick's law
  */
 template <class TypeTag, ReferenceSystemFormulation referenceSystem =  ReferenceSystemFormulation::massAveraged>
-using FicksLaw = FicksLawImplementation<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod, referenceSystem>;
+using FicksLaw = FicksLawImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod, referenceSystem>;
 
 } // end namespace Dumux
 
diff --git a/dumux/flux/fluxvariablesbase.hh b/dumux/flux/fluxvariablesbase.hh
index 2c1a709d9ad4d64581776cbda534533ef138283e..1ec5e876572aabc884f8e2e1b4c7d906d268027b 100644
--- a/dumux/flux/fluxvariablesbase.hh
+++ b/dumux/flux/fluxvariablesbase.hh
@@ -43,7 +43,7 @@ template<class Problem,
          class ElementFluxVariablesCache>
 class FluxVariablesBase
 {
-    using GridView = typename FVElementGeometry::FVGridGeometry::GridView;
+    using GridView = typename FVElementGeometry::GridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using Stencil = std::vector<std::size_t>;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
diff --git a/dumux/flux/forchheimerslaw.hh b/dumux/flux/forchheimerslaw.hh
index 49e97f8ceeef948487cf1b2ea14ac4623db7d69f..ecf1d1a06e8a8ccf56fb2977ba1bc53f3cfdf5d0 100644
--- a/dumux/flux/forchheimerslaw.hh
+++ b/dumux/flux/forchheimerslaw.hh
@@ -46,7 +46,7 @@ class ForchheimersLawImplementation
  * These specializations are found in the headers included below.
  */
 template <class TypeTag>
-using ForchheimersLaw = ForchheimersLawImplementation<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using ForchheimersLaw = ForchheimersLawImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace Dumux
 
diff --git a/dumux/flux/fourierslaw.hh b/dumux/flux/fourierslaw.hh
index cd09e2809f0e178912231821485e43f1fb81efe8..b41f8288914c7c45fa99cc79ff0fbbdec07c77ad 100644
--- a/dumux/flux/fourierslaw.hh
+++ b/dumux/flux/fourierslaw.hh
@@ -41,7 +41,7 @@ class FouriersLawImplementation
  * \brief Evaluates the heat conduction flux according to Fouriers's law
  */
 template <class TypeTag>
-using FouriersLaw = FouriersLawImplementation<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using FouriersLaw = FouriersLawImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace Dumux
 
diff --git a/dumux/flux/fourierslawnonequilibrium.hh b/dumux/flux/fourierslawnonequilibrium.hh
index fc507d045cddf2c9bea7aa2f332c58b3667b63eb..135e21b72ca7e1d74d715ed00b99905b3f8a7738 100644
--- a/dumux/flux/fourierslawnonequilibrium.hh
+++ b/dumux/flux/fourierslawnonequilibrium.hh
@@ -40,7 +40,7 @@ class FouriersLawNonEquilibriumImplementation
  * \brief Evaluates the heat conduction flux according to Fouriers's law
  */
 template <class TypeTag>
-using FouriersLawNonEquilibrium = FouriersLawNonEquilibriumImplementation<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using FouriersLawNonEquilibrium = FouriersLawNonEquilibriumImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace Dumux
 
diff --git a/dumux/flux/maxwellstefanslaw.hh b/dumux/flux/maxwellstefanslaw.hh
index 6bf9966bf22e40391c1d3dec5d8b236183b05203..cd3a177f9e95599e759d38d1d000d887f6386da7 100644
--- a/dumux/flux/maxwellstefanslaw.hh
+++ b/dumux/flux/maxwellstefanslaw.hh
@@ -41,7 +41,7 @@ class MaxwellStefansLawImplementation
  * \brief Evaluates the diffusive mass flux according to Maxwell Stafan's law
  */
 template <class TypeTag, ReferenceSystemFormulation referenceSystem =  ReferenceSystemFormulation::massAveraged>
-using MaxwellStefansLaw = MaxwellStefansLawImplementation<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod, referenceSystem>;
+using MaxwellStefansLaw = MaxwellStefansLawImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod, referenceSystem>;
 
 } // end namespace
 
diff --git a/dumux/flux/shallowwaterflux.hh b/dumux/flux/shallowwaterflux.hh
index cb11f465a5f5565c5de783b3d9e4e08cbf8463d4..179b9709aa736b1722ed5cbf2bec43ee0e3ae7d1 100644
--- a/dumux/flux/shallowwaterflux.hh
+++ b/dumux/flux/shallowwaterflux.hh
@@ -53,7 +53,7 @@ public:
      */
     template<class Problem, class FVElementGeometry, class ElementVolumeVariables>
     static NumEqVector flux(const Problem& problem,
-                            const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+                            const typename FVElementGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
                             const FVElementGeometry& fvGeometry,
                             const ElementVolumeVariables& elemVolVars,
                             const typename FVElementGeometry::SubControlVolumeFace& scvf)
diff --git a/dumux/flux/staggered/freeflow/fickslaw.hh b/dumux/flux/staggered/freeflow/fickslaw.hh
index ce28541d9782a336f0054bbfffbb2539db92a616..62c68896957b178f7f2db76111a52f282623c3f7 100644
--- a/dumux/flux/staggered/freeflow/fickslaw.hh
+++ b/dumux/flux/staggered/freeflow/fickslaw.hh
@@ -49,7 +49,7 @@ template <class TypeTag, ReferenceSystemFormulation referenceSystem>
 class FicksLawImplementation<TypeTag, DiscretizationMethod::staggered, referenceSystem>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = typename FVGridGeometry::GridView;
diff --git a/dumux/flux/staggered/freeflow/fourierslaw.hh b/dumux/flux/staggered/freeflow/fourierslaw.hh
index 8dd19ba58edc75b0447e299d37dc29d754375b33..d810450d0107ced9f24c9e33fcd1201d6e68e732 100644
--- a/dumux/flux/staggered/freeflow/fourierslaw.hh
+++ b/dumux/flux/staggered/freeflow/fourierslaw.hh
@@ -44,7 +44,7 @@ template <class TypeTag>
 class FouriersLawImplementation<TypeTag, DiscretizationMethod::staggered>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
diff --git a/dumux/flux/staggered/freeflow/maxwellstefanslaw.hh b/dumux/flux/staggered/freeflow/maxwellstefanslaw.hh
index d6534fa82b3b25ad00297a2844520d4fe774ab56..82931596477a64349c84dbaa9ba167caec703f89 100644
--- a/dumux/flux/staggered/freeflow/maxwellstefanslaw.hh
+++ b/dumux/flux/staggered/freeflow/maxwellstefanslaw.hh
@@ -47,7 +47,7 @@ class MaxwellStefansLawImplementation<TypeTag, DiscretizationMethod::staggered,
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = typename FVGridGeometry::GridView;
diff --git a/dumux/flux/upwindscheme.hh b/dumux/flux/upwindscheme.hh
index 9177d478f231506be3c149ed378f8fbdf373dac7..a292d5bc4ec733d9da28d5ea5795b3353e6abad9 100644
--- a/dumux/flux/upwindscheme.hh
+++ b/dumux/flux/upwindscheme.hh
@@ -113,7 +113,7 @@ public:
                 // compute the outside flux
                 const auto& fvGeometry = fluxVars.fvGeometry();
                 const auto outsideScvIdx = scvf.outsideScvIdx(i);
-                const auto outsideElement = fvGeometry.fvGridGeometry().element(outsideScvIdx);
+                const auto outsideElement = fvGeometry.gridGeometry().element(outsideScvIdx);
                 const auto& flippedScvf = fvGeometry.flipScvf(scvf.index(), i);
 
                 using AdvectionType = typename FluxVariables::AdvectionType;
diff --git a/dumux/freeflow/compositional/fluxvariables.hh b/dumux/freeflow/compositional/fluxvariables.hh
index 3c818fa3c733b10af03d6cff8e7c1dcca041e20d..7d1fadbbd769980fb0aab918fbec5d070d1ebf15 100644
--- a/dumux/freeflow/compositional/fluxvariables.hh
+++ b/dumux/freeflow/compositional/fluxvariables.hh
@@ -41,7 +41,7 @@ class FreeflowNCFluxVariablesImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag>
-using FreeflowNCFluxVariables = FreeflowNCFluxVariablesImpl<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using FreeflowNCFluxVariables = FreeflowNCFluxVariablesImpl<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 
 } // end namespace
diff --git a/dumux/freeflow/compositional/kepsilonncmodel.hh b/dumux/freeflow/compositional/kepsilonncmodel.hh
index bcf03a5f723c9698cec266ac894e6fc0a4ac2035..7cc4c378e47b3b7f5ef5afa485441405f666792d 100644
--- a/dumux/freeflow/compositional/kepsilonncmodel.hh
+++ b/dumux/freeflow/compositional/kepsilonncmodel.hh
@@ -83,7 +83,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::KEpsilonNC>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dimension = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
@@ -153,7 +153,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::KEpsilonNCNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
diff --git a/dumux/freeflow/compositional/komegancmodel.hh b/dumux/freeflow/compositional/komegancmodel.hh
index 4727b9493bf7cfcd20177a14cc0684ff632975e5..5da6345c8f8a2e55618628a86728f0cc55ff5616 100644
--- a/dumux/freeflow/compositional/komegancmodel.hh
+++ b/dumux/freeflow/compositional/komegancmodel.hh
@@ -88,7 +88,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::KOmegaNC>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dimension = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
@@ -158,7 +158,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::KOmegaNCNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
diff --git a/dumux/freeflow/compositional/localresidual.hh b/dumux/freeflow/compositional/localresidual.hh
index 8b2515135541a8afc9f4bb6928f6d9228014bd8b..67dcf0b9e1f24c4ddea7c27b906c8c886baa9a54 100644
--- a/dumux/freeflow/compositional/localresidual.hh
+++ b/dumux/freeflow/compositional/localresidual.hh
@@ -43,7 +43,7 @@ class FreeflowNCResidualImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag>
-using FreeflowNCResidual = FreeflowNCResidualImpl<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using FreeflowNCResidual = FreeflowNCResidualImpl<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 }
 
diff --git a/dumux/freeflow/compositional/lowrekepsilonncmodel.hh b/dumux/freeflow/compositional/lowrekepsilonncmodel.hh
index 52305bc45314d59ac2fb2f1b7412d29e1230b95e..ad9a65806f860cc0fe4cef3489d2240780b5fe4a 100644
--- a/dumux/freeflow/compositional/lowrekepsilonncmodel.hh
+++ b/dumux/freeflow/compositional/lowrekepsilonncmodel.hh
@@ -88,7 +88,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::LowReKEpsilonNC>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dimension = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
@@ -158,7 +158,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::LowReKEpsilonNCNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
diff --git a/dumux/freeflow/compositional/navierstokesncmodel.hh b/dumux/freeflow/compositional/navierstokesncmodel.hh
index b7958d01555de0bc15257a648123c231f97c919f..6d8a7717466ce80d86cda31bdcbe3930028f4b2b 100644
--- a/dumux/freeflow/compositional/navierstokesncmodel.hh
+++ b/dumux/freeflow/compositional/navierstokesncmodel.hh
@@ -138,7 +138,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::NavierStokesNC>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
@@ -217,7 +217,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::NavierStokesNCNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
diff --git a/dumux/freeflow/compositional/oneeqncmodel.hh b/dumux/freeflow/compositional/oneeqncmodel.hh
index 862b69e1594fef30f713bcf243cc6c0487809780..d2e3e75dd854aad84d776a9ff37dbe7ca8ea8d5b 100644
--- a/dumux/freeflow/compositional/oneeqncmodel.hh
+++ b/dumux/freeflow/compositional/oneeqncmodel.hh
@@ -88,7 +88,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::OneEqNC>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dimension = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
@@ -158,7 +158,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::OneEqNCNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
diff --git a/dumux/freeflow/compositional/staggered/fluxvariables.hh b/dumux/freeflow/compositional/staggered/fluxvariables.hh
index e4267068b1dc98afbef13d237e73bf00601991c4..6b620bba8d3cad0e6956dd864e702b5d0b8156ea 100644
--- a/dumux/freeflow/compositional/staggered/fluxvariables.hh
+++ b/dumux/freeflow/compositional/staggered/fluxvariables.hh
@@ -46,7 +46,7 @@ class FreeflowNCFluxVariablesImpl<TypeTag, DiscretizationMethod::staggered>
 {
     using ParentType = NavierStokesFluxVariables<TypeTag>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
diff --git a/dumux/freeflow/compositional/staggered/localresidual.hh b/dumux/freeflow/compositional/staggered/localresidual.hh
index cdf078bf0801b0b2da5fa33e7ee38d0a11f13ca3..4821df6825e4833e496dce68b27aedd0697a97cc 100644
--- a/dumux/freeflow/compositional/staggered/localresidual.hh
+++ b/dumux/freeflow/compositional/staggered/localresidual.hh
@@ -46,10 +46,10 @@ class FreeflowNCResidualImpl<TypeTag, DiscretizationMethod::staggered>
 
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
diff --git a/dumux/freeflow/compositional/zeroeqncmodel.hh b/dumux/freeflow/compositional/zeroeqncmodel.hh
index a2c0b5f7006efd4b886738b272a32e5918a2edf1..d9484a3e81ddb36434f73edf18f16eab85222eb2 100644
--- a/dumux/freeflow/compositional/zeroeqncmodel.hh
+++ b/dumux/freeflow/compositional/zeroeqncmodel.hh
@@ -76,7 +76,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::ZeroEqNC>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
@@ -126,7 +126,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::ZeroEqNCNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     static constexpr int numComponents = FluidSystem::numComponents;
diff --git a/dumux/freeflow/navierstokes/fluxvariables.hh b/dumux/freeflow/navierstokes/fluxvariables.hh
index 4424ae125a9dddef6db21c9f49842affa830e1cd..326854f29ccf43704e77f1255fe16eaa6c2e2c7c 100644
--- a/dumux/freeflow/navierstokes/fluxvariables.hh
+++ b/dumux/freeflow/navierstokes/fluxvariables.hh
@@ -42,7 +42,7 @@ class NavierStokesFluxVariablesImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag>
-using NavierStokesFluxVariables = NavierStokesFluxVariablesImpl<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using NavierStokesFluxVariables = NavierStokesFluxVariablesImpl<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 
 } // end namespace
diff --git a/dumux/freeflow/navierstokes/localresidual.hh b/dumux/freeflow/navierstokes/localresidual.hh
index 46e69eefcf9dd864f7d7b8e924e3e18dd79b2d30..de1cf4900dc5b105a0d8d0052c14cbb2914ef816 100644
--- a/dumux/freeflow/navierstokes/localresidual.hh
+++ b/dumux/freeflow/navierstokes/localresidual.hh
@@ -42,7 +42,7 @@ class NavierStokesResidualImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag>
-using NavierStokesResidual = NavierStokesResidualImpl<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using NavierStokesResidual = NavierStokesResidualImpl<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace Dumux
 
diff --git a/dumux/freeflow/navierstokes/model.hh b/dumux/freeflow/navierstokes/model.hh
index 1780ed1c27e99c3ac3919928a885d7353abeabe4..5df63f10fe5c44b9c760441628a949d6b1de5445 100644
--- a/dumux/freeflow/navierstokes/model.hh
+++ b/dumux/freeflow/navierstokes/model.hh
@@ -159,7 +159,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::NavierStokes>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr auto dim = GridView::dimension;
 public:
     using type = NavierStokesModelTraits<dim>;
@@ -220,7 +220,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::NavierStokesNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr auto dim = GridView::dimension;
     using IsothermalTraits = NavierStokesModelTraits<dim>;
 public:
diff --git a/dumux/freeflow/navierstokes/problem.hh b/dumux/freeflow/navierstokes/problem.hh
index 2f3d6e51df4100a790cb110ca0b96411df8cd59b..16da4bc53047a05988a167c91f4d22f5e889ec03 100644
--- a/dumux/freeflow/navierstokes/problem.hh
+++ b/dumux/freeflow/navierstokes/problem.hh
@@ -48,7 +48,7 @@ struct NavierStokesParentProblemImpl<TypeTag, DiscretizationMethod::staggered>
 template<class TypeTag>
 using NavierStokesParentProblem =
       typename NavierStokesParentProblemImpl<TypeTag,
-      GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>::type;
+      GetPropType<TypeTag, Properties::GridGeometry>::discMethod>::type;
 
 /*!
  * \ingroup NavierStokesModel
@@ -64,7 +64,7 @@ class NavierStokesProblem : public NavierStokesParentProblem<TypeTag>
     using ParentType = NavierStokesParentProblem<TypeTag>;
     using Implementation = GetPropType<TypeTag, Properties::Problem>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
 
diff --git a/dumux/freeflow/navierstokes/staggered/fluxoversurface.hh b/dumux/freeflow/navierstokes/staggered/fluxoversurface.hh
index 377631154f9ec57dad7dcac396985df2bf5b1da8..5e3bdcad246f8f86b7ad4f48ae8d43ae0119fa36 100644
--- a/dumux/freeflow/navierstokes/staggered/fluxoversurface.hh
+++ b/dumux/freeflow/navierstokes/staggered/fluxoversurface.hh
@@ -284,15 +284,15 @@ public:
             surface.second.resetValues();
 
         // make sure not to iterate over the same dofs twice
-        std::vector<bool> dofVisited(problem_().fvGridGeometry().numFaceDofs(), false);
+        std::vector<bool> dofVisited(problem_().gridGeometry().numFaceDofs(), false);
 
         auto elemVolVars = localView(gridVariables_.curGridVolVars());
         auto elemFluxVarsCache = localView(gridVariables_.gridFluxVarsCache());
         auto elemFaceVars = localView(gridVariables_.curGridFaceVars());
 
-        for(auto&& element : elements(problem_().fvGridGeometry().gridView()))
+        for(auto&& element : elements(problem_().gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(problem_().fvGridGeometry());
+            auto fvGeometry = localView(problem_().gridGeometry());
             fvGeometry.bind(element);
 
             elemVolVars.bind(element, fvGeometry, sol_);
diff --git a/dumux/freeflow/navierstokes/staggered/fluxvariables.hh b/dumux/freeflow/navierstokes/staggered/fluxvariables.hh
index 2efe309839a04857c979fca737ce31581d283067..7a1431ad5b876c40957052f15ecaa7ad3a790cc8 100644
--- a/dumux/freeflow/navierstokes/staggered/fluxvariables.hh
+++ b/dumux/freeflow/navierstokes/staggered/fluxvariables.hh
@@ -52,7 +52,7 @@ class NavierStokesFluxVariablesImpl;
 template<class TypeTag>
 class NavierStokesFluxVariablesImpl<TypeTag, DiscretizationMethod::staggered>
 : public FluxVariablesBase<GetPropType<TypeTag, Properties::Problem>,
-                           typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView,
+                           typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView,
                            typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView,
                            typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView>
 {
@@ -70,7 +70,7 @@ class NavierStokesFluxVariablesImpl<TypeTag, DiscretizationMethod::staggered>
     using FaceVariables = typename GridFaceVariables::FaceVariables;
 
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/dumux/freeflow/navierstokes/staggered/localresidual.hh b/dumux/freeflow/navierstokes/staggered/localresidual.hh
index 42ec1646d15483b6aa71077a6ec33d97f98ea6b7..b80121ce260c8c9e4ce386430edd8a7d85e9cdc1 100644
--- a/dumux/freeflow/navierstokes/staggered/localresidual.hh
+++ b/dumux/freeflow/navierstokes/staggered/localresidual.hh
@@ -62,7 +62,7 @@ class NavierStokesResidualImpl<TypeTag, DiscretizationMethod::staggered>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Implementation = GetPropType<TypeTag, Properties::LocalResidual>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/dumux/freeflow/navierstokes/staggered/staggeredupwindfluxvariables.hh b/dumux/freeflow/navierstokes/staggered/staggeredupwindfluxvariables.hh
index 429aae4516b6f06fa49f21570cf86bc789eb799b..06580bedeb4a1f6a34475fdaf9754ccecaff98fc 100644
--- a/dumux/freeflow/navierstokes/staggered/staggeredupwindfluxvariables.hh
+++ b/dumux/freeflow/navierstokes/staggered/staggeredupwindfluxvariables.hh
@@ -58,7 +58,7 @@ class StaggeredUpwindFluxVariables
     using FaceVariables = typename GridFaceVariables::FaceVariables;
 
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -426,7 +426,7 @@ private:
                 momenta[2] = faceVars.velocityParallel(localSubFaceIdx, 1) * outsideVolVars.density();
             else
             {
-                const Element& elementParallel = fvGeometry.fvGridGeometry().element(lateralFace.outsideScvIdx());
+                const Element& elementParallel = fvGeometry.gridGeometry().element(lateralFace.outsideScvIdx());
                 const SubControlVolumeFace& firstParallelScvf = fvGeometry.scvf(lateralFace.outsideScvIdx(), ownScvf.localFaceIdx());
                 momenta[2] = getParallelVelocityFromOtherBoundary_(problem, fvGeometry, firstParallelScvf,
                                                                    localSubFaceIdx, elementParallel,
diff --git a/dumux/freeflow/rans/model.hh b/dumux/freeflow/rans/model.hh
index 74f3dae551dd562abc48882f62a64a99f2379d1c..c27bc99557f5cfc72e853a8cdc64fcec96659ce7 100644
--- a/dumux/freeflow/rans/model.hh
+++ b/dumux/freeflow/rans/model.hh
@@ -80,7 +80,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::RANS>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
 public:
     using type = RANSModelTraits<dim>;
@@ -105,7 +105,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::RANSNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
 
     using IsothermalTraits = RANSModelTraits<dim>;
diff --git a/dumux/freeflow/rans/oneeq/fluxvariables.hh b/dumux/freeflow/rans/oneeq/fluxvariables.hh
index 554ed3e43c780cdb5fe852808bda5e5bc83302d9..feefc3478c80eb8f8e820d37573a6cc24db91df6 100644
--- a/dumux/freeflow/rans/oneeq/fluxvariables.hh
+++ b/dumux/freeflow/rans/oneeq/fluxvariables.hh
@@ -42,7 +42,7 @@ class OneEqFluxVariablesImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag, class BaseFluxVariables>
-using OneEqFluxVariables = OneEqFluxVariablesImpl<TypeTag, BaseFluxVariables, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using OneEqFluxVariables = OneEqFluxVariablesImpl<TypeTag, BaseFluxVariables, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace
 
diff --git a/dumux/freeflow/rans/oneeq/localresidual.hh b/dumux/freeflow/rans/oneeq/localresidual.hh
index 99e6c6121c7ef5a3b79beaf1937310e2aab9b0c9..322ed7af8bd8157279e29b7e80bfc89f865ca6ed 100644
--- a/dumux/freeflow/rans/oneeq/localresidual.hh
+++ b/dumux/freeflow/rans/oneeq/localresidual.hh
@@ -43,7 +43,7 @@ class OneEqResidualImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag, class BaseLocalResidual>
-using OneEqResidual = OneEqResidualImpl<TypeTag, BaseLocalResidual, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using OneEqResidual = OneEqResidualImpl<TypeTag, BaseLocalResidual, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace Dumux
 
diff --git a/dumux/freeflow/rans/oneeq/model.hh b/dumux/freeflow/rans/oneeq/model.hh
index ef7186e9f606c18f00a8329774718f3b0eaa8f28..11f217d5416b0557c89771dd42d49222358f9368 100644
--- a/dumux/freeflow/rans/oneeq/model.hh
+++ b/dumux/freeflow/rans/oneeq/model.hh
@@ -135,7 +135,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::OneEq>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
 public:
     using type = OneEqModelTraits<dim>;
@@ -200,7 +200,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::OneEqNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using IsothermalTraits = OneEqModelTraits<dim>;
 public:
diff --git a/dumux/freeflow/rans/oneeq/problem.hh b/dumux/freeflow/rans/oneeq/problem.hh
index 682f3830d997532590980bac1f2054828caaca83..fb549c7d9be1e0d97187ffa0bba7a77dde3cc313 100644
--- a/dumux/freeflow/rans/oneeq/problem.hh
+++ b/dumux/freeflow/rans/oneeq/problem.hh
@@ -54,8 +54,8 @@ class RANSProblemImpl<TypeTag, TurbulenceModel::oneeq> : public RANSProblemBase<
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using DimVector = Dune::FieldVector<Scalar, Grid::dimension>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
 
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
@@ -81,9 +81,9 @@ public:
         ParentType::updateStaticWallProperties();
 
         // update size and initial values of the global vectors
-        storedDynamicEddyViscosity_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedViscosityTilde_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedViscosityTildeGradient_.resize(this->fvGridGeometry().elementMapper().size(), DimVector(0.0));
+        storedDynamicEddyViscosity_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedViscosityTilde_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedViscosityTildeGradient_.resize(this->gridGeometry().elementMapper().size(), DimVector(0.0));
     }
 
     /*!
@@ -95,11 +95,11 @@ public:
     {
         ParentType::updateDynamicWallProperties(curSol);
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
@@ -117,9 +117,9 @@ public:
         }
 
         // calculate cell-center-averaged velocity gradients, maximum, and minimum values
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
 
             for (unsigned int dimIdx = 0; dimIdx < Grid::dimension; ++dimIdx)
             {
@@ -130,7 +130,7 @@ public:
                           - ParentType::cellCenter_[ParentType::neighborIdx_[elementIdx][dimIdx][0]][dimIdx]);
             }
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scvf : scvfs(fvGeometry))
             {
diff --git a/dumux/freeflow/rans/oneeq/staggered/fluxvariables.hh b/dumux/freeflow/rans/oneeq/staggered/fluxvariables.hh
index 6c2a0cf8926045663ea13aafd2a2312f93a78739..ccf75bfe2c79f8a335c269c0e81516359c657e5d 100644
--- a/dumux/freeflow/rans/oneeq/staggered/fluxvariables.hh
+++ b/dumux/freeflow/rans/oneeq/staggered/fluxvariables.hh
@@ -66,7 +66,7 @@ class OneEqFluxVariablesImpl<TypeTag, BaseFluxVariables, DiscretizationMethod::s
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
diff --git a/dumux/freeflow/rans/oneeq/staggered/localresidual.hh b/dumux/freeflow/rans/oneeq/staggered/localresidual.hh
index d05344564c6531c77a37c27063571baebff9d9e4..0ae7557515a9fac50e812e6b8473a439904828e5 100644
--- a/dumux/freeflow/rans/oneeq/staggered/localresidual.hh
+++ b/dumux/freeflow/rans/oneeq/staggered/localresidual.hh
@@ -63,7 +63,7 @@ class OneEqResidualImpl<TypeTag, BaseLocalResidual, DiscretizationMethod::stagge
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
diff --git a/dumux/freeflow/rans/problem.hh b/dumux/freeflow/rans/problem.hh
index 5c95e70eb5c44506827d9e399d37d6ff9ff69541..1eec0b80239993c55da8bb56e83653b6bdc5d715 100644
--- a/dumux/freeflow/rans/problem.hh
+++ b/dumux/freeflow/rans/problem.hh
@@ -60,7 +60,7 @@ class RANSProblemBase : public NavierStokesProblem<TypeTag>
 
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -102,27 +102,27 @@ public:
         calledUpdateStaticWallProperties = true;
 
         // update size and initial values of the global vectors
-        wallElementIdx_.resize(this->fvGridGeometry().elementMapper().size());
-        wallDistance_.resize(this->fvGridGeometry().elementMapper().size(), std::numeric_limits<Scalar>::max());
-        neighborIdx_.resize(this->fvGridGeometry().elementMapper().size());
-        cellCenter_.resize(this->fvGridGeometry().elementMapper().size(), GlobalPosition(0.0));
-        velocity_.resize(this->fvGridGeometry().elementMapper().size(), DimVector(0.0));
-        velocityMaximum_.resize(this->fvGridGeometry().elementMapper().size(), DimVector(0.0));
-        velocityGradients_.resize(this->fvGridGeometry().elementMapper().size(), DimMatrix(0.0));
-        stressTensorScalarProduct_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        vorticityTensorScalarProduct_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        flowNormalAxis_.resize(this->fvGridGeometry().elementMapper().size(), 0);
-        wallNormalAxis_.resize(this->fvGridGeometry().elementMapper().size(), 1);
-        kinematicViscosity_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        sandGrainRoughness_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
+        wallElementIdx_.resize(this->gridGeometry().elementMapper().size());
+        wallDistance_.resize(this->gridGeometry().elementMapper().size(), std::numeric_limits<Scalar>::max());
+        neighborIdx_.resize(this->gridGeometry().elementMapper().size());
+        cellCenter_.resize(this->gridGeometry().elementMapper().size(), GlobalPosition(0.0));
+        velocity_.resize(this->gridGeometry().elementMapper().size(), DimVector(0.0));
+        velocityMaximum_.resize(this->gridGeometry().elementMapper().size(), DimVector(0.0));
+        velocityGradients_.resize(this->gridGeometry().elementMapper().size(), DimMatrix(0.0));
+        stressTensorScalarProduct_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        vorticityTensorScalarProduct_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        flowNormalAxis_.resize(this->gridGeometry().elementMapper().size(), 0);
+        wallNormalAxis_.resize(this->gridGeometry().elementMapper().size(), 1);
+        kinematicViscosity_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        sandGrainRoughness_.resize(this->gridGeometry().elementMapper().size(), 0.0);
 
         // retrieve all wall intersections and corresponding elements
         std::vector<unsigned int> wallElements;
         std::vector<GlobalPosition> wallPositions;
         std::vector<unsigned int> wallNormalAxisTemp;
 
-        const auto gridView = this->fvGridGeometry().gridView();
-        auto fvGeometry = localView(this->fvGridGeometry());
+        const auto gridView = this->gridGeometry().gridView();
+        auto fvGeometry = localView(this->gridGeometry());
 
         for (const auto& element : elements(gridView))
         {
@@ -135,7 +135,7 @@ public:
 
                 if (asImp_().isOnWall(scvf))
                 {
-                    wallElements.push_back(this->fvGridGeometry().elementMapper().index(element));
+                    wallElements.push_back(this->gridGeometry().elementMapper().index(element));
                     wallPositions.push_back(scvf.center());
                     wallNormalAxisTemp.push_back(scvf.directionIndex());
                 }
@@ -150,7 +150,7 @@ public:
         // search for shortest distance to wall for each element
         for (const auto& element : elements(gridView))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
             cellCenter_[elementIdx] = element.geometry().center();
             for (unsigned int i = 0; i < wallPositions.size(); ++i)
             {
@@ -182,7 +182,7 @@ public:
         // search for neighbor Idxs
         for (const auto& element : elements(gridView))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
             for (unsigned int dimIdx = 0; dimIdx < dim; ++dimIdx)
             {
                 neighborIdx_[elementIdx][dimIdx][0] = elementIdx;
@@ -194,7 +194,7 @@ public:
                 if (intersection.boundary())
                     continue;
 
-                unsigned int neighborIdx = this->fvGridGeometry().elementMapper().index(intersection.outside());
+                unsigned int neighborIdx = this->gridGeometry().elementMapper().index(intersection.outside());
                 for (unsigned int dimIdx = 0; dimIdx < dim; ++dimIdx)
                 {
                     if (abs(cellCenter_[elementIdx][dimIdx] - cellCenter_[neighborIdx][dimIdx]) > 1e-8)
@@ -236,15 +236,15 @@ public:
             = getParamFromGroup<int>(this->paramGroup(), "RANS.FlowNormalAxis", -1);
 
         // re-initialize min and max values
-        velocityMaximum_.assign(this->fvGridGeometry().elementMapper().size(), DimVector(1e-16));
-        velocityMinimum_.assign(this->fvGridGeometry().elementMapper().size(), DimVector(std::numeric_limits<Scalar>::max()));
+        velocityMaximum_.assign(this->gridGeometry().elementMapper().size(), DimVector(1e-16));
+        velocityMinimum_.assign(this->gridGeometry().elementMapper().size(), DimVector(std::numeric_limits<Scalar>::max()));
 
         // calculate cell-center-averaged velocities
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
 
             // calculate velocities
             DimVector velocityTemp(0.0);
@@ -259,9 +259,9 @@ public:
         }
 
         // calculate cell-center-averaged velocity gradients, maximum, and minimum values
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
             unsigned int wallElementIdx = wallElementIdx_[elementIdx];
 
             Scalar maxVelocity = 0.0;
@@ -299,7 +299,7 @@ public:
                 }
             }
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scvf : scvfs(fvGeometry))
             {
@@ -369,9 +369,9 @@ public:
         }
 
         // calculate or call all secondary variables
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
 
             Dune::FieldMatrix<Scalar, GridView::dimension, GridView::dimension> stressTensor(0.0);
             for (unsigned int dimIdx = 0; dimIdx < dim; ++dimIdx)
@@ -409,7 +409,7 @@ public:
                 }
             }
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
diff --git a/dumux/freeflow/rans/twoeq/kepsilon/fluxvariables.hh b/dumux/freeflow/rans/twoeq/kepsilon/fluxvariables.hh
index 1ae4a8a04ff3641d1f893ca8ce44b43e7a6f0133..b85b74364cdeedee55b96f38244ea690380f658f 100644
--- a/dumux/freeflow/rans/twoeq/kepsilon/fluxvariables.hh
+++ b/dumux/freeflow/rans/twoeq/kepsilon/fluxvariables.hh
@@ -41,7 +41,7 @@ class KEpsilonFluxVariablesImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag, class BaseFluxVariables>
-using KEpsilonFluxVariables = KEpsilonFluxVariablesImpl<TypeTag, BaseFluxVariables, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using KEpsilonFluxVariables = KEpsilonFluxVariablesImpl<TypeTag, BaseFluxVariables, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace
 
diff --git a/dumux/freeflow/rans/twoeq/kepsilon/localresidual.hh b/dumux/freeflow/rans/twoeq/kepsilon/localresidual.hh
index c3be76e8ec77cf4bc2c8cfb5ce2ef1c0ed74b39b..0983a47e842c2c45cca8fb3c7962ec83e3e52474 100644
--- a/dumux/freeflow/rans/twoeq/kepsilon/localresidual.hh
+++ b/dumux/freeflow/rans/twoeq/kepsilon/localresidual.hh
@@ -43,7 +43,7 @@ class KEpsilonResidualImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag, class BaseLocalResidual>
-using KEpsilonResidual = KEpsilonResidualImpl<TypeTag, BaseLocalResidual, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using KEpsilonResidual = KEpsilonResidualImpl<TypeTag, BaseLocalResidual, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 }
 
diff --git a/dumux/freeflow/rans/twoeq/kepsilon/model.hh b/dumux/freeflow/rans/twoeq/kepsilon/model.hh
index 47cbf211a1b55c1f6f2b00398be383f609b533fa..70cbfb4e32bfff41111c58b59737afbfdee03995 100644
--- a/dumux/freeflow/rans/twoeq/kepsilon/model.hh
+++ b/dumux/freeflow/rans/twoeq/kepsilon/model.hh
@@ -122,7 +122,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::KEpsilon>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
 public:
     using type = KEpsilonModelTraits<dim>;
@@ -187,7 +187,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::KEpsilonNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using IsothermalTraits = KEpsilonModelTraits<dim>;
 public:
diff --git a/dumux/freeflow/rans/twoeq/kepsilon/problem.hh b/dumux/freeflow/rans/twoeq/kepsilon/problem.hh
index 939fa207ce6b11ea75a3420808a495b0a2e0970e..58d9152049fe1f933e9577c72747f01f4cf5b376 100644
--- a/dumux/freeflow/rans/twoeq/kepsilon/problem.hh
+++ b/dumux/freeflow/rans/twoeq/kepsilon/problem.hh
@@ -49,7 +49,7 @@ class RANSProblemImpl<TypeTag, TurbulenceModel::kepsilon> : public RANSProblemBa
     using Implementation = GetPropType<TypeTag, Properties::Problem>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
 
@@ -59,7 +59,7 @@ class RANSProblemImpl<TypeTag, TurbulenceModel::kepsilon> : public RANSProblemBa
     using GridVolumeVariables = typename GridVariables::GridVolumeVariables;
     using ElementVolumeVariables = typename GridVolumeVariables::LocalView;
 
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
 
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
@@ -96,12 +96,12 @@ public:
         ParentType::updateStaticWallProperties();
 
         // update size and initial values of the global vectors
-        matchingPointIdx_.resize(this->fvGridGeometry().elementMapper().size(), 0);
-        storedDensity_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedDissipation_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedTurbulentKineticEnergy_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedDynamicEddyViscosity_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        zeroEqDynamicEddyViscosity_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
+        matchingPointIdx_.resize(this->gridGeometry().elementMapper().size(), 0);
+        storedDensity_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedDissipation_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedTurbulentKineticEnergy_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedDynamicEddyViscosity_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        zeroEqDynamicEddyViscosity_.resize(this->gridGeometry().elementMapper().size(), 0.0);
     }
 
     /*!
@@ -114,11 +114,11 @@ public:
         ParentType::updateDynamicWallProperties(curSol);
 
         // update the stored eddy viscosities
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
@@ -139,9 +139,9 @@ public:
 
         // get matching point for k-epsilon wall function
         unsigned int numElementsInNearWallRegion = 0;
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
             unsigned int wallNormalAxis = asImp_().wallNormalAxis_[elementIdx];
             unsigned int neighborIdx0 = asImp_().neighborIdx_[elementIdx][wallNormalAxis][0];
             unsigned int neighborIdx1 = asImp_().neighborIdx_[elementIdx][wallNormalAxis][1];
@@ -158,9 +158,9 @@ public:
         std::cout << "numElementsInNearWallRegion: " << numElementsInNearWallRegion << std::endl;
 
         // calculate the potential zeroeq eddy viscosities for two-layer model
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
             zeroEqDynamicEddyViscosity_[elementIdx] = zeroEqEddyViscosityModel(elementIdx);
         }
 
@@ -169,9 +169,9 @@ public:
             = getParamFromGroup<bool>(this->paramGroup(), "KEpsilon.EnableZeroEqScaling", true);
         if (enableZeroEqScaling)
         {
-            for (const auto& element : elements(this->fvGridGeometry().gridView()))
+            for (const auto& element : elements(this->gridGeometry().gridView()))
             {
-                unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+                unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
                 unsigned int matchingPointIdx = matchingPointIdx_[asImp_().wallElementIdx_[elementIdx]];
 
                 Scalar scalingFactor = storedDynamicEddyViscosity_[matchingPointIdx]
@@ -182,9 +182,9 @@ public:
                     zeroEqDynamicEddyViscosity_[elementIdx] *= scalingFactor;
                 }
             }
-            for (const auto& element : elements(this->fvGridGeometry().gridView()))
+            for (const auto& element : elements(this->gridGeometry().gridView()))
             {
-                unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+                unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
                 unsigned int matchingPointIdx = matchingPointIdx_[asImp_().wallElementIdx_[elementIdx]];
                 if (isMatchingPoint(elementIdx))
                 {
@@ -308,7 +308,7 @@ public:
                          const SubControlVolumeFace& localSubFace,
                          const int& eqIdx) const
     {
-        unsigned int elementIdx = asImp_().fvGridGeometry().elementMapper().index(element);
+        unsigned int elementIdx = asImp_().gridGeometry().elementMapper().index(element);
         auto bcTypes = asImp_().boundaryTypes(element, localSubFace);
         return asImp_().isOnWall(localSubFace)
                && bcTypes.isDirichlet(eqIdx)
@@ -323,7 +323,7 @@ public:
                                       const SubControlVolumeFace& scvf,
                                       const SubControlVolumeFace& localSubFace) const
     {
-        unsigned int elementIdx = asImp_().fvGridGeometry().elementMapper().index(element);
+        unsigned int elementIdx = asImp_().gridGeometry().elementMapper().index(element);
         return FacePrimaryVariables(asImp_().tangentialMomentumWallFunction(elementIdx, elemFaceVars[scvf].velocitySelf())
                                     * elemVolVars[scvf.insideScvIdx()].density());
     }
@@ -380,7 +380,7 @@ public:
     {
         using std::log;
         auto wallFunctionFlux = CellCenterPrimaryVariables(0.0);
-        unsigned int elementIdx = asImp_().fvGridGeometry().elementMapper().index(element);
+        unsigned int elementIdx = asImp_().gridGeometry().elementMapper().index(element);
 
         // component mass fluxes
         for (int compIdx = 0; compIdx < ModelTraits::numFluidComponents(); ++compIdx)
@@ -421,7 +421,7 @@ public:
     {
         using std::log;
         auto wallFunctionFlux = CellCenterPrimaryVariables(0.0);
-        unsigned int elementIdx = asImp_().fvGridGeometry().elementMapper().index(element);
+        unsigned int elementIdx = asImp_().gridGeometry().elementMapper().index(element);
         // energy fluxes
         Scalar prandtlNumber = elemVolVars[scvf.insideScvIdx()].kinematicViscosity()
                                * elemVolVars[scvf.insideScvIdx()].density()
diff --git a/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh b/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh
index d831d5917bd6b2f47a28b67994ed7a63ebcd3a73..0111e0b26b4519f05d62479287c642be573d218f 100644
--- a/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh
+++ b/dumux/freeflow/rans/twoeq/kepsilon/staggered/fluxvariables.hh
@@ -65,7 +65,7 @@ class KEpsilonFluxVariablesImpl<TypeTag, BaseFluxVariables, DiscretizationMethod
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
diff --git a/dumux/freeflow/rans/twoeq/kepsilon/staggered/localresidual.hh b/dumux/freeflow/rans/twoeq/kepsilon/staggered/localresidual.hh
index 195f743c605ac3cf6fc6fe80422e67adfcf12603..451d90f8e088f191495ddf502f589ff887285f38 100644
--- a/dumux/freeflow/rans/twoeq/kepsilon/staggered/localresidual.hh
+++ b/dumux/freeflow/rans/twoeq/kepsilon/staggered/localresidual.hh
@@ -63,7 +63,7 @@ class KEpsilonResidualImpl<TypeTag, BaseLocalResidual, DiscretizationMethod::sta
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
diff --git a/dumux/freeflow/rans/twoeq/komega/fluxvariables.hh b/dumux/freeflow/rans/twoeq/komega/fluxvariables.hh
index c1f11d85615322e5ddd7edcfa778c5f8309617c7..daf9175c6f27e8a7f9c85994999a3e13349a4438 100644
--- a/dumux/freeflow/rans/twoeq/komega/fluxvariables.hh
+++ b/dumux/freeflow/rans/twoeq/komega/fluxvariables.hh
@@ -41,7 +41,7 @@ class KOmegaFluxVariablesImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag, class BaseFluxVariables>
-using KOmegaFluxVariables = KOmegaFluxVariablesImpl<TypeTag, BaseFluxVariables, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using KOmegaFluxVariables = KOmegaFluxVariablesImpl<TypeTag, BaseFluxVariables, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace
 
diff --git a/dumux/freeflow/rans/twoeq/komega/localresidual.hh b/dumux/freeflow/rans/twoeq/komega/localresidual.hh
index f84b79d4ff81b806bc0edcc25e9661d312e17893..04809447a2400d73594cfa68ddafe9c37e00cec6 100644
--- a/dumux/freeflow/rans/twoeq/komega/localresidual.hh
+++ b/dumux/freeflow/rans/twoeq/komega/localresidual.hh
@@ -43,7 +43,7 @@ class KOmegaResidualImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag, class BaseLocalResidual>
-using KOmegaResidual = KOmegaResidualImpl<TypeTag, BaseLocalResidual, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using KOmegaResidual = KOmegaResidualImpl<TypeTag, BaseLocalResidual, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 }
 
diff --git a/dumux/freeflow/rans/twoeq/komega/model.hh b/dumux/freeflow/rans/twoeq/komega/model.hh
index dbaba44d1526f32c52b3298e4352662eb744845a..1d716af0b0df1ac6e412bdf3cc9e89da1f0bcf2c 100644
--- a/dumux/freeflow/rans/twoeq/komega/model.hh
+++ b/dumux/freeflow/rans/twoeq/komega/model.hh
@@ -127,7 +127,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::KOmega>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
 public:
     using type = KOmegaModelTraits<dim>;
@@ -193,7 +193,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::KOmegaNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using IsothermalTraits = KOmegaModelTraits<dim>;
 public:
diff --git a/dumux/freeflow/rans/twoeq/komega/problem.hh b/dumux/freeflow/rans/twoeq/komega/problem.hh
index 9d026e7aeee1aff78cf0591149b568a0182086a8..98b08b3b6fd896a50d5d7ff9202900bbcd9570d4 100644
--- a/dumux/freeflow/rans/twoeq/komega/problem.hh
+++ b/dumux/freeflow/rans/twoeq/komega/problem.hh
@@ -49,8 +49,8 @@ class RANSProblemImpl<TypeTag, TurbulenceModel::komega> : public RANSProblemBase
     using Implementation = GetPropType<TypeTag, Properties::Problem>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
 
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
@@ -76,11 +76,11 @@ public:
         ParentType::updateStaticWallProperties();
 
         // update size and initial values of the global vectors
-        storedDynamicEddyViscosity_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedDissipation_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedDissipationGradient_.resize(this->fvGridGeometry().elementMapper().size(), DimVector(0.0));
-        storedTurbulentKineticEnergy_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedTurbulentKineticEnergyGradient_.resize(this->fvGridGeometry().elementMapper().size(), DimVector(0.0));
+        storedDynamicEddyViscosity_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedDissipation_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedDissipationGradient_.resize(this->gridGeometry().elementMapper().size(), DimVector(0.0));
+        storedTurbulentKineticEnergy_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedTurbulentKineticEnergyGradient_.resize(this->gridGeometry().elementMapper().size(), DimVector(0.0));
     }
 
     /*!
@@ -92,11 +92,11 @@ public:
     {
         ParentType::updateDynamicWallProperties(curSol);
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
@@ -115,9 +115,9 @@ public:
         }
 
         // calculate cell-centered gradients
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
 
             for (unsigned int dimIdx = 0; dimIdx < DimVector::dimension; ++dimIdx)
             {
diff --git a/dumux/freeflow/rans/twoeq/komega/staggered/fluxvariables.hh b/dumux/freeflow/rans/twoeq/komega/staggered/fluxvariables.hh
index 3b643032a261486d2de305a786bb16c3848fccc4..e01a73af42eeee5307e84c304cff1f8f5b3e1b3a 100644
--- a/dumux/freeflow/rans/twoeq/komega/staggered/fluxvariables.hh
+++ b/dumux/freeflow/rans/twoeq/komega/staggered/fluxvariables.hh
@@ -65,7 +65,7 @@ class KOmegaFluxVariablesImpl<TypeTag, BaseFluxVariables, DiscretizationMethod::
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
diff --git a/dumux/freeflow/rans/twoeq/komega/staggered/localresidual.hh b/dumux/freeflow/rans/twoeq/komega/staggered/localresidual.hh
index b3994ef65fe9c89942141396de70328aca25f4c4..f7d303a51c151174ddbbee4e62073ced01cd1dad 100644
--- a/dumux/freeflow/rans/twoeq/komega/staggered/localresidual.hh
+++ b/dumux/freeflow/rans/twoeq/komega/staggered/localresidual.hh
@@ -62,7 +62,7 @@ class KOmegaResidualImpl<TypeTag, BaseLocalResidual, DiscretizationMethod::stagg
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
     using CellCenterResidual = CellCenterPrimaryVariables;
diff --git a/dumux/freeflow/rans/twoeq/lowrekepsilon/fluxvariables.hh b/dumux/freeflow/rans/twoeq/lowrekepsilon/fluxvariables.hh
index 8bd9b0acaf74773a521d8118914ab4b04b0c94a9..d7a7a63a3b2f7f83391859e4cb91ee7622b22129 100644
--- a/dumux/freeflow/rans/twoeq/lowrekepsilon/fluxvariables.hh
+++ b/dumux/freeflow/rans/twoeq/lowrekepsilon/fluxvariables.hh
@@ -41,7 +41,7 @@ class LowReKEpsilonFluxVariablesImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag, class BaseFluxVariables>
-using LowReKEpsilonFluxVariables = LowReKEpsilonFluxVariablesImpl<TypeTag, BaseFluxVariables, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using LowReKEpsilonFluxVariables = LowReKEpsilonFluxVariablesImpl<TypeTag, BaseFluxVariables, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 } // end namespace
 
diff --git a/dumux/freeflow/rans/twoeq/lowrekepsilon/localresidual.hh b/dumux/freeflow/rans/twoeq/lowrekepsilon/localresidual.hh
index fc345460df50f9f28719f0ec1020d3915cdb984d..1fcd19f5cfdff65114dc3481cc721078d6c5766e 100644
--- a/dumux/freeflow/rans/twoeq/lowrekepsilon/localresidual.hh
+++ b/dumux/freeflow/rans/twoeq/lowrekepsilon/localresidual.hh
@@ -43,7 +43,7 @@ class LowReKEpsilonResidualImpl;
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag, class BaseLocalResidual>
-using LowReKEpsilonResidual = LowReKEpsilonResidualImpl<TypeTag, BaseLocalResidual, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using LowReKEpsilonResidual = LowReKEpsilonResidualImpl<TypeTag, BaseLocalResidual, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 }
 
diff --git a/dumux/freeflow/rans/twoeq/lowrekepsilon/model.hh b/dumux/freeflow/rans/twoeq/lowrekepsilon/model.hh
index 97ade2704648e7c5fe3273f05d7aa46add2a390d..fcddc4420a51c9fb315069d7f7743499556e69d2 100644
--- a/dumux/freeflow/rans/twoeq/lowrekepsilon/model.hh
+++ b/dumux/freeflow/rans/twoeq/lowrekepsilon/model.hh
@@ -135,7 +135,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::LowReKEpsilon>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
 public:
     using type = LowReKEpsilonModelTraits<dim>;
@@ -200,7 +200,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::LowReKEpsilonNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using IsothermalTraits = LowReKEpsilonModelTraits<dim>;
 public:
diff --git a/dumux/freeflow/rans/twoeq/lowrekepsilon/problem.hh b/dumux/freeflow/rans/twoeq/lowrekepsilon/problem.hh
index 29200e009ae94fbe896829ed3c3da2fd0d4d8443..ac72248784e3e1cfa2eb7a1a1fbd96d99529a0c6 100644
--- a/dumux/freeflow/rans/twoeq/lowrekepsilon/problem.hh
+++ b/dumux/freeflow/rans/twoeq/lowrekepsilon/problem.hh
@@ -49,8 +49,8 @@ class RANSProblemImpl<TypeTag, TurbulenceModel::lowrekepsilon> : public RANSProb
     using Implementation = GetPropType<TypeTag, Properties::Problem>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
 
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
@@ -74,9 +74,9 @@ public:
         ParentType::updateStaticWallProperties();
 
         // update size and initial values of the global vectors
-        storedDissipationTilde_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedDynamicEddyViscosity_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedTurbulentKineticEnergy_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
+        storedDissipationTilde_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedDynamicEddyViscosity_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedTurbulentKineticEnergy_.resize(this->gridGeometry().elementMapper().size(), 0.0);
     }
 
     /*!
@@ -88,11 +88,11 @@ public:
     {
         ParentType::updateDynamicWallProperties(curSol);
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
diff --git a/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/fluxvariables.hh b/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/fluxvariables.hh
index 3910e3d58dc748f1221886c4e27d34696d3aff44..e9bcdcfa386e5aef664eae330825b8f07d0953e7 100644
--- a/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/fluxvariables.hh
+++ b/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/fluxvariables.hh
@@ -65,7 +65,7 @@ class LowReKEpsilonFluxVariablesImpl<TypeTag, BaseFluxVariables, DiscretizationM
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
diff --git a/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/localresidual.hh b/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/localresidual.hh
index 14a30bf6886a56743fd10d5e75e2a6b95bc0af74..a05a0ca422ccf9ccea82241fc3e4c0103c17a26d 100644
--- a/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/localresidual.hh
+++ b/dumux/freeflow/rans/twoeq/lowrekepsilon/staggered/localresidual.hh
@@ -62,7 +62,7 @@ class LowReKEpsilonResidualImpl<TypeTag, BaseLocalResidual, DiscretizationMethod
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using CellCenterPrimaryVariables = GetPropType<TypeTag, Properties::CellCenterPrimaryVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
diff --git a/dumux/freeflow/rans/volumevariables.hh b/dumux/freeflow/rans/volumevariables.hh
index 0919f58ad1069e827c7b0d53c364f391a9a17ec9..7ee3369858b5062f97bd740a7013d0ca9d856ba7 100644
--- a/dumux/freeflow/rans/volumevariables.hh
+++ b/dumux/freeflow/rans/volumevariables.hh
@@ -92,7 +92,7 @@ public:
         using std::sqrt;
 
         // calculate characteristic properties of the turbulent flow
-        elementIdx_ = problem.fvGridGeometry().elementMapper().index(element);
+        elementIdx_ = problem.gridGeometry().elementMapper().index(element);
         wallElementIdx_ = problem.wallElementIdx_[elementIdx_];
         wallDistance_ = problem.wallDistance_[elementIdx_];
         velocity_ = problem.velocity_[elementIdx_];
diff --git a/dumux/freeflow/rans/zeroeq/model.hh b/dumux/freeflow/rans/zeroeq/model.hh
index 7d7c6418dfc45ed17d117dc6ec58858c036bc4db..e4cbc2c45c94911212a1c30435839f7fe5915bea 100644
--- a/dumux/freeflow/rans/zeroeq/model.hh
+++ b/dumux/freeflow/rans/zeroeq/model.hh
@@ -77,7 +77,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::ZeroEq>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
 public:
     using type = ZeroEqModelTraits<dim>;
@@ -118,7 +118,7 @@ template<class TypeTag>
 struct ModelTraits<TypeTag, TTag::ZeroEqNI>
 {
 private:
-    using GridView = typename GetPropType<TypeTag, Properties::FVGridGeometry>::GridView;
+    using GridView = typename GetPropType<TypeTag, Properties::GridGeometry>::GridView;
     static constexpr int dim = GridView::dimension;
     using IsothermalTraits = ZeroEqModelTraits<dim>;
 public:
diff --git a/dumux/freeflow/rans/zeroeq/problem.hh b/dumux/freeflow/rans/zeroeq/problem.hh
index f4594ac4ee8b152a48ea04607aa7e0f0d70f6602..dc2a5d0b55dfa3a5b085e3a16ea267396f672acb 100644
--- a/dumux/freeflow/rans/zeroeq/problem.hh
+++ b/dumux/freeflow/rans/zeroeq/problem.hh
@@ -54,8 +54,8 @@ class RANSProblemImpl<TypeTag, TurbulenceModel::zeroeq> : public RANSProblemBase
     using Grid = typename GridView::Grid;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
@@ -89,8 +89,8 @@ public:
         ParentType::updateStaticWallProperties();
 
         // update size and initial values of the global vectors
-        kinematicEddyViscosity_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        additionalRoughnessLength_.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
+        kinematicEddyViscosity_.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        additionalRoughnessLength_.resize(this->gridGeometry().elementMapper().size(), 0.0);
     }
 
     /*!
@@ -106,11 +106,11 @@ public:
 
         // calculate additional roughness
         bool printedRangeWarning = false;
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
@@ -161,10 +161,10 @@ public:
      */
     void updateBaldwinLomaxProperties()
     {
-        std::vector<Scalar> kinematicEddyViscosityInner(this->fvGridGeometry().elementMapper().size(), 0.0);
-        std::vector<Scalar> kinematicEddyViscosityOuter(this->fvGridGeometry().elementMapper().size(), 0.0);
-        std::vector<Scalar> kinematicEddyViscosityDifference(this->fvGridGeometry().elementMapper().size(), 0.0);
-        std::vector<Scalar> switchingPosition(this->fvGridGeometry().elementMapper().size(), std::numeric_limits<Scalar>::max());
+        std::vector<Scalar> kinematicEddyViscosityInner(this->gridGeometry().elementMapper().size(), 0.0);
+        std::vector<Scalar> kinematicEddyViscosityOuter(this->gridGeometry().elementMapper().size(), 0.0);
+        std::vector<Scalar> kinematicEddyViscosityDifference(this->gridGeometry().elementMapper().size(), 0.0);
+        std::vector<Scalar> switchingPosition(this->gridGeometry().elementMapper().size(), std::numeric_limits<Scalar>::max());
 
         using std::abs;
         using std::exp;
@@ -179,13 +179,13 @@ public:
 
         std::vector<Scalar> storedFMax;
         std::vector<Scalar> storedYFMax;
-        storedFMax.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
-        storedYFMax.resize(this->fvGridGeometry().elementMapper().size(), 0.0);
+        storedFMax.resize(this->gridGeometry().elementMapper().size(), 0.0);
+        storedYFMax.resize(this->gridGeometry().elementMapper().size(), 0.0);
 
         // (1) calculate inner viscosity and Klebanoff function
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
             unsigned int wallElementIdx = this->wallElementIdx_[elementIdx];
             Scalar wallDistance = this->wallDistance_[elementIdx] + additionalRoughnessLength_[elementIdx];
             unsigned int flowNormalAxis = this->flowNormalAxis_[elementIdx];
@@ -208,9 +208,9 @@ public:
         }
 
         // (2) calculate outer viscosity
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
             unsigned int wallElementIdx = this->wallElementIdx_[elementIdx];
             Scalar wallDistance = this->wallDistance_[elementIdx] + additionalRoughnessLength_[elementIdx];
 
@@ -235,9 +235,9 @@ public:
         }
 
         // (3) switching point
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
             unsigned int wallElementIdx = this->wallElementIdx_[elementIdx];
             Scalar wallDistance = this->wallDistance_[elementIdx] + additionalRoughnessLength_[elementIdx];
 
@@ -251,9 +251,9 @@ public:
         }
 
         // (4) finally determine eddy viscosity
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            unsigned int elementIdx = this->fvGridGeometry().elementMapper().index(element);
+            unsigned int elementIdx = this->gridGeometry().elementMapper().index(element);
             unsigned int wallElementIdx = this->wallElementIdx_[elementIdx];
             Scalar wallDistance = this->wallDistance_[elementIdx] + additionalRoughnessLength_[elementIdx];
 
diff --git a/dumux/freeflow/shallowwater/fluxvariables.hh b/dumux/freeflow/shallowwater/fluxvariables.hh
index d5fc2306aba45baba04a5a7a8ca3752993c6aca3..d37861c6f02fa33cdfcc5d02c84ef12030bdf6cc 100644
--- a/dumux/freeflow/shallowwater/fluxvariables.hh
+++ b/dumux/freeflow/shallowwater/fluxvariables.hh
@@ -37,7 +37,7 @@ namespace Dumux {
 template<class TypeTag>
 class ShallowWaterFluxVariables
 : public FluxVariablesBase<GetPropType<TypeTag, Properties::Problem>,
-                           typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView,
+                           typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView,
                            typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView,
                            typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView>
 {
@@ -49,7 +49,7 @@ class ShallowWaterFluxVariables
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using GridVolumeVariables = typename GridVariables::GridVolumeVariables;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
 
diff --git a/dumux/freeflow/shallowwater/localresidual.hh b/dumux/freeflow/shallowwater/localresidual.hh
index 3144b373ba01799e56a170328d5b5f61f882968c..11344f03169dba8941de5ff07cbff93fa547b9fb 100644
--- a/dumux/freeflow/shallowwater/localresidual.hh
+++ b/dumux/freeflow/shallowwater/localresidual.hh
@@ -43,7 +43,7 @@ class ShallowWaterResidual
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/dumux/freeflow/shallowwater/problem.hh b/dumux/freeflow/shallowwater/problem.hh
index 53caba20ec85e30c2a7ce813f79b868166d90480..d05e4bf4f04e7931f16d1c09fd7af71f379a3e05 100644
--- a/dumux/freeflow/shallowwater/problem.hh
+++ b/dumux/freeflow/shallowwater/problem.hh
@@ -38,7 +38,7 @@ template<class TypeTag>
 class ShallowWaterProblem : public FVProblem<TypeTag>
 {
     using ParentType = FVProblem<TypeTag>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
 public:
     using SpatialParams = GetPropType<TypeTag, Properties::SpatialParams>;
diff --git a/dumux/geomechanics/elastic/localresidual.hh b/dumux/geomechanics/elastic/localresidual.hh
index dcad48af0b5db4f97165503c40f87b63b6113f75..1f2423cf98d163ebf04616563c1167aeab789625 100644
--- a/dumux/geomechanics/elastic/localresidual.hh
+++ b/dumux/geomechanics/elastic/localresidual.hh
@@ -46,7 +46,7 @@ class ElasticLocalResidual : public GetPropType<TypeTag, Properties::BaseLocalRe
 
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
diff --git a/dumux/geomechanics/elastic/model.hh b/dumux/geomechanics/elastic/model.hh
index bb0e67f38b32c4d83fb64dd7f8efbea4c2c2b198..1f58b487f2a392c80c21d209bda7edb5051b131c 100644
--- a/dumux/geomechanics/elastic/model.hh
+++ b/dumux/geomechanics/elastic/model.hh
@@ -121,7 +121,7 @@ template<class TypeTag>
 struct StressType<TypeTag, TTag::Elastic>
 {
     using type = HookesLaw< GetPropType<TypeTag, Properties::Scalar>,
-                            GetPropType<TypeTag, Properties::FVGridGeometry> >;
+                            GetPropType<TypeTag, Properties::GridGeometry> >;
 };
 
 } // namespace Properties
diff --git a/dumux/geomechanics/fvproblem.hh b/dumux/geomechanics/fvproblem.hh
index 786a2d4dd5d564e6a8d430806c356a0b38e26238..daa8b2292367aea064a123f99aceed7e0b1b3b31 100644
--- a/dumux/geomechanics/fvproblem.hh
+++ b/dumux/geomechanics/fvproblem.hh
@@ -69,7 +69,7 @@ class GeomechanicsFVProblem : public PorousMediumFlowProblem<TypeTag>
     using ParentType = PorousMediumFlowProblem<TypeTag>;
 
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
diff --git a/dumux/geomechanics/poroelastic/couplingmanager.hh b/dumux/geomechanics/poroelastic/couplingmanager.hh
index 630ffcc3ac98c4b83d5e63d5b5b7256a42358dcd..7f981653e09a58382a84409752110194f33c5599 100644
--- a/dumux/geomechanics/poroelastic/couplingmanager.hh
+++ b/dumux/geomechanics/poroelastic/couplingmanager.hh
@@ -156,7 +156,7 @@ public:
                                                          const Element<PMFlowId>& element,
                                                          Dune::index_constant<PoroMechId> poroMechDomainId) const
     {
-        return pmFlowCouplingMap_[ this->problem(pmFlowId).fvGridGeometry().elementMapper().index(element) ];
+        return pmFlowCouplingMap_[ this->problem(pmFlowId).gridGeometry().elementMapper().index(element) ];
     }
 
     /*!
@@ -166,7 +166,7 @@ public:
                                                           const Element<PoroMechId>& element,
                                                           Dune::index_constant<PMFlowId> pmFlowDomainId) const
     {
-        const auto eIdx = this->problem(pmFlowId).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(pmFlowId).gridGeometry().elementMapper().index(element);
         return CouplingStencilType<PoroMechId>{ {eIdx} };
     }
 
@@ -188,7 +188,7 @@ public:
 
         // prepare the fvGeometry and the element volume variables
         // these quantities will be used later to obtain the effective pressure
-        auto fvGeometry = localView( this->problem(pmFlowId).fvGridGeometry() );
+        auto fvGeometry = localView( this->problem(pmFlowId).gridGeometry() );
         auto elemVolVars = localView( assembler.gridVariables(Dune::index_constant<PMFlowId>()).curGridVolVars() );
 
         fvGeometry.bindElement(element);
@@ -360,7 +360,7 @@ public:
     const VolumeVariables<PMFlowId>& getPMFlowVolVars(const Element<PoroMechId>& element) const
     {
         //! If we do not yet have the queried object, build it first
-        const auto eIdx = this->problem(poroMechId).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(poroMechId).gridGeometry().elementMapper().index(element);
         return (*poroMechCouplingContext_.pmFlowElemVolVars)[eIdx];
     }
 
@@ -380,8 +380,8 @@ private:
     void initializeCouplingMap_()
     {
         // some references for convenience
-        const auto& pmFlowGridGeom = this->problem(pmFlowId).fvGridGeometry();
-        const auto& poroMechGridGeom = this->problem(poroMechId).fvGridGeometry();
+        const auto& pmFlowGridGeom = this->problem(pmFlowId).gridGeometry();
+        const auto& poroMechGridGeom = this->problem(poroMechId).gridGeometry();
 
         // make sure the two grids are really the same. Note that if the two grids
         // happen to have equal number of elements by chance, we don't detect this source of error.
diff --git a/dumux/geomechanics/poroelastic/localresidual.hh b/dumux/geomechanics/poroelastic/localresidual.hh
index 14517966cd44971143393dafbd5f52703b5b5d0a..bef864626b2870d363bfae062081238a109acffc 100644
--- a/dumux/geomechanics/poroelastic/localresidual.hh
+++ b/dumux/geomechanics/poroelastic/localresidual.hh
@@ -45,7 +45,7 @@ class PoroElasticLocalResidual: public ElasticLocalResidual<TypeTag>
 
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
diff --git a/dumux/geomechanics/poroelastic/model.hh b/dumux/geomechanics/poroelastic/model.hh
index 2345440024b51e90ce82f418ba46b3b16a2ab665..ef4c337e511d2f6ddd7d380e77756b71e064e978 100644
--- a/dumux/geomechanics/poroelastic/model.hh
+++ b/dumux/geomechanics/poroelastic/model.hh
@@ -115,7 +115,7 @@ struct StressType<TypeTag, TTag::PoroElastic>
 {
 private:
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using ElasticStressType = HookesLaw< Scalar, FVGridGeometry >;
 public:
     using type = EffectiveStressLaw< ElasticStressType, FVGridGeometry >;
diff --git a/dumux/geomechanics/properties.hh b/dumux/geomechanics/properties.hh
index 8bac354db16cbc972517f30b2e720b05180f6e53..5e6854b99d08cda79b53e885d3e0f3d8ee87f931 100644
--- a/dumux/geomechanics/properties.hh
+++ b/dumux/geomechanics/properties.hh
@@ -49,7 +49,7 @@ template<class TypeTag>
 struct FluxVariablesCache<TypeTag, TTag::Geomechanics>
 {
     using type = StressVariablesCache< GetPropType<TypeTag, Properties::Scalar>,
-                                       GetPropType<TypeTag, Properties::FVGridGeometry> >;
+                                       GetPropType<TypeTag, Properties::GridGeometry> >;
 };
 
 //! The (currently empty) velocity output
diff --git a/dumux/io/staggeredvtkoutputmodule.hh b/dumux/io/staggeredvtkoutputmodule.hh
index 7f7beac10733e4b89629d60ae7656dfe7108d5bf..f7cdb310ebfade16102b967c9013d3eaaac7df93 100644
--- a/dumux/io/staggeredvtkoutputmodule.hh
+++ b/dumux/io/staggeredvtkoutputmodule.hh
@@ -92,8 +92,8 @@ public:
     : ParentType(gridVariables, sol, name, paramGroup, dm, verbose)
     , faceWriter_(std::make_shared<PointCloudVtkWriter<Scalar, GlobalPosition>>(coordinates_))
     , sequenceWriter_(faceWriter_, name + "-face", "","",
-                      gridVariables.curGridVolVars().problem().fvGridGeometry().gridView().comm().rank(),
-                      gridVariables.curGridVolVars().problem().fvGridGeometry().gridView().comm().size() )
+                      gridVariables.curGridVolVars().problem().gridGeometry().gridView().comm().rank(),
+                      gridVariables.curGridVolVars().problem().gridGeometry().gridView().comm().size() )
 
     {
         static_assert(std::is_same<Sol, SolutionVector>::value, "Make sure that sol has the same type as SolutionVector."
diff --git a/dumux/io/vtkoutputmodule.hh b/dumux/io/vtkoutputmodule.hh
index 41573a7c3ad0563a3e92d5716dd398498084e66d..2c4cb087b3b3e1697ce0c70efcd3d98c72f75d11 100644
--- a/dumux/io/vtkoutputmodule.hh
+++ b/dumux/io/vtkoutputmodule.hh
@@ -108,9 +108,9 @@ public:
     , sol_(sol)
     , name_(name)
     , paramGroup_(paramGroup)
-    , verbose_(gridVariables.fvGridGeometry().gridView().comm().rank() == 0 && verbose)
+    , verbose_(gridVariables.gridGeometry().gridView().comm().rank() == 0 && verbose)
     , dm_(dm)
-    , writer_(std::make_shared<Dune::VTKWriter<GridView>>(gridVariables.fvGridGeometry().gridView(), dm))
+    , writer_(std::make_shared<Dune::VTKWriter<GridView>>(gridVariables.gridGeometry().gridView(), dm))
     , sequenceWriter_(writer_, name)
     , velocityOutput_(std::make_shared<VelocityOutputType>())
     {}
@@ -230,7 +230,7 @@ public:
 protected:
     // some return functions for differing implementations to use
     const auto& problem() const { return gridVariables_.curGridVolVars().problem(); }
-    const FVGridGeometry& fvGridGeometry() const { return gridVariables_.fvGridGeometry(); }
+    const FVGridGeometry& fvGridGeometry() const { return gridVariables_.gridGeometry(); }
     const GridVariables& gridVariables() const { return gridVariables_; }
     const SolutionVector& sol() const { return sol_; }
 
diff --git a/dumux/linear/amgbackend.hh b/dumux/linear/amgbackend.hh
index 3f68edd594a3852155f4362143656dcbdcbccc00..269c586a4fd75f5fc3d33aa2fa4bd0adbd9d5bf5 100644
--- a/dumux/linear/amgbackend.hh
+++ b/dumux/linear/amgbackend.hh
@@ -223,7 +223,7 @@ namespace Dumux {
 template<class TypeTag>
 using AMGBackend = ParallelAMGBackend<GetPropType<TypeTag, Properties::GridView>, AmgTraits<GetPropType<TypeTag, Properties::JacobianMatrix>,
                                                                                            GetPropType<TypeTag, Properties::SolutionVector>,
-                                                                                           GetPropType<TypeTag, Properties::FVGridGeometry>>>;
+                                                                                           GetPropType<TypeTag, Properties::GridGeometry>>>;
 
 } // namespace Dumux
 
diff --git a/dumux/material/spatialparams/fv1p.hh b/dumux/material/spatialparams/fv1p.hh
index 8c254d079298cb1c683850705215dbdc424c94ee..7bd4bd020cfb3f8560a96dd3267ef24445c4074f 100644
--- a/dumux/material/spatialparams/fv1p.hh
+++ b/dumux/material/spatialparams/fv1p.hh
@@ -326,10 +326,14 @@ public:
     }
 
     //! The finite volume grid geometry
+    [[deprecated("Use more general GridGeometry instead. FVGridGeometry will be removed after 3.1!")]]
     const FVGridGeometry& fvGridGeometry() const
-    {
-        return *fvGridGeometry_;
-    }
+    { return *fvGridGeometry_; }
+
+    //! The finite volume grid geometry
+    const FVGridGeometry& gridGeometry() const
+    { return *fvGridGeometry_; }
+
 
 protected:
     Implementation &asImp_()
diff --git a/dumux/material/spatialparams/fvelastic.hh b/dumux/material/spatialparams/fvelastic.hh
index 351625d4674ef6589b8c124697f14e0639007515..e864051cfb2bb27fabc8e53d39c7eecac5d7852e 100644
--- a/dumux/material/spatialparams/fvelastic.hh
+++ b/dumux/material/spatialparams/fvelastic.hh
@@ -159,7 +159,13 @@ public:
     }
 
     //! The finite volume grid geometry
-    const FVGridGeometry& fvGridGeometry() const { return *fvGridGeometry_; }
+    [[deprecated("Use more general GridGeometry instead. FVGridGeometry will be removed after 3.1!")]]
+    const FVGridGeometry& fvGridGeometry() const
+    { return *fvGridGeometry_; }
+
+    //! The finite volume grid geometry
+    const FVGridGeometry& gridGeometry() const
+    { return *fvGridGeometry_; }
 
 protected:
     Implementation &asImp_()
diff --git a/dumux/material/spatialparams/fvporoelastic.hh b/dumux/material/spatialparams/fvporoelastic.hh
index e87d7803ce8514d52966a7434ba9e9fde31131d7..df29df7836d035f15898a7f8810c66a7ffad5e0a 100644
--- a/dumux/material/spatialparams/fvporoelastic.hh
+++ b/dumux/material/spatialparams/fvporoelastic.hh
@@ -314,8 +314,14 @@ public:
     }
 
     //! The finite volume grid geometry
-    const FVGridGeometry& fvGridGeometry() const { return *fvGridGeometry_; }
+    [[deprecated("Use more general GridGeometry instead. FVGridGeometry will be removed after 3.1!")]]
+    const FVGridGeometry& fvGridGeometry() const
+    { return *fvGridGeometry_; }
 
+    //! The finite volume grid geometry
+    const FVGridGeometry& gridGeometry() const
+    { return *fvGridGeometry_; }
+    
 protected:
     Implementation &asImp_()
     { return *static_cast<Implementation*>(this); }
diff --git a/dumux/multidomain/boundary/darcydarcy/couplingmanager.hh b/dumux/multidomain/boundary/darcydarcy/couplingmanager.hh
index de16ec1e6a545b35dffe06a5b5b7a3ca805ffb45..56064912fa83addf7e5dab5324f2ef5237a5ac02 100644
--- a/dumux/multidomain/boundary/darcydarcy/couplingmanager.hh
+++ b/dumux/multidomain/boundary/darcydarcy/couplingmanager.hh
@@ -60,7 +60,7 @@ class DarcyDarcyBoundaryCouplingManager
     template<std::size_t i> using NumEqVector = GetPropType<SubDomainTypeTag<i>, Properties::NumEqVector>;
     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 FVGridGeometry = typename MDTraits::template SubDomain<i>::FVGridGeometry;
+    template<std::size_t i> using FVGridGeometry = typename MDTraits::template SubDomain<i>::GridGeometry;
     template<std::size_t i> using FVElementGeometry = typename FVGridGeometry<i>::LocalView;
     template<std::size_t i> using SubControlVolumeFace = typename FVGridGeometry<i>::SubControlVolumeFace;
     template<std::size_t i> using SubControlVolume = typename FVGridGeometry<i>::SubControlVolume;
@@ -119,7 +119,7 @@ public:
                                            Dune::index_constant<j> domainJ) const
     {
         static_assert(i != j, "A domain cannot be coupled to itself!");
-        const auto eIdx = this->problem(domainI).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(domainI).gridGeometry().elementMapper().index(element);
         return couplingMapper_.couplingStencil(domainI, eIdx, domainJ);
     }
 
@@ -165,8 +165,8 @@ public:
         static const bool enableGravity = getParamFromGroup<bool>(this->problem(domainI).paramGroup(), "Problem.EnableGravity");
         constexpr auto otherDomainIdx = domainIdx<1-i>();
 
-        const auto& outsideElement = this->problem(otherDomainIdx).fvGridGeometry().element(couplingMapper_.outsideElementIndex(domainI, scvf));
-        auto fvGeometryOutside = localView(this->problem(otherDomainIdx).fvGridGeometry());
+        const auto& outsideElement = this->problem(otherDomainIdx).gridGeometry().element(couplingMapper_.outsideElementIndex(domainI, scvf));
+        auto fvGeometryOutside = localView(this->problem(otherDomainIdx).gridGeometry());
         fvGeometryOutside.bindElement(outsideElement);
 
         const auto& flipScvf = fvGeometryOutside.scvf(couplingMapper_.flipScvfIndex(domainI, scvf));
@@ -231,7 +231,7 @@ public:
                                const SubControlVolume<i>& scv) const
     {
         VolumeVariables<i> volVars;
-        const auto elemSol = elementSolution(element, this->curSol()[domainI], this->problem(domainI).fvGridGeometry());
+        const auto elemSol = elementSolution(element, this->curSol()[domainI], this->problem(domainI).gridGeometry());
         volVars.update(elemSol, this->problem(domainI), element, scv);
         return volVars;
     }
diff --git a/dumux/multidomain/boundary/darcydarcy/couplingmapper.hh b/dumux/multidomain/boundary/darcydarcy/couplingmapper.hh
index ebf8195fe01617b2718715ca29de49c27a18e0be..fe7604809141c03cfe71a1e930ee26aa73d3e9a7 100644
--- a/dumux/multidomain/boundary/darcydarcy/couplingmapper.hh
+++ b/dumux/multidomain/boundary/darcydarcy/couplingmapper.hh
@@ -49,7 +49,7 @@ class DarcyDarcyBoundaryCouplingMapper
 {
     using Scalar = typename MDTraits::Scalar;
 
-    template<std::size_t i> using FVGridGeometry = typename MDTraits::template SubDomain<i>::FVGridGeometry;
+    template<std::size_t i> using FVGridGeometry = typename MDTraits::template SubDomain<i>::GridGeometry;
     template<std::size_t i> using SubControlVolumeFace = typename FVGridGeometry<i>::SubControlVolumeFace;
     template<std::size_t i> using GridView = typename FVGridGeometry<i>::GridView;
     template<std::size_t i> using Element = typename GridView<i>::template Codim<0>::Entity;
@@ -95,8 +95,8 @@ public:
 
         const auto& problem0 = couplingManager.problem(domainIdx<0>());
         const auto& problem1 = couplingManager.problem(domainIdx<1>());
-        const auto& gg0 = problem0.fvGridGeometry();
-        const auto& gg1 = problem1.fvGridGeometry();
+        const auto& gg0 = problem0.gridGeometry();
+        const auto& gg1 = problem1.gridGeometry();
 
         isCoupledScvf_[0].resize(gg0.numScvf(), false);
         isCoupledScvf_[1].resize(gg1.numScvf(), false);
diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh b/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh
index 08141fd75751000f034f632ee3fd5f367634bfdd..fd03a4eb5f8d28d619d6d7a3a1d6627ca56a6358 100644
--- a/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh
+++ b/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh
@@ -225,7 +225,7 @@ class StokesDarcyCouplingDataImplementationBase
     using Scalar = typename MDTraits::Scalar;
 
     template<std::size_t id> using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using Element = typename FVGridGeometry<id>::GridView::template Codim<0>::Entity;
     template<std::size_t id> using FVElementGeometry = typename FVGridGeometry<id>::LocalView;
     template<std::size_t id> using SubControlVolumeFace = typename FVGridGeometry<id>::LocalView::SubControlVolumeFace;
@@ -426,7 +426,7 @@ protected:
         using ThermalConductivityModel = GetPropType<SubDomainTypeTag<darcyIdx>, Properties::ThermalConductivityModel>;
         const auto& problem = this->couplingManager().problem(darcyIdx);
         return Deprecated::template effectiveThermalConductivity<ThermalConductivityModel>(
-                 volVars, problem.spatialParams(), fvGeometry.fvGridGeometry().element(scv.elementIndex()), fvGeometry, scv);
+                 volVars, problem.spatialParams(), fvGeometry.gridGeometry().element(scv.elementIndex()), fvGeometry, scv);
     }
 
     /*!
@@ -525,7 +525,7 @@ class StokesDarcyCouplingDataImplementation<MDTraits, CouplingManager, enableEne
     template<std::size_t id>
     using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
 
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using Element = typename FVGridGeometry<id>::GridView::template Codim<0>::Entity;
     template<std::size_t id> using FVElementGeometry = typename FVGridGeometry<id>::LocalView;
     template<std::size_t id> using SubControlVolumeFace = typename FVGridGeometry<id>::LocalView::SubControlVolumeFace;
@@ -687,7 +687,7 @@ class StokesDarcyCouplingDataImplementation<MDTraits, CouplingManager, enableEne
     template<std::size_t id>
     using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
 
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using Element = typename FVGridGeometry<id>::GridView::template Codim<0>::Entity;
     template<std::size_t id> using FVElementGeometry = typename FVGridGeometry<id>::LocalView;
     template<std::size_t id> using SubControlVolumeFace = typename FVElementGeometry<id>::SubControlVolumeFace;
diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh b/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
index 33a5cfb0c7e5c733396a9b900cbe89b92d15413e..7636ae7d212c7e901fd92e425ffc6be0551490d1 100644
--- a/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
+++ b/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
@@ -81,7 +81,7 @@ private:
     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;
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using FVElementGeometry = typename FVGridGeometry<id>::LocalView;
     template<std::size_t id> using ElementBoundaryTypes = GetPropType<SubDomainTypeTag<id>, Properties::ElementBoundaryTypes>;
     template<std::size_t id> using ElementFluxVariablesCache = typename GetPropType<SubDomainTypeTag<id>, Properties::GridFluxVariablesCache>::LocalView;
@@ -194,7 +194,7 @@ public:
     {
         stokesCouplingContext_.clear();
 
-        const auto stokesElementIdx = this->problem(stokesIdx).fvGridGeometry().elementMapper().index(element);
+        const auto stokesElementIdx = this->problem(stokesIdx).gridGeometry().elementMapper().index(element);
         boundStokesElemIdx_ = stokesElementIdx;
 
         // do nothing if the element is not coupled to the other domain
@@ -203,15 +203,15 @@ public:
 
         // prepare the coupling context
         const auto& darcyIndices = couplingMapper_.stokesElementToDarcyElementMap().at(stokesElementIdx);
-        auto darcyFvGeometry = localView(this->problem(darcyIdx).fvGridGeometry());
+        auto darcyFvGeometry = localView(this->problem(darcyIdx).gridGeometry());
 
         for(auto&& indices : darcyIndices)
         {
-            const auto& darcyElement = this->problem(darcyIdx).fvGridGeometry().boundingBoxTree().entitySet().entity(indices.eIdx);
+            const auto& darcyElement = this->problem(darcyIdx).gridGeometry().boundingBoxTree().entitySet().entity(indices.eIdx);
             darcyFvGeometry.bindElement(darcyElement);
             const auto& scv = (*scvs(darcyFvGeometry).begin());
 
-            const auto darcyElemSol = elementSolution(darcyElement, this->curSol()[darcyIdx], this->problem(darcyIdx).fvGridGeometry());
+            const auto darcyElemSol = elementSolution(darcyElement, this->curSol()[darcyIdx], this->problem(darcyIdx).gridGeometry());
             VolumeVariables<darcyIdx> darcyVolVars;
             darcyVolVars.update(darcyElemSol, this->problem(darcyIdx), darcyElement, scv);
 
@@ -234,7 +234,7 @@ public:
     {
         darcyCouplingContext_.clear();
 
-        const auto darcyElementIdx = this->problem(darcyIdx).fvGridGeometry().elementMapper().index(element);
+        const auto darcyElementIdx = this->problem(darcyIdx).gridGeometry().elementMapper().index(element);
         boundDarcyElemIdx_ = darcyElementIdx;
 
         // do nothing if the element is not coupled to the other domain
@@ -243,11 +243,11 @@ public:
 
         // prepare the coupling context
         const auto& stokesElementIndices = couplingMapper_.darcyElementToStokesElementMap().at(darcyElementIdx);
-        auto stokesFvGeometry = localView(this->problem(stokesIdx).fvGridGeometry());
+        auto stokesFvGeometry = localView(this->problem(stokesIdx).gridGeometry());
 
         for(auto&& indices : stokesElementIndices)
         {
-            const auto& stokesElement = this->problem(stokesIdx).fvGridGeometry().boundingBoxTree().entitySet().entity(indices.eIdx);
+            const auto& stokesElement = this->problem(stokesIdx).gridGeometry().boundingBoxTree().entitySet().entity(indices.eIdx);
             stokesFvGeometry.bindElement(stokesElement);
 
             VelocityVector faceVelocity(0.0);
@@ -300,7 +300,7 @@ public:
 
         for (auto& data : darcyCouplingContext_)
         {
-            const auto stokesElemIdx = this->problem(stokesIdx).fvGridGeometry().elementMapper().index(data.element);
+            const auto stokesElemIdx = this->problem(stokesIdx).gridGeometry().elementMapper().index(data.element);
 
             if(stokesElemIdx != dofIdxGlobalJ)
                 continue;
@@ -351,12 +351,12 @@ public:
 
         for (auto& data : stokesCouplingContext_)
         {
-            const auto darcyElemIdx = this->problem(darcyIdx).fvGridGeometry().elementMapper().index(data.element);
+            const auto darcyElemIdx = this->problem(darcyIdx).gridGeometry().elementMapper().index(data.element);
 
             if(darcyElemIdx != dofIdxGlobalJ)
                 continue;
 
-            const auto darcyElemSol = elementSolution(data.element, this->curSol()[darcyIdx], this->problem(darcyIdx).fvGridGeometry());
+            const auto darcyElemSol = elementSolution(data.element, this->curSol()[darcyIdx], this->problem(darcyIdx).gridGeometry());
 
             for(const auto& scv : scvs(data.fvGeometry))
                 data.volVars.update(darcyElemSol, this->problem(darcyIdx), data.element, scv);
@@ -419,7 +419,7 @@ public:
                                            const Element<stokesIdx>& element,
                                            Dune::index_constant<darcyIdx> domainJ) const
     {
-        const auto eIdx = this->problem(domainI).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(domainI).gridGeometry().elementMapper().index(element);
         if(stokesCellCenterCouplingStencils_.count(eIdx))
             return stokesCellCenterCouplingStencils_.at(eIdx);
         else
@@ -444,7 +444,7 @@ public:
                                            const Element<darcyIdx>& element,
                                            Dune::index_constant<stokesCellCenterIdx> domainJ) const
     {
-        const auto eIdx = this->problem(domainI).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(domainI).gridGeometry().elementMapper().index(element);
         if(darcyToStokesCellCenterCouplingStencils_.count(eIdx))
             return darcyToStokesCellCenterCouplingStencils_.at(eIdx);
         else
@@ -459,7 +459,7 @@ public:
                                            const Element<darcyIdx>& element,
                                            Dune::index_constant<stokesFaceIdx> domainJ) const
     {
-        const auto eIdx = this->problem(domainI).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(domainI).gridGeometry().elementMapper().index(element);
         if (darcyToStokesFaceCouplingStencils_.count(eIdx))
             return darcyToStokesFaceCouplingStencils_.at(eIdx);
         else
diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh b/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh
index 92196c501a9aa3b1fe4969575909824319563675..423e1f2e9fe54e6e078907d6be0ed2e1c552de25 100644
--- a/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh
+++ b/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh
@@ -75,10 +75,10 @@ private:
     using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
     using CouplingManager = GetPropType<StokesTypeTag, Properties::CouplingManager>;
 
-    static_assert(GetPropType<SubDomainTypeTag<stokesIdx>, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::staggered,
+    static_assert(GetPropType<SubDomainTypeTag<stokesIdx>, Properties::GridGeometry>::discMethod == DiscretizationMethod::staggered,
                   "The free flow domain must use the staggered discretization");
 
-    static_assert(GetPropType<SubDomainTypeTag<darcyIdx>, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::cctpfa,
+    static_assert(GetPropType<SubDomainTypeTag<darcyIdx>, Properties::GridGeometry>::discMethod == DiscretizationMethod::cctpfa,
                   "The Darcy domain must use the CCTpfa discretization");
 public:
 
@@ -99,8 +99,8 @@ public:
         const auto& stokesProblem = couplingManager_.problem(stokesIdx);
         const auto& darcyProblem = couplingManager_.problem(darcyIdx);
 
-        const auto& stokesFvGridGeometry = stokesProblem.fvGridGeometry();
-        const auto& darcyFvGridGeometry = darcyProblem.fvGridGeometry();
+        const auto& stokesFvGridGeometry = stokesProblem.gridGeometry();
+        const auto& darcyFvGridGeometry = darcyProblem.gridGeometry();
 
         isCoupledDarcyScvf_.resize(darcyFvGridGeometry.numScvf(), false);
 
diff --git a/dumux/multidomain/couplingmanager.hh b/dumux/multidomain/couplingmanager.hh
index 2d02af94030a04733c63c13db054087ce9310ebb..b1fbbb629653c319ee4c3ab836b4586e279691d8 100644
--- a/dumux/multidomain/couplingmanager.hh
+++ b/dumux/multidomain/couplingmanager.hh
@@ -46,7 +46,7 @@ class CouplingManager
 {
     template<std::size_t id> using SubDomainTypeTag = typename Traits::template SubDomain<id>::TypeTag;
     template<std::size_t id> using PrimaryVariables = GetPropType<SubDomainTypeTag<id>, Properties::PrimaryVariables>;
-    template<std::size_t id> using GridView = typename GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>::GridView;
+    template<std::size_t id> using GridView = typename GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>::GridView;
     template<std::size_t id> using Element = typename GridView<id>::template Codim<0>::Entity;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
     template<std::size_t id> using ProblemWeakPtr = std::weak_ptr<const Problem<id>>;
diff --git a/dumux/multidomain/embedded/couplingmanager1d3d.hh b/dumux/multidomain/embedded/couplingmanager1d3d.hh
index bbbf7ea31da3c89092e4552e189736b28858c101..0c16d200ed23482b83e97e4dcf047ed55b62f6c8 100644
--- a/dumux/multidomain/embedded/couplingmanager1d3d.hh
+++ b/dumux/multidomain/embedded/couplingmanager1d3d.hh
@@ -53,7 +53,7 @@ struct CircleAveragePointSourceTraits
 {
 private:
     template<std::size_t i> using SubDomainTypeTag = typename MDTraits::template SubDomain<i>::TypeTag;
-    template<std::size_t i> using FVGridGeometry = GetPropType<SubDomainTypeTag<i>, Properties::FVGridGeometry>;
+    template<std::size_t i> using FVGridGeometry = GetPropType<SubDomainTypeTag<i>, Properties::GridGeometry>;
     template<std::size_t i> using NumEqVector = GetPropType<SubDomainTypeTag<i>, Properties::NumEqVector>;
 public:
     //! export the point source type for domain i
@@ -100,7 +100,7 @@ class EmbeddedCouplingManager1d3d<MDTraits, EmbeddedCouplingMode::line>
     // the sub domain type aliases
     template<std::size_t id> using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using GridView = typename FVGridGeometry<id>::GridView;
     template<std::size_t id> using Element = typename GridView<id>::template Codim<0>::Entity;
 
@@ -129,14 +129,14 @@ public:
             // all inside elements are identical...
             const auto& inside = is.inside(0);
             const auto intersectionGeometry = is.geometry();
-            const std::size_t lowDimElementIdx = this->problem(lowDimIdx).fvGridGeometry().elementMapper().index(inside);
+            const std::size_t lowDimElementIdx = this->problem(lowDimIdx).gridGeometry().elementMapper().index(inside);
 
             // compute the volume the low-dim domain occupies in the bulk domain if it were full-dimensional
             const auto radius = this->problem(lowDimIdx).spatialParams().radius(lowDimElementIdx);
             for (std::size_t outsideIdx = 0; outsideIdx < is.neighbor(0); ++outsideIdx)
             {
                 const auto& outside = is.outside(outsideIdx);
-                const std::size_t bulkElementIdx = this->problem(bulkIdx).fvGridGeometry().elementMapper().index(outside);
+                const std::size_t bulkElementIdx = this->problem(bulkIdx).gridGeometry().elementMapper().index(outside);
                 lowDimVolumeInBulkElement_[bulkElementIdx] += intersectionGeometry.volume()*M_PI*radius*radius;
             }
         }
@@ -158,7 +158,7 @@ public:
     // For one-dimensional low dim domain we assume radial tubes
     Scalar lowDimVolume(const Element<bulkIdx>& element) const
     {
-        const auto eIdx = this->problem(bulkIdx).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(bulkIdx).gridGeometry().elementMapper().index(element);
         return lowDimVolumeInBulkElement_[eIdx];
     }
 
@@ -200,7 +200,7 @@ class EmbeddedCouplingManager1d3d<MDTraits, EmbeddedCouplingMode::average>
     // the sub domain type aliases
     template<std::size_t id> using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using GridView = typename FVGridGeometry<id>::GridView;
     template<std::size_t id> using Element = typename GridView<id>::template Codim<0>::Entity;
 
@@ -271,7 +271,7 @@ public:
     void computePointSourceData(std::size_t order = 1, bool verbose = false)
     {
         // Initialize the bulk bounding box tree
-        const auto& bulkTree = this->problem(bulkIdx).fvGridGeometry().boundingBoxTree();
+        const auto& bulkTree = this->problem(bulkIdx).gridGeometry().boundingBoxTree();
 
         // initilize the maps
         // do some logging and profiling
@@ -295,7 +295,7 @@ public:
             const auto lowDimGeometry = lowDimElement.geometry();
             const auto& quad = Dune::QuadratureRules<Scalar, lowDimDim>::rule(lowDimGeometry.type(), order);
 
-            const auto lowDimElementIdx = lowDimProblem.fvGridGeometry().elementMapper().index(lowDimElement);
+            const auto lowDimElementIdx = lowDimProblem.gridGeometry().elementMapper().index(lowDimElement);
 
             // apply the Gaussian quadrature rule and define point sources at each quadrature point
             // note that the approximation is not optimal if
@@ -347,12 +347,12 @@ public:
                     {
                         if (!static_cast<bool>(circleCornerIndices.count(bulkElementIdx)))
                         {
-                            const auto bulkElement = this->problem(bulkIdx).fvGridGeometry().element(bulkElementIdx);
+                            const auto bulkElement = this->problem(bulkIdx).gridGeometry().element(bulkElementIdx);
                             circleCornerIndices[bulkElementIdx] = this->vertexIndices(bulkIdx, bulkElementIdx);
 
                             // evaluate shape functions at the integration point
                             const auto bulkGeometry = bulkElement.geometry();
-                            this->getShapeValues(bulkIdx, this->problem(bulkIdx).fvGridGeometry(), bulkGeometry, circlePoints[k], circleShapeValues[bulkElementIdx]);
+                            this->getShapeValues(bulkIdx, this->problem(bulkIdx).gridGeometry(), bulkGeometry, circlePoints[k], circleShapeValues[bulkElementIdx]);
                         }
                     }
                 }
@@ -393,7 +393,7 @@ public:
                     if (isBox<lowDimIdx>())
                     {
                         ShapeValues shapeValues;
-                        this->getShapeValues(lowDimIdx, this->problem(lowDimIdx).fvGridGeometry(), lowDimGeometry, globalPos, shapeValues);
+                        this->getShapeValues(lowDimIdx, this->problem(lowDimIdx).gridGeometry(), lowDimGeometry, globalPos, shapeValues);
                         psData.addLowDimInterpolation(shapeValues, this->vertexIndices(lowDimIdx, lowDimElementIdx), lowDimElementIdx);
                     }
                     else
@@ -406,9 +406,9 @@ public:
                     {
                         psData.addCircleInterpolation(circleCornerIndices, circleShapeValues, circleIpWeight, circleStencil);
 
-                        const auto bulkGeometry = this->problem(bulkIdx).fvGridGeometry().element(bulkElementIdx).geometry();
+                        const auto bulkGeometry = this->problem(bulkIdx).gridGeometry().element(bulkElementIdx).geometry();
                         ShapeValues shapeValues;
-                        this->getShapeValues(bulkIdx, this->problem(bulkIdx).fvGridGeometry(), bulkGeometry, globalPos, shapeValues);
+                        this->getShapeValues(bulkIdx, this->problem(bulkIdx).gridGeometry(), bulkGeometry, globalPos, shapeValues);
                         psData.addBulkInterpolation(shapeValues, this->vertexIndices(bulkIdx, bulkElementIdx), bulkElementIdx);
                     }
                     else
@@ -502,14 +502,14 @@ public:
             // all inside elements are identical...
             const auto& inside = is.inside(0);
             const auto intersectionGeometry = is.geometry();
-            const std::size_t lowDimElementIdx = this->problem(lowDimIdx).fvGridGeometry().elementMapper().index(inside);
+            const std::size_t lowDimElementIdx = this->problem(lowDimIdx).gridGeometry().elementMapper().index(inside);
 
             // compute the volume the low-dim domain occupies in the bulk domain if it were full-dimensional
             const auto radius = this->problem(lowDimIdx).spatialParams().radius(lowDimElementIdx);
             for (std::size_t outsideIdx = 0; outsideIdx < is.neighbor(0); ++outsideIdx)
             {
                 const auto& outside = is.outside(outsideIdx);
-                const std::size_t bulkElementIdx = this->problem(bulkIdx).fvGridGeometry().elementMapper().index(outside);
+                const std::size_t bulkElementIdx = this->problem(bulkIdx).gridGeometry().elementMapper().index(outside);
                 lowDimVolumeInBulkElement_[bulkElementIdx] += intersectionGeometry.volume()*M_PI*radius*radius;
             }
         }
@@ -531,7 +531,7 @@ public:
     // For one-dimensional low dim domain we assume radial tubes
     Scalar lowDimVolume(const Element<bulkIdx>& element) const
     {
-        const auto eIdx = this->problem(bulkIdx).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(bulkIdx).gridGeometry().elementMapper().index(element);
         return lowDimVolumeInBulkElement_[eIdx];
     }
 
@@ -577,7 +577,7 @@ class EmbeddedCouplingManager1d3d<MDTraits, EmbeddedCouplingMode::cylindersource
     // the sub domain type aliases
     template<std::size_t id> using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using GridView = typename FVGridGeometry<id>::GridView;
     template<std::size_t id> using Element = typename GridView<id>::template Codim<0>::Entity;
 
@@ -617,7 +617,7 @@ public:
     void computePointSourceData(std::size_t order = 1, bool verbose = false)
     {
         // Initialize the bulk bounding box tree
-        const auto& bulkTree = this->problem(bulkIdx).fvGridGeometry().boundingBoxTree();
+        const auto& bulkTree = this->problem(bulkIdx).gridGeometry().boundingBoxTree();
 
         // initilize the maps
         // do some logging and profiling
@@ -640,7 +640,7 @@ public:
             const auto lowDimGeometry = lowDimElement.geometry();
             const auto& quad = Dune::QuadratureRules<Scalar, lowDimDim>::rule(lowDimGeometry.type(), order);
 
-            const auto lowDimElementIdx = lowDimProblem.fvGridGeometry().elementMapper().index(lowDimElement);
+            const auto lowDimElementIdx = lowDimProblem.gridGeometry().elementMapper().index(lowDimElement);
 
             // apply the Gaussian quadrature rule and define point sources at each quadrature point
             // note that the approximation is not optimal if
@@ -697,7 +697,7 @@ public:
                         {
                             using ShapeValues = std::vector<Dune::FieldVector<Scalar, 1> >;
                             ShapeValues shapeValues;
-                            this->getShapeValues(lowDimIdx, this->problem(lowDimIdx).fvGridGeometry(), lowDimGeometry, globalPos, shapeValues);
+                            this->getShapeValues(lowDimIdx, this->problem(lowDimIdx).gridGeometry(), lowDimGeometry, globalPos, shapeValues);
                             psData.addLowDimInterpolation(shapeValues, this->vertexIndices(lowDimIdx, lowDimElementIdx), lowDimElementIdx);
                         }
                         else
@@ -709,9 +709,9 @@ public:
                         if (isBox<bulkIdx>())
                         {
                             using ShapeValues = std::vector<Dune::FieldVector<Scalar, 1> >;
-                            const auto bulkGeometry = this->problem(bulkIdx).fvGridGeometry().element(bulkElementIdx).geometry();
+                            const auto bulkGeometry = this->problem(bulkIdx).gridGeometry().element(bulkElementIdx).geometry();
                             ShapeValues shapeValues;
-                            this->getShapeValues(bulkIdx, this->problem(bulkIdx).fvGridGeometry(), bulkGeometry, circlePos, shapeValues);
+                            this->getShapeValues(bulkIdx, this->problem(bulkIdx).gridGeometry(), bulkGeometry, circlePos, shapeValues);
                             psData.addBulkInterpolation(shapeValues, this->vertexIndices(bulkIdx, bulkElementIdx), bulkElementIdx);
                         }
                         else
@@ -780,14 +780,14 @@ public:
             // all inside elements are identical...
             const auto& inside = is.inside(0);
             const auto intersectionGeometry = is.geometry();
-            const std::size_t lowDimElementIdx = this->problem(lowDimIdx).fvGridGeometry().elementMapper().index(inside);
+            const std::size_t lowDimElementIdx = this->problem(lowDimIdx).gridGeometry().elementMapper().index(inside);
 
             // compute the volume the low-dim domain occupies in the bulk domain if it were full-dimensional
             const auto radius = this->problem(lowDimIdx).spatialParams().radius(lowDimElementIdx);
             for (std::size_t outsideIdx = 0; outsideIdx < is.neighbor(0); ++outsideIdx)
             {
                 const auto& outside = is.outside(outsideIdx);
-                const std::size_t bulkElementIdx = this->problem(bulkIdx).fvGridGeometry().elementMapper().index(outside);
+                const std::size_t bulkElementIdx = this->problem(bulkIdx).gridGeometry().elementMapper().index(outside);
                 lowDimVolumeInBulkElement_[bulkElementIdx] += intersectionGeometry.volume()*M_PI*radius*radius;
             }
         }
@@ -809,7 +809,7 @@ public:
     // For one-dimensional low dim domain we assume radial tubes
     Scalar lowDimVolume(const Element<bulkIdx>& element) const
     {
-        const auto eIdx = this->problem(bulkIdx).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(bulkIdx).gridGeometry().elementMapper().index(element);
         return lowDimVolumeInBulkElement_[eIdx];
     }
 
@@ -853,7 +853,7 @@ class EmbeddedCouplingManager1d3d<MDTraits, EmbeddedCouplingMode::kernel>
     // the sub domain type aliases
     template<std::size_t id> using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using GridView = typename FVGridGeometry<id>::GridView;
     template<std::size_t id> using Element = typename GridView<id>::template Codim<0>::Entity;
 
@@ -937,8 +937,8 @@ public:
         this->preComputeVertexIndices(bulkIdx);
         this->preComputeVertexIndices(lowDimIdx);
 
-        const auto& bulkFvGridGeometry = this->problem(bulkIdx).fvGridGeometry();
-        const auto& lowDimFvGridGeometry = this->problem(lowDimIdx).fvGridGeometry();
+        const auto& bulkFvGridGeometry = this->problem(bulkIdx).gridGeometry();
+        const auto& lowDimFvGridGeometry = this->problem(lowDimIdx).gridGeometry();
 
         bulkSourceIds_.resize(this->gridView(bulkIdx).size(0));
         bulkSourceWeights_.resize(this->gridView(bulkIdx).size(0));
@@ -987,9 +987,9 @@ public:
                     if (isBox<lowDimIdx>())
                     {
                         using ShapeValues = std::vector<Dune::FieldVector<Scalar, 1> >;
-                        const auto lowDimGeometry = this->problem(lowDimIdx).fvGridGeometry().element(lowDimElementIdx).geometry();
+                        const auto lowDimGeometry = this->problem(lowDimIdx).gridGeometry().element(lowDimElementIdx).geometry();
                         ShapeValues shapeValues;
-                        this->getShapeValues(lowDimIdx, this->problem(lowDimIdx).fvGridGeometry(), lowDimGeometry, globalPos, shapeValues);
+                        this->getShapeValues(lowDimIdx, this->problem(lowDimIdx).gridGeometry(), lowDimGeometry, globalPos, shapeValues);
                         psData.addLowDimInterpolation(shapeValues, this->vertexIndices(lowDimIdx, lowDimElementIdx), lowDimElementIdx);
                     }
                     else
@@ -1001,9 +1001,9 @@ public:
                     if (isBox<bulkIdx>())
                     {
                         using ShapeValues = std::vector<Dune::FieldVector<Scalar, 1> >;
-                        const auto bulkGeometry = this->problem(bulkIdx).fvGridGeometry().element(bulkElementIdx).geometry();
+                        const auto bulkGeometry = this->problem(bulkIdx).gridGeometry().element(bulkElementIdx).geometry();
                         ShapeValues shapeValues;
-                        this->getShapeValues(bulkIdx, this->problem(bulkIdx).fvGridGeometry(), bulkGeometry, globalPos, shapeValues);
+                        this->getShapeValues(bulkIdx, this->problem(bulkIdx).gridGeometry(), bulkGeometry, globalPos, shapeValues);
                         psData.addBulkInterpolation(shapeValues, this->vertexIndices(bulkIdx, bulkElementIdx), bulkElementIdx);
                     }
                     else
@@ -1085,14 +1085,14 @@ public:
             // all inside elements are identical...
             const auto& inside = is.inside(0);
             const auto intersectionGeometry = is.geometry();
-            const std::size_t lowDimElementIdx = this->problem(lowDimIdx).fvGridGeometry().elementMapper().index(inside);
+            const std::size_t lowDimElementIdx = this->problem(lowDimIdx).gridGeometry().elementMapper().index(inside);
 
             // compute the volume the low-dim domain occupies in the bulk domain if it were full-dimensional
             const auto radius = this->problem(lowDimIdx).spatialParams().radius(lowDimElementIdx);
             for (std::size_t outsideIdx = 0; outsideIdx < is.neighbor(0); ++outsideIdx)
             {
                 const auto& outside = is.outside(outsideIdx);
-                const std::size_t bulkElementIdx = this->problem(bulkIdx).fvGridGeometry().elementMapper().index(outside);
+                const std::size_t bulkElementIdx = this->problem(bulkIdx).gridGeometry().elementMapper().index(outside);
                 lowDimVolumeInBulkElement_[bulkElementIdx] += intersectionGeometry.volume()*M_PI*radius*radius;
             }
         }
@@ -1114,7 +1114,7 @@ public:
     // For one-dimensional low dim domain we assume radial tubes
     Scalar lowDimVolume(const Element<bulkIdx>& element) const
     {
-        const auto eIdx = this->problem(bulkIdx).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(bulkIdx).gridGeometry().elementMapper().index(element);
         return lowDimVolumeInBulkElement_[eIdx];
     }
 
@@ -1162,7 +1162,7 @@ private:
 
             if (weight > 1e-13)
             {
-                const auto bulkElementIdx = this->problem(bulkIdx).fvGridGeometry().elementMapper().index(element);
+                const auto bulkElementIdx = this->problem(bulkIdx).gridGeometry().elementMapper().index(element);
                 bulkSourceIds_[bulkElementIdx].push_back(id);
                 bulkSourceWeights_[bulkElementIdx].push_back(weight*pointSourceWeight);
                 mask[bulkElementIdx] = true;
diff --git a/dumux/multidomain/embedded/couplingmanagerbase.hh b/dumux/multidomain/embedded/couplingmanagerbase.hh
index 5fc41635d9b308e7bdef8993d7843226704bfc5a..b50a5e53711e50fe6302cb15d2278443b8dbe397 100644
--- a/dumux/multidomain/embedded/couplingmanagerbase.hh
+++ b/dumux/multidomain/embedded/couplingmanagerbase.hh
@@ -51,7 +51,7 @@ struct DefaultPointSourceTraits
 {
 private:
     template<std::size_t i> using SubDomainTypeTag = typename MDTraits::template SubDomain<i>::TypeTag;
-    template<std::size_t i> using FVGridGeometry = GetPropType<SubDomainTypeTag<i>, Properties::FVGridGeometry>;
+    template<std::size_t i> using FVGridGeometry = GetPropType<SubDomainTypeTag<i>, Properties::GridGeometry>;
     template<std::size_t i> using NumEqVector = GetPropType<SubDomainTypeTag<i>, Properties::NumEqVector>;
 public:
     //! export the point source type for domain i
@@ -87,7 +87,7 @@ class EmbeddedCouplingManagerBase
     template<std::size_t id> using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
     template<std::size_t id> using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
     template<std::size_t id> using PrimaryVariables = GetPropType<SubDomainTypeTag<id>, Properties::PrimaryVariables>;
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using GridView = typename FVGridGeometry<id>::GridView;
     template<std::size_t id> using ElementMapper = typename FVGridGeometry<id>::ElementMapper;
     template<std::size_t id> using Element = typename GridView<id>::template Codim<0>::Entity;
@@ -176,7 +176,7 @@ public:
     {
         static_assert(i != j, "A domain cannot be coupled to itself!");
 
-        const auto eIdx = this->problem(domainI).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(domainI).gridGeometry().elementMapper().index(element);
         if (couplingStencils(domainI).count(eIdx))
             return couplingStencils(domainI).at(eIdx);
         else
@@ -246,8 +246,8 @@ public:
         this->preComputeVertexIndices(bulkIdx);
         this->preComputeVertexIndices(lowDimIdx);
 
-        const auto& bulkFvGridGeometry = this->problem(bulkIdx).fvGridGeometry();
-        const auto& lowDimFvGridGeometry = this->problem(lowDimIdx).fvGridGeometry();
+        const auto& bulkFvGridGeometry = this->problem(bulkIdx).gridGeometry();
+        const auto& lowDimFvGridGeometry = this->problem(lowDimIdx).gridGeometry();
 
         // intersect the bounding box trees
         glueGrids();
@@ -291,9 +291,9 @@ public:
                     if (isBox<lowDimIdx>())
                     {
                         using ShapeValues = std::vector<Dune::FieldVector<Scalar, 1> >;
-                        const auto lowDimGeometry = this->problem(lowDimIdx).fvGridGeometry().element(lowDimElementIdx).geometry();
+                        const auto lowDimGeometry = this->problem(lowDimIdx).gridGeometry().element(lowDimElementIdx).geometry();
                         ShapeValues shapeValues;
-                        this->getShapeValues(lowDimIdx, this->problem(lowDimIdx).fvGridGeometry(), lowDimGeometry, globalPos, shapeValues);
+                        this->getShapeValues(lowDimIdx, this->problem(lowDimIdx).gridGeometry(), lowDimGeometry, globalPos, shapeValues);
                         psData.addLowDimInterpolation(shapeValues, this->vertexIndices(lowDimIdx, lowDimElementIdx), lowDimElementIdx);
                     }
                     else
@@ -305,9 +305,9 @@ public:
                     if (isBox<bulkIdx>())
                     {
                         using ShapeValues = std::vector<Dune::FieldVector<Scalar, 1> >;
-                        const auto bulkGeometry = this->problem(bulkIdx).fvGridGeometry().element(bulkElementIdx).geometry();
+                        const auto bulkGeometry = this->problem(bulkIdx).gridGeometry().element(bulkElementIdx).geometry();
                         ShapeValues shapeValues;
-                        this->getShapeValues(bulkIdx, this->problem(bulkIdx).fvGridGeometry(), bulkGeometry, globalPos, shapeValues);
+                        this->getShapeValues(bulkIdx, this->problem(bulkIdx).gridGeometry(), bulkGeometry, globalPos, shapeValues);
                         psData.addBulkInterpolation(shapeValues, this->vertexIndices(bulkIdx, bulkElementIdx), bulkElementIdx);
                     }
                     else
@@ -377,7 +377,7 @@ public:
     //! Return a reference to the bulk problem
     template<std::size_t id>
     const GridView<id>& gridView(Dune::index_constant<id> domainIdx) const
-    { return this->problem(domainIdx).fvGridGeometry().gridView(); }
+    { return this->problem(domainIdx).gridGeometry().gridView(); }
 
     //! Return data for a bulk point source with the identifier id
     PrimaryVariables<bulkIdx> bulkPriVars(std::size_t id) const
@@ -436,10 +436,10 @@ protected:
             for (const auto& element : elements(gridView(domainIdx)))
             {
                 constexpr int dim = GridView<domainIdx>::dimension;
-                const auto eIdx = this->problem(domainIdx).fvGridGeometry().elementMapper().index(element);
+                const auto eIdx = this->problem(domainIdx).gridGeometry().elementMapper().index(element);
                 this->vertexIndices(domainIdx, eIdx).resize(element.subEntities(dim));
                 for (int i = 0; i < element.subEntities(dim); ++i)
-                    this->vertexIndices(domainIdx, eIdx)[i] = this->problem(domainIdx).fvGridGeometry().vertexMapper().subIndex(element, i, dim);
+                    this->vertexIndices(domainIdx, eIdx)[i] = this->problem(domainIdx).gridGeometry().vertexMapper().subIndex(element, i, dim);
             }
         }
     }
@@ -449,7 +449,7 @@ protected:
     void getShapeValues(Dune::index_constant<i> domainI, const FVGG& fvGridGeometry, const Geometry& geo, const GlobalPosition& globalPos, ShapeValues& shapeValues)
     {
         const auto ipLocal = geo.local(globalPos);
-        const auto& localBasis = this->problem(domainI).fvGridGeometry().feCache().get(geo.type()).localBasis();
+        const auto& localBasis = this->problem(domainI).gridGeometry().feCache().get(geo.type()).localBasis();
         localBasis.evaluateFunction(ipLocal, shapeValues);
     }
 
@@ -478,8 +478,8 @@ protected:
     //! compute the intersections between the two grids
     void glueGrids()
     {
-        const auto& bulkFvGridGeometry = this->problem(bulkIdx).fvGridGeometry();
-        const auto& lowDimFvGridGeometry = this->problem(lowDimIdx).fvGridGeometry();
+        const auto& bulkFvGridGeometry = this->problem(bulkIdx).gridGeometry();
+        const auto& lowDimFvGridGeometry = this->problem(lowDimIdx).gridGeometry();
 
         // intersect the bounding box trees
         glue_->build(bulkFvGridGeometry.boundingBoxTree(), lowDimFvGridGeometry.boundingBoxTree());
diff --git a/dumux/multidomain/embedded/extendedsourcestencil.hh b/dumux/multidomain/embedded/extendedsourcestencil.hh
index af624b79e95e6cd16bf1f4ef3fa088fe36e8b323..7e90408154abb0de3e25e738f7b0521571a8d7d6 100644
--- a/dumux/multidomain/embedded/extendedsourcestencil.hh
+++ b/dumux/multidomain/embedded/extendedsourcestencil.hh
@@ -49,7 +49,7 @@ class ExtendedSourceStencil
     using Scalar = typename MDTraits::Scalar;
 
     template<std::size_t id> using SubDomainTypeTag = typename MDTraits::template SubDomain<id>::TypeTag;
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using GridView = typename FVGridGeometry<id>::GridView;
     template<std::size_t id> using Element = typename GridView<id>::template Codim<0>::Entity;
 
@@ -78,11 +78,11 @@ public:
             {
                 for (int i = 0; i < element.subEntities(GridView<domainI>::dimension); ++i)
                     for (const auto globalJ : dofs)
-                        pattern.add(couplingManager.problem(domainI).fvGridGeometry().vertexMapper().subIndex(element, i, GridView<domainI>::dimension), globalJ);
+                        pattern.add(couplingManager.problem(domainI).gridGeometry().vertexMapper().subIndex(element, i, GridView<domainI>::dimension), globalJ);
             }
             else
             {
-                const auto globalI = couplingManager.problem(domainI).fvGridGeometry().elementMapper().index(element);
+                const auto globalI = couplingManager.problem(domainI).gridGeometry().elementMapper().index(element);
                 for (const auto globalJ : dofs)
                     pattern.add(globalI, globalJ);
             }
@@ -167,7 +167,7 @@ private:
     //! the extended source stencil for the bulk domain due to the source average
     const std::vector<std::size_t>& extendedSourceStencil_(const CouplingManager& couplingManager, Dune::index_constant<0> bulkDomain, const Element<0>& bulkElement) const
     {
-        const auto bulkElementIdx = couplingManager.problem(bulkIdx).fvGridGeometry().elementMapper().index(bulkElement);
+        const auto bulkElementIdx = couplingManager.problem(bulkIdx).gridGeometry().elementMapper().index(bulkElement);
         if (sourceStencils_.count(bulkElementIdx))
             return sourceStencils_.at(bulkElementIdx);
         else
diff --git a/dumux/multidomain/embedded/pointsourcedata.hh b/dumux/multidomain/embedded/pointsourcedata.hh
index e25d02800634c4ebde92d35bc2851bd179a7d93c..ef7689e7cf7bdf109b5f139067becc0f63b7674e 100644
--- a/dumux/multidomain/embedded/pointsourcedata.hh
+++ b/dumux/multidomain/embedded/pointsourcedata.hh
@@ -55,8 +55,8 @@ class PointSourceData
     using LowDimSolutionVector = GetPropType<LowDimTypeTag, Properties::SolutionVector>;
 
     enum {
-        bulkIsBox = GetPropType<BulkTypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box,
-        lowDimIsBox = GetPropType<LowDimTypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box
+        bulkIsBox = GetPropType<BulkTypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box,
+        lowDimIsBox = GetPropType<LowDimTypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box
     };
 
 public:
@@ -162,8 +162,8 @@ class PointSourceDataCircleAverage : public PointSourceData<MDTraits>
     using LowDimSolutionVector = GetPropType<LowDimTypeTag, Properties::SolutionVector>;
 
     enum {
-        bulkIsBox = GetPropType<BulkTypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box,
-        lowDimIsBox = GetPropType<LowDimTypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box
+        bulkIsBox = GetPropType<BulkTypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box,
+        lowDimIsBox = GetPropType<LowDimTypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box
     };
 
 public:
diff --git a/dumux/multidomain/facet/box/couplingmanager.hh b/dumux/multidomain/facet/box/couplingmanager.hh
index 19956ab69093d0560556af5e7ce745be3e26762b..8022db17930359557fae355c6babfd8887f61561 100644
--- a/dumux/multidomain/facet/box/couplingmanager.hh
+++ b/dumux/multidomain/facet/box/couplingmanager.hh
@@ -68,7 +68,7 @@ class FacetCouplingManager<MDTraits, CouplingMapper, bulkDomainId, lowDimDomainI
     template<std::size_t id> using ElementBoundaryTypes = GetPropType<SubDomainTypeTag<id>, Properties::ElementBoundaryTypes>;
     template<std::size_t id> using LocalResidual = GetPropType<SubDomainTypeTag<id>, Properties::LocalResidual>;
 
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using FVElementGeometry = typename FVGridGeometry<id>::LocalView;
     template<std::size_t id> using SubControlVolume = typename FVGridGeometry<id>::SubControlVolume;
     template<std::size_t id> using SubControlVolumeFace = typename FVGridGeometry<id>::SubControlVolumeFace;
@@ -204,7 +204,7 @@ public:
 
         // determine all bulk elements that couple to low dim elements
         const auto& bulkMap = couplingMapperPtr_->couplingMap(bulkGridId, lowDimGridId);
-        bulkElemIsCoupled_.assign(bulkProblem->fvGridGeometry().gridView().size(0), false);
+        bulkElemIsCoupled_.assign(bulkProblem->gridGeometry().gridView().size(0), false);
         std::for_each( bulkMap.begin(),
                        bulkMap.end(),
                        [&] (const auto& entry) { bulkElemIsCoupled_[entry.first] = true; });
@@ -217,7 +217,7 @@ public:
                                                        const Element<bulkId>& element,
                                                        LowDimIdType domainJ) const
     {
-        const auto eIdx = this->problem(domainI).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(domainI).gridGeometry().elementMapper().index(element);
 
         if (bulkElemIsCoupled_[eIdx])
         {
@@ -237,7 +237,7 @@ public:
                                                          const Element<lowDimId>& element,
                                                          BulkIdType domainJ) const
     {
-        const auto eIdx = this->problem(lowDimId).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(lowDimId).gridGeometry().elementMapper().index(element);
 
         const auto& map = couplingMapperPtr_->couplingMap(lowDimGridId, bulkGridId);
         auto it = map.find(eIdx);
@@ -267,7 +267,7 @@ public:
     const VolumeVariables<lowDimId>& getLowDimVolVars(const Element<bulkId>& element,
                                                       const SubControlVolumeFace<bulkId>& scvf) const
     {
-        const auto eIdx = this->problem(bulkId).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(bulkId).gridGeometry().elementMapper().index(element);
         assert(bulkContext_.isSet);
         assert(bulkElemIsCoupled_[eIdx]);
 
@@ -306,7 +306,7 @@ public:
                                              const SubControlVolumeFace<bulkId>& scvf) const
     {
         const auto lowDimElemIdx = getLowDimElementIndex(element, scvf);
-        return this->problem(lowDimId).fvGridGeometry().element(lowDimElemIdx);
+        return this->problem(lowDimId).gridGeometry().element(lowDimElemIdx);
     }
 
     /*!
@@ -315,7 +315,7 @@ public:
     const GridIndexType<lowDimId> getLowDimElementIndex(const Element<bulkId>& element,
                                                         const SubControlVolumeFace<bulkId>& scvf) const
     {
-        const auto eIdx = this->problem(bulkId).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(bulkId).gridGeometry().elementMapper().index(element);
 
         assert(bulkElemIsCoupled_[eIdx]);
         const auto& map = couplingMapperPtr_->couplingMap(bulkGridId, lowDimGridId);
@@ -353,7 +353,7 @@ public:
         assert(bulkContext_.isSet);
         assert(bulkElemIsCoupled_[bulkContext_.elementIdx]);
         assert(map.find(bulkContext_.elementIdx) != map.end());
-        assert(bulkContext_.elementIdx == this->problem(bulkId).fvGridGeometry().elementMapper().index(bulkLocalAssembler.element()));
+        assert(bulkContext_.elementIdx == this->problem(bulkId).gridGeometry().elementMapper().index(bulkLocalAssembler.element()));
 
         const auto& fvGeometry = bulkLocalAssembler.fvGeometry();
         typename LocalResidual<bulkId>::ElementResidualVector res(fvGeometry.numScv());
@@ -392,7 +392,7 @@ public:
     {
         // make sure this is called for the element for which the context was set
         assert(lowDimContext_.isSet);
-        assert(this->problem(lowDimId).fvGridGeometry().elementMapper().index(lowDimLocalAssembler.element()) == lowDimContext_.elementIdx);
+        assert(this->problem(lowDimId).gridGeometry().elementMapper().index(lowDimLocalAssembler.element()) == lowDimContext_.elementIdx);
 
         // evaluate sources for all scvs in lower-dimensional element
         typename LocalResidual<lowDimId>::ElementResidualVector res(lowDimLocalAssembler.fvGeometry().numScv());
@@ -414,7 +414,7 @@ public:
                                               const SubControlVolume<lowDimId>& scv)
     {
         // make sure the this is called for the element of the context
-        assert(this->problem(lowDimId).fvGridGeometry().elementMapper().index(element) == lowDimContext_.elementIdx);
+        assert(this->problem(lowDimId).gridGeometry().elementMapper().index(element) == lowDimContext_.elementIdx);
 
         NumEqVector<lowDimId> sources(0.0);
         const auto& map = couplingMapperPtr_->couplingMap(lowDimGridId, bulkGridId);
@@ -434,7 +434,7 @@ public:
             const auto& scvfList = lowDimUsesBox ? std::vector<GridIndexType<lowDimId>>{ coincidingScvfs[scv.localDofIndex()] }
                                                  : coincidingScvfs;
 
-            sources += evalBulkFluxes_(this->problem(bulkId).fvGridGeometry().element(embedment.first),
+            sources += evalBulkFluxes_(this->problem(bulkId).gridGeometry().element(embedment.first),
                                        *(lowDimContext_.bulkFvGeometries[i]),
                                        *(lowDimContext_.bulkElemVolVars[i]),
                                        lowDimContext_.bulkElemBcTypes[i],
@@ -458,7 +458,7 @@ public:
         bulkContext_.reset();
 
         // set index in context in any case
-        const auto bulkElemIdx = this->problem(bulkId).fvGridGeometry().elementMapper().index(element);
+        const auto bulkElemIdx = this->problem(bulkId).gridGeometry().elementMapper().index(element);
         bulkContext_.elementIdx = bulkElemIdx;
 
         // if element is coupled, actually set the context
@@ -473,14 +473,14 @@ public:
 
             for (const auto lowDimElemIdx : elementStencil)
             {
-                const auto& ldGridGeometry = this->problem(lowDimId).fvGridGeometry();
+                const auto& ldGridGeometry = this->problem(lowDimId).gridGeometry();
 
                 const auto& ldSol = Assembler::isImplicit() ? this->curSol()[lowDimId] : assembler.prevSol()[lowDimId];
                 const auto elemJ = ldGridGeometry.element(lowDimElemIdx);
                 auto fvGeom = localView(ldGridGeometry);
                 fvGeom.bindElement(elemJ);
 
-                auto elemSol = elementSolution(elemJ, ldSol, fvGeom.fvGridGeometry());
+                auto elemSol = elementSolution(elemJ, ldSol, fvGeom.gridGeometry());
                 std::vector<VolumeVariables<lowDimId>> elemVolVars;
 
                 // for tpfa, make only one volume variables object for the element
@@ -525,7 +525,7 @@ public:
         lowDimContext_.reset();
 
         // set index in context in any case
-        const auto lowDimElemIdx = this->problem(lowDimId).fvGridGeometry().elementMapper().index(element);
+        const auto lowDimElemIdx = this->problem(lowDimId).gridGeometry().elementMapper().index(element);
         lowDimContext_.elementIdx = lowDimElemIdx;
 
         const auto& map = couplingMapperPtr_->couplingMap(lowDimGridId, bulkGridId);
@@ -537,7 +537,7 @@ public:
             // first bind the low dim context for the first neighboring bulk element
             // this will set up the lower-dimensional data on this current lowdim element
             // which will be enough to compute the fluxes in all neighboring elements
-            const auto& bulkGridGeom = this->problem(bulkId).fvGridGeometry();
+            const auto& bulkGridGeom = this->problem(bulkId).gridGeometry();
             const auto bulkElem = bulkGridGeom.element(it->second.embedments[0].first);
             bindCouplingContext(bulkId, bulkElem, assembler);
 
@@ -595,7 +595,7 @@ public:
         {
             const auto& map = couplingMapperPtr_->couplingMap(bulkGridId, lowDimGridId);
             const auto& couplingElemStencil = map.find(bulkContext_.elementIdx)->second.couplingElementStencil;
-            const auto& ldGridGeometry = this->problem(lowDimId).fvGridGeometry();
+            const auto& ldGridGeometry = this->problem(lowDimId).gridGeometry();
 
             // find the low-dim elements in coupling stencil, where this dof is contained in
             const auto couplingElements = [&] ()
@@ -631,7 +631,7 @@ public:
 
                 auto& elemVolVars = bulkContext_.lowDimElemVolVars[idxInContext];
                 const auto& fvGeom = bulkContext_.lowDimFvGeometries[idxInContext];
-                auto elemSol = elementSolution(element, this->curSol()[lowDimId], fvGeom.fvGridGeometry());
+                auto elemSol = elementSolution(element, this->curSol()[lowDimId], fvGeom.gridGeometry());
 
                 if (!lowDimUsesBox)
                     elemVolVars[0].update(elemSol, this->problem(lowDimId), element, *scvs(fvGeom).begin());
@@ -684,14 +684,14 @@ public:
         // skip the rest if context is empty
         if (lowDimContext_.isSet)
         {
-            assert(lowDimContext_.elementIdx == this->problem(lowDimId).fvGridGeometry().elementMapper().index(lowDimLocalAssembler.element()));
+            assert(lowDimContext_.elementIdx == this->problem(lowDimId).gridGeometry().elementMapper().index(lowDimLocalAssembler.element()));
 
             const auto& map = couplingMapperPtr_->couplingMap(lowDimGridId, bulkGridId);
             auto it = map.find(lowDimContext_.elementIdx);
 
             assert(it != map.end());
             const auto& embedments = it->second.embedments;
-            const auto& bulkGridGeometry = this->problem(bulkId).fvGridGeometry();
+            const auto& bulkGridGeometry = this->problem(bulkId).gridGeometry();
 
             // TODO more efficient (only one dof update per embedment)
             // update the elem volvars in context of those elements that contain globalJ
@@ -744,7 +744,7 @@ public:
         if (lowDimContext_.isSet)
         {
             assert(bulkContext_.isSet);
-            assert(lowDimContext_.elementIdx == this->problem(lowDimId).fvGridGeometry().elementMapper().index(lowDimLocalAssembler.element()));
+            assert(lowDimContext_.elementIdx == this->problem(lowDimId).gridGeometry().elementMapper().index(lowDimLocalAssembler.element()));
 
             // update the corresponding vol vars in the bulk context
             const auto& bulkMap = couplingMapperPtr_->couplingMap(bulkGridId, lowDimGridId);
@@ -756,7 +756,7 @@ public:
             auto& elemVolVars = bulkContext_.lowDimElemVolVars[idxInContext];
             const auto& fvGeom = bulkContext_.lowDimFvGeometries[idxInContext];
             const auto& element = lowDimLocalAssembler.element();
-            auto elemSol = elementSolution(element, this->curSol()[lowDimId], fvGeom.fvGridGeometry());
+            auto elemSol = elementSolution(element, this->curSol()[lowDimId], fvGeom.gridGeometry());
 
             if (!lowDimUsesBox)
                 elemVolVars[0].update(elemSol, this->problem(lowDimId), element, *scvs(fvGeom).begin());
diff --git a/dumux/multidomain/facet/box/elementboundarytypes.hh b/dumux/multidomain/facet/box/elementboundarytypes.hh
index 9d28d42fd3e5214ee38f4962287f5ea21f98226c..5093d4290a9f9698ef9e8c7bca3903d5e648e233 100644
--- a/dumux/multidomain/facet/box/elementboundarytypes.hh
+++ b/dumux/multidomain/facet/box/elementboundarytypes.hh
@@ -59,7 +59,7 @@ public:
                 const Element &element,
                 const FVElementGeometry &fvGeometry)
     {
-        using FVGridGeometry = typename FVElementGeometry::FVGridGeometry;
+        using FVGridGeometry = typename FVElementGeometry::GridGeometry;
         using GridView = typename FVGridGeometry::GridView;
 
         this->vertexBCTypes_.resize( element.subEntities(GridView::dimension) );
@@ -82,14 +82,14 @@ public:
             };
 
             // We have to have Neumann-type BCs on nodes that touch interior boundaries
-            if (fvGeometry.fvGridGeometry().dofOnInteriorBoundary(scv.dofIndex()))
+            if (fvGeometry.gridGeometry().dofOnInteriorBoundary(scv.dofIndex()))
             {
                 this->vertexBCTypes_[scvIdxLocal].setAllNeumann();
                 updateElemBCInfo(this->vertexBCTypes_[scvIdxLocal]);
             }
 
             // otherwise, let the problem decide
-            else if (fvGeometry.fvGridGeometry().dofOnBoundary(scv.dofIndex()))
+            else if (fvGeometry.gridGeometry().dofOnBoundary(scv.dofIndex()))
             {
                 this->vertexBCTypes_[scvIdxLocal] = problem.boundaryTypes(element, scv);
                 updateElemBCInfo(this->vertexBCTypes_[scvIdxLocal]);
diff --git a/dumux/multidomain/facet/box/fvelementgeometry.hh b/dumux/multidomain/facet/box/fvelementgeometry.hh
index 8f48294153816cda593013730a978100494b5344..2ef80eb54eee499f6896945a4dc06d267179afc8 100644
--- a/dumux/multidomain/facet/box/fvelementgeometry.hh
+++ b/dumux/multidomain/facet/box/fvelementgeometry.hh
@@ -66,22 +66,24 @@ public:
     //! export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    //! export type of finite volume grid geometry
+    using FVGridGeometry [[deprecated("Use more general GridGeometry instead. FVGridGeometry will be removed after 3.1!")]] = GridGeometry;
     //! the maximum number of scvs per element (2^dim for cubes)
     static constexpr std::size_t maxNumElementScvs = (1<<dim);
 
     //! Constructor
-    BoxFacetCouplingFVElementGeometry(const FVGridGeometry& fvGridGeometry)
+    BoxFacetCouplingFVElementGeometry(const GridGeometry& fvGridGeometry)
     : fvGridGeometryPtr_(&fvGridGeometry)
     {}
 
     //! Get a sub control volume with a local scv index
     const SubControlVolume& scv(LocalIndexType scvIdx) const
-    { return fvGridGeometry().scvs(eIdx_)[scvIdx]; }
+    { return gridGeometry().scvs(eIdx_)[scvIdx]; }
 
     //! Get a sub control volume face with a local scvf index
     const SubControlVolumeFace& scvf(LocalIndexType scvfIdx) const
-    { return fvGridGeometry().scvfs(eIdx_)[scvfIdx]; }
+    { return gridGeometry().scvfs(eIdx_)[scvfIdx]; }
 
     //! iterator range for sub control volumes. Iterates over
     //! all scvs of the bound element.
@@ -91,7 +93,7 @@ public:
     friend inline Dune::IteratorRange<typename std::vector<SubControlVolume>::const_iterator>
     scvs(const BoxFacetCouplingFVElementGeometry& fvGeometry)
     {
-        const auto& g = fvGeometry.fvGridGeometry();
+        const auto& g = fvGeometry.gridGeometry();
         using Iter = typename std::vector<SubControlVolume>::const_iterator;
         return Dune::IteratorRange<Iter>(g.scvs(fvGeometry.eIdx_).begin(), g.scvs(fvGeometry.eIdx_).end());
     }
@@ -104,22 +106,22 @@ public:
     friend inline Dune::IteratorRange<typename std::vector<SubControlVolumeFace>::const_iterator>
     scvfs(const BoxFacetCouplingFVElementGeometry& fvGeometry)
     {
-        const auto& g = fvGeometry.fvGridGeometry();
+        const auto& g = fvGeometry.gridGeometry();
         using Iter = typename std::vector<SubControlVolumeFace>::const_iterator;
         return Dune::IteratorRange<Iter>(g.scvfs(fvGeometry.eIdx_).begin(), g.scvfs(fvGeometry.eIdx_).end());
     }
 
     //! Get a local finite element basis
     const FeLocalBasis& feLocalBasis() const
-    { return fvGridGeometry().feCache().get(elemGeometryType_).localBasis(); }
+    { return gridGeometry().feCache().get(elemGeometryType_).localBasis(); }
 
     //! The total number of sub control volumes
     std::size_t numScv() const
-    { return fvGridGeometry().scvs(eIdx_).size(); }
+    { return gridGeometry().scvs(eIdx_).size(); }
 
     //! The total number of sub control volume faces
     std::size_t numScvf() const
-    { return fvGridGeometry().scvfs(eIdx_).size(); }
+    { return gridGeometry().scvfs(eIdx_).size(); }
 
     //! this function is for compatibility reasons with cc methods
     //! The box stencil is always element-local so bind and bindElement
@@ -135,16 +137,21 @@ public:
     void bindElement(const Element& element)
     {
         elemGeometryType_ = element.type();
-        eIdx_ = fvGridGeometry().elementMapper().index(element);
+        eIdx_ = gridGeometry().elementMapper().index(element);
     }
 
     //! The global finite volume geometry we are a restriction of
-    const FVGridGeometry& fvGridGeometry() const
+    [[deprecated("Use more general GridGeometry instead. FVGridGeometry will be removed after 3.1!")]]
+    const GridGeometry& fvGridGeometry() const
+    { return *fvGridGeometryPtr_; }
+
+    //! The global finite volume geometry we are a restriction of
+    const GridGeometry& gridGeometry() const
     { return *fvGridGeometryPtr_; }
 
 private:
     Dune::GeometryType elemGeometryType_;
-    const FVGridGeometry* fvGridGeometryPtr_;
+    const GridGeometry* fvGridGeometryPtr_;
 
     GridIndexType eIdx_;
 };
@@ -174,7 +181,9 @@ public:
     //! export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    //! export type of finite volume grid geometry
+    using FVGridGeometry [[deprecated("Use more general GridGeometry instead. FVGridGeometry will be removed after 3.1!")]] = GridGeometry;
     //! the maximum number of scvs per element (2^dim for cubes)
     static constexpr std::size_t maxNumElementScvs = (1<<dim);
 
@@ -217,7 +226,7 @@ public:
 
     //! Get a local finite element basis
     const FeLocalBasis& feLocalBasis() const
-    { return fvGridGeometry().feCache().get(elemGeometryType_).localBasis(); }
+    { return gridGeometry().feCache().get(elemGeometryType_).localBasis(); }
 
     //! The total number of sub control volumes
     std::size_t numScv() const
@@ -240,19 +249,24 @@ public:
     //! For compatibility reasons with the FVGeometry cache being disabled
     void bindElement(const Element& element)
     {
-        eIdx_ = fvGridGeometry().elementMapper().index(element);
+        eIdx_ = gridGeometry().elementMapper().index(element);
         makeElementGeometries(element);
     }
 
     //! The global finite volume geometry we are a restriction of
-    const FVGridGeometry& fvGridGeometry() const
+    [[deprecated("Use more general GridGeometry instead. FVGridGeometry will be removed after 3.1!")]]
+    const GridGeometry& fvGridGeometry() const
+    { return *fvGridGeometryPtr_; }
+
+    //! The global finite volume geometry we are a restriction of
+    const GridGeometry& gridGeometry() const
     { return *fvGridGeometryPtr_; }
 
 private:
 
     void makeElementGeometries(const Element& element)
     {
-        auto eIdx = fvGridGeometry().elementMapper().index(element);
+        auto eIdx = gridGeometry().elementMapper().index(element);
 
         // get the element geometry
         auto elementGeometry = element.geometry();
@@ -270,7 +284,7 @@ private:
             scvs_.emplace_back(geometryHelper,
                                scvLocalIdx,
                                eIdx,
-                               fvGridGeometry().vertexMapper().subIndex(element, scvLocalIdx, dim));
+                               gridGeometry().vertexMapper().subIndex(element, scvLocalIdx, dim));
 
         // construct the sub control volume faces
         const auto numInnerScvf = (dim==1) ? 1 : element.subEntities(dim-1);
@@ -295,7 +309,7 @@ private:
         // construct the sub control volume faces on the domain/interior boundaries
         // skip handled facets (necessary for e.g. Dune::FoamGrid)
         std::vector<unsigned int> handledFacets;
-        for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& intersection : intersections(gridGeometry().gridView(), element))
         {
             if (std::count(handledFacets.begin(), handledFacets.end(), intersection.indexInInside()))
                 continue;
@@ -313,7 +327,7 @@ private:
                 vIndicesLocal[i] = static_cast<LocalIndexType>(referenceElement.subEntity(idxInInside, 1, i, dim));
 
             // if all vertices are living on the facet grid, this is an interiour boundary
-            const bool isOnFacet = fvGridGeometry().isOnInteriorBoundary(element, intersection);
+            const bool isOnFacet = gridGeometry().isOnInteriorBoundary(element, intersection);
 
             if (isOnFacet || boundary)
             {
diff --git a/dumux/multidomain/facet/box/localresidual.hh b/dumux/multidomain/facet/box/localresidual.hh
index 47cd68600cfc0c2112bf1c4a8f81852680c58486..f8c4465c33b0a189acc094bf611c8620e7bc75d6 100644
--- a/dumux/multidomain/facet/box/localresidual.hh
+++ b/dumux/multidomain/facet/box/localresidual.hh
@@ -47,7 +47,7 @@ class BoxFacetCouplingLocalResidual : public FVLocalResidual<TypeTag>
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
     using ElementBoundaryTypes = GetPropType<TypeTag, Properties::ElementBoundaryTypes>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
diff --git a/dumux/multidomain/facet/box/properties.hh b/dumux/multidomain/facet/box/properties.hh
index 72303e00bb6da473799360dbf10a9cb13bc2d81d..ae9b68fc7b3b0b174c2a37e5962bacffa359467e 100644
--- a/dumux/multidomain/facet/box/properties.hh
+++ b/dumux/multidomain/facet/box/properties.hh
@@ -60,7 +60,7 @@ template<class TypeTag>
 struct AdvectionType<TypeTag, TTag::BoxFacetCouplingModel>
 {
     using type = BoxFacetCouplingDarcysLaw< GetPropType<TypeTag, Properties::Scalar>,
-                                            GetPropType<TypeTag, Properties::FVGridGeometry> >;
+                                            GetPropType<TypeTag, Properties::GridGeometry> >;
 };
 
 //! Per default, use the porous medium flow flux variables with the modified upwind scheme
@@ -68,7 +68,7 @@ template<class TypeTag>
 struct FluxVariables<TypeTag, TTag::BoxFacetCouplingModel>
 {
     using type = PorousMediumFluxVariables<TypeTag,
-                                           BoxFacetCouplingUpwindScheme<GetPropType<TypeTag, Properties::FVGridGeometry>>>;
+                                           BoxFacetCouplingUpwindScheme<GetPropType<TypeTag, Properties::GridGeometry>>>;
 };
 
 //! Per default, use the porous medium flow flux variables with the modified upwind scheme
@@ -76,6 +76,13 @@ template<class TypeTag>
 struct ElementBoundaryTypes<TypeTag, TTag::BoxFacetCouplingModel>
 { using type = BoxFacetCouplingElementBoundaryTypes<GetPropType<TypeTag, Properties::BoundaryTypes>>; };
 
+// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
+// For ensuring backward compatibility on the user side, it is necessary to
+// stick to the old name for the specializations, see the discussion in MR 1647.
+// Use diagnostic pragmas to prevent the emission of a warning message.
+// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 //! Set the default for the grid finite volume geometry
 template<class TypeTag>
 struct FVGridGeometry<TypeTag, TTag::BoxFacetCouplingModel>
@@ -87,6 +94,7 @@ private:
 public:
     using type = BoxFacetCouplingFVGridGeometry<Scalar, GridView, enableCache>;
 };
+#pragma GCC diagnostic pop
 
 } // namespace Properties
 } // namespace Dumux
diff --git a/dumux/multidomain/facet/cellcentered/mpfa/couplingmanager.hh b/dumux/multidomain/facet/cellcentered/mpfa/couplingmanager.hh
index 8140c253e9e300a3019abf4a2054034ccf88888d..1b667da08f5bc0fe76183db2c2fb9a2dca05224a 100644
--- a/dumux/multidomain/facet/cellcentered/mpfa/couplingmanager.hh
+++ b/dumux/multidomain/facet/cellcentered/mpfa/couplingmanager.hh
@@ -69,7 +69,7 @@ class FacetCouplingManager<MDTraits, CouplingMapper, bulkDomainId, lowDimDomainI
     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 FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using FVElementGeometry = typename FVGridGeometry<id>::LocalView;
     template<std::size_t id> using SubControlVolume = typename FVGridGeometry<id>::SubControlVolume;
     template<std::size_t id> using SubControlVolumeFace = typename FVGridGeometry<id>::SubControlVolumeFace;
@@ -112,7 +112,7 @@ public:
         ParentType::init(bulkProblem, lowDimProblem, couplingMapper, curSol);
 
         // determine all bulk scvfs that coincide with low dim elements
-        bulkScvfIsOnFacetElement_.assign(bulkProblem->fvGridGeometry().numScvf(), false);
+        bulkScvfIsOnFacetElement_.assign(bulkProblem->gridGeometry().numScvf(), false);
         const auto& bulkMap = couplingMapper->couplingMap(bulkGridId, lowDimGridId);
         for (const auto& entry : bulkMap)
             for (const auto& couplingEntry : entry.second.elementToScvfMap)
@@ -150,7 +150,7 @@ public:
         assert(std::find(s.begin(), s.end(), lowDimElemIdx) != s.end());
 
         const auto& lowDimProblem = this->problem(lowDimId);
-        const auto& lowDimElement = lowDimProblem.fvGridGeometry().element(lowDimElemIdx);
+        const auto& lowDimElement = lowDimProblem.gridGeometry().element(lowDimElemIdx);
         const auto& lowDimVolVars = this->bulkCouplingContext().lowDimVolVars[idxInContext];
         const auto& lowDimFvGeometry = this->bulkCouplingContext().lowDimFvGeometries[idxInContext];
 
@@ -184,7 +184,7 @@ public:
     {
         // make sure this is called for the element for which the context was set
         assert(this->lowDimCouplingContext().isSet);
-        assert(this->problem(lowDimId).fvGridGeometry().elementMapper().index(lowDimLocalAssembler.element()) == this->lowDimCouplingContext().elementIdx);
+        assert(this->problem(lowDimId).gridGeometry().elementMapper().index(lowDimLocalAssembler.element()) == this->lowDimCouplingContext().elementIdx);
 
         // fill element residual vector with the sources
         typename LowDimLocalAssembler::LocalResidual::ElementResidualVector res(lowDimLocalAssembler.fvGeometry().numScv());
@@ -206,7 +206,7 @@ public:
                                               const SubControlVolume<lowDimId>& scv)
     {
         // make sure the this is called for the element of the context
-        assert(this->problem(lowDimId).fvGridGeometry().elementMapper().index(element) == this->lowDimCouplingContext().elementIdx);
+        assert(this->problem(lowDimId).gridGeometry().elementMapper().index(element) == this->lowDimCouplingContext().elementIdx);
 
         NumEqVector<lowDimId> sources(0.0);
 
@@ -225,7 +225,7 @@ public:
             const auto& scvfList = lowDimUsesBox ? std::vector<GridIndexType<lowDimId>>{ coincidingScvfs[scv.localDofIndex()] }
                                                  : coincidingScvfs;
 
-            sources += this->evalBulkFluxes(this->problem(bulkId).fvGridGeometry().element(embedment.first),
+            sources += this->evalBulkFluxes(this->problem(bulkId).gridGeometry().element(embedment.first),
                                             *this->lowDimCouplingContext().bulkFvGeometry,
                                             *this->lowDimCouplingContext().bulkElemVolVars,
                                             *this->lowDimCouplingContext().bulkElemFluxVarsCache,
@@ -243,7 +243,7 @@ public:
     template<class JacobianPattern>
     void extendJacobianPattern(LowDimIdType, JacobianPattern& pattern) const
     {
-        const auto& lowDimFVGridGeometry = this->problem(lowDimId).fvGridGeometry();
+        const auto& lowDimFVGridGeometry = this->problem(lowDimId).gridGeometry();
         for (const auto& element : elements(lowDimFVGridGeometry.gridView()))
         {
 
@@ -314,7 +314,7 @@ public:
 
             auto& volVars = this->bulkCouplingContext().lowDimVolVars[idxInContext];
             const auto& fvGeom = this->bulkCouplingContext().lowDimFvGeometries[idxInContext];
-            const auto& element = this->problem(lowDimId).fvGridGeometry().element(elemIdx);
+            const auto& element = this->problem(lowDimId).gridGeometry().element(elemIdx);
 
             // if low dim domain uses the box scheme, we have to create interpolated vol vars
             if (lowDimUsesBox)
@@ -324,19 +324,19 @@ public:
             }
             // if low dim domain uses a cc scheme we can directly update the vol vars
             else
-                volVars.update( elementSolution(element, ldSol, this->problem(lowDimId).fvGridGeometry()),
+                volVars.update( elementSolution(element, ldSol, this->problem(lowDimId).gridGeometry()),
                                 this->problem(lowDimId),
                                 element,
                                 fvGeom.scv(elemIdx) );
 
             // update the element flux variables cache (tij depend on low dim values in context)
-            const auto contextElem = this->problem(bulkId).fvGridGeometry().element(this->bulkCouplingContext().elementIdx);
+            const auto contextElem = this->problem(bulkId).gridGeometry().element(this->bulkCouplingContext().elementIdx);
             this->lowDimCouplingContext().bulkElemFluxVarsCache->update(contextElem,
                                                                         *this->lowDimCouplingContext().bulkFvGeometry,
                                                                         *this->lowDimCouplingContext().bulkElemVolVars);
         };
 
-        const auto eIdx = this->problem(lowDimId).fvGridGeometry().elementMapper().index(lowDimLocalAssembler.element());
+        const auto eIdx = this->problem(lowDimId).gridGeometry().elementMapper().index(lowDimLocalAssembler.element());
 
         // bug tracking
         assert(this->lowDimCouplingContext().isSet);
@@ -365,7 +365,7 @@ private:
                                       const LowDimLocalAssembler& lowDimLocalAssembler,
                                       JacobianMatrixDiagBlock& A)
     {
-        const auto& lowDimFVGridGeometry = this->problem(lowDimId).fvGridGeometry();
+        const auto& lowDimFVGridGeometry = this->problem(lowDimId).gridGeometry();
         const auto eIdx = lowDimFVGridGeometry.elementMapper().index(lowDimLocalAssembler.element());
 
         // coupling stencil of the first neighbor
diff --git a/dumux/multidomain/facet/cellcentered/mpfa/interactionvolume.hh b/dumux/multidomain/facet/cellcentered/mpfa/interactionvolume.hh
index fbe84ad76f9101d0f77a2dcfb80623afdee43af2..3bdf19594185d9a52ca0e9504baa82844c5af260 100644
--- a/dumux/multidomain/facet/cellcentered/mpfa/interactionvolume.hh
+++ b/dumux/multidomain/facet/cellcentered/mpfa/interactionvolume.hh
@@ -128,7 +128,7 @@ public:
         for (LocalIndexType fIdx = 0; fIdx < indexSet.numFaces(); ++fIdx)
         {
             const auto& scvf = fvGeometry.scvf(indexSet.gridScvfIndex(fIdx));
-            const auto element = fvGeometry.fvGridGeometry().element(scvf.insideScvIdx());
+            const auto element = fvGeometry.gridGeometry().element(scvf.insideScvIdx());
             if (problem.couplingManager().isOnInteriorBoundary(element, scvf))
             {
                 numFacetElems++;
@@ -162,9 +162,9 @@ public:
         for (LocalIndexType faceIdxLocal = 0; faceIdxLocal < indexSet.numFaces(); ++faceIdxLocal)
         {
             const auto gridScvfIdx = indexSet.gridScvfIndex(faceIdxLocal);
-            const auto& flipScvfIdxSet = fvGeometry.fvGridGeometry().flipScvfIndexSet()[gridScvfIdx];
+            const auto& flipScvfIdxSet = fvGeometry.gridGeometry().flipScvfIndexSet()[gridScvfIdx];
             const auto& scvf = fvGeometry.scvf(gridScvfIdx);
-            const auto element = fvGeometry.fvGridGeometry().element(scvf.insideScvIdx());
+            const auto element = fvGeometry.gridGeometry().element(scvf.insideScvIdx());
 
             // the neighboring scvs in local indices (order: 0 - inside scv, 1..n - outside scvs)
             const auto& neighborScvIndicesLocal = indexSet.neighboringLocalScvIndices(faceIdxLocal);
@@ -192,7 +192,7 @@ public:
                 {
                     const auto outsideGridScvfIdx = flipScvfIdxSet[i-1];
                     const auto& flipScvf = fvGeometry.scvf(outsideGridScvfIdx);
-                    const auto& outsideFlipScvfIdxSet = fvGeometry.fvGridGeometry().flipScvfIndexSet()[outsideGridScvfIdx];
+                    const auto& outsideFlipScvfIdxSet = fvGeometry.gridGeometry().flipScvfIndexSet()[outsideGridScvfIdx];
 
                     // rearrange the neighbor scv index vector corresponding to this scvfs flip scvf index set
                     using std::swap;
@@ -246,7 +246,7 @@ public:
                 {
                     // loop over scvfs in outside scv until we find the one coinciding with current scvf
                     const auto outsideLocalScvIdx = neighborScvIndicesLocal[i];
-                    const auto& flipScvfIndex = fvGeometry.fvGridGeometry().flipScvfIndexSet()[scvf.index()][i-1];
+                    const auto& flipScvfIndex = fvGeometry.gridGeometry().flipScvfIndexSet()[scvf.index()][i-1];
                     const auto& flipScvf = fvGeometry.scvf(flipScvfIndex);
                     scvfIndexMap[flipScvfIndex] = curLocalScvfIdx;
                     localFaceData_.emplace_back(curLocalScvfIdx,    // iv-local scvf idx
@@ -260,8 +260,8 @@ public:
         // set up stuff related to sub-control volumes
         for (LocalIndexType scvIdxLocal = 0; scvIdxLocal < numLocalScvs; scvIdxLocal++)
         {
-            elements_.emplace_back(fvGeometry.fvGridGeometry().element( stencil()[scvIdxLocal] ));
-            scvs_.emplace_back(fvGeometry.fvGridGeometry().mpfaHelper(),
+            elements_.emplace_back(fvGeometry.gridGeometry().element( stencil()[scvIdxLocal] ));
+            scvs_.emplace_back(fvGeometry.gridGeometry().mpfaHelper(),
                                fvGeometry,
                                fvGeometry.scv( stencil()[scvIdxLocal] ),
                                scvIdxLocal,
diff --git a/dumux/multidomain/facet/cellcentered/mpfa/localassembler.hh b/dumux/multidomain/facet/cellcentered/mpfa/localassembler.hh
index 87d30154df7794de350b4ca03d2379ff2bd9a094..a6e65c49b011de3002abbb5f89773cb954ab040f 100644
--- a/dumux/multidomain/facet/cellcentered/mpfa/localassembler.hh
+++ b/dumux/multidomain/facet/cellcentered/mpfa/localassembler.hh
@@ -98,7 +98,7 @@ public:
         for (const auto& data : iv.interiorBoundaryData())
         {
             const auto& scvf = this->fvGeometry().scvf(data.scvfIndex());
-            const auto element = this->fvGeometry().fvGridGeometry().element(scvf.insideScvIdx());
+            const auto element = this->fvGeometry().gridGeometry().element(scvf.insideScvIdx());
             u[i++] = getU( this->problem().couplingManager().getLowDimVolVars(element, scvf) );
         }
 
@@ -204,7 +204,7 @@ public:
 
                 if (curIsInteriorBoundary)
                 {
-                    const auto posElement = this->fvGeometry().fvGridGeometry().element(posGlobalScv.elementIndex());
+                    const auto posElement = this->fvGeometry().gridGeometry().element(posGlobalScv.elementIndex());
                     const auto& facetVolVars = this->problem().couplingManager().getLowDimVolVars(posElement, curGlobalScvf);
                     rho += getRho(facetVolVars);
                     rho /= 2.0;
@@ -222,7 +222,7 @@ public:
             // use average density between facet and cell density on interior Dirichlet boundaries
             else if (curIsInteriorBoundary)
             {
-                const auto posElement = this->fvGeometry().fvGridGeometry().element(posGlobalScv.elementIndex());
+                const auto posElement = this->fvGeometry().gridGeometry().element(posGlobalScv.elementIndex());
                 const auto& facetVolVars = this->problem().couplingManager().getLowDimVolVars(posElement, curGlobalScvf);
                 rho = 0.5*(getRho(facetVolVars) + getRho(posVolVars));
             }
diff --git a/dumux/multidomain/facet/cellcentered/mpfa/properties.hh b/dumux/multidomain/facet/cellcentered/mpfa/properties.hh
index b2732f504954b0b764e2ba8eafeb6e9843f27812..531d738cb481014ead465f699461220d40e693a2 100644
--- a/dumux/multidomain/facet/cellcentered/mpfa/properties.hh
+++ b/dumux/multidomain/facet/cellcentered/mpfa/properties.hh
@@ -86,7 +86,7 @@ template<class TypeTag>
 struct FluxVariables<TypeTag, TTag::CCMpfaFacetCouplingModel>
 {
     using type = PorousMediumFluxVariables<TypeTag,
-                                           CCFacetCouplingUpwindScheme<GetPropType<TypeTag, Properties::FVGridGeometry>>>;
+                                           CCFacetCouplingUpwindScheme<GetPropType<TypeTag, Properties::GridGeometry>>>;
 };
 
 } // namespace Properties
diff --git a/dumux/multidomain/facet/cellcentered/tpfa/couplingmanager.hh b/dumux/multidomain/facet/cellcentered/tpfa/couplingmanager.hh
index e6752cf99560c6640c9790ba0a2df342027c08e3..24b29a478b5a2091c7ebb599db7c7b2192b84482 100644
--- a/dumux/multidomain/facet/cellcentered/tpfa/couplingmanager.hh
+++ b/dumux/multidomain/facet/cellcentered/tpfa/couplingmanager.hh
@@ -68,7 +68,7 @@ class FacetCouplingManager<MDTraits, CouplingMapper, bulkDomainId, lowDimDomainI
     template<std::size_t id> using NumEqVector = GetPropType<SubDomainTypeTag<id>, Properties::NumEqVector>;
     template<std::size_t id> using LocalResidual = GetPropType<SubDomainTypeTag<id>, Properties::LocalResidual>;
 
-    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using FVElementGeometry = typename FVGridGeometry<id>::LocalView;
     template<std::size_t id> using SubControlVolume = typename FVGridGeometry<id>::SubControlVolume;
     template<std::size_t id> using SubControlVolumeFace = typename FVGridGeometry<id>::SubControlVolumeFace;
@@ -181,8 +181,8 @@ public:
         ParentType::updateSolution(curSol);
 
         // determine all bulk elements/scvfs that couple to low dim elements
-        bulkElemIsCoupled_.assign(bulkProblem->fvGridGeometry().gridView().size(0), false);
-        bulkScvfIsCoupled_.assign(bulkProblem->fvGridGeometry().numScvf(), false);
+        bulkElemIsCoupled_.assign(bulkProblem->gridGeometry().gridView().size(0), false);
+        bulkScvfIsCoupled_.assign(bulkProblem->gridGeometry().numScvf(), false);
 
         const auto& bulkMap = couplingMapperPtr_->couplingMap(bulkGridId, lowDimGridId);
         for (const auto& entry : bulkMap)
@@ -201,7 +201,7 @@ public:
                                                        const Element<bulkId>& element,
                                                        LowDimIdType domainJ) const
     {
-        const auto eIdx = this->problem(bulkId).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(bulkId).gridGeometry().elementMapper().index(element);
 
         if (bulkElemIsCoupled_[eIdx])
         {
@@ -221,7 +221,7 @@ public:
                                                          const Element<lowDimId>& element,
                                                          BulkIdType domainJ) const
     {
-        const auto eIdx = this->problem(lowDimId).fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->problem(lowDimId).gridGeometry().elementMapper().index(element);
 
         const auto& map = couplingMapperPtr_->couplingMap(lowDimGridId, bulkGridId);
         auto it = map.find(eIdx);
@@ -268,7 +268,7 @@ public:
                                              const SubControlVolumeFace<bulkId>& scvf) const
     {
         const auto lowDimElemIdx = getLowDimElementIndex(element, scvf);
-        return this->problem(lowDimId).fvGridGeometry().element(lowDimElemIdx);
+        return this->problem(lowDimId).gridGeometry().element(lowDimElemIdx);
     }
 
     /*!
@@ -312,7 +312,7 @@ public:
         assert(bulkContext_.isSet);
         assert(bulkElemIsCoupled_[bulkContext_.elementIdx]);
         assert(map.find(bulkContext_.elementIdx) != map.end());
-        assert(bulkContext_.elementIdx == this->problem(bulkId).fvGridGeometry().elementMapper().index(bulkLocalAssembler.element()));
+        assert(bulkContext_.elementIdx == this->problem(bulkId).gridGeometry().elementMapper().index(bulkLocalAssembler.element()));
 
         typename LocalResidual<bulkId>::ElementResidualVector res(1);
         res = 0.0;
@@ -354,7 +354,7 @@ public:
     {
         // make sure this is called for the element for which the context was set
         assert(lowDimContext_.isSet);
-        assert(this->problem(lowDimId).fvGridGeometry().elementMapper().index(lowDimLocalAssembler.element()) == lowDimContext_.elementIdx);
+        assert(this->problem(lowDimId).gridGeometry().elementMapper().index(lowDimLocalAssembler.element()) == lowDimContext_.elementIdx);
 
         // evaluate sources for the first scv
         // the sources are element-wise & scv-independent since we use tpfa in bulk domain
@@ -381,7 +381,7 @@ public:
                                               const SubControlVolume<lowDimId>& scv)
     {
         // make sure the this is called for the element of the context
-        assert(this->problem(lowDimId).fvGridGeometry().elementMapper().index(element) == lowDimContext_.elementIdx);
+        assert(this->problem(lowDimId).gridGeometry().elementMapper().index(element) == lowDimContext_.elementIdx);
 
         NumEqVector<lowDimId> sources(0.0);
 
@@ -392,7 +392,7 @@ public:
 
         assert(lowDimContext_.isSet);
         for (const auto& embedment : it->second.embedments)
-            sources += evalBulkFluxes(this->problem(bulkId).fvGridGeometry().element(embedment.first),
+            sources += evalBulkFluxes(this->problem(bulkId).gridGeometry().element(embedment.first),
                                       *lowDimContext_.bulkFvGeometry,
                                       *lowDimContext_.bulkElemVolVars,
                                       *lowDimContext_.bulkElemFluxVarsCache,
@@ -418,7 +418,7 @@ public:
         bulkContext_.reset();
 
         // set index in context in any case
-        const auto bulkElemIdx = this->problem(bulkId).fvGridGeometry().elementMapper().index(element);
+        const auto bulkElemIdx = this->problem(bulkId).gridGeometry().elementMapper().index(element);
         bulkContext_.elementIdx = bulkElemIdx;
 
         // if element is coupled, actually set the context
@@ -435,7 +435,7 @@ public:
             {
                 const auto& ldSol = Assembler::isImplicit() ? this->curSol()[lowDimId] : assembler.prevSol()[lowDimId];
                 const auto& ldProblem = this->problem(lowDimId);
-                const auto& ldGridGeometry = this->problem(lowDimId).fvGridGeometry();
+                const auto& ldGridGeometry = this->problem(lowDimId).gridGeometry();
 
                 const auto elemJ = ldGridGeometry.element(lowDimElemIdx);
                 auto fvGeom = localView(ldGridGeometry);
@@ -480,7 +480,7 @@ public:
         lowDimContext_.reset();
 
         // set index in context in any case
-        const auto lowDimElemIdx = this->problem(lowDimId).fvGridGeometry().elementMapper().index(element);
+        const auto lowDimElemIdx = this->problem(lowDimId).gridGeometry().elementMapper().index(element);
         lowDimContext_.elementIdx = lowDimElemIdx;
 
         const auto& map = couplingMapperPtr_->couplingMap(lowDimGridId, bulkGridId);
@@ -490,7 +490,7 @@ public:
         if (it != map.end())
         {
             // first bind the low dim context for the first neighboring bulk element
-            const auto& bulkGridGeom = this->problem(bulkId).fvGridGeometry();
+            const auto& bulkGridGeom = this->problem(bulkId).gridGeometry();
             const auto bulkElem = bulkGridGeom.element(it->second.embedments[0].first);
             bindCouplingContext(bulkId, bulkElem, assembler);
 
@@ -542,7 +542,7 @@ public:
             const auto& couplingElemStencil = map.find(bulkContext_.elementIdx)->second.couplingElementStencil;
             const auto& ldSol = this->curSol()[lowDimId];
             const auto& ldProblem = this->problem(lowDimId);
-            const auto& ldGridGeometry = this->problem(lowDimId).fvGridGeometry();
+            const auto& ldGridGeometry = this->problem(lowDimId).gridGeometry();
 
             // find the low-dim elements in coupling stencil, where this dof is contained in
             const auto couplingElements = [&] ()
@@ -635,10 +635,10 @@ public:
         // skip the rest if context is empty
         if (lowDimContext_.isSet)
         {
-            assert(lowDimContext_.elementIdx == this->problem(lowDimId).fvGridGeometry().elementMapper().index(lowDimLocalAssembler.element()));
+            assert(lowDimContext_.elementIdx == this->problem(lowDimId).gridGeometry().elementMapper().index(lowDimLocalAssembler.element()));
 
             // since we use cc scheme in bulk domain: dof index = element index
-            const auto& bulkGridGeom = this->problem(bulkId).fvGridGeometry();
+            const auto& bulkGridGeom = this->problem(bulkId).gridGeometry();
             const auto elementJ = bulkGridGeom.element(dofIdxGlobalJ);
 
             // update corresponding vol vars in context
@@ -650,7 +650,7 @@ public:
             if (dofIdxGlobalJ == bulkContext_.elementIdx)
                 lowDimContext_.bulkElemFluxVarsCache->update( elementJ, *lowDimContext_.bulkFvGeometry, *lowDimContext_.bulkElemVolVars);
             else
-                lowDimContext_.bulkElemFluxVarsCache->update( this->problem(bulkId).fvGridGeometry().element(bulkContext_.elementIdx),
+                lowDimContext_.bulkElemFluxVarsCache->update( this->problem(bulkId).gridGeometry().element(bulkContext_.elementIdx),
                                                               *lowDimContext_.bulkFvGeometry,
                                                               *lowDimContext_.bulkElemVolVars );
         }
@@ -684,7 +684,7 @@ public:
         {
             const auto& ldSol = this->curSol()[lowDimId];
             const auto& ldProblem = this->problem(lowDimId);
-            const auto& ldGridGeometry = this->problem(lowDimId).fvGridGeometry();
+            const auto& ldGridGeometry = this->problem(lowDimId).gridGeometry();
 
             assert(bulkContext_.isSet);
             assert(lowDimContext_.elementIdx == ldGridGeometry.elementMapper().index(lowDimLocalAssembler.element()));
@@ -713,7 +713,7 @@ public:
                                 fvGeom.scv(lowDimContext_.elementIdx) );
 
             // update the element flux variables cache (tij depend on low dim values in context)
-            const auto contextElem = this->problem(bulkId).fvGridGeometry().element(bulkContext_.elementIdx);
+            const auto contextElem = this->problem(bulkId).gridGeometry().element(bulkContext_.elementIdx);
             lowDimContext_.bulkElemFluxVarsCache->update(contextElem, *lowDimContext_.bulkFvGeometry, *lowDimContext_.bulkElemVolVars);
         }
     }
diff --git a/dumux/multidomain/facet/cellcentered/tpfa/properties.hh b/dumux/multidomain/facet/cellcentered/tpfa/properties.hh
index f16f3f3cf6bb3a60b04263a25c3bd44c204d7739..753ae0e84033c1093e433e0a1f54bd3ac0bbdf29 100644
--- a/dumux/multidomain/facet/cellcentered/tpfa/properties.hh
+++ b/dumux/multidomain/facet/cellcentered/tpfa/properties.hh
@@ -53,7 +53,7 @@ template<class TypeTag>
 struct AdvectionType<TypeTag, TTag::CCTpfaFacetCouplingModel>
 {
     using type = CCTpfaFacetCouplingDarcysLaw< GetPropType<TypeTag, Properties::Scalar>,
-                                               GetPropType<TypeTag, Properties::FVGridGeometry> >;
+                                               GetPropType<TypeTag, Properties::GridGeometry> >;
 };
 
 //! Use the cc local residual for models with facet coupling
@@ -65,7 +65,7 @@ template<class TypeTag>
 struct FluxVariables<TypeTag, TTag::CCTpfaFacetCouplingModel>
 {
     using type = PorousMediumFluxVariables<TypeTag,
-                                           CCFacetCouplingUpwindScheme<GetPropType<TypeTag, Properties::FVGridGeometry>>>;
+                                           CCFacetCouplingUpwindScheme<GetPropType<TypeTag, Properties::GridGeometry>>>;
 };
 
 } // namespace Properties
diff --git a/dumux/multidomain/facet/cellcentered/upwindscheme.hh b/dumux/multidomain/facet/cellcentered/upwindscheme.hh
index eff236da26635d1dd83bfd29e09f247f122ec5a2..cfe8f1d87572c1833462c3504088d12f356c8ea8 100644
--- a/dumux/multidomain/facet/cellcentered/upwindscheme.hh
+++ b/dumux/multidomain/facet/cellcentered/upwindscheme.hh
@@ -92,7 +92,7 @@ public:
                     // compute the outside flux
                     const auto& fvGeometry = fluxVars.fvGeometry();
                     const auto outsideScvIdx = scvf.outsideScvIdx(i);
-                    const auto outsideElement = fvGeometry.fvGridGeometry().element(outsideScvIdx);
+                    const auto outsideElement = fvGeometry.gridGeometry().element(outsideScvIdx);
                     const auto& flippedScvf = fvGeometry.flipScvf(scvf.index(), i);
 
                     using AdvectionType = typename FluxVariables::AdvectionType;
diff --git a/dumux/multidomain/facet/couplingmanager.hh b/dumux/multidomain/facet/couplingmanager.hh
index b6acef4e71904f97659e8d513b38e622144013b9..77860003fcfa9bbae892b119c41a12472b3edf7f 100644
--- a/dumux/multidomain/facet/couplingmanager.hh
+++ b/dumux/multidomain/facet/couplingmanager.hh
@@ -53,13 +53,13 @@ void makeInterpolatedVolVars(VolumeVariables& volVars,
                              const Problem& problem,
                              const SolutionVector& sol,
                              const FVGeometry& fvGeometry,
-                             const typename FVGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
-                             const typename FVGeometry::FVGridGeometry::GridView::template Codim<0>::Entity::Geometry& elemGeom,
-                             const typename FVGeometry::FVGridGeometry::GridView::template Codim<0>::Entity::Geometry::GlobalCoordinate& pos)
+                             const typename FVGeometry::GridGeometry::GridView::template Codim<0>::Entity& element,
+                             const typename FVGeometry::GridGeometry::GridView::template Codim<0>::Entity::Geometry& elemGeom,
+                             const typename FVGeometry::GridGeometry::GridView::template Codim<0>::Entity::Geometry::GlobalCoordinate& pos)
 {
     // interpolate solution and set it for each entry in element solution
-    auto elemSol = elementSolution(element, sol, fvGeometry.fvGridGeometry());
-    const auto centerSol = evalSolution(element, elemGeom, fvGeometry.fvGridGeometry(), elemSol, pos);
+    auto elemSol = elementSolution(element, sol, fvGeometry.gridGeometry());
+    const auto centerSol = evalSolution(element, elemGeom, fvGeometry.gridGeometry(), elemSol, pos);
     for (unsigned int i = 0; i < fvGeometry.numScv(); ++i)
         elemSol[i] = centerSol;
 
@@ -91,7 +91,7 @@ template< class MDTraits,
           class CouplingMapper,
           std::size_t bulkDomainId = 0,
           std::size_t lowDimDomainId = 1,
-          DiscretizationMethod bulkDM = GetPropType<typename MDTraits::template SubDomain<bulkDomainId>::TypeTag, Properties::FVGridGeometry>::discMethod >
+          DiscretizationMethod bulkDM = GetPropType<typename MDTraits::template SubDomain<bulkDomainId>::TypeTag, Properties::GridGeometry>::discMethod >
 class FacetCouplingManager;
 
 /*!
@@ -134,7 +134,7 @@ class FacetCouplingThreeDomainManager
     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 FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+    template<std::size_t id> using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
     template<std::size_t id> using FVElementGeometry = typename FVGridGeometry<id>::LocalView;
     template<std::size_t id> using SubControlVolumeFace = typename FVGridGeometry<id>::SubControlVolumeFace;
     template<std::size_t id> using GridView = typename FVGridGeometry<id>::GridView;
diff --git a/dumux/multidomain/fvassembler.hh b/dumux/multidomain/fvassembler.hh
index 1ef43029a5e94ac9b6c8d10787955c34adf0d6e6..35952200565c2c81408da7d3f4ddbb83faf26470 100644
--- a/dumux/multidomain/fvassembler.hh
+++ b/dumux/multidomain/fvassembler.hh
@@ -73,7 +73,10 @@ public:
     using GridVariables = typename MDTraits::template SubDomain<id>::GridVariables;
 
     template<std::size_t id>
-    using FVGridGeometry = typename MDTraits::template SubDomain<id>::FVGridGeometry;
+    using GridGeometry = typename MDTraits::template SubDomain<id>::GridGeometry;
+
+    template<std::size_t id>
+    using FVGridGeometry [[deprecated("Use GridGeometry instead. FVGridGeometry will be removed after 3.1!")]] = GridGeometry<id>;
 
     template<std::size_t id>
     using Problem = typename MDTraits::template SubDomain<id>::Problem;
@@ -357,13 +360,19 @@ public:
 
     //! the finite volume grid geometry of domain i
     template<std::size_t i>
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
     const auto& fvGridGeometry(Dune::index_constant<i> domainId) const
+    { return gridGeometry(domainId); }
+
+    //! the finite volume grid geometry of domain i
+    template<std::size_t i>
+    const auto& gridGeometry(Dune::index_constant<i> domainId) const
     { return *std::get<domainId>(fvGridGeometryTuple_); }
 
     //! the grid view of domain i
     template<std::size_t i>
     const auto& gridView(Dune::index_constant<i> domainId) const
-    { return fvGridGeometry(domainId).gridView(); }
+    { return gridGeometry(domainId).gridView(); }
 
     //! the grid variables of domain i
     template<std::size_t i>
@@ -500,7 +509,7 @@ private:
     Dune::MatrixIndexSet getJacobianPattern_(Dune::index_constant<i> domainI,
                                              Dune::index_constant<j> domainJ) const
     {
-        const auto& gg = fvGridGeometry(domainI);
+        const auto& gg = gridGeometry(domainI);
         auto pattern = getJacobianPattern<isImplicit()>(gg);
         couplingManager_->extendJacobianPattern(domainI, pattern);
         return pattern;
@@ -512,8 +521,8 @@ private:
                                              Dune::index_constant<j> domainJ) const
     {
         return getCouplingJacobianPattern<isImplicit()>(*couplingManager_,
-                                                        domainI, fvGridGeometry(domainI),
-                                                        domainJ, fvGridGeometry(domainJ));
+                                                        domainI, gridGeometry(domainI),
+                                                        domainJ, gridGeometry(domainJ));
     }
 
     //! pointer to the problem to be solved
diff --git a/dumux/multidomain/fvgridgeometry.hh b/dumux/multidomain/fvgridgeometry.hh
index af862753c6171559afd3534c060db56289c66f49..5d48a0924bd8ed6f426ed7b3e728b0b5c29d8dff 100644
--- a/dumux/multidomain/fvgridgeometry.hh
+++ b/dumux/multidomain/fvgridgeometry.hh
@@ -46,7 +46,7 @@ class MultiDomainFVGridGeometry
 public:
     //! export base types of the stored type
     template<std::size_t i>
-    using Type = typename MDTraits::template SubDomain<i>::FVGridGeometry;
+    using Type = typename MDTraits::template SubDomain<i>::GridGeometry;
 
     //! export pointer types the stored type
     template<std::size_t i>
diff --git a/dumux/multidomain/fvgridvariables.hh b/dumux/multidomain/fvgridvariables.hh
index 0b9311eb24c77ed3522566404dd3aab30ecfe70a..82f25a464b995dd7099234b3334b56caed8534df 100644
--- a/dumux/multidomain/fvgridvariables.hh
+++ b/dumux/multidomain/fvgridvariables.hh
@@ -45,7 +45,7 @@ class MultiDomainFVGridVariables
     static constexpr std::size_t numSubDomains = MDTraits::numSubDomains;
 
     template<std::size_t i>
-    using GridGeometry = typename MDTraits::template SubDomain<i>::FVGridGeometry;
+    using GridGeometry = typename MDTraits::template SubDomain<i>::GridGeometry;
     using GridGeometries = typename MDTraits::template TupleOfSharedPtrConst<GridGeometry>;
 
     template<std::size_t i>
diff --git a/dumux/multidomain/fvproblem.hh b/dumux/multidomain/fvproblem.hh
index 28c2a01fc3cca694f1acba4bddd6e75efa3fdd3f..7af0a93e1f57f9e5f6704e253464fdc65ba93ed0 100644
--- a/dumux/multidomain/fvproblem.hh
+++ b/dumux/multidomain/fvproblem.hh
@@ -45,7 +45,7 @@ class MultiDomainFVProblem
     static constexpr std::size_t numSubDomains = MDTraits::numSubDomains;
 
     template<std::size_t i>
-    using GridGeometry = typename MDTraits::template SubDomain<i>::FVGridGeometry;
+    using GridGeometry = typename MDTraits::template SubDomain<i>::GridGeometry;
     using GridGeometries = typename MDTraits::template Tuple<GridGeometry>;
 
 public:
diff --git a/dumux/multidomain/newtonsolver.hh b/dumux/multidomain/newtonsolver.hh
index d8d20f8743e089259711ed5fd521f81fd867333d..c9daad5580fdb720774ab119502175f49b482e1f 100644
--- a/dumux/multidomain/newtonsolver.hh
+++ b/dumux/multidomain/newtonsolver.hh
@@ -165,7 +165,7 @@ private:
         priVarsSwitchedInLastIteration_[i] = false;
 
         const auto& problem = this->assembler().problem(id);
-        const auto& fvGridGeometry = this->assembler().fvGridGeometry(id);
+        const auto& fvGridGeometry = this->assembler().gridGeometry(id);
         auto& gridVariables = this->assembler().gridVariables(id);
         priVarSwitch.updateBoundary(problem, fvGridGeometry, gridVariables, sol[id]);
     }
@@ -184,7 +184,7 @@ private:
     {
         // update the variable switch (returns true if the pri vars at at least one dof were switched)
         // for disabled grid variable caching
-        const auto& fvGridGeometry = this->assembler().fvGridGeometry(id);
+        const auto& fvGridGeometry = this->assembler().gridGeometry(id);
         const auto& problem = this->assembler().problem(id);
         auto& gridVariables = this->assembler().gridVariables(id);
 
diff --git a/dumux/multidomain/staggeredcouplingmanager.hh b/dumux/multidomain/staggeredcouplingmanager.hh
index 89a7b4320679db4af31ec064344686b6c03ae017..e154281c79984717349e1121449321c3676bdf62 100644
--- a/dumux/multidomain/staggeredcouplingmanager.hh
+++ b/dumux/multidomain/staggeredcouplingmanager.hh
@@ -42,7 +42,7 @@ class StaggeredCouplingManager: virtual public CouplingManager<MDTraits>
 {
     using ParentType = CouplingManager<MDTraits>;
 
-    template<std::size_t id> using FVGridGeometry = typename MDTraits::template SubDomain<id>::FVGridGeometry;
+    template<std::size_t id> using FVGridGeometry = typename MDTraits::template SubDomain<id>::GridGeometry;
     template<std::size_t id> using GridView = typename FVGridGeometry<id>::GridView;
 
     using FVElementGeometry = typename FVGridGeometry<0>::LocalView;
@@ -94,8 +94,8 @@ public:
                                            const Element& elementI,
                                            Dune::index_constant<faceIdx> domainJ) const
     {
-        const auto& connectivityMap = this->problem(domainI).fvGridGeometry().connectivityMap();
-        const auto eIdx = this->problem(domainI).fvGridGeometry().elementMapper().index(elementI);
+        const auto& connectivityMap = this->problem(domainI).gridGeometry().connectivityMap();
+        const auto eIdx = this->problem(domainI).gridGeometry().elementMapper().index(elementI);
         return connectivityMap(domainI, domainJ, eIdx);
     }
 
@@ -135,7 +135,7 @@ public:
                                            const SubControlVolumeFace& scvfI,
                                            Dune::index_constant<cellCenterIdx> domainJ) const
     {
-        const auto& connectivityMap = this->problem(domainI).fvGridGeometry().connectivityMap();
+        const auto& connectivityMap = this->problem(domainI).gridGeometry().connectivityMap();
         return connectivityMap(domainI, domainJ, scvfI.index());
     }
 
diff --git a/dumux/multidomain/staggeredtraits.hh b/dumux/multidomain/staggeredtraits.hh
index 96bbc26a17738a7b5120b84e4659d4a6a77957ad..12172fefa3027ac3c0f9ba15f510c7b317c746dd 100644
--- a/dumux/multidomain/staggeredtraits.hh
+++ b/dumux/multidomain/staggeredtraits.hh
@@ -49,15 +49,15 @@ namespace Staggered {
 //////////////////////////////////////////////////////////
 template<template<std::size_t> class SubDomainTypeTag, std::size_t i>
 struct SubDomainFVGridGeometryImpl
-{ using type = GetPropType<SubDomainTypeTag<i>, Properties::FVGridGeometry>; };
+{ using type = GetPropType<SubDomainTypeTag<i>, Properties::GridGeometry>; };
 
 template<template<std::size_t> class SubDomainTypeTag>
 struct SubDomainFVGridGeometryImpl<SubDomainTypeTag, 0>
-{ using type = typename GetPropType<SubDomainTypeTag<0>, Properties::FVGridGeometry>::CellCenterFVGridGeometryType; };
+{ using type = typename GetPropType<SubDomainTypeTag<0>, Properties::GridGeometry>::CellCenterFVGridGeometryType; };
 
 template<template<std::size_t> class SubDomainTypeTag>
 struct SubDomainFVGridGeometryImpl<SubDomainTypeTag, 1>
-{ using type = typename GetPropType<SubDomainTypeTag<0>, Properties::FVGridGeometry>::FaceFVGridGeometryType; };
+{ using type = typename GetPropType<SubDomainTypeTag<0>, Properties::GridGeometry>::FaceFVGridGeometryType; };
 //////////////////////////////////////////////////////////
 
 //////////////////////////////////////////////////////////
@@ -194,7 +194,8 @@ public:
         using Index = Dune::index_constant<id>;
         using TypeTag = SubDomainTypeTag<id>;
         using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
-        using FVGridGeometry = typename Detail::Staggered::SubDomainFVGridGeometryImpl<SubDomainTypeTag, id>::type;
+        using GridGeometry = typename Detail::Staggered::SubDomainFVGridGeometryImpl<SubDomainTypeTag, id>::type;
+        using FVGridGeometry [[deprecated("Use GridGeometry instead. FVGridGeometry will be removed after 3.1!")]] = GridGeometry;
         using GridVariables = typename Detail::Staggered::SubDomainGridVariablesImpl<SubDomainTypeTag, id>::type;
         using SolutionVector = typename Detail::Staggered::SubDomainSolutionVectorImpl<SubDomainTypeTag, id>::type;
         using PrimaryVariables = typename Detail::Staggered::SubDomainPrimaryVariablesImpl<SubDomainTypeTag, id>::type;
diff --git a/dumux/multidomain/subdomainboxlocalassembler.hh b/dumux/multidomain/subdomainboxlocalassembler.hh
index 2905f2ba6302c0f372c37c921f0ef81a714b1abb..f267475a6ff8c6fb1f82d95d8b76e73b5983c2d5 100644
--- a/dumux/multidomain/subdomainboxlocalassembler.hh
+++ b/dumux/multidomain/subdomainboxlocalassembler.hh
@@ -97,7 +97,7 @@ public:
     : ParentType(assembler,
                  element,
                  curSol,
-                 localView(assembler.fvGridGeometry(domainId)),
+                 localView(assembler.gridGeometry(domainId)),
                  localView(assembler.gridVariables(domainId).curGridVolVars()),
                  localView(assembler.gridVariables(domainId).prevGridVolVars()),
                  localView(assembler.gridVariables(domainId).gridFluxVarsCache()),
@@ -347,7 +347,7 @@ class SubDomainBoxLocalAssembler<id, TypeTag, Assembler, DiffMethod::numeric, /*
     using ElementResidualVector = typename ParentType::LocalResidual::ElementResidualVector;
 
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -389,7 +389,7 @@ public:
         auto&& curElemVolVars = this->curElemVolVars();
 
         // create the element solution
-        auto elemSol = elementSolution(element, curSol, fvGeometry.fvGridGeometry());
+        auto elemSol = elementSolution(element, curSol, fvGeometry.gridGeometry());
 
         auto partialDerivs = origResiduals;
         partialDerivs = 0.0;
@@ -582,7 +582,7 @@ class SubDomainBoxLocalAssembler<id, TypeTag, Assembler, DiffMethod::numeric, /*
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using ElementResidualVector = typename ParentType::LocalResidual::ElementResidualVector;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -626,7 +626,7 @@ public:
         //////////////////////////////////////////////////////////////////////////////////////////////////
 
         // create the element solution
-        auto elemSol = elementSolution(element, curSol, fvGeometry.fvGridGeometry());
+        auto elemSol = elementSolution(element, curSol, fvGeometry.gridGeometry());
 
         // create the vector storing the partial derivatives
         ElementResidualVector partialDerivs(element.subEntities(dim));
diff --git a/dumux/multidomain/subdomaincclocalassembler.hh b/dumux/multidomain/subdomaincclocalassembler.hh
index 4fc3f41916080b2a2a8cc8d4c100b21a58b656e3..e07c42fbf6e92b1cd87994ec5ca4de2f6860ee96 100644
--- a/dumux/multidomain/subdomaincclocalassembler.hh
+++ b/dumux/multidomain/subdomaincclocalassembler.hh
@@ -100,7 +100,7 @@ public:
     : ParentType(assembler,
                  element,
                  curSol,
-                 localView(assembler.fvGridGeometry(domainId)),
+                 localView(assembler.gridGeometry(domainId)),
                  localView(assembler.gridVariables(domainId).curGridVolVars()),
                  localView(assembler.gridVariables(domainId).prevGridVolVars()),
                  localView(assembler.gridVariables(domainId).gridFluxVarsCache()),
@@ -119,7 +119,7 @@ public:
         this->asImp_().bindLocalViews();
 
         // for the diagonal jacobian block
-        const auto globalI = this->fvGeometry().fvGridGeometry().elementMapper().index(this->element());
+        const auto globalI = this->fvGeometry().gridGeometry().elementMapper().index(this->element());
         res[globalI] = this->asImp_().assembleJacobianAndResidualImplInverse(jacRow[domainId], *std::get<domainId>(gridVariables));
 
         // for the coupling blocks
@@ -158,7 +158,7 @@ public:
     void assembleResidual(SubSolutionVector& res)
     {
         this->asImp_().bindLocalViews();
-        const auto globalI = this->fvGeometry().fvGridGeometry().elementMapper().index(this->element());
+        const auto globalI = this->fvGeometry().gridGeometry().elementMapper().index(this->element());
         res[globalI] = this->evalLocalResidual()[0]; // forward to the internal implementation
     }
 
@@ -284,7 +284,7 @@ class SubDomainCCLocalAssembler<id, TypeTag, Assembler, DiffMethod::numeric, /*i
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using LocalResidualValues = GetPropType<TypeTag, Properties::NumEqVector>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -318,7 +318,7 @@ public:
         // get some aliases for convenience
         const auto& element = this->element();
         const auto& fvGeometry = this->fvGeometry();
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         auto&& curElemVolVars = this->curElemVolVars();
         auto&& elemFluxVarsCache = this->elemFluxVarsCache();
 
@@ -457,7 +457,7 @@ public:
         // get some aliases for convenience
         const auto& element = this->element();
         const auto& fvGeometry = this->fvGeometry();
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         auto&& curElemVolVars = this->curElemVolVars();
         auto&& elemFluxVarsCache = this->elemFluxVarsCache();
 
@@ -594,7 +594,7 @@ public:
         // get some aliases for convenience
         const auto& element = this->element();
         const auto& fvGeometry = this->fvGeometry();
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         auto&& curElemVolVars = this->curElemVolVars();
 
         // reference to the element's scv (needed later) and corresponding vol vars
@@ -711,7 +711,7 @@ public:
         const auto& elemFluxVarsCache = this->elemFluxVarsCache();
 
         // get reference to the element's current vol vars
-        const auto globalI = this->assembler().fvGridGeometry(domainI).elementMapper().index(element);
+        const auto globalI = this->assembler().gridGeometry(domainI).elementMapper().index(element);
         const auto& scv = fvGeometry.scv(globalI);
         const auto& volVars = curElemVolVars[scv];
 
@@ -768,7 +768,7 @@ public:
         // get some aliases for convenience
         const auto& element = this->element();
         const auto& fvGeometry = this->fvGeometry();
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         auto&& curElemVolVars = this->curElemVolVars();
         // auto&& elemFluxVarsCache = this->elemFluxVarsCache();
 
@@ -778,7 +778,7 @@ public:
 
         for (const auto globalJ : stencil)
         {
-            const auto& elementJ = this->assembler().fvGridGeometry(domainJ).element(globalJ);
+            const auto& elementJ = this->assembler().gridGeometry(domainJ).element(globalJ);
             this->couplingManager().addCouplingDerivatives(A[globalI][globalJ], domainI, element, fvGeometry, curElemVolVars, domainJ, elementJ);
         }
     }
diff --git a/dumux/multidomain/subdomainstaggeredlocalassembler.hh b/dumux/multidomain/subdomainstaggeredlocalassembler.hh
index 3b1e741274d42310573826fed18f0a4dabc3c528..faab9bebe8ac4f8dbd88f13b55e36fa7bc4e16c6 100644
--- a/dumux/multidomain/subdomainstaggeredlocalassembler.hh
+++ b/dumux/multidomain/subdomainstaggeredlocalassembler.hh
@@ -98,7 +98,7 @@ public:
     : ParentType(assembler,
                  element,
                  curSol,
-                 localView(assembler.fvGridGeometry(domainId)),
+                 localView(assembler.gridGeometry(domainId)),
                  localView(assembler.gridVariables(domainId).curGridVolVars()),
                  localView(assembler.gridVariables(domainId).prevGridVolVars()),
                  localView(assembler.gridVariables(domainId).gridFluxVarsCache()),
@@ -167,7 +167,7 @@ public:
             residual += evalLocalStorageResidualForCellCenter();
 
         // handle cells with a fixed Dirichlet value
-        const auto cellCenterGlobalI = problem().fvGridGeometry().elementMapper().index(this->element());
+        const auto cellCenterGlobalI = problem().gridGeometry().elementMapper().index(this->element());
         const auto& scvI = this->fvGeometry().scv(cellCenterGlobalI);
         for (int pvIdx = 0; pvIdx < numEqCellCenter; ++pvIdx)
         {
@@ -319,7 +319,7 @@ private:
     template<class SubSol>
     void assembleResidualImpl_(Dune::index_constant<0>, SubSol& res)
     {
-        const auto cellCenterGlobalI = problem().fvGridGeometry().elementMapper().index(this->element());
+        const auto cellCenterGlobalI = problem().gridGeometry().elementMapper().index(this->element());
         res[cellCenterGlobalI] = this->asImp_().assembleCellCenterResidualImpl();
     }
 
@@ -336,7 +336,7 @@ private:
     auto assembleJacobianAndResidualImpl_(Dune::index_constant<0>, JacobianMatrixRow& jacRow, SubSol& res, GridVariablesTuple& gridVariables)
     {
         auto& gridVariablesI = *std::get<domainId>(gridVariables);
-        const auto cellCenterGlobalI = problem().fvGridGeometry().elementMapper().index(this->element());
+        const auto cellCenterGlobalI = problem().gridGeometry().elementMapper().index(this->element());
         const auto residual = this->asImp_().assembleCellCenterJacobianAndResidualImpl(jacRow[domainId], gridVariablesI);
         res[cellCenterGlobalI] = residual;
 
@@ -376,7 +376,7 @@ private:
     template<class JacobianMatrixRow>
     void incorporateDirichletCells_(JacobianMatrixRow& jacRow)
     {
-        const auto cellCenterGlobalI = problem().fvGridGeometry().elementMapper().index(this->element());
+        const auto cellCenterGlobalI = problem().gridGeometry().elementMapper().index(this->element());
 
         // overwrite the partial derivative with zero in case a fixed Dirichlet BC is used
         static constexpr auto offset = numEq - numEqCellCenter;
@@ -497,7 +497,7 @@ class SubDomainStaggeredLocalAssembler<id, TypeTag, Assembler, DiffMethod::numer
     using GridFaceVariables = GetPropType<TypeTag, Properties::GridFaceVariables>;
     using ElementFaceVariables = typename GetPropType<TypeTag, Properties::GridFaceVariables>::LocalView;
     using FaceVariables = typename ElementFaceVariables::FaceVariables;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
@@ -543,7 +543,7 @@ public:
         const auto& element = this->element();
         const auto& fvGeometry = this->fvGeometry();
         auto&& curElemVolVars = this->curElemVolVars();
-        const auto& fvGridGeometry = this->problem().fvGridGeometry();
+        const auto& fvGridGeometry = this->problem().gridGeometry();
         const auto& curSol = this->curSol()[domainI];
 
         const auto cellCenterGlobalI = fvGridGeometry.elementMapper().index(element);
@@ -558,7 +558,7 @@ public:
         {
             // get the volVars of the element with respect to which we are going to build the derivative
             auto&& scvJ = fvGeometry.scv(globalJ);
-            const auto elementJ = fvGeometry.fvGridGeometry().element(globalJ);
+            const auto elementJ = fvGeometry.gridGeometry().element(globalJ);
             auto& curVolVars =  this->getVolVarAccess(gridVariables.curGridVolVars(), curElemVolVars, scvJ);
             const auto origVolVars(curVolVars);
 
@@ -634,7 +634,7 @@ public:
         const auto& problem = this->problem();
         const auto& element = this->element();
         const auto& fvGeometry = this->fvGeometry();
-        const auto& fvGridGeometry = this->problem().fvGridGeometry();
+        const auto& fvGridGeometry = this->problem().gridGeometry();
         const auto& curSol = this->curSol()[domainI];
 
         using FaceSolutionVector = GetPropType<TypeTag, Properties::FaceSolutionVector>; // TODO: use reserved vector
@@ -735,7 +735,7 @@ public:
         // get some aliases for convenience
         const auto& element = this->element();
         const auto& fvGeometry = this->fvGeometry();
-        const auto& fvGridGeometry = this->problem().fvGridGeometry();
+        const auto& fvGridGeometry = this->problem().gridGeometry();
         const auto& curSol = this->curSol()[domainJ];
         // build derivatives with for cell center dofs w.r.t. cell center dofs
         const auto cellCenterGlobalI = fvGridGeometry.elementMapper().index(element);
@@ -831,7 +831,7 @@ public:
                                                           epsCoupl(origPriVarsJ[pvIdx], pvIdx), numDiffMethod);
 
                 // update the global stiffness matrix with the current partial derivatives
-                const auto cellCenterGlobalI = this->problem().fvGridGeometry().elementMapper().index(element);
+                const auto cellCenterGlobalI = this->problem().gridGeometry().elementMapper().index(element);
                 updateGlobalJacobian_(A, cellCenterGlobalI, globalJ, pvIdx, partialDeriv);
 
                 // restore the undeflected state of the coupling context
@@ -857,7 +857,7 @@ public:
         // get some aliases for convenience
         const auto& problem = this->problem();
         const auto& fvGeometry = this->fvGeometry();
-        const auto& fvGridGeometry = this->problem().fvGridGeometry();
+        const auto& fvGridGeometry = this->problem().gridGeometry();
         const auto& connectivityMap = fvGridGeometry.connectivityMap();
         const auto& curSol = this->curSol()[domainJ];
 
@@ -872,7 +872,7 @@ public:
             {
                 // get the volVars of the element with respect to which we are going to build the derivative
                 auto&& scvJ = fvGeometry.scv(globalJ);
-                const auto elementJ = fvGeometry.fvGridGeometry().element(globalJ);
+                const auto elementJ = fvGeometry.gridGeometry().element(globalJ);
                 auto& curVolVars = this->getVolVarAccess(gridVariables.curGridVolVars(), this->curElemVolVars(), scvJ);
                 const auto origVolVars(curVolVars);
                 const auto origCellCenterPriVars = curSol[globalJ];
diff --git a/dumux/multidomain/traits.hh b/dumux/multidomain/traits.hh
index bd282f96327ed9d392bc7223ee59e3bb5615d042..e3ac5069a846df02ebbf6200f8e2155d6706c690 100644
--- a/dumux/multidomain/traits.hh
+++ b/dumux/multidomain/traits.hh
@@ -181,7 +181,8 @@ public:
         using Index = Dune::index_constant<id>;
         using TypeTag = SubDomainTypeTag<id>;
         using Grid = GetPropType<SubDomainTypeTag<id>, Properties::Grid>;
-        using FVGridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::FVGridGeometry>;
+        using GridGeometry = GetPropType<SubDomainTypeTag<id>, Properties::GridGeometry>;
+        using FVGridGeometry [[deprecated("Use GridGeometry instead. FVGridGeometry will be removed after 3.1!")]] = GridGeometry;
         using Problem = GetPropType<SubDomainTypeTag<id>, Properties::Problem>;
         using GridVariables =GetPropType<SubDomainTypeTag<id>, Properties::GridVariables>;
         using IOFields = GetPropType<SubDomainTypeTag<id>, Properties::IOFields>;
diff --git a/dumux/nonlinear/newtonsolver.hh b/dumux/nonlinear/newtonsolver.hh
index 43c87aeaccfd9d10d44c73a53cdfd9dda6d526c3..30660b5023079d8a2683049c073b0db3b62a6d95 100644
--- a/dumux/nonlinear/newtonsolver.hh
+++ b/dumux/nonlinear/newtonsolver.hh
@@ -747,7 +747,7 @@ protected:
         priVarsSwitchedInLastIteration_ = false;
 
         const auto& problem = this->assembler().problem();
-        const auto& fvGridGeometry = this->assembler().fvGridGeometry();
+        const auto& fvGridGeometry = this->assembler().gridGeometry();
         auto& gridVariables = this->assembler().gridVariables();
         priVarSwitch_->updateBoundary(problem, fvGridGeometry, gridVariables, sol);
     }
@@ -764,7 +764,7 @@ protected:
     {
         // update the variable switch (returns true if the pri vars at at least one dof were switched)
         // for disabled grid variable caching
-        const auto& fvGridGeometry = this->assembler().fvGridGeometry();
+        const auto& fvGridGeometry = this->assembler().gridGeometry();
         const auto& problem = this->assembler().problem();
         auto& gridVariables = this->assembler().gridVariables();
 
diff --git a/dumux/porousmediumflow/1p/incompressiblelocalresidual.hh b/dumux/porousmediumflow/1p/incompressiblelocalresidual.hh
index d3ca2060f251477cf00bb59cb5710ff4423af00b..8bbcaf94dfcbda1fd69c0924e9a88ad2a4098e6e 100644
--- a/dumux/porousmediumflow/1p/incompressiblelocalresidual.hh
+++ b/dumux/porousmediumflow/1p/incompressiblelocalresidual.hh
@@ -47,7 +47,7 @@ class OnePIncompressibleLocalResidual : public ImmiscibleLocalResidual<TypeTag>
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
@@ -81,7 +81,7 @@ public:
 
     //! Flux derivatives for the cell-centered tpfa scheme
     template<class PartialDerivativeMatrices, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::cctpfa, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::cctpfa, void>
     addFluxDerivatives(PartialDerivativeMatrices& derivativeMatrices,
                        const Problem& problem,
                        const Element& element,
@@ -107,7 +107,7 @@ public:
 
     //! Flux derivatives for the cell-centered mpfa scheme
     template<class PartialDerivativeMatrices, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::ccmpfa, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::ccmpfa, void>
     addFluxDerivatives(PartialDerivativeMatrices& derivativeMatrices,
                        const Problem& problem,
                        const Element& element,
@@ -144,7 +144,7 @@ public:
 
     //! Flux derivatives for the box scheme
     template<class JacobianMatrix, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::box, void>
     addFluxDerivatives(JacobianMatrix& A,
                        const Problem& problem,
                        const Element& element,
@@ -182,7 +182,7 @@ public:
 
     //! Dirichlet flux derivatives for the cell-centered tpfa scheme
     template<class PartialDerivativeMatrices, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::cctpfa, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::cctpfa, void>
     addCCDirichletFluxDerivatives(PartialDerivativeMatrices& derivativeMatrices,
                                   const Problem& problem,
                                   const Element& element,
@@ -202,7 +202,7 @@ public:
 
     //! Dirichlet flux derivatives for the cell-centered mpfa scheme
     template<class PartialDerivativeMatrices, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::ccmpfa, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::ccmpfa, void>
     addCCDirichletFluxDerivatives(PartialDerivativeMatrices& derivativeMatrices,
                                   const Problem& problem,
                                   const Element& element,
diff --git a/dumux/porousmediumflow/2p/gridadaptindicator.hh b/dumux/porousmediumflow/2p/gridadaptindicator.hh
index 1dc83d80c3f2b368408115a95dced06f00d9c1a0..28d174ebf104e2361aaf0600812e74d1c511c3b7 100644
--- a/dumux/porousmediumflow/2p/gridadaptindicator.hh
+++ b/dumux/porousmediumflow/2p/gridadaptindicator.hh
@@ -43,7 +43,7 @@ namespace Dumux {
 template<class TypeTag>
 class TwoPGridAdaptIndicator
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
diff --git a/dumux/porousmediumflow/2p/griddatatransfer.hh b/dumux/porousmediumflow/2p/griddatatransfer.hh
index f8fe96fe5b3a5580fb9555bf94ae0433f1966e0a..b89fd3fc6a76f37a0543b2a45af9fbf69a81daeb 100644
--- a/dumux/porousmediumflow/2p/griddatatransfer.hh
+++ b/dumux/porousmediumflow/2p/griddatatransfer.hh
@@ -49,7 +49,7 @@ class TwoPGridDataTransfer : public GridDataTransfer
     using Grid = GetPropType<TypeTag, Properties::Grid>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
@@ -77,7 +77,7 @@ class TwoPGridDataTransfer : public GridDataTransfer
 
     static constexpr int dim = Grid::dimension;
     static constexpr int dimWorld = Grid::dimensionworld;
-    static constexpr bool isBox = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box;
+    static constexpr bool isBox = GetPropType<TypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box;
 
     // saturation primary variable index
     enum { saturationIdx = Indices::saturationIdx };
diff --git a/dumux/porousmediumflow/2p/incompressiblelocalresidual.hh b/dumux/porousmediumflow/2p/incompressiblelocalresidual.hh
index a9a4698daafede0aef372e23ec6e14c0fdc0fc59..54396316e48f83a90b925ea9e1939e5a437b522c 100644
--- a/dumux/porousmediumflow/2p/incompressiblelocalresidual.hh
+++ b/dumux/porousmediumflow/2p/incompressiblelocalresidual.hh
@@ -56,7 +56,7 @@ class TwoPIncompressibleLocalResidual : public ImmiscibleLocalResidual<TypeTag>
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
@@ -150,7 +150,7 @@ public:
      * \param scvf The sub control volume face
      */
     template<class PartialDerivativeMatrices, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::cctpfa, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::cctpfa, void>
     addFluxDerivatives(PartialDerivativeMatrices& derivativeMatrices,
                        const Problem& problem,
                        const Element& element,
@@ -187,7 +187,7 @@ public:
         // get references to the two participating vol vars & parameters
         const auto insideScvIdx = scvf.insideScvIdx();
         const auto outsideScvIdx = scvf.outsideScvIdx();
-        const auto outsideElement = fvGeometry.fvGridGeometry().element(outsideScvIdx);
+        const auto outsideElement = fvGeometry.gridGeometry().element(outsideScvIdx);
         const auto& insideScv = fvGeometry.scv(insideScvIdx);
         const auto& outsideScv = fvGeometry.scv(outsideScvIdx);
         const auto& insideVolVars = curElemVolVars[insideScvIdx];
@@ -269,7 +269,7 @@ public:
      * \param scvf The sub control volume face
      */
     template<class JacobianMatrix, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::box, void>
     addFluxDerivatives(JacobianMatrix& A,
                        const Problem& problem,
                        const Element& element,
diff --git a/dumux/porousmediumflow/2p/model.hh b/dumux/porousmediumflow/2p/model.hh
index 2c08476770cbffae39586f193a4574f7af5f6030..6fb22ec0e7c4cf7cef2b2cc67350c942d8e8a68a 100644
--- a/dumux/porousmediumflow/2p/model.hh
+++ b/dumux/porousmediumflow/2p/model.hh
@@ -181,7 +181,7 @@ private:
     using MT = GetPropType<TypeTag, Properties::ModelTraits>;
     using PT = typename GetPropType<TypeTag, Properties::SpatialParams>::PermeabilityType;
 
-    static constexpr auto DM = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod;
+    static constexpr auto DM = GetPropType<TypeTag, Properties::GridGeometry>::discMethod;
     static constexpr bool enableIS = getPropValue<TypeTag, Properties::EnableBoxInterfaceSolver>();
     // class used for scv-wise reconstruction of non-wetting phase saturations
     using SR = TwoPScvSaturationReconstruction<DM, enableIS>;
diff --git a/dumux/porousmediumflow/2p1c/darcyslaw.hh b/dumux/porousmediumflow/2p1c/darcyslaw.hh
index 448f22b98f7a5c30f4a54d561ec884d5748491f7..1188739f1bc45ca14332ce98acab27312b794056 100644
--- a/dumux/porousmediumflow/2p1c/darcyslaw.hh
+++ b/dumux/porousmediumflow/2p1c/darcyslaw.hh
@@ -49,7 +49,7 @@ class TwoPOneCDarcysLaw : public DarcysLaw<TypeTag>
 {
     using ParentType = DarcysLaw<TypeTag>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElemFluxVarCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
diff --git a/dumux/porousmediumflow/2p1c/localresidual.hh b/dumux/porousmediumflow/2p1c/localresidual.hh
index 74b439b5fe7caa8f4de3360b6d7ec4a240e13f1a..d6f54172f3fdea46a793692e68d62809a44013ab 100644
--- a/dumux/porousmediumflow/2p1c/localresidual.hh
+++ b/dumux/porousmediumflow/2p1c/localresidual.hh
@@ -43,7 +43,7 @@ class TwoPOneCLocalResidual : public ImmiscibleLocalResidual<TypeTag>
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
diff --git a/dumux/porousmediumflow/3p3c/localresidual.hh b/dumux/porousmediumflow/3p3c/localresidual.hh
index 32622fcbcd4e2d31d23d0a0b65d867faa33e45a0..ecd3f259850542d86acaf8c835df9d42e7a148cf 100644
--- a/dumux/porousmediumflow/3p3c/localresidual.hh
+++ b/dumux/porousmediumflow/3p3c/localresidual.hh
@@ -41,7 +41,7 @@ class ThreePThreeCLocalResidual : public GetPropType<TypeTag, Properties::BaseLo
     using ParentType = GetPropType<TypeTag, Properties::BaseLocalResidual>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
diff --git a/dumux/porousmediumflow/3pwateroil/localresidual.hh b/dumux/porousmediumflow/3pwateroil/localresidual.hh
index a19c731c5a39d089ed5a5c3ec3a57cde49f37489..883ce03d3b9f06f99f8b5ba0e320e8047fe788fa 100644
--- a/dumux/porousmediumflow/3pwateroil/localresidual.hh
+++ b/dumux/porousmediumflow/3pwateroil/localresidual.hh
@@ -41,7 +41,7 @@ protected:
     using ParentType = GetPropType<TypeTag, Properties::BaseLocalResidual>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
diff --git a/dumux/porousmediumflow/boxdfm/fluxvariablescache.hh b/dumux/porousmediumflow/boxdfm/fluxvariablescache.hh
index bdad5c7ed2326daa28f87cd483da84b004a1dbfa..403edda110120be215270b6f7ff611659f957a68 100644
--- a/dumux/porousmediumflow/boxdfm/fluxvariablescache.hh
+++ b/dumux/porousmediumflow/boxdfm/fluxvariablescache.hh
@@ -47,7 +47,7 @@ class BoxDfmFluxVariablesCache
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/dumux/porousmediumflow/boxdfm/fvelementgeometry.hh b/dumux/porousmediumflow/boxdfm/fvelementgeometry.hh
index 9da65aacadf78b2a5964fe9bfdda0e13dccb81b0..a79f362bff9fe16d1f00d1c4ed684d90c7321b00 100644
--- a/dumux/porousmediumflow/boxdfm/fvelementgeometry.hh
+++ b/dumux/porousmediumflow/boxdfm/fvelementgeometry.hh
@@ -69,22 +69,25 @@ public:
     //! Export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! Export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    //! Export type of finite volume grid geometry
+    using FVGridGeometry [[deprecated("Use GridGeometry instead. FVGridGeometry will be removed after 3.1!")]] = GridGeometry;
+
     //! The maximum number of scvs per element (2^dim for cubes)
     //! multiplied by 3 for the maximum number of fracture scvs per vertex
     static constexpr std::size_t maxNumElementScvs = (1<<dim)*3;
 
     //! Constructor
-    BoxDfmFVElementGeometry(const FVGridGeometry& fvGridGeometry)
+    BoxDfmFVElementGeometry(const GridGeometry& fvGridGeometry)
     : fvGridGeometryPtr_(&fvGridGeometry) {}
 
     //! Get a sub control volume with a local scv index
     const SubControlVolume& scv(std::size_t scvIdx) const
-    { return fvGridGeometry().scvs(eIdx_)[scvIdx]; }
+    { return gridGeometry().scvs(eIdx_)[scvIdx]; }
 
     //! Get a sub control volume face with a local scvf index
     const SubControlVolumeFace& scvf(std::size_t scvfIdx) const
-    { return fvGridGeometry().scvfs(eIdx_)[scvfIdx]; }
+    { return gridGeometry().scvfs(eIdx_)[scvfIdx]; }
 
    /*!
     * \brief Iterator range for sub control volumes.
@@ -97,7 +100,7 @@ public:
     friend inline Dune::IteratorRange<typename std::vector<SubControlVolume>::const_iterator>
     scvs(const BoxDfmFVElementGeometry& fvGeometry)
     {
-        const auto& g = fvGeometry.fvGridGeometry();
+        const auto& g = fvGeometry.gridGeometry();
         using Iter = typename std::vector<SubControlVolume>::const_iterator;
         return Dune::IteratorRange<Iter>(g.scvs(fvGeometry.eIdx_).begin(), g.scvs(fvGeometry.eIdx_).end());
     }
@@ -113,22 +116,22 @@ public:
     friend inline Dune::IteratorRange<typename std::vector<SubControlVolumeFace>::const_iterator>
     scvfs(const BoxDfmFVElementGeometry& fvGeometry)
     {
-        const auto& g = fvGeometry.fvGridGeometry();
+        const auto& g = fvGeometry.gridGeometry();
         using Iter = typename std::vector<SubControlVolumeFace>::const_iterator;
         return Dune::IteratorRange<Iter>(g.scvfs(fvGeometry.eIdx_).begin(), g.scvfs(fvGeometry.eIdx_).end());
     }
 
     //! Get a local finite element basis
     const FeLocalBasis& feLocalBasis() const
-    { return fvGridGeometry().feCache().get(elemGeometryType_).localBasis(); }
+    { return gridGeometry().feCache().get(elemGeometryType_).localBasis(); }
 
     //! The total number of sub control volumes
     std::size_t numScv() const
-    { return fvGridGeometry().scvs(eIdx_).size(); }
+    { return gridGeometry().scvs(eIdx_).size(); }
 
     //! The total number of sub control volume faces
     std::size_t numScvf() const
-    { return fvGridGeometry().scvfs(eIdx_).size(); }
+    { return gridGeometry().scvfs(eIdx_).size(); }
 
     //! This function is for compatibility reasons with cc methods
     //! The box stencil is always element-local so bind and bindElement are identical.
@@ -146,16 +149,21 @@ public:
     void bindElement(const Element& element)
     {
         elemGeometryType_ = element.type();
-        eIdx_ = fvGridGeometry().elementMapper().index(element);
+        eIdx_ = gridGeometry().elementMapper().index(element);
     }
 
     //! The global finite volume geometry we are a restriction of
-    const FVGridGeometry& fvGridGeometry() const
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
+    const GridGeometry& fvGridGeometry() const
+    { return *fvGridGeometryPtr_; }
+
+    //! The global finite volume geometry we are a restriction of
+    const GridGeometry& gridGeometry() const
     { return *fvGridGeometryPtr_; }
 
 private:
     Dune::GeometryType elemGeometryType_;
-    const FVGridGeometry* fvGridGeometryPtr_;
+    const GridGeometry* fvGridGeometryPtr_;
     GridIndexType eIdx_;
 };
 
@@ -184,13 +192,15 @@ public:
     //! Export type of subcontrol volume face
     using SubControlVolumeFace = typename GG::SubControlVolumeFace;
     //! Export type of finite volume grid geometry
-    using FVGridGeometry = GG;
+    using GridGeometry = GG;
+    //! export type of finite volume grid geometry
+    using FVGridGeometry [[deprecated("Use GridGeometry instead. FVGridGeometry will be removed after 3.1!")]] = GridGeometry;
     //! The maximum number of scvs per element (2^dim for cubes)
     //! multiplied by 3 for the maximum number of fracture scvs per vertex
     static constexpr std::size_t maxNumElementScvs = (1<<dim)*3;
 
     //! Constructor
-    BoxDfmFVElementGeometry(const FVGridGeometry& fvGridGeometry)
+    BoxDfmFVElementGeometry(const GridGeometry& fvGridGeometry)
     : fvGridGeometryPtr_(&fvGridGeometry) {}
 
     //! Get a sub control volume with a local scv index
@@ -233,7 +243,7 @@ public:
 
     //! Get a local finite element basis
     const FeLocalBasis& feLocalBasis() const
-    { return fvGridGeometry().feCache().get(elemGeometryType_).localBasis(); }
+    { return gridGeometry().feCache().get(elemGeometryType_).localBasis(); }
 
     //! The total number of sub control volumes
     std::size_t numScv() const
@@ -258,19 +268,24 @@ public:
     */
     void bindElement(const Element& element)
     {
-        eIdx_ = fvGridGeometry().elementMapper().index(element);
+        eIdx_ = gridGeometry().elementMapper().index(element);
         makeElementGeometries(element);
     }
 
     //! The global finite volume geometry we are a restriction of
-    const FVGridGeometry& fvGridGeometry() const
+    [[deprecated("Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
+    const GridGeometry& fvGridGeometry() const
+    { return *fvGridGeometryPtr_; }
+
+    //! The global finite volume geometry we are a restriction of
+    const GridGeometry& gridGeometry() const
     { return *fvGridGeometryPtr_; }
 
 private:
 
     void makeElementGeometries(const Element& element)
     {
-        auto eIdx = fvGridGeometry().elementMapper().index(element);
+        auto eIdx = gridGeometry().elementMapper().index(element);
 
         // get the element geometry
         auto elementGeometry = element.geometry();
@@ -286,7 +301,7 @@ private:
         for (LocalIndexType scvLocalIdx = 0; scvLocalIdx < elementGeometry.corners(); ++scvLocalIdx)
         {
             // get asssociated dof index
-            const auto dofIdxGlobal = fvGridGeometry().vertexMapper().subIndex(element, scvLocalIdx, dim);
+            const auto dofIdxGlobal = gridGeometry().vertexMapper().subIndex(element, scvLocalIdx, dim);
 
             // add scv to the local container
             scvs_[scvLocalIdx] = SubControlVolume(geometryHelper,
@@ -325,7 +340,7 @@ private:
         //      we would have to find only those fractures that are at the boundary and aren't connected
         //      to a fracture which is a boundary.
         LocalIndexType scvLocalIdx = element.subEntities(dim);
-        for (const auto& intersection : intersections(fvGridGeometry().gridView(), element))
+        for (const auto& intersection : intersections(gridGeometry().gridView(), element))
         {
             // first, obtain all vertex indices on this intersection
             const auto& isGeometry = intersection.geometry();
@@ -334,7 +349,7 @@ private:
 
             std::vector<GridIndexType> isVertexIndices(numCorners);
             for (unsigned int vIdxLocal = 0; vIdxLocal < numCorners; ++vIdxLocal)
-                isVertexIndices[vIdxLocal] = fvGridGeometry().vertexMapper().subIndex(element,
+                isVertexIndices[vIdxLocal] = gridGeometry().vertexMapper().subIndex(element,
                                                                                       referenceElement.subEntity(idxInInside, 1, vIdxLocal, dim),
                                                                                       dim);
 
@@ -359,7 +374,7 @@ private:
             }
 
             // maybe add fracture scvs & scvfs
-            if (this->fvGridGeometry().isOnFracture(element, intersection))
+            if (this->gridGeometry().isOnFracture(element, intersection))
             {
                 // add fracture scv for each vertex of intersection
                 const auto curNumScvs = scvs_.size();
@@ -430,7 +445,7 @@ private:
     GridIndexType eIdx_;
 
     //! The global geometry this is a restriction of
-    const FVGridGeometry* fvGridGeometryPtr_;
+    const GridGeometry* fvGridGeometryPtr_;
 
     /*!
      * \brief Binding of an element, has to be called before using the fvgeometries
diff --git a/dumux/porousmediumflow/boxdfm/model.hh b/dumux/porousmediumflow/boxdfm/model.hh
index b3b217eb7f63c6f82ccad7e0c8d1b6f665721f11..84388e596169f90109c6b4d50a475ff78f950921 100644
--- a/dumux/porousmediumflow/boxdfm/model.hh
+++ b/dumux/porousmediumflow/boxdfm/model.hh
@@ -40,6 +40,13 @@ namespace TTag {
 struct BoxDfmModel { using InheritsFrom = std::tuple<BoxModel>; };
 } // end namespace TTag
 
+// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
+// For ensuring backward compatibility on the user side, it is necessary to
+// stick to the old name for the specializations, see the discussion in MR 1647.
+// Use diagnostic pragmas to prevent the emission of a warning message.
+// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 //! Set the default for the global finite volume geometry
 template<class TypeTag>
 struct FVGridGeometry<TypeTag, TTag::BoxDfmModel>
@@ -51,6 +58,7 @@ private:
 public:
     using type = BoxDfmFVGridGeometry<Scalar, GridView, enableCache>;
 };
+#pragma GCC diagnostic pop
 
 //! The flux variables cache class specific to box-dfm porous medium flow models
 template<class TypeTag>
diff --git a/dumux/porousmediumflow/compositional/localresidual.hh b/dumux/porousmediumflow/compositional/localresidual.hh
index 5cb6815bcb61149e9f0274fc5d7bb2a60d105999..e4c26014086d24a48e36908e22668fd59d3e5d94 100644
--- a/dumux/porousmediumflow/compositional/localresidual.hh
+++ b/dumux/porousmediumflow/compositional/localresidual.hh
@@ -43,7 +43,7 @@ class CompositionalLocalResidual: public GetPropType<TypeTag, Properties::BaseLo
     using Implementation = GetPropType<TypeTag, Properties::LocalResidual>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
diff --git a/dumux/porousmediumflow/fluxvariables.hh b/dumux/porousmediumflow/fluxvariables.hh
index 1577cb9a735848dfd11ce1ab78061c6e510e877d..1838524d4f23c98212b1db8b0feaf7d5fa23e2b5 100644
--- a/dumux/porousmediumflow/fluxvariables.hh
+++ b/dumux/porousmediumflow/fluxvariables.hh
@@ -44,16 +44,16 @@ namespace Dumux {
  * \note  Not all specializations are currently implemented
  */
 template<class TypeTag,
-         class UpwindScheme = UpwindScheme<GetPropType<TypeTag, Properties::FVGridGeometry>> >
+         class UpwindScheme = UpwindScheme<GetPropType<TypeTag, Properties::GridGeometry>> >
 class PorousMediumFluxVariables
 : public FluxVariablesBase<GetPropType<TypeTag, Properties::Problem>,
-                           typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView,
+                           typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView,
                            typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView,
                            typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/dumux/porousmediumflow/fluxvariablescache.hh b/dumux/porousmediumflow/fluxvariablescache.hh
index b14d559522fc045892f7b9b5215fc71b52dc9d9d..6b2d24ba3f62f1ded0fc4c8b27c8c7926228e4e6 100644
--- a/dumux/porousmediumflow/fluxvariablescache.hh
+++ b/dumux/porousmediumflow/fluxvariablescache.hh
@@ -50,13 +50,13 @@ class PorousMediumFluxVariablesCacheImplementation;
  * cache class are provided for different combinations of processes.
  */
 template<class TypeTag>
-using PorousMediumFluxVariablesCache = PorousMediumFluxVariablesCacheImplementation<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using PorousMediumFluxVariablesCache = PorousMediumFluxVariablesCacheImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 //! We only store discretization-related quantities for the box method. Thus, we need no
 //! physics-dependent specialization and simply inherit from the physics-independent implementation.
 template<class TypeTag>
 class PorousMediumFluxVariablesCacheImplementation<TypeTag, DiscretizationMethod::box>
-: public BoxFluxVariablesCache<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::FVGridGeometry>>
+: public BoxFluxVariablesCache<GetPropType<TypeTag, Properties::Scalar>, GetPropType<TypeTag, Properties::GridGeometry>>
 {
 public:
     //! export type used for scalar values
@@ -97,7 +97,7 @@ class PorousMediumFluxVariablesCacheImplementation<TypeTag, DiscretizationMethod
 {
     using GridIndexType = typename GetPropType<TypeTag, Properties::GridView>::IndexSet::IndexType;
 
-    using MpfaHelper = typename GetPropType<TypeTag, Properties::FVGridGeometry>::MpfaHelper;
+    using MpfaHelper = typename GetPropType<TypeTag, Properties::GridGeometry>::MpfaHelper;
     static constexpr bool considerSecondary = MpfaHelper::considerSecondaryIVs();
 public:
     //! export type used for scalar values
diff --git a/dumux/porousmediumflow/fluxvariablescachefiller.hh b/dumux/porousmediumflow/fluxvariablescachefiller.hh
index 40ec6db696d9990615d0d089e76994f38c79391e..916ceff5b2aca2672209dea00c4a98206eebb2b5 100644
--- a/dumux/porousmediumflow/fluxvariablescachefiller.hh
+++ b/dumux/porousmediumflow/fluxvariablescachefiller.hh
@@ -44,7 +44,7 @@ class PorousMediumFluxVariablesCacheFillerImplementation;
  * Helps filling the flux variables cache depending several policies
  */
 template<class TypeTag>
-using PorousMediumFluxVariablesCacheFiller = PorousMediumFluxVariablesCacheFillerImplementation<TypeTag, GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod>;
+using PorousMediumFluxVariablesCacheFiller = PorousMediumFluxVariablesCacheFillerImplementation<TypeTag, GetPropType<TypeTag, Properties::GridGeometry>::discMethod>;
 
 //! Specialization of the flux variables cache filler for the cell centered tpfa method
 template<class TypeTag>
@@ -53,7 +53,7 @@ class PorousMediumFluxVariablesCacheFillerImplementation<TypeTag, Discretization
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
@@ -218,7 +218,7 @@ class PorousMediumFluxVariablesCacheFillerImplementation<TypeTag, Discretization
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using MpfaHelper = typename FVGridGeometry::MpfaHelper;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
@@ -281,7 +281,7 @@ public:
         elemVolVarsPtr_ = &elemVolVars;
 
         // prepare interaction volume and fill caches of all the scvfs connected to it
-        const auto& fvGridGeometry = fvGeometry.fvGridGeometry();
+        const auto& fvGridGeometry = fvGeometry.gridGeometry();
         if (fvGridGeometry.vertexUsesSecondaryInteractionVolume(scvf.vertexIndex()))
         {
             if (forceUpdateAll)
diff --git a/dumux/porousmediumflow/immiscible/localresidual.hh b/dumux/porousmediumflow/immiscible/localresidual.hh
index b600ca1334b5fefbb3a228683433306ee264cae3..888e5f426461d204e14ee949c320ad357e25dfed 100644
--- a/dumux/porousmediumflow/immiscible/localresidual.hh
+++ b/dumux/porousmediumflow/immiscible/localresidual.hh
@@ -45,7 +45,7 @@ class ImmiscibleLocalResidual : public GetPropType<TypeTag, Properties::BaseLoca
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
diff --git a/dumux/porousmediumflow/mineralization/localresidual.hh b/dumux/porousmediumflow/mineralization/localresidual.hh
index 3d53444c955db84f6d194423bb5db8ee9f3c2187..bcfbfee4c443485cef75f8cb558492ba14cb9e67 100644
--- a/dumux/porousmediumflow/mineralization/localresidual.hh
+++ b/dumux/porousmediumflow/mineralization/localresidual.hh
@@ -40,7 +40,7 @@ class MineralizationLocalResidual: public CompositionalLocalResidual<TypeTag>
 {
     using ParentType = CompositionalLocalResidual<TypeTag>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
diff --git a/dumux/porousmediumflow/mpnc/localresidual.hh b/dumux/porousmediumflow/mpnc/localresidual.hh
index 8add06f28682a2c6d518ae396f5da85cdf6ff4b7..b25d2b8a1958aa4b0774a4450b7ff88ced6788d7 100644
--- a/dumux/porousmediumflow/mpnc/localresidual.hh
+++ b/dumux/porousmediumflow/mpnc/localresidual.hh
@@ -46,7 +46,7 @@ class MPNCLocalResidual : public CompositionalLocalResidual<TypeTag>
 {
     using ParentType = CompositionalLocalResidual<TypeTag>;
     using Element = typename GetPropType<TypeTag, Properties::GridView>::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using ElementBoundaryTypes = GetPropType<TypeTag, Properties::ElementBoundaryTypes>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
diff --git a/dumux/porousmediumflow/nonequilibrium/gridvariables.hh b/dumux/porousmediumflow/nonequilibrium/gridvariables.hh
index 28f5b6861af1d4d36cd9a3a737834fb59b146d4e..72573b5db95cb5147040443a23eaeffb92cbf3dc 100644
--- a/dumux/porousmediumflow/nonequilibrium/gridvariables.hh
+++ b/dumux/porousmediumflow/nonequilibrium/gridvariables.hh
@@ -43,12 +43,12 @@ namespace Dumux {
  */
 template<class TypeTag>
 class NonEquilibriumGridVariables
-: public FVGridVariables<GetPropType<TypeTag, Properties::FVGridGeometry>,
+: public FVGridVariables<GetPropType<TypeTag, Properties::GridGeometry>,
                          GetPropType<TypeTag, Properties::GridVolumeVariables>,
                          GetPropType<TypeTag, Properties::GridFluxVariablesCache>>
 {
     using ThisType = NonEquilibriumGridVariables<TypeTag>;
-    using ParentType = FVGridVariables<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using ParentType = FVGridVariables<GetPropType<TypeTag, Properties::GridGeometry>,
                                        GetPropType<TypeTag, Properties::GridVolumeVariables>,
                                        GetPropType<TypeTag, Properties::GridFluxVariablesCache>>;
 
diff --git a/dumux/porousmediumflow/nonequilibrium/localresidual.hh b/dumux/porousmediumflow/nonequilibrium/localresidual.hh
index c91676823d590175c70f4d161654073c7aa58bc0..eecf792d535d4536110689a12c266cf4e8a60353 100644
--- a/dumux/porousmediumflow/nonequilibrium/localresidual.hh
+++ b/dumux/porousmediumflow/nonequilibrium/localresidual.hh
@@ -49,7 +49,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 FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
@@ -170,7 +170,7 @@ class NonEquilibriumLocalResidualImplementation<TypeTag, true>: public GetPropTy
     using Implementation = GetPropType<TypeTag, Properties::LocalResidual>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
diff --git a/dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh b/dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh
index 9d82d6d5ee0f6e3b9d781e417197df9f425e751f..47868d7699ed9e68bc31bb3dce4dbbd5c21071ef 100644
--- a/dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh
+++ b/dumux/porousmediumflow/nonequilibrium/thermal/localresidual.hh
@@ -47,7 +47,7 @@ class EnergyLocalResidualNonEquilibrium<TypeTag, 1/*numEnergyEqFluid*/>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
@@ -210,7 +210,7 @@ class EnergyLocalResidualNonEquilibrium<TypeTag, 2/*numEnergyEqFluid*/>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
diff --git a/dumux/porousmediumflow/nonisothermal/localresidual.hh b/dumux/porousmediumflow/nonisothermal/localresidual.hh
index e3192dee17105609e4490540fc1dfcde728577b5..3b3210464bf9b45f52c6fcd5b710393cde121f95 100644
--- a/dumux/porousmediumflow/nonisothermal/localresidual.hh
+++ b/dumux/porousmediumflow/nonisothermal/localresidual.hh
@@ -47,7 +47,7 @@ class EnergyLocalResidualImplementation<TypeTag, false>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
 
@@ -111,7 +111,7 @@ class EnergyLocalResidualImplementation<TypeTag, true>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
diff --git a/dumux/porousmediumflow/problem.hh b/dumux/porousmediumflow/problem.hh
index ef9bf5220d101a56c60bd54abefbbc7557df13cd..384dd51794e8002459d22364616343cf414db08a 100644
--- a/dumux/porousmediumflow/problem.hh
+++ b/dumux/porousmediumflow/problem.hh
@@ -38,7 +38,7 @@ template<class TypeTag>
 class PorousMediumFlowProblem : public FVProblem<TypeTag>
 {
     using ParentType = FVProblem<TypeTag>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
 
     enum {
diff --git a/dumux/porousmediumflow/richards/localresidual.hh b/dumux/porousmediumflow/richards/localresidual.hh
index f89f81466a7b18308f85cf6bceb99ee7b5a4213b..f31b8cb04641f35a53fd7c6abc6329e72ea6ee0e 100644
--- a/dumux/porousmediumflow/richards/localresidual.hh
+++ b/dumux/porousmediumflow/richards/localresidual.hh
@@ -49,7 +49,7 @@ class RichardsLocalResidual : public GetPropType<TypeTag, Properties::BaseLocalR
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
@@ -237,7 +237,7 @@ public:
      * \param scvf The sub control volume face
      */
     template<class PartialDerivativeMatrices, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::cctpfa, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::cctpfa, void>
     addFluxDerivatives(PartialDerivativeMatrices& derivativeMatrices,
                        const Problem& problem,
                        const Element& element,
@@ -256,7 +256,7 @@ public:
         // get references to the two participating vol vars & parameters
         const auto insideScvIdx = scvf.insideScvIdx();
         const auto outsideScvIdx = scvf.outsideScvIdx();
-        const auto outsideElement = fvGeometry.fvGridGeometry().element(outsideScvIdx);
+        const auto outsideElement = fvGeometry.gridGeometry().element(outsideScvIdx);
         const auto& insideScv = fvGeometry.scv(insideScvIdx);
         const auto& outsideScv = fvGeometry.scv(outsideScvIdx);
         const auto& insideVolVars = curElemVolVars[insideScvIdx];
@@ -313,7 +313,7 @@ public:
      * \param scvf The sub control volume face
      */
     template<class JacobianMatrix, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::box, void>
     addFluxDerivatives(JacobianMatrix& A,
                        const Problem& problem,
                        const Element& element,
diff --git a/dumux/porousmediumflow/richards/newtonsolver.hh b/dumux/porousmediumflow/richards/newtonsolver.hh
index 0b40236bec85c3d76f2edf49af3f566068083df1..ffb72218faef890313bc2a148e22503b93e27a20 100644
--- a/dumux/porousmediumflow/richards/newtonsolver.hh
+++ b/dumux/porousmediumflow/richards/newtonsolver.hh
@@ -75,7 +75,7 @@ private:
         if (this->numSteps_ <= 4)
         {
             // clamp saturation change to at most 20% per iteration
-            const auto& fvGridGeometry = this->assembler().fvGridGeometry();
+            const auto& fvGridGeometry = this->assembler().gridGeometry();
             for (const auto& element : elements(fvGridGeometry.gridView()))
             {
                 auto fvGeometry = localView(fvGridGeometry);
diff --git a/dumux/porousmediumflow/sequential/properties.hh b/dumux/porousmediumflow/sequential/properties.hh
index cd36ab9111a5b69db1f3057d4d308ace39c5f1c1..de283bb5809f9d4b02671a72993409fd7f253c8d 100644
--- a/dumux/porousmediumflow/sequential/properties.hh
+++ b/dumux/porousmediumflow/sequential/properties.hh
@@ -139,6 +139,13 @@ public:
     static const int value = 2*dim;
 };
 
+// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
+// For ensuring backward compatibility on the user side, it is necessary to
+// stick to the old name for the specializations, see the discussion in MR 1647.
+// Use diagnostic pragmas to prevent the emission of a warning message.
+// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 //! A simplified grid geometry for compatibility with new style models
 template<class TypeTag>
 struct FVGridGeometry<TypeTag, TTag::SequentialModel>
@@ -153,6 +160,7 @@ struct FVGridGeometry<TypeTag, TTag::SequentialModel>
 public:
     using type = MockFVGridGeometry;
 };
+#pragma GCC diagnostic pop
 
 //! For compatibility with new style models we need a solution vector type
 template<class TypeTag>
diff --git a/dumux/porousmediumflow/solidenergy/localresidual.hh b/dumux/porousmediumflow/solidenergy/localresidual.hh
index c341946053d7a310efbfa64871c41843a050d9a2..b0318ed041375526514bb6205f0beee5cb1479cf 100644
--- a/dumux/porousmediumflow/solidenergy/localresidual.hh
+++ b/dumux/porousmediumflow/solidenergy/localresidual.hh
@@ -43,7 +43,7 @@ class SolidEnergyLocalResidual : public GetPropType<TypeTag, Properties::BaseLoc
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using FluxVariables = GetPropType<TypeTag, Properties::FluxVariables>;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
diff --git a/dumux/porousmediumflow/tracer/localresidual.hh b/dumux/porousmediumflow/tracer/localresidual.hh
index e4d9a455dd38f3d66c9eda4e8a2bc1c32cc56d28..6fb3220aef4b8e03ed8ac7941885d607cad4f380 100644
--- a/dumux/porousmediumflow/tracer/localresidual.hh
+++ b/dumux/porousmediumflow/tracer/localresidual.hh
@@ -43,7 +43,7 @@ class TracerLocalResidual: public GetPropType<TypeTag, Properties::BaseLocalResi
     using ParentType = GetPropType<TypeTag, Properties::BaseLocalResidual>;
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
@@ -219,7 +219,7 @@ public:
     }
 
     template<class PartialDerivativeMatrices, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod != DiscretizationMethod::box, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod != DiscretizationMethod::box, void>
     addFluxDerivatives(PartialDerivativeMatrices& derivativeMatrices,
                        const Problem& problem,
                        const Element& element,
@@ -277,7 +277,7 @@ public:
     }
 
     template<class JacobianMatrix, class T = TypeTag>
-    std::enable_if_t<GetPropType<T, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box, void>
+    std::enable_if_t<GetPropType<T, Properties::GridGeometry>::discMethod == DiscretizationMethod::box, void>
     addFluxDerivatives(JacobianMatrix& A,
                        const Problem& problem,
                        const Element& element,
diff --git a/dumux/porousmediumflow/velocity.hh b/dumux/porousmediumflow/velocity.hh
index 83f3f69cad603faf3c3088db565273acf3bfa4cd..28e9d3affa38b1cf5ac3677ca6b308d8ae66c5e8 100644
--- a/dumux/porousmediumflow/velocity.hh
+++ b/dumux/porousmediumflow/velocity.hh
@@ -80,7 +80,7 @@ public:
      */
     PorousMediumFlowVelocity(const GridVariables& gridVariables)
     : problem_(gridVariables.curGridVolVars().problem())
-    , fvGridGeometry_(gridVariables.fvGridGeometry())
+    , fvGridGeometry_(gridVariables.gridGeometry())
     , gridVariables_(gridVariables)
     {
         // set the number of scvs the vertices are connected to
diff --git a/examples/1ptracer/main.cc b/examples/1ptracer/main.cc
index c7054d4e4cbcddd6f490fa75c339b7a04c455d5c..ba44ca3f761653d7e7cd5d534a5db055675180d1 100644
--- a/examples/1ptracer/main.cc
+++ b/examples/1ptracer/main.cc
@@ -87,7 +87,7 @@ int main(int argc, char** argv) try
     // #### Set-up
     // We create and initialize the finite volume grid geometry, the problem, the linear system, including the jacobian matrix, the residual and the solution vector and the gridvariables.
     // We need the finite volume geometry to build up the subcontrolvolumes (scv) and subcontrolvolume faces (scvf) for each element of the grid partition.
-    using FVGridGeometry = GetPropType<OnePTypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<OnePTypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/examples/1ptracer/problem_1p.hh b/examples/1ptracer/problem_1p.hh
index 17a20ae5f75548f8f9d31ec13d49b5a257c2a0b1..82dd98a0cba091efbdf5f402e8a0f4da8a366972 100644
--- a/examples/1ptracer/problem_1p.hh
+++ b/examples/1ptracer/problem_1p.hh
@@ -71,8 +71,8 @@ struct Problem<TypeTag, TTag::IncompressibleTest> { using type = OnePTestProblem
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::IncompressibleTest>
 {
-    // We define convenient shortcuts to the properties `FVGridGeometry` and `Scalar`:
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    // We define convenient shortcuts to the properties `GridGeometry` and `Scalar`:
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     // Finally, we set the spatial parameters:
     using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
@@ -118,9 +118,9 @@ 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 FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
@@ -144,7 +144,7 @@ public:
         // we define a small epsilon value
         Scalar eps = 1.0e-6;
         // We specify Dirichlet boundaries on the top and bottom of our domain:
-        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->fvGridGeometry().bBoxMax()[dimWorld-1] - eps)
+        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->gridGeometry().bBoxMax()[dimWorld-1] - eps)
             values.setAllDirichlet();
         else
             // The top and bottom of our domain are Neumann boundaries:
diff --git a/examples/1ptracer/problem_tracer.hh b/examples/1ptracer/problem_tracer.hh
index bd924854329b9fca0c22be89cdb66f6853e79553..bebaa7abdeebcc3675026e8b3e9d8a409e0556af 100644
--- a/examples/1ptracer/problem_tracer.hh
+++ b/examples/1ptracer/problem_tracer.hh
@@ -73,7 +73,7 @@ struct Problem<TypeTag, TTag::TracerTest> { using type = TracerTestProblem<TypeT
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TracerTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TracerTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -96,7 +96,7 @@ class TracerFluidSystem : public FluidSystems::Base<GetPropType<TypeTag, Propert
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
 public:
@@ -151,7 +151,7 @@ class TracerTestProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
diff --git a/examples/2pinfiltration/main.cc b/examples/2pinfiltration/main.cc
index 01763ef623ac621529f07a18fd61ac4a09e36797..46b31e111b878008f29eb023d3f4055089af05a9 100644
--- a/examples/2pinfiltration/main.cc
+++ b/examples/2pinfiltration/main.cc
@@ -102,7 +102,7 @@ int main(int argc, char** argv) try
     // We create and initialize the finite volume grid geometry, the problem, the linear system, including the jacobian matrix, the residual and the solution vector and the gridvariables.
     //
     // We need the finite volume geometry to build up the subcontrolvolumes (scv) and subcontrolvolume faces (scvf) for each element of the grid partition.
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/examples/2pinfiltration/problem.hh b/examples/2pinfiltration/problem.hh
index 7bd63d13f02751e364351a69dcab386dc4607544..153e208065a417a50c32917dd7b20c47b1c893bb 100644
--- a/examples/2pinfiltration/problem.hh
+++ b/examples/2pinfiltration/problem.hh
@@ -101,9 +101,9 @@ namespace Dumux {
   template<class TypeTag>
   struct SpatialParams<TypeTag, TTag::PointSourceExample>
   {
-      // We define convenient shortcuts to the properties FVGridGeometry and Scalar:
+      // We define convenient shortcuts to the properties GridGeometry and Scalar:
   private:
-      using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+      using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
       using Scalar = GetPropType<TypeTag, Properties::Scalar>;
       // Finally we set the spatial parameters:
   public:
@@ -136,7 +136,7 @@ class PointSourceProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using PointSource =  GetPropType<TypeTag, Properties::PointSource>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
@@ -193,10 +193,10 @@ public:
           Scalar densityW = FluidSystem::density(fluidState, waterPhaseIdx);
 
           // The water phase pressure is the hydrostatic pressure, scaled with a factor:
-          Scalar height = this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1];
-          Scalar depth = this->fvGridGeometry().bBoxMax()[1] - globalPos[1];
+          Scalar height = this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1];
+          Scalar depth = this->gridGeometry().bBoxMax()[1] - globalPos[1];
           Scalar alpha = 1 + 1.5/height;
-          Scalar width = this->fvGridGeometry().bBoxMax()[0] - this->fvGridGeometry().bBoxMin()[0];
+          Scalar width = this->gridGeometry().bBoxMax()[0] - this->gridGeometry().bBoxMin()[0];
           Scalar factor = (width*alpha + (1.0 - alpha)*globalPos[0])/width;
 
           values[pressureH2OIdx] = 1e5 - factor*densityW*this->spatialParams().gravity(globalPos)[1]*depth;
@@ -229,7 +229,7 @@ public:
       // Accordingly, we need to find the index of our cells, depending on the x and y coordinates,
       // that corresponds to the indices of the input data set.
       const auto delta = 0.0625;
-      unsigned int cellsX = this->fvGridGeometry().bBoxMax()[0]/delta;
+      unsigned int cellsX = this->gridGeometry().bBoxMax()[0]/delta;
       const auto globalPos = element.geometry().center();
 
       unsigned int dataIdx = std::trunc(globalPos[1]/delta) * cellsX + std::trunc(globalPos[0]/delta);
@@ -257,23 +257,23 @@ public:
   private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_;
+        return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_;
     }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_;
+        return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_;
     }
 
     bool onInlet_(const GlobalPosition &globalPos) const
     {
-        Scalar width = this->fvGridGeometry().bBoxMax()[0] - this->fvGridGeometry().bBoxMin()[0];
-        Scalar lambda = (this->fvGridGeometry().bBoxMax()[0] - globalPos[0])/width;
+        Scalar width = this->gridGeometry().bBoxMax()[0] - this->gridGeometry().bBoxMin()[0];
+        Scalar lambda = (this->gridGeometry().bBoxMax()[0] - globalPos[0])/width;
         return onUpperBoundary_(globalPos) && 0.5 < lambda && lambda < 2.0/3.0;
     }
 
diff --git a/examples/shallowwaterfriction/main.cc b/examples/shallowwaterfriction/main.cc
index 454411d73ca013209367f2d8d01a792b3968b942..189fd19a0a25a5a53da1e0e483e636d16a0b740e 100644
--- a/examples/shallowwaterfriction/main.cc
+++ b/examples/shallowwaterfriction/main.cc
@@ -83,23 +83,23 @@ int main(int argc, char** argv) try
     // #### Setup
     // We create and initialize the finite volume grid geometry, the problem, the linear system, including the jacobian matrix, the residual and the solution vector and the gridvariables.
     // We need the finite volume geometry to build up the subcontrolvolumes (scv) and subcontrolvolume faces (scvf) for each element of the grid partition.
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
-    fvGridGeometry->update();
+    using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    auto gridGeometry = std::make_shared<GridGeometry>(leafGridView);
+    gridGeometry->update();
 
     // In the problem, we define the boundary and initial conditions.
     using Problem = GetPropType<TypeTag, Properties::Problem>;
-    auto problem = std::make_shared<Problem>(fvGridGeometry);
+    auto problem = std::make_shared<Problem>(gridGeometry);
 
     // We initialize the solution vector
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
-    SolutionVector x(fvGridGeometry->numDofs());
+    SolutionVector x(gridGeometry->numDofs());
     problem->applyInitialSolution(x);
     auto xOld = x;
 
     // And then use the solutionvector to intialize the gridVariables.
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
-    auto gridVariables = std::make_shared<GridVariables>(problem, fvGridGeometry);
+    auto gridVariables = std::make_shared<GridVariables>(problem, gridGeometry);
     gridVariables->init(x);
 
     // We get some time loop parameters from the input file.
@@ -125,11 +125,11 @@ int main(int argc, char** argv) try
 
     //we set the assembler with the time loop because we have an instationary problem.
     using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>;
-    auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop);
+    auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables, timeLoop);
 
     // We set the linear solver.
     using LinearSolver = Dumux::AMGBackend<TypeTag>;
-    auto linearSolver = std::make_shared<LinearSolver>(leafGridView, fvGridGeometry->dofMapper());
+    auto linearSolver = std::make_shared<LinearSolver>(leafGridView, gridGeometry->dofMapper());
 
     // Additionaly, we set the non-linear solver.
     using NewtonSolver = Dumux::NewtonSolver<Assembler, LinearSolver>;
diff --git a/examples/shallowwaterfriction/problem.hh b/examples/shallowwaterfriction/problem.hh
index d3a9293f305927d752adef5ae7ed84228536d8a8..91f9b47cfaaded6630b9652b46fe919699b81b46 100644
--- a/examples/shallowwaterfriction/problem.hh
+++ b/examples/shallowwaterfriction/problem.hh
@@ -69,7 +69,7 @@ struct SpatialParams<TypeTag, TTag::RoughChannel>
 {
 private:
     // We define convenient shortcuts to the properties FVGridGeometry, Scalar, ElementVolumeVariables and VolumeVariables:
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using VolumeVariables = typename ElementVolumeVariables::VolumeVariables;
@@ -103,13 +103,13 @@ class RoughChannelProblem : public ShallowWaterProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = 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;
     using VolumeVariables = typename ElementVolumeVariables::VolumeVariables;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -161,12 +161,12 @@ public:
     {
         using std::abs;
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
             const Scalar h = this->gauklerManningStrickler(discharge_,constManningN_,bedSlope_);
             const Scalar u = abs(discharge_)/h;
 
-            const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+            const auto eIdx = this->gridGeometry().elementMapper().index(element);
             exactWaterDepth_[eIdx] = h;
             exactVelocityX_[eIdx] = u;
         }
diff --git a/test/freeflow/navierstokes/angeli/main.cc b/test/freeflow/navierstokes/angeli/main.cc
index a72c0fa6c300d13dbaa588bf1f6931841a8c4247..4da3af1cca59d50f73594bcac961ac31ad607cea 100644
--- a/test/freeflow/navierstokes/angeli/main.cc
+++ b/test/freeflow/navierstokes/angeli/main.cc
@@ -57,7 +57,7 @@
 template<class Scalar, class Problem>
 auto createAnalyticalSolution(const Scalar time, const Problem& problem)
 {
-    const auto& fvGridGeometry = problem.fvGridGeometry();
+    const auto& fvGridGeometry = problem.gridGeometry();
     using GridView = typename std::decay_t<decltype(fvGridGeometry)>::GridView;
 
     static constexpr auto dim = GridView::dimension;
@@ -133,7 +133,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokes/angeli/problem.hh b/test/freeflow/navierstokes/angeli/problem.hh
index 3ea59775da40925070ee52d87c09ec63449a3fb7..2e2f7bd82046dcfa472c50ef9c189f6b7d5a906f 100644
--- a/test/freeflow/navierstokes/angeli/problem.hh
+++ b/test/freeflow/navierstokes/angeli/problem.hh
@@ -88,7 +88,7 @@ class AngeliTestProblem : public NavierStokesProblem<TypeTag>
     using ParentType = NavierStokesProblem<TypeTag>;
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
diff --git a/test/freeflow/navierstokes/channel/1d/main.cc b/test/freeflow/navierstokes/channel/1d/main.cc
index 98be4afae7ba10ccda35551d8531006c784cb62d..249474a69eae676648f498d95449a18b0fdcd912 100644
--- a/test/freeflow/navierstokes/channel/1d/main.cc
+++ b/test/freeflow/navierstokes/channel/1d/main.cc
@@ -75,7 +75,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokes/channel/1d/problem.hh b/test/freeflow/navierstokes/channel/1d/problem.hh
index 600c58a163c9933c842d79a207628095755fdf51..4e171491d28a4faea60ec1181b4aa9b0d8a9556d 100644
--- a/test/freeflow/navierstokes/channel/1d/problem.hh
+++ b/test/freeflow/navierstokes/channel/1d/problem.hh
@@ -90,7 +90,7 @@ class NavierStokesAnalyticProblem : public NavierStokesProblem<TypeTag>
     using ParentType = NavierStokesProblem<TypeTag>;
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
@@ -130,8 +130,8 @@ public:
         {
             using L2Error = NavierStokesTestL2Error<Scalar, ModelTraits, PrimaryVariables>;
             const auto l2error = L2Error::calculateL2Error(*this, curSol);
-            const int numCellCenterDofs = this->fvGridGeometry().numCellCenterDofs();
-            const int numFaceDofs = this->fvGridGeometry().numFaceDofs();
+            const int numCellCenterDofs = this->gridGeometry().numCellCenterDofs();
+            const int numFaceDofs = this->gridGeometry().numFaceDofs();
             std::cout << std::setprecision(8) << "** L2 error (abs/rel) for "
                     << std::setw(6) << numCellCenterDofs << " cc dofs and " << numFaceDofs << " face dofs (total: " << numCellCenterDofs + numFaceDofs << "): "
                     << std::scientific
@@ -361,13 +361,13 @@ private:
      */
     void createAnalyticalSolution_()
     {
-        analyticalPressure_.resize(this->fvGridGeometry().numCellCenterDofs());
-        analyticalVelocity_.resize(this->fvGridGeometry().numCellCenterDofs());
-        analyticalVelocityOnFace_.resize(this->fvGridGeometry().numFaceDofs());
+        analyticalPressure_.resize(this->gridGeometry().numCellCenterDofs());
+        analyticalVelocity_.resize(this->gridGeometry().numCellCenterDofs());
+        analyticalVelocityOnFace_.resize(this->gridGeometry().numFaceDofs());
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
diff --git a/test/freeflow/navierstokes/channel/2d/main.cc b/test/freeflow/navierstokes/channel/2d/main.cc
index e7c05cbec64ea7e95ccde0173a4f4a2d054d7ec8..43da72d5e90b67d505b2d8fbefc810f9657dbdc1 100644
--- a/test/freeflow/navierstokes/channel/2d/main.cc
+++ b/test/freeflow/navierstokes/channel/2d/main.cc
@@ -76,7 +76,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokes/channel/2d/problem.hh b/test/freeflow/navierstokes/channel/2d/problem.hh
index dab19af9b44f969ac7ce8cd5f8fedf0f695b030d..d3b47821a7f3346b5d6187ff930d69e1ff1b1655 100644
--- a/test/freeflow/navierstokes/channel/2d/problem.hh
+++ b/test/freeflow/navierstokes/channel/2d/problem.hh
@@ -95,7 +95,7 @@ class ChannelTestProblem : public NavierStokesProblem<TypeTag>
     using ParentType = NavierStokesProblem<TypeTag>;
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
@@ -273,8 +273,8 @@ public:
      */
     Scalar parabolicProfile(const Scalar y, const Scalar vMax) const
     {
-        const Scalar yMin = this->fvGridGeometry().bBoxMin()[1];
-        const Scalar yMax = this->fvGridGeometry().bBoxMax()[1];
+        const Scalar yMin = this->gridGeometry().bBoxMin()[1];
+        const Scalar yMax = this->gridGeometry().bBoxMax()[1];
         return  vMax * (y - yMin)*(yMax - y) / (0.25*(yMax - yMin)*(yMax - yMin));
     }
 
@@ -287,8 +287,8 @@ public:
      */
     Scalar dudy(const Scalar y, const Scalar vMax) const
     {
-        const Scalar yMin = this->fvGridGeometry().bBoxMin()[1];
-        const Scalar yMax = this->fvGridGeometry().bBoxMax()[1];
+        const Scalar yMin = this->gridGeometry().bBoxMin()[1];
+        const Scalar yMax = this->gridGeometry().bBoxMax()[1];
         return vMax * (4.0*yMin + 4*yMax - 8.0*y) / ((yMin-yMax)*(yMin-yMax));
     }
 
@@ -344,7 +344,7 @@ private:
 
     bool isOutlet_(const GlobalPosition& globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     Scalar eps_;
diff --git a/test/freeflow/navierstokes/channel/3d/main.cc b/test/freeflow/navierstokes/channel/3d/main.cc
index 0ef6063cb77a5021278f9a5e54242a501ab9da45..be17fa9846387b54e80de351dc912fb61fae6596 100644
--- a/test/freeflow/navierstokes/channel/3d/main.cc
+++ b/test/freeflow/navierstokes/channel/3d/main.cc
@@ -76,7 +76,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokes/channel/3d/problem.hh b/test/freeflow/navierstokes/channel/3d/problem.hh
index d95c2c36b09a77eeb2b58fbc98f51e7d48e61a78..c9d4f908eccde0233b388f76c9b882d3ae43cfb2 100644
--- a/test/freeflow/navierstokes/channel/3d/problem.hh
+++ b/test/freeflow/navierstokes/channel/3d/problem.hh
@@ -105,7 +105,7 @@ class ThreeDChannelTestProblem : public NavierStokesProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Element = typename GridView::template Codim<0>::Entity;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
@@ -131,7 +131,7 @@ public:
         rho_ = getParam<Scalar>("Component.LiquidDensity");
         nu_ = getParam<Scalar>("Component.LiquidKinematicViscosity");
 
-        if(dim == 3 && !Dune::FloatCmp::eq(height_, this->fvGridGeometry().bBoxMax()[2]))
+        if(dim == 3 && !Dune::FloatCmp::eq(height_, this->gridGeometry().bBoxMax()[2]))
             DUNE_THROW(Dune::InvalidStateException, "z-dimension must equal height");
 
         if(enablePseudoThreeDWallFriction)
@@ -246,8 +246,8 @@ public:
     Scalar analyticalFlux() const
     {
         const Scalar h = height_;
-        const Scalar w = this->fvGridGeometry().bBoxMax()[1];
-        const Scalar L = this->fvGridGeometry().bBoxMax()[0];
+        const Scalar w = this->gridGeometry().bBoxMax()[1];
+        const Scalar L = this->gridGeometry().bBoxMax()[0];
 
         const Scalar mu = nu_*rho_;
 
@@ -263,7 +263,7 @@ private:
 
     bool isOutlet_(const GlobalPosition& globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     Scalar eps_;
diff --git a/test/freeflow/navierstokes/closedsystem/main.cc b/test/freeflow/navierstokes/closedsystem/main.cc
index d325e7aefa1a467f0344eeb714412e4616c95824..35e2f9ff8b53b3f8a892ac54aa7df278d1f0b4f6 100644
--- a/test/freeflow/navierstokes/closedsystem/main.cc
+++ b/test/freeflow/navierstokes/closedsystem/main.cc
@@ -75,7 +75,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokes/closedsystem/problem.hh b/test/freeflow/navierstokes/closedsystem/problem.hh
index 266613b705d8f2c8af76a2e1fae0e156c9e7d9b4..3e2054b388b91e010781ae2de2442191528ce335 100644
--- a/test/freeflow/navierstokes/closedsystem/problem.hh
+++ b/test/freeflow/navierstokes/closedsystem/problem.hh
@@ -84,7 +84,7 @@ class ClosedSystemTestProblem : public NavierStokesProblem<TypeTag>
     using ParentType = NavierStokesProblem<TypeTag>;
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
@@ -186,7 +186,7 @@ public:
         values[Indices::velocityXIdx] = 0.0;
         values[Indices::velocityYIdx] = 0.0;
 
-        if(globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_)
+        if(globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_)
             values[Indices::velocityXIdx] = lidVelocity_;
 
         return values;
diff --git a/test/freeflow/navierstokes/donea/main.cc b/test/freeflow/navierstokes/donea/main.cc
index 80e92746d2ca71a9ee2f3f4ff28f37c0a3d55564..c4acd223c09545088cf44cacaa1ad8c4d362122e 100644
--- a/test/freeflow/navierstokes/donea/main.cc
+++ b/test/freeflow/navierstokes/donea/main.cc
@@ -77,7 +77,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokes/donea/problem.hh b/test/freeflow/navierstokes/donea/problem.hh
index 0c89e873b5e04ba72ae21f3f7ec9f88b5b14894c..9765de2584b9fa4d4b316898a0369614e16851ff 100644
--- a/test/freeflow/navierstokes/donea/problem.hh
+++ b/test/freeflow/navierstokes/donea/problem.hh
@@ -91,7 +91,7 @@ class DoneaTestProblem : public NavierStokesProblem<TypeTag>
     using ParentType = NavierStokesProblem<TypeTag>;
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
@@ -128,8 +128,8 @@ public:
         {
             using L2Error = NavierStokesTestL2Error<Scalar, ModelTraits, PrimaryVariables>;
             const auto l2error = L2Error::calculateL2Error(*this, curSol);
-            const int numCellCenterDofs = this->fvGridGeometry().numCellCenterDofs();
-            const int numFaceDofs = this->fvGridGeometry().numFaceDofs();
+            const int numCellCenterDofs = this->gridGeometry().numCellCenterDofs();
+            const int numFaceDofs = this->gridGeometry().numFaceDofs();
             std::cout << std::setprecision(8) << "** L2 error (abs/rel) for "
                     << std::setw(6) << numCellCenterDofs << " cc dofs and " << numFaceDofs << " face dofs (total: " << numCellCenterDofs + numFaceDofs << "): "
                     << std::scientific
@@ -292,13 +292,13 @@ private:
      */
     void createAnalyticalSolution_()
     {
-        analyticalPressure_.resize(this->fvGridGeometry().numCellCenterDofs());
-        analyticalVelocity_.resize(this->fvGridGeometry().numCellCenterDofs());
-        analyticalVelocityOnFace_.resize(this->fvGridGeometry().numFaceDofs());
+        analyticalPressure_.resize(this->gridGeometry().numCellCenterDofs());
+        analyticalVelocity_.resize(this->gridGeometry().numCellCenterDofs());
+        analyticalVelocityOnFace_.resize(this->gridGeometry().numFaceDofs());
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
diff --git a/test/freeflow/navierstokes/kovasznay/main.cc b/test/freeflow/navierstokes/kovasznay/main.cc
index 61477a2dea3fa5dd474aea681e2672b1a1ae0ed1..b60f0d98c051f1dd6554b8cce5e6f0310c9c7420 100644
--- a/test/freeflow/navierstokes/kovasznay/main.cc
+++ b/test/freeflow/navierstokes/kovasznay/main.cc
@@ -75,7 +75,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokes/kovasznay/problem.hh b/test/freeflow/navierstokes/kovasznay/problem.hh
index 1c5374412fe7afaf30be5a6806a74c5d4296f55a..813b605210fb23c34a44fcc75475a339031eecbb 100644
--- a/test/freeflow/navierstokes/kovasznay/problem.hh
+++ b/test/freeflow/navierstokes/kovasznay/problem.hh
@@ -91,7 +91,7 @@ class KovasznayTestProblem : public NavierStokesProblem<TypeTag>
     using ParentType = NavierStokesProblem<TypeTag>;
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
@@ -138,8 +138,8 @@ public:
         {
             using L2Error = NavierStokesTestL2Error<Scalar, ModelTraits, PrimaryVariables>;
             const auto l2error = L2Error::calculateL2Error(*this, curSol);
-            const int numCellCenterDofs = this->fvGridGeometry().numCellCenterDofs();
-            const int numFaceDofs = this->fvGridGeometry().numFaceDofs();
+            const int numCellCenterDofs = this->gridGeometry().numCellCenterDofs();
+            const int numFaceDofs = this->gridGeometry().numFaceDofs();
             std::cout << std::setprecision(8) << "** L2 error (abs/rel) for "
                     << std::setw(6) << numCellCenterDofs << " cc dofs and " << numFaceDofs << " face dofs (total: " << numCellCenterDofs + numFaceDofs << "): "
                     << std::scientific
@@ -211,7 +211,7 @@ public:
             if (fvGeometry.hasBoundaryScvf())
             {
                 for (const auto& scvf : scvfs(fvGeometry))
-                    if (scvf.boundary() && scvf.center()[0] < this->fvGridGeometry().bBoxMin()[0] + eps_)
+                    if (scvf.boundary() && scvf.center()[0] < this->gridGeometry().bBoxMin()[0] + eps_)
                         return true;
             }
             return false;
@@ -303,13 +303,13 @@ private:
      */
     void createAnalyticalSolution_()
     {
-        analyticalPressure_.resize(this->fvGridGeometry().numCellCenterDofs());
-        analyticalVelocity_.resize(this->fvGridGeometry().numCellCenterDofs());
-        analyticalVelocityOnFace_.resize(this->fvGridGeometry().numFaceDofs());
+        analyticalPressure_.resize(this->gridGeometry().numCellCenterDofs());
+        analyticalVelocity_.resize(this->gridGeometry().numCellCenterDofs());
+        analyticalVelocityOnFace_.resize(this->gridGeometry().numFaceDofs());
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
diff --git a/test/freeflow/navierstokes/l2error.hh b/test/freeflow/navierstokes/l2error.hh
index 5f55649fae110061b8837af27247d092f57808a5..5d19b80104998867d508450f1d04ba80019ac48c 100644
--- a/test/freeflow/navierstokes/l2error.hh
+++ b/test/freeflow/navierstokes/l2error.hh
@@ -49,10 +49,10 @@ public:
     template<class Problem, class SolutionVector>
     static auto calculateL2Error(const Problem& problem, const SolutionVector& curSol)
     {
-        using FVGridGeometry = std::decay_t<decltype(problem.fvGridGeometry())>;
+        using FVGridGeometry = std::decay_t<decltype(problem.gridGeometry())>;
         PrimaryVariables sumError(0.0), sumReference(0.0), l2NormAbs(0.0), l2NormRel(0.0);
 
-        const int numFaceDofs = problem.fvGridGeometry().numFaceDofs();
+        const int numFaceDofs = problem.gridGeometry().numFaceDofs();
 
         std::vector<Scalar> staggeredVolume(numFaceDofs);
         std::vector<Scalar> errorVelocity(numFaceDofs);
@@ -61,9 +61,9 @@ public:
 
         Scalar totalVolume = 0.0;
 
-        for (const auto& element : elements(problem.fvGridGeometry().gridView()))
+        for (const auto& element : elements(problem.gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(problem.fvGridGeometry());
+            auto fvGeometry = localView(problem.gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
diff --git a/test/freeflow/navierstokes/sincos/main.cc b/test/freeflow/navierstokes/sincos/main.cc
index 561c9cd86f886934d1fb03f16c765f83dcedc71e..5437aaa6c84688d982c2eabdc295098864ec2b4a 100644
--- a/test/freeflow/navierstokes/sincos/main.cc
+++ b/test/freeflow/navierstokes/sincos/main.cc
@@ -57,7 +57,7 @@
 template<class Scalar, class Problem>
 auto createAnalyticalSolution(const Scalar time, const Problem& problem)
 {
-    const auto& fvGridGeometry = problem.fvGridGeometry();
+    const auto& fvGridGeometry = problem.gridGeometry();
     using GridView = typename std::decay_t<decltype(fvGridGeometry)>::GridView;
 
     static constexpr auto dim = GridView::dimension;
@@ -110,7 +110,7 @@ auto createSource(const Problem& problem)
     using Scalar = double;
     using Indices = typename Problem::Indices;
 
-    const auto& fvGridGeometry = problem.fvGridGeometry();
+    const auto& fvGridGeometry = problem.gridGeometry();
     std::array<std::vector<Scalar>, Problem::ModelTraits::numEq()> source;
 
     for (auto& component : source)
@@ -195,7 +195,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokes/sincos/problem.hh b/test/freeflow/navierstokes/sincos/problem.hh
index 3a21c0a1213638de8245e470df51579df4c951fd..d4d1d407ebae39a787d730bf58ece450f75d5405 100644
--- a/test/freeflow/navierstokes/sincos/problem.hh
+++ b/test/freeflow/navierstokes/sincos/problem.hh
@@ -86,7 +86,7 @@ class SincosTestProblem : public NavierStokesProblem<TypeTag>
     using ParentType = NavierStokesProblem<TypeTag>;
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
diff --git a/test/freeflow/navierstokesnc/channel/main.cc b/test/freeflow/navierstokesnc/channel/main.cc
index 4fa53f3470919a53c83b275324bcfecf50a3a047..a50a3442d217e09be323252d74a87a8343f56f38 100644
--- a/test/freeflow/navierstokesnc/channel/main.cc
+++ b/test/freeflow/navierstokesnc/channel/main.cc
@@ -75,7 +75,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokesnc/channel/problem.hh b/test/freeflow/navierstokesnc/channel/problem.hh
index aaeacb855134fcb01d392c2985ffe36caf600ece..6e66aab472368367d480847dbfb4fccbae6fc9d9 100644
--- a/test/freeflow/navierstokesnc/channel/problem.hh
+++ b/test/freeflow/navierstokesnc/channel/problem.hh
@@ -111,7 +111,7 @@ class ChannelNCTestProblem : public NavierStokesProblem<TypeTag>
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
@@ -132,7 +132,7 @@ public:
     {
         inletVelocity_ = getParam<Scalar>("Problem.InletVelocity");
         FluidSystem::init();
-        deltaP_.resize(this->fvGridGeometry().numCellCenterDofs());
+        deltaP_.resize(this->gridGeometry().numCellCenterDofs());
     }
 
    /*!
@@ -265,8 +265,8 @@ public:
 #endif
 
         // parabolic velocity profile
-        values[Indices::velocityXIdx] =  inletVelocity_*(globalPos[1] - this->fvGridGeometry().bBoxMin()[1])*(this->fvGridGeometry().bBoxMax()[1] - globalPos[1])
-                                      / (0.25*(this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1])*(this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1]));
+        values[Indices::velocityXIdx] =  inletVelocity_*(globalPos[1] - this->gridGeometry().bBoxMin()[1])*(this->gridGeometry().bBoxMax()[1] - globalPos[1])
+                                      / (0.25*(this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1])*(this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1]));
 
         values[Indices::velocityYIdx] = 0.0;
 
@@ -284,9 +284,9 @@ public:
     template<class GridVariables, class SolutionVector>
     void calculateDeltaP(const GridVariables& gridVariables, const SolutionVector& sol)
     {
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
@@ -324,7 +324,7 @@ private:
 
     bool isOutlet_(const GlobalPosition& globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     const Scalar eps_;
diff --git a/test/freeflow/navierstokesnc/densitydrivenflow/main.cc b/test/freeflow/navierstokesnc/densitydrivenflow/main.cc
index 98edca5c20f879df3e2fb4900b71c08c77432a8c..be73aafd0303ecd1ccbf586db5c2dfcb754efb08 100644
--- a/test/freeflow/navierstokesnc/densitydrivenflow/main.cc
+++ b/test/freeflow/navierstokesnc/densitydrivenflow/main.cc
@@ -75,7 +75,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokesnc/densitydrivenflow/problem.hh b/test/freeflow/navierstokesnc/densitydrivenflow/problem.hh
index 22e9f2080776937a6545510c1e82af38d40d3500..3cf9146102641ce5731a8bd2ff92dc6395ebcc44 100644
--- a/test/freeflow/navierstokesnc/densitydrivenflow/problem.hh
+++ b/test/freeflow/navierstokesnc/densitydrivenflow/problem.hh
@@ -98,7 +98,7 @@ class DensityDrivenFlowProblem : public NavierStokesProblem<TypeTag>
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
@@ -120,7 +120,7 @@ public:
     {
         useWholeLength_ = getParam<bool>("Problem.UseWholeLength");
         FluidSystem::init();
-        deltaRho_.resize(this->fvGridGeometry().numCellCenterDofs());
+        deltaRho_.resize(this->gridGeometry().numCellCenterDofs());
     }
 
    /*!
@@ -173,7 +173,7 @@ public:
         values.setNeumann(Indices::conti0EqIdx);
         values.setNeumann(transportEqIdx);
 
-        if(globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_)
+        if(globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_)
         {
             if(useWholeLength_)
                 values.setDirichlet(transportCompIdx);
@@ -254,9 +254,9 @@ public:
     template<class GridVariables, class SolutionVector>
     void calculateDeltaRho(const GridVariables& gridVariables, const SolutionVector& sol)
     {
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
diff --git a/test/freeflow/navierstokesnc/maxwellstefan/main.cc b/test/freeflow/navierstokesnc/maxwellstefan/main.cc
index 83334a4f1f10ab37e826eaa32127555f3fc5a8a8..0c54f21448b39580a8af60e5bbb911058f64fb71 100644
--- a/test/freeflow/navierstokesnc/maxwellstefan/main.cc
+++ b/test/freeflow/navierstokesnc/maxwellstefan/main.cc
@@ -75,7 +75,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/navierstokesnc/maxwellstefan/problem.hh b/test/freeflow/navierstokesnc/maxwellstefan/problem.hh
index c2774ae59cf72a4b8d7b252706627acf6096b5e3..f708da444c7b456c7a9154811347f6d88e703d34 100644
--- a/test/freeflow/navierstokesnc/maxwellstefan/problem.hh
+++ b/test/freeflow/navierstokesnc/maxwellstefan/problem.hh
@@ -209,7 +209,7 @@ class MaxwellStefanNCTestProblem : public NavierStokesProblem<TypeTag>
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
@@ -262,9 +262,9 @@ public:
             Scalar x_h2_right = 0.0;
             Scalar i = 0.0;
             Scalar j = 0.0;
-            for (const auto& element : elements(this->fvGridGeometry().gridView()))
+            for (const auto& element : elements(this->gridGeometry().gridView()))
             {
-                auto fvGeometry = localView(this->fvGridGeometry());
+                auto fvGeometry = localView(this->gridGeometry());
                 fvGeometry.bindElement(element);
 
                 auto elemVolVars = localView(gridVariables.curGridVolVars());
diff --git a/test/freeflow/rans/main.cc b/test/freeflow/rans/main.cc
index a45a7ca6066172711e5e37ff12f656c1659b690a..2146a1810d557df30064e526e1e4c93ceeabaaed 100644
--- a/test/freeflow/rans/main.cc
+++ b/test/freeflow/rans/main.cc
@@ -99,7 +99,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/rans/problem.hh b/test/freeflow/rans/problem.hh
index 0d17ceefee170157b2ccad3f88dfa4dd5e163b2e..472090c824a0ee5103a09e27f00d493c233b5b38 100644
--- a/test/freeflow/rans/problem.hh
+++ b/test/freeflow/rans/problem.hh
@@ -115,7 +115,7 @@ class PipeLauferProblem : public RANSProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using FluidState = GetPropType<TypeTag, Properties::FluidState>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
@@ -124,7 +124,7 @@ class PipeLauferProblem : public RANSProblem<TypeTag>
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
 
@@ -148,7 +148,7 @@ public:
         fluidState.setTemperature(temperature());
         Scalar density = FluidSystem::density(fluidState, 0);
         Scalar kinematicViscosity = FluidSystem::viscosity(fluidState, 0) / density;
-        Scalar diameter = this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1];
+        Scalar diameter = this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1];
 
         // ideally the viscosityTilde parameter as inflow for the Spalart-Allmaras model should be zero
         viscosityTilde_ = 1e-3 * turbulenceProperties.viscosityTilde(inletVelocity_, diameter, kinematicViscosity);
@@ -176,8 +176,8 @@ public:
 
     bool isOnWallAtPos(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_
-               || globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_;
+        return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_
+               || globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_;
     }
 
     Scalar sandGrainRoughnessAtPos(const GlobalPosition &globalPos) const
@@ -360,12 +360,12 @@ public:
 private:
     bool isInlet_(const GlobalPosition& globalPos) const
     {
-        return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_;
+        return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_;
     }
 
     bool isOutlet_(const GlobalPosition& globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     //! Initial conditions for the zero-eq turbulence model (none)
@@ -450,7 +450,7 @@ private:
                                         int pvIdx,
                                         std::true_type) const
     {
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
 
         // set a fixed turbulent kinetic energy and dissipation near the wall
         if (this->inNearWallRegion(eIdx))
@@ -488,7 +488,7 @@ private:
     {
         const auto globalPos = scv.center();
         PrimaryVariables values(initialAtPos(globalPos));
-        unsigned int  elementIdx = this->fvGridGeometry().elementMapper().index(element);
+        unsigned int  elementIdx = this->gridGeometry().elementMapper().index(element);
 
         // fixed value for the turbulent kinetic energy
         values[Indices::turbulentKineticEnergyEqIdx] = this->turbulentKineticEnergyWallFunction(elementIdx);
@@ -507,7 +507,7 @@ private:
     {
         const auto globalPos = scv.center();
         PrimaryVariables values(initialAtPos(globalPos));
-        unsigned int  elementIdx = this->fvGridGeometry().elementMapper().index(element);
+        unsigned int  elementIdx = this->gridGeometry().elementMapper().index(element);
 
         const auto wallDistance = ParentType::wallDistance_[elementIdx];
         using std::pow;
diff --git a/test/freeflow/ransnc/main.cc b/test/freeflow/ransnc/main.cc
index 1b44e05b90c9e7b46e0acb0215fb5ded36f58c01..ca5605684fc02e1388da32d4c2aa62458b897464 100644
--- a/test/freeflow/ransnc/main.cc
+++ b/test/freeflow/ransnc/main.cc
@@ -96,7 +96,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/ransnc/problem.hh b/test/freeflow/ransnc/problem.hh
index 13df079f3f7e8387ef349ebc51e80b9f8ae730a2..15e111ed591fd26f00131c9baae26f9dbf4e1175 100644
--- a/test/freeflow/ransnc/problem.hh
+++ b/test/freeflow/ransnc/problem.hh
@@ -122,7 +122,7 @@ class FlatPlateNCTestProblem : public RANSProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using FluidState = GetPropType<TypeTag, Properties::FluidState>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
@@ -131,7 +131,7 @@ class FlatPlateNCTestProblem : public RANSProblem<TypeTag>
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
 
@@ -159,7 +159,7 @@ public:
         fluidState.setMassFraction(phaseIdx, phaseIdx, 1.0);
         Scalar density = FluidSystem::density(fluidState, phaseIdx);
         Scalar kinematicViscosity = FluidSystem::viscosity(fluidState, phaseIdx) / density;
-        Scalar diameter = this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1];
+        Scalar diameter = this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1];
         viscosityTilde_ = 1e-3 * turbulenceProperties.viscosityTilde(inletVelocity_, diameter, kinematicViscosity);
         turbulentKineticEnergy_ = turbulenceProperties.turbulentKineticEnergy(inletVelocity_, diameter, kinematicViscosity);
         if (ModelTraits::turbulenceModel() == TurbulenceModel::komega)
@@ -290,8 +290,8 @@ public:
         PrimaryVariables values(initialAtPos(globalPos));
 
         if (isInlet_(globalPos)
-            && globalPos[1] > 0.4 * this->fvGridGeometry().bBoxMax()[1]
-            && globalPos[1] < 0.6 * this->fvGridGeometry().bBoxMax()[1])
+            && globalPos[1] > 0.4 * this->gridGeometry().bBoxMax()[1]
+            && globalPos[1] < 0.6 * this->gridGeometry().bBoxMax()[1])
         {
             values[transportCompIdx] = (time() > 10.0) ? inletMoleFraction_ : 0.0;
         }
@@ -387,7 +387,7 @@ private:
 
     bool isOutlet_(const GlobalPosition& globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     //! Initial conditions for the zero-eq turbulence model (none)
@@ -472,7 +472,7 @@ private:
                                         int pvIdx,
                                         std::true_type) const
     {
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
 
         // set a fixed turbulent kinetic energy and dissipation near the wall
         if (this->inNearWallRegion(eIdx))
@@ -510,7 +510,7 @@ private:
     {
         const auto globalPos = scv.center();
         PrimaryVariables values(initialAtPos(globalPos));
-        unsigned int  elementIdx = this->fvGridGeometry().elementMapper().index(element);
+        unsigned int  elementIdx = this->gridGeometry().elementMapper().index(element);
 
         // fixed value for the turbulent kinetic energy
         values[Indices::turbulentKineticEnergyEqIdx] = this->turbulentKineticEnergyWallFunction(elementIdx);
@@ -529,7 +529,7 @@ private:
     {
         const auto globalPos = scv.center();
         PrimaryVariables values(initialAtPos(globalPos));
-        unsigned int  elementIdx = this->fvGridGeometry().elementMapper().index(element);
+        unsigned int  elementIdx = this->gridGeometry().elementMapper().index(element);
 
         const auto wallDistance = ParentType::wallDistance_[elementIdx];
         using std::pow;
diff --git a/test/freeflow/shallowwater/dambreak/main.cc b/test/freeflow/shallowwater/dambreak/main.cc
index a02b9a843223c5beecdb128d21e193301e577073..28a9a56ffeac7fb5cea05e881e5b75e3b4b76008 100644
--- a/test/freeflow/shallowwater/dambreak/main.cc
+++ b/test/freeflow/shallowwater/dambreak/main.cc
@@ -78,7 +78,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/shallowwater/dambreak/problem.hh b/test/freeflow/shallowwater/dambreak/problem.hh
index 2c2fbf53c0d8e571b6fc585aad9de3d044a429dc..bd69eebd1c1b3e13fee74ddef208245f4897c81d 100644
--- a/test/freeflow/shallowwater/dambreak/problem.hh
+++ b/test/freeflow/shallowwater/dambreak/problem.hh
@@ -66,7 +66,7 @@ template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::DamBreakWet>
 {
 private:
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 public:
     using type = DamBreakSpatialParams<FVGridGeometry, Scalar>;
@@ -113,13 +113,13 @@ class DamBreakProblem : public ShallowWaterProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -153,9 +153,9 @@ public:
                                   const Scalar time)
     {
         //compute solution for all elements
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             auto elemVolVars = localView(gridVariables.curGridVolVars());
@@ -178,7 +178,7 @@ public:
                                                             gravity,
                                                             s);
 
-            const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+            const auto eIdx = this->gridGeometry().elementMapper().index(element);
             exactWaterDepth_[eIdx] = riemannResult.waterDepth;
             exactVelocityX_[eIdx] = riemannResult.velocityX;
         }
diff --git a/test/freeflow/shallowwater/roughchannel/main.cc b/test/freeflow/shallowwater/roughchannel/main.cc
index ddfa8fd9a55fb4cddb1a0ec7597b945043d9f2f7..1cd061ce57e4f1a506534a79107e587c15287abe 100644
--- a/test/freeflow/shallowwater/roughchannel/main.cc
+++ b/test/freeflow/shallowwater/roughchannel/main.cc
@@ -76,7 +76,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/freeflow/shallowwater/roughchannel/problem.hh b/test/freeflow/shallowwater/roughchannel/problem.hh
index 0f4454d6d9e8bba2c748fb23acf2c0a9ffc22de7..c8d973ae4de814e5de1e2b4b8fdfa10d93622e9b 100644
--- a/test/freeflow/shallowwater/roughchannel/problem.hh
+++ b/test/freeflow/shallowwater/roughchannel/problem.hh
@@ -60,7 +60,7 @@ template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::RoughChannel>
 {
 private:
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using VolumeVariables = typename ElementVolumeVariables::VolumeVariables;
@@ -116,13 +116,13 @@ class RoughChannelProblem : public ShallowWaterProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = 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;
     using VolumeVariables = typename ElementVolumeVariables::VolumeVariables;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -170,12 +170,12 @@ public:
     {
         using std::abs;
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
             const Scalar h = this->gauklerManningStrickler(discharge_,constManningN_,bedSlope_);
             const Scalar u = abs(discharge_)/h;
 
-            const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+            const auto eIdx = this->gridGeometry().elementMapper().index(element);
             exactWaterDepth_[eIdx] = h;
             exactVelocityX_[eIdx] = u;
         }
diff --git a/test/geomechanics/elastic/main.cc b/test/geomechanics/elastic/main.cc
index b8c67bd0782f232758eca13de10d39c47fe7798e..20d19c55dd37e45823832b023d2cde1cb279b159 100644
--- a/test/geomechanics/elastic/main.cc
+++ b/test/geomechanics/elastic/main.cc
@@ -82,7 +82,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/geomechanics/elastic/problem.hh b/test/geomechanics/elastic/problem.hh
index edb2e3ff37588a848d33aab13d039fbce97ed2db..cb73e24845d707c269c20738d829effafe7da90a 100644
--- a/test/geomechanics/elastic/problem.hh
+++ b/test/geomechanics/elastic/problem.hh
@@ -54,7 +54,7 @@ struct Problem<TypeTag, TTag::TestElastic> { using type = Dumux::ElasticProblem<
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TestElastic>
 { using type = ElasticSpatialParams< GetPropType<TypeTag, Properties::Scalar>,
-                                     GetPropType<TypeTag, Properties::FVGridGeometry> >;
+                                     GetPropType<TypeTag, Properties::GridGeometry> >;
 };
 } // end namespace Properties
 
@@ -77,7 +77,7 @@ class ElasticProblem : public GeomechanicsFVProblem<TypeTag>
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
diff --git a/test/geomechanics/poroelastic/main.cc b/test/geomechanics/poroelastic/main.cc
index 5e78d067d32f15da18f146593ccb1559e43dab76..f6f61d3990f05a3b7ee42d9aca03e6a6d0b07608 100644
--- a/test/geomechanics/poroelastic/main.cc
+++ b/test/geomechanics/poroelastic/main.cc
@@ -125,7 +125,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/geomechanics/poroelastic/problem.hh b/test/geomechanics/poroelastic/problem.hh
index 78f33228e3889119d35889fde02e13b03160efb7..fffb217f911f8100c6764b21c36a73908184e7c5 100644
--- a/test/geomechanics/poroelastic/problem.hh
+++ b/test/geomechanics/poroelastic/problem.hh
@@ -65,7 +65,7 @@ template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TestPoroElastic>
 {
     using type = PoroElasticSpatialParams< GetPropType<TypeTag, Properties::Scalar>,
-                                           GetPropType<TypeTag, Properties::FVGridGeometry> >;
+                                           GetPropType<TypeTag, Properties::GridGeometry> >;
 };
 } // end namespace Properties
 
@@ -85,7 +85,7 @@ class PoroElasticProblem : public GeomechanicsFVProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
diff --git a/test/geomechanics/poroelastic/spatialparams.hh b/test/geomechanics/poroelastic/spatialparams.hh
index c584a742d14f3b3f2824cb25d9dae3cec062f0ce..4cb6a97b3048d0a66a0c0d997947062a5688de91 100644
--- a/test/geomechanics/poroelastic/spatialparams.hh
+++ b/test/geomechanics/poroelastic/spatialparams.hh
@@ -70,7 +70,7 @@ public:
                     const ElemSol& elemSol) const
     {
         PorosityDeformation<Scalar> poroLaw;
-        return poroLaw.evaluatePorosity(this->fvGridGeometry(), element, scv, elemSol, /*refPoro*/0.3);
+        return poroLaw.evaluatePorosity(this->gridGeometry(), element, scv, elemSol, /*refPoro*/0.3);
     }
 
     //! Returns the Biot coefficient of the porous medium.
diff --git a/test/io/vtk/test_vtk_staggeredfreeflowpvnames.cc b/test/io/vtk/test_vtk_staggeredfreeflowpvnames.cc
index 3b068f4650815c13e72cb4981198bd8ddc667add..f02538e0a4bb06823c2009f52b3932dbb3c6910b 100644
--- a/test/io/vtk/test_vtk_staggeredfreeflowpvnames.cc
+++ b/test/io/vtk/test_vtk_staggeredfreeflowpvnames.cc
@@ -313,7 +313,7 @@ int main(int argc, char** argv) try
 
     using CommonTypeTag = Properties::TTag::StaggeredPVNamesTestTypeTag;
     using Grid = GetPropType<CommonTypeTag, Properties::Grid>;
-    using FVGridGeometry = GetPropType<CommonTypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<CommonTypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<CommonTypeTag, Properties::Scalar>;
     using GlobalPosition = Dune::FieldVector<Scalar, Grid::dimension>;
 
diff --git a/test/multidomain/boundary/darcydarcy/1p_1p/main.cc b/test/multidomain/boundary/darcydarcy/1p_1p/main.cc
index 3ad83acfe4b334edfc75c924b0d734668599e46e..cf2743a37495587a83916d1fdab79ce0d946bbd4 100644
--- a/test/multidomain/boundary/darcydarcy/1p_1p/main.cc
+++ b/test/multidomain/boundary/darcydarcy/1p_1p/main.cc
@@ -95,7 +95,7 @@ struct Grid<TypeTag, TTag::OnePSub>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePSub>
 {
-    using type = OnePTestSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = OnePTestSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                        GetPropType<TypeTag, Properties::Scalar>>;
 };
 
@@ -188,7 +188,7 @@ int main(int argc, char** argv) try
     ////////////////////////////////////////////////
 
     // create the finite volume grid geometries
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry0 = std::make_shared<FVGridGeometry>(gridView0);
     auto fvGridGeometry1 = std::make_shared<FVGridGeometry>(gridView1);
     fvGridGeometry0->update();
diff --git a/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh b/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh
index 3a4840d933430cb1e19b40443581434390994b23..274d6eeacfdfed90a2d53862406ac82f46046a7e 100644
--- a/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh
+++ b/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh
@@ -45,7 +45,7 @@ class OnePTestProblem
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
     using GridView = typename FVGridGeometry::GridView;
@@ -91,8 +91,8 @@ public:
         BoundaryTypes values;
         const auto& globalPos = scvf.ipGlobal();
 
-        if (globalPos[dimWorld-1] < this->fvGridGeometry().bBoxMin()[dimWorld-1] + eps_
-            || globalPos[dimWorld-1] > this->fvGridGeometry().bBoxMax()[dimWorld-1] - eps_)
+        if (globalPos[dimWorld-1] < this->gridGeometry().bBoxMin()[dimWorld-1] + eps_
+            || globalPos[dimWorld-1] > this->gridGeometry().bBoxMax()[dimWorld-1] - eps_)
             values.setAllDirichlet();
         else
             values.setAllNeumann();
diff --git a/test/multidomain/boundary/darcydarcy/1p_2p/main.cc b/test/multidomain/boundary/darcydarcy/1p_2p/main.cc
index 15e426abe7e532fc32eb37d28fcfbb2a8931a49d..536ebcadc46b3d35015ac2a6d60794053d1a9bd1 100644
--- a/test/multidomain/boundary/darcydarcy/1p_2p/main.cc
+++ b/test/multidomain/boundary/darcydarcy/1p_2p/main.cc
@@ -86,7 +86,7 @@ struct Grid<TypeTag, TTag::OnePSub>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePSub>
 {
-    using type = TestSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = TestSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                    GetPropType<TypeTag, Properties::Scalar>>;
 };
 
@@ -174,7 +174,7 @@ int main(int argc, char** argv) try
     ////////////////////////////////////////////////
 
     // create the finite volume grid geometries
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry0 = std::make_shared<FVGridGeometry>(gridView0);
     auto fvGridGeometry1 = std::make_shared<FVGridGeometry>(gridView1);
     fvGridGeometry0->update();
diff --git a/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh b/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh
index c9798068fefb4fe66e03b80bfcc56261fdce4a53..addcb649a3d2a09fe102103bebb578555c21821a 100644
--- a/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh
+++ b/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh
@@ -46,7 +46,7 @@ class OnePTestProblem
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
     using GridView = typename FVGridGeometry::GridView;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/main.cc b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/main.cc
index fd13de9f8189e61b13d6fe07d4e993e6c36d762b..5f66ca4e03d3881cbb6c36531e6683c7e6835e96 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/main.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/main.cc
@@ -108,10 +108,10 @@ int main(int argc, char** argv) try
     const auto& stokesGridView = stokesGridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::FVGridGeometry>;
+    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::GridGeometry>;
     auto stokesFvGridGeometry = std::make_shared<StokesFVGridGeometry>(stokesGridView);
     stokesFvGridGeometry->update();
-    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::FVGridGeometry>;
+    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::GridGeometry>;
     auto darcyFvGridGeometry = std::make_shared<DarcyFVGridGeometry>(darcyGridView);
     darcyFvGridGeometry->update();
 
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 62e0f175d04c27683e0add020f68a278ea6e5240..d236c9a2e0e243f474e2a063beb7a7b4a22d347f 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_darcy.hh
@@ -95,7 +95,7 @@ struct MolecularDiffusionType<TypeTag, TTag::DarcyOnePTwoC> { using type = DIFFU
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::DarcyOnePTwoC>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -111,10 +111,10 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using DiffusionCoefficientAveragingType = typename StokesDarcyCouplingOptions::DiffusionCoefficientAveragingType;
 
     // copy some indices for convenience
@@ -268,16 +268,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar eps_;
     Scalar pressure_;
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 8ee9ce2fd097bc67a076442049ffad5372d2cad6..e0d55c6cb9c44344fcbda9613d365e1ead7c285f 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/diffusionlawcomparison/problem_stokes.hh
@@ -109,7 +109,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
@@ -213,7 +213,7 @@ public:
         values = initialAtPos(globalPos);
 
         // start injecting after the velocity field had enough time to initialize
-        if(globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_ && isInjectionPeriod())
+        if(globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_ && isInjectionPeriod())
             values[Indices::conti0EqIdx + 1] = inletMoleFraction_;
 
         return values;
@@ -268,10 +268,10 @@ public:
     {
         PrimaryVariables values(0.0);
         values[Indices::pressureIdx] = pressure_;
-        values[Indices::velocityXIdx] = inletVelocity_ * (globalPos[1] - this->fvGridGeometry().bBoxMin()[1])
-                                              * (this->fvGridGeometry().bBoxMax()[1] - globalPos[1])
-                                              / (0.25 * (this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1])
-                                              * (this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1]));
+        values[Indices::velocityXIdx] = inletVelocity_ * (globalPos[1] - this->gridGeometry().bBoxMin()[1])
+                                              * (this->gridGeometry().bBoxMax()[1] - globalPos[1])
+                                              / (0.25 * (this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1])
+                                              * (this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1]));
 
         return values;
     }
@@ -308,16 +308,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar eps_;
     Scalar inletVelocity_;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/main.cc b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/main.cc
index de93fa202eb926ab4b85368db02b51980d7b65c1..4dba90b79b72e5439e2f4bb90e5cabb041a203da 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/main.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/main.cc
@@ -107,10 +107,10 @@ int main(int argc, char** argv) try
     const auto& stokesGridView = stokesGridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::FVGridGeometry>;
+    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::GridGeometry>;
     auto stokesFvGridGeometry = std::make_shared<StokesFVGridGeometry>(stokesGridView);
     stokesFvGridGeometry->update();
-    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::FVGridGeometry>;
+    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::GridGeometry>;
     auto darcyFvGridGeometry = std::make_shared<DarcyFVGridGeometry>(darcyGridView);
     darcyFvGridGeometry->update();
 
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_darcy.hh
index f27d1d457656a15ac91eea873307e9f021909ab6..b53c628daff989b3bcdf4a07b5f407165dfdd041 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_darcy.hh
@@ -82,7 +82,7 @@ struct Grid<TypeTag, TTag::DarcyOnePTwoC> { using type = Dune::YaspGrid<2>; };
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::DarcyOnePTwoC>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -92,13 +92,13 @@ template <class TypeTag>
 class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -285,16 +285,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar eps_;
     std::string problemName_;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_stokes.hh
index c19a7a6859b8a4d80a7e74f2fd930c8c2f329ce9..ec8a1242f2e877e05f89061309dde98902e85201 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/problem_stokes.hh
@@ -91,7 +91,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
@@ -244,13 +244,13 @@ public:
                     values[Indices::velocityYIdx] *= -1.0;
             }
 
-            if(globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_)
+            if(globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_)
                 values[Indices::conti0EqIdx + 1] = topMoleFraction;
         }
         else // horizontal flow
         {
             static const Scalar inletMoleFraction = getParamFromGroup<Scalar>(this->paramGroup(), "Problem.InletMoleFraction");
-            if(globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_)
+            if(globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_)
                 values[Indices::conti0EqIdx + 1] = inletMoleFraction;
         }
 
@@ -312,10 +312,10 @@ public:
 
         auto parabolicProfile = [&](const GlobalPosition& globalPos, int coord)
         {
-            return vMax * (globalPos[coord] - this->fvGridGeometry().bBoxMin()[coord])
-                        * (this->fvGridGeometry().bBoxMax()[coord] - globalPos[coord])
-                        / (0.25 * (this->fvGridGeometry().bBoxMax()[coord] - this->fvGridGeometry().bBoxMin()[coord])
-                        * (this->fvGridGeometry().bBoxMax()[coord] - this->fvGridGeometry().bBoxMin()[coord]));
+            return vMax * (globalPos[coord] - this->gridGeometry().bBoxMin()[coord])
+                        * (this->gridGeometry().bBoxMax()[coord] - globalPos[coord])
+                        / (0.25 * (this->gridGeometry().bBoxMax()[coord] - this->gridGeometry().bBoxMin()[coord])
+                        * (this->gridGeometry().bBoxMax()[coord] - this->gridGeometry().bBoxMin()[coord]));
         };
 
         if (verticalFlow_)
@@ -360,16 +360,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar eps_;
     bool verticalFlow_;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/main.cc b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/main.cc
index 37e770a38c45edaaed43fdf2b22e50ef24d60bc4..0794ea35501bc0831b8e4b46f1ee7b3820816809 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/main.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/main.cc
@@ -108,10 +108,10 @@ int main(int argc, char** argv) try
     const auto& stokesGridView = stokesGridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::FVGridGeometry>;
+    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::GridGeometry>;
     auto stokesFvGridGeometry = std::make_shared<StokesFVGridGeometry>(stokesGridView);
     stokesFvGridGeometry->update();
-    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::FVGridGeometry>;
+    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::GridGeometry>;
     auto darcyFvGridGeometry = std::make_shared<DarcyFVGridGeometry>(darcyGridView);
     darcyFvGridGeometry->update();
 
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh
index 9f3cf5a4831f1ea900124ed8060fb6e9d68f4eda..c618dd09d96aacf06133dd6b4309799bd2d96729 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh
@@ -78,7 +78,7 @@ struct UseMoles<TypeTag, TTag::DarcyTwoPTwoC> { static constexpr bool value = tr
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::DarcyTwoPTwoC>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TwoPTwoCSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -95,10 +95,10 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
@@ -161,9 +161,9 @@ public:
         Scalar massWater = 0.0;
 
         // bulk elements
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             auto elemVolVars = localView(gridVariables.curGridVolVars());
@@ -315,7 +315,7 @@ public:
         PrimaryVariables values(0.0);
         values.setState(initialPhasePresence_);
 
-        values[pressureIdx] = pressure_ + 1000. * this->spatialParams().gravity(globalPos)[1] * (globalPos[1] - this->fvGridGeometry().bBoxMax()[1]);
+        values[pressureIdx] = pressure_ + 1000. * this->spatialParams().gravity(globalPos)[1] * (globalPos[1] - this->gridGeometry().bBoxMax()[1]);
         values[switchIdx] = initialSw_;
 
 #if NONISOTHERMAL
@@ -332,16 +332,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar pressure_;
     Scalar initialSw_;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh
index 3c811860447336cc459ddcf5cf83d1f25f730b7e..4432b6710316a749c8e601bfca9f4d053bb59074 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh
@@ -99,7 +99,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -299,7 +299,7 @@ public:
         const Scalar density = FluidSystem::density(fluidState, 0);
 
         PrimaryVariables values(0.0);
-        values[Indices::pressureIdx] = refPressure() + density*this->gravity()[1]*(globalPos[1] - this->fvGridGeometry().bBoxMin()[1]);
+        values[Indices::pressureIdx] = refPressure() + density*this->gravity()[1]*(globalPos[1] - this->gridGeometry().bBoxMin()[1]);
         values[Indices::conti0EqIdx + 1] = refMoleFrac();
         values[Indices::velocityXIdx] = xVelocity_(globalPos);
 
@@ -355,16 +355,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     //! Updates the fluid state to obtain required quantities for IC/BC
     void updateFluidStateForBC_(FluidState& fluidState, const Scalar pressure) const
@@ -392,13 +392,13 @@ private:
     const Scalar xVelocity_(const GlobalPosition &globalPos) const
     {
         const Scalar vmax = refVelocity();
-        return  4 * vmax * (globalPos[1] - this->fvGridGeometry().bBoxMin()[1]) * (this->fvGridGeometry().bBoxMax()[1] - globalPos[1])
+        return  4 * vmax * (globalPos[1] - this->gridGeometry().bBoxMin()[1]) * (this->gridGeometry().bBoxMax()[1] - globalPos[1])
                 / (height_() * height_());
     }
 
     // the height of the free-flow domain
     const Scalar height_() const
-    { return this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1]; }
+    { return this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1]; }
 
     Scalar eps_;
 
diff --git a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/main.cc b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/main.cc
index ab0bd3cca684368c0278639fc6dbfcb361dc448a..081b610b30ba9c6aa319bc6bcbf5ebb9bddce4ee 100644
--- a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/main.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/main.cc
@@ -107,10 +107,10 @@ int main(int argc, char** argv) try
     const auto& stokesGridView = stokesGridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::FVGridGeometry>;
+    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::GridGeometry>;
     auto stokesFvGridGeometry = std::make_shared<StokesFVGridGeometry>(stokesGridView);
     stokesFvGridGeometry->update();
-    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::FVGridGeometry>;
+    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::GridGeometry>;
     auto darcyFvGridGeometry = std::make_shared<DarcyFVGridGeometry>(darcyGridView);
     darcyFvGridGeometry->update();
 
diff --git a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_darcy.hh
index 07daed0d5b6c2207bfa810d9c2bf1377d5a41724..f2ee08a05f581aa695852ee32f9714adba64d40a 100644
--- a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_darcy.hh
@@ -85,7 +85,7 @@ struct MolecularDiffusionType<TypeTag, TTag::DarcyOnePThreeC> { using type = Max
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::DarcyOnePThreeC>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -102,10 +102,10 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using DiffusionCoefficientAveragingType = typename StokesDarcyCouplingOptions::DiffusionCoefficientAveragingType;
 
     // copy some indices for convenience
@@ -260,16 +260,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar eps_;
     Scalar pressure_;
diff --git a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_stokes.hh
index 9751c57c5de058762ab92cd1bb161ab82bcf1911..c6918e3ce030572ef28cbf53ba2305bf1c6e381e 100644
--- a/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p3c_1p3c/problem_stokes.hh
@@ -94,7 +94,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
@@ -255,10 +255,10 @@ public:
     {
         PrimaryVariables values(0.0);
         values[Indices::pressureIdx] = pressure_;
-        values[Indices::velocityXIdx] = inletVelocity_ * (globalPos[1] - this->fvGridGeometry().bBoxMin()[1])
-                                              * (this->fvGridGeometry().bBoxMax()[1] - globalPos[1])
-                                              / (0.25 * (this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1])
-                                              * (this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1]));
+        values[Indices::velocityXIdx] = inletVelocity_ * (globalPos[1] - this->gridGeometry().bBoxMin()[1])
+                                              * (this->gridGeometry().bBoxMax()[1] - globalPos[1])
+                                              / (0.25 * (this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1])
+                                              * (this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1]));
         return values;
     }
 
@@ -284,16 +284,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar eps_;
     Scalar inletVelocity_;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/main.cc b/test/multidomain/boundary/stokesdarcy/1p_1p/main.cc
index 47a244c574552a071ef6faab4b97adb429c59039..779af6ea4fddfda7c894c14badc2523c9175eb86 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/main.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/main.cc
@@ -105,10 +105,10 @@ int main(int argc, char** argv) try
     const auto& stokesGridView = stokesGridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::FVGridGeometry>;
+    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::GridGeometry>;
     auto stokesFvGridGeometry = std::make_shared<StokesFVGridGeometry>(stokesGridView);
     stokesFvGridGeometry->update();
-    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::FVGridGeometry>;
+    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::GridGeometry>;
     auto darcyFvGridGeometry = std::make_shared<DarcyFVGridGeometry>(darcyGridView);
     darcyFvGridGeometry->update();
 
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/problem_darcy.hh
index 383bab059dcf8cb473ad8e44aa44bb232c079eab..2526dbc20b69ca51d8a6ba15981d6a4fdabcb3a5 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/problem_darcy.hh
@@ -66,7 +66,7 @@ struct Grid<TypeTag, TTag::DarcyOneP> { using type = Dune::YaspGrid<2>; };
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::DarcyOneP>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -82,10 +82,10 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
 
@@ -240,7 +240,7 @@ public:
 private:
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     Scalar eps_;
     std::shared_ptr<CouplingManager> couplingManager_;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/problem_stokes.hh
index 4eaff36d1cbb1a154bf5b8a54bd7112ace85c51b..52b9cc8ceb62fe26aef19846b526728b233a2f4e 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/problem_stokes.hh
@@ -86,7 +86,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -253,7 +253,7 @@ public:
         if (verticalFlow_)
         {
             static const Scalar inletVelocity = getParamFromGroup<Scalar>(this->paramGroup(), "Problem.Velocity");
-            values[Indices::velocityYIdx] = inletVelocity * globalPos[0] * (this->fvGridGeometry().bBoxMax()[0] - globalPos[0]);
+            values[Indices::velocityYIdx] = inletVelocity * globalPos[0] * (this->gridGeometry().bBoxMax()[0] - globalPos[0]);
         }
         else // horizontal flow
         {
@@ -287,16 +287,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar eps_;
     std::string problemName_;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/main.cc b/test/multidomain/boundary/stokesdarcy/1p_2p/main.cc
index d57369391e562fb244acf41197f0a42683236a1f..400a22ae2696124345a4974ee32207b430c2d9fa 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/main.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/main.cc
@@ -140,10 +140,10 @@ int main(int argc, char** argv) try
     const auto& stokesGridView = stokesGridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::FVGridGeometry>;
+    using StokesFVGridGeometry = GetPropType<StokesTypeTag, Properties::GridGeometry>;
     auto stokesFvGridGeometry = std::make_shared<StokesFVGridGeometry>(stokesGridView);
     stokesFvGridGeometry->update();
-    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::FVGridGeometry>;
+    using DarcyFVGridGeometry = GetPropType<DarcyTypeTag, Properties::GridGeometry>;
     auto darcyFvGridGeometry = std::make_shared<DarcyFVGridGeometry>(darcyGridView);
     darcyFvGridGeometry->update();
 
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p_2p/problem_darcy.hh
index db187383794b8f0a1008bae3785289f59426a362..a71e106b2983f343854f9d4a84953e5576dde66f 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/problem_darcy.hh
@@ -63,7 +63,7 @@ struct UseMoles<TypeTag, TTag::DarcyTwoP> { static constexpr bool value = false;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::DarcyTwoP>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = ConservationSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -88,10 +88,10 @@ class DarcySubProblem : public PorousMediumFlowProblem<TypeTag>
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
     using VolumeVariables = typename GridVariables::GridVolumeVariables::VolumeVariables;
 
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
 
@@ -280,16 +280,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar eps_;
     Scalar pressure_;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p_2p/problem_stokes.hh
index 316bc6ccc0072af66ceeee341145fec74bdf7224..a07ab5eee6ee9208d5c0433f53c5f0a41a5f768f 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/problem_stokes.hh
@@ -77,7 +77,7 @@ class StokesSubProblem : public NavierStokesProblem<TypeTag>
 
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
@@ -225,9 +225,9 @@ public:
         PrimaryVariables values(0.0);
 
         values[Indices::pressureIdx] = pressure_;
-        values[Indices::velocityYIdx] = 4.0 * inletVelocity_ * globalPos[0] * (this->fvGridGeometry().bBoxMax()[0] - globalPos[0])
-                                      / (this->fvGridGeometry().bBoxMax()[0] - this->fvGridGeometry().bBoxMin()[0])
-                                      / (this->fvGridGeometry().bBoxMax()[0] - this->fvGridGeometry().bBoxMin()[0]);
+        values[Indices::velocityYIdx] = 4.0 * inletVelocity_ * globalPos[0] * (this->gridGeometry().bBoxMax()[0] - globalPos[0])
+                                      / (this->gridGeometry().bBoxMax()[0] - this->gridGeometry().bBoxMin()[0])
+                                      / (this->gridGeometry().bBoxMax()[0] - this->gridGeometry().bBoxMin()[0]);
         return values;
     }
 
@@ -253,16 +253,16 @@ public:
 
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_; }
+    { return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_; }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_; }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_; }
+    { return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_; }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     Scalar eps_;
     Scalar inletVelocity_;
diff --git a/test/multidomain/embedded/1d3d/1p2c_richards2c/main.cc b/test/multidomain/embedded/1d3d/1p2c_richards2c/main.cc
index 83da1b7a91dd0a9cb098810b7e046d25cdbb0492..a97cbe2aa3d838bd4306e6503e3061c36f10144f 100644
--- a/test/multidomain/embedded/1d3d/1p2c_richards2c/main.cc
+++ b/test/multidomain/embedded/1d3d/1p2c_richards2c/main.cc
@@ -83,7 +83,7 @@ struct PointSourceHelper<TypeTag, TTag::Root> { using type = typename GetPropTyp
 template<class Problem, class SolutionVector, class GridVariables>
 double computeSourceIntegral(const Problem& problem, const SolutionVector& sol, const GridVariables& gridVars)
 {
-    const auto& gg = problem.fvGridGeometry();
+    const auto& gg = problem.gridGeometry();
     typename SolutionVector::block_type source(0.0);
     for (const auto& element : elements(gg.gridView()))
     {
@@ -119,7 +119,7 @@ double computeGlobalMass(const Problem& problem, const SolutionVector& sol, cons
     static constexpr int transportCompIdx = Problem::Indices::transportCompIdx;
     double mass = 0.0;
 
-    const auto& gg = problem.fvGridGeometry();
+    const auto& gg = problem.gridGeometry();
     for (const auto& element : elements(gg.gridView()))
     {
         auto fvGeometry = localView(gg);
@@ -147,7 +147,7 @@ double computeGlobalBoundaryMass(const Problem& problem, const SolutionVector& s
     static constexpr int transportEqIdx = Problem::Indices::transportEqIdx;
     double mass = 0.0;
 
-    const auto& gg = problem.fvGridGeometry();
+    const auto& gg = problem.gridGeometry();
     for (const auto& element : elements(gg.gridView()))
     {
         auto fvGeometry = localView(gg);
@@ -209,10 +209,10 @@ int main(int argc, char** argv) try
     ////////////////////////////////////////////////////////////
 
     // create the finite volume grid geometry
-    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::GridGeometry>;
     auto bulkFvGridGeometry = std::make_shared<BulkFVGridGeometry>(bulkGridView);
     bulkFvGridGeometry->update();
-    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::FVGridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::GridGeometry>;
     auto lowDimFvGridGeometry = std::make_shared<LowDimFVGridGeometry>(lowDimGridView);
     lowDimFvGridGeometry->update();
 
diff --git a/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_root.hh b/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_root.hh
index eaadd7e7b17b11c273513f412e6705b664e0ab65..f7767a164417878222fff8381265b42314b5f3ab 100644
--- a/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_root.hh
+++ b/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_root.hh
@@ -85,7 +85,7 @@ struct FluidSystem<TypeTag, TTag::Root>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Root>
 {
-    using type = RootSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = RootSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                    GetPropType<TypeTag, Properties::Scalar>>;
 };
 
@@ -108,7 +108,7 @@ class RootProblem : public PorousMediumFlowProblem<TypeTag>
     using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
     using SourceValues = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
@@ -160,7 +160,7 @@ public:
                            const SubControlVolume &scv,
                            const ElementSolution& elemSol) const
     {
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
         const auto radius = this->spatialParams().radius(eIdx);
         return M_PI*radius*radius;
     }
@@ -229,7 +229,7 @@ public:
                           const SubControlVolumeFace& scvf) const
     {
         NeumannFluxes values(0.0);
-        if (scvf.center()[2] + eps_ > this->fvGridGeometry().bBoxMax()[2])
+        if (scvf.center()[2] + eps_ > this->gridGeometry().bBoxMax()[2])
         {
             const auto& volVars = elemVolvars[scvf.insideScvIdx()];
             const Scalar value = transpirationRate_ * volVars.molarDensity(liquidPhaseIdx)/volVars.density(liquidPhaseIdx);
diff --git a/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_soil.hh b/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_soil.hh
index 4400ace72d9901a4b858dfe49fc7e56c232c33cb..e2994882e90cdf3f05af1e9669e542dd5c568216 100644
--- a/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_soil.hh
+++ b/test/multidomain/embedded/1d3d/1p2c_richards2c/problem_soil.hh
@@ -87,7 +87,7 @@ struct Problem<TypeTag, TTag::Soil> { using type = SoilProblem<TypeTag>; };
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Soil>
 {
-    using type = SoilSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = SoilSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                    GetPropType<TypeTag, Properties::Scalar>>;
 };
 
@@ -116,7 +116,7 @@ class SoilProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using GridView = typename FVGridGeometry::GridView;
@@ -313,7 +313,7 @@ public:
      */
     PrimaryVariables initialAtPos(const GlobalPosition &globalPos) const
     {
-        const auto& gg = this->fvGridGeometry();
+        const auto& gg = this->gridGeometry();
         static const Scalar extend = 0.15*(gg.bBoxMax()[0]-gg.bBoxMin()[0]);
         const auto xTracer = [&]()
         {
diff --git a/test/multidomain/embedded/1d3d/1p2c_richards2c/spatialparams_root.hh b/test/multidomain/embedded/1d3d/1p2c_richards2c/spatialparams_root.hh
index 7066dcc4c544ff57c8ad53dd34bd156c135ee652..9c871659b6d8de8b01b55ff4c2c4edeece0c840e 100644
--- a/test/multidomain/embedded/1d3d/1p2c_richards2c/spatialparams_root.hh
+++ b/test/multidomain/embedded/1d3d/1p2c_richards2c/spatialparams_root.hh
@@ -94,7 +94,7 @@ public:
                                   const SubControlVolume& scv,
                                   const ElementSolution& elemSol) const
     {
-        const Scalar r = radius(this->fvGridGeometry().gridView().indexSet().index(element));
+        const Scalar r = radius(this->gridGeometry().gridView().indexSet().index(element));
         return constantKx_ / (M_PI*r*r) * Components::SimpleH2O<Scalar>::liquidViscosity(285.15, 1e5);
     }
 
diff --git a/test/multidomain/embedded/1d3d/1p_1p/l2norm.hh b/test/multidomain/embedded/1d3d/1p_1p/l2norm.hh
index c0faee3fcb1bee64cafd47421d7366271253c14a..ac1a8c106f0faa9c0ea5efb55ac68cc4488e10f5 100644
--- a/test/multidomain/embedded/1d3d/1p_1p/l2norm.hh
+++ b/test/multidomain/embedded/1d3d/1p_1p/l2norm.hh
@@ -45,7 +45,7 @@ struct L2Norm
         Scalar norm = 0.0;
 
         // iterate over all elements
-        const auto& gg = problem.fvGridGeometry();
+        const auto& gg = problem.gridGeometry();
         for (const auto& element : elements(gg.gridView()))
         {
             const auto geometry = element.geometry();
@@ -79,7 +79,7 @@ struct L2Norm
         Scalar norm = 0.0;
 
         // iterate over all elements
-        const auto& gg = problem.fvGridGeometry();
+        const auto& gg = problem.gridGeometry();
         for (const auto& element : elements(gg.gridView()))
         {
             const auto geometry = element.geometry();
diff --git a/test/multidomain/embedded/1d3d/1p_1p/main.cc b/test/multidomain/embedded/1d3d/1p_1p/main.cc
index 182707015a67d093ddacb52683dfa930f21e35d8..efee3c444e1d3aeb8898c4000cc0d2252585d1c4 100644
--- a/test/multidomain/embedded/1d3d/1p_1p/main.cc
+++ b/test/multidomain/embedded/1d3d/1p_1p/main.cc
@@ -123,10 +123,10 @@ int main(int argc, char** argv) try
     const auto& lowDimGridView = lowDimGridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::GridGeometry>;
     auto bulkFvGridGeometry = std::make_shared<BulkFVGridGeometry>(bulkGridView);
     bulkFvGridGeometry->update();
-    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::FVGridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::GridGeometry>;
     auto lowDimFvGridGeometry = std::make_shared<LowDimFVGridGeometry>(lowDimGridView);
     lowDimFvGridGeometry->update();
 
diff --git a/test/multidomain/embedded/1d3d/1p_1p/problem_bloodflow.hh b/test/multidomain/embedded/1d3d/1p_1p/problem_bloodflow.hh
index 3be1f41c6a633e09e07749ce090e58781cbc7b90..1fc60bc8bdfad9b60949b87a5f0a2859b3d1166c 100644
--- a/test/multidomain/embedded/1d3d/1p_1p/problem_bloodflow.hh
+++ b/test/multidomain/embedded/1d3d/1p_1p/problem_bloodflow.hh
@@ -94,7 +94,7 @@ struct LocalResidual<TypeTag, TTag::BloodFlow> { using type = OnePIncompressible
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::BloodFlow>
 {
-    using type = BloodFlowSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = BloodFlowSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                         GetPropType<TypeTag, Properties::Scalar>>;
 };
 } // end namespace Properties
@@ -112,7 +112,7 @@ class BloodFlowProblem : public PorousMediumFlowProblem<TypeTag>
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
@@ -132,11 +132,11 @@ public:
         name_  =  getParam<std::string>("Vtk.OutputName") + "_" + getParamFromGroup<std::string>(this->paramGroup(), "Problem.Name");
         p_in_ = getParam<Scalar>("BoundaryConditions1D.PressureInput");
         delta_p_ = getParam<Scalar>("BoundaryConditions1D.DeltaPressure");
-        exactPressure_.resize(this->fvGridGeometry().numDofs());
+        exactPressure_.resize(this->gridGeometry().numDofs());
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
@@ -155,7 +155,7 @@ public:
                            const SubControlVolume &scv,
                            const ElementSolution& elemSol) const
     {
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
         const auto radius = this->spatialParams().radius(eIdx);
         return M_PI*radius*radius;
     }
@@ -310,7 +310,7 @@ public:
                               const VolumeVariables& curElemVolVars,
                               const SubControlVolume& scv) const
     {
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
 
         auto key = std::make_pair(eIdx, 0);
         if (this->pointSourceMap().count(key))
@@ -345,9 +345,9 @@ public:
     void computeSourceIntegral(const SolutionVector& sol, const GridVariables& gridVars)
     {
         PrimaryVariables source(0.0);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             auto elemVolVars = localView(gridVars.curGridVolVars());
diff --git a/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh b/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh
index 8fa73a6fb47a7292aefc02368c6ac8e8412fe473..b1a255cfe746203e337e65c1c1a7280a1e4888b7 100644
--- a/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh
+++ b/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh
@@ -100,7 +100,7 @@ struct FluidSystem<TypeTag, TTag::Tissue>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Tissue>
 {
-    using type = TissueSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = TissueSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                      GetPropType<TypeTag, Properties::Scalar>>;
 };
 } // end namespace Properties
@@ -116,7 +116,7 @@ class TissueProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using GridView = typename FVGridGeometry::GridView;
@@ -141,10 +141,10 @@ public:
         // read parameters from input file
         name_  =  getParam<std::string>("Vtk.OutputName") + "_" + getParamFromGroup<std::string>(this->paramGroup(), "Problem.Name");
 
-        exactPressure_.resize(this->fvGridGeometry().numDofs());
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        exactPressure_.resize(this->gridGeometry().numDofs());
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
@@ -289,7 +289,7 @@ public:
 
         NumEqVector source(0.0);
 
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
         const auto& sourceIds = this->couplingManager().bulkSourceIds(eIdx);
         const auto& sourceWeights = this->couplingManager().bulkSourceWeights(eIdx);
 
@@ -334,7 +334,7 @@ public:
                               const VolumeVariables& curElemVolVars,
                               const SubControlVolume& scv) const
     {
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
 
         auto key = std::make_pair(eIdx, 0);
         if (this->pointSourceMap().count(key))
@@ -394,9 +394,9 @@ public:
     void computeSourceIntegral(const SolutionVector& sol, const GridVariables& gridVars)
     {
         PrimaryVariables source(0.0);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             auto elemVolVars = localView(gridVars.curGridVolVars());
diff --git a/test/multidomain/embedded/1d3d/1p_richards/main.cc b/test/multidomain/embedded/1d3d/1p_richards/main.cc
index 527ad32d96641aabaf448f9a7ef3c3efdb41b6d2..a7d264ecdfc14967cb40254c59fd7fa09094f4f4 100644
--- a/test/multidomain/embedded/1d3d/1p_richards/main.cc
+++ b/test/multidomain/embedded/1d3d/1p_richards/main.cc
@@ -116,10 +116,10 @@ int main(int argc, char** argv) try
     const auto& lowDimGridView = lowDimGridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::GridGeometry>;
     auto bulkFvGridGeometry = std::make_shared<BulkFVGridGeometry>(bulkGridView);
     bulkFvGridGeometry->update();
-    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::FVGridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::GridGeometry>;
     auto lowDimFvGridGeometry = std::make_shared<LowDimFVGridGeometry>(lowDimGridView);
     lowDimFvGridGeometry->update();
 
diff --git a/test/multidomain/embedded/1d3d/1p_richards/problem_root.hh b/test/multidomain/embedded/1d3d/1p_richards/problem_root.hh
index 5eb4a1b9a2b2ace7181c766f4038ed5b59fcfdcd..0a22eb6a15a6cdfa835db72962d97b7742c00856 100644
--- a/test/multidomain/embedded/1d3d/1p_richards/problem_root.hh
+++ b/test/multidomain/embedded/1d3d/1p_richards/problem_root.hh
@@ -89,7 +89,7 @@ struct LocalResidual<TypeTag, TTag::Root> { using type = OnePIncompressibleLocal
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Root>
 {
-    using type = RootSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = RootSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                    GetPropType<TypeTag, Properties::Scalar>>;
 };
 } // end namespace Properties
@@ -108,7 +108,7 @@ class RootProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
@@ -144,7 +144,7 @@ public:
                            const SubControlVolume &scv,
                            const ElementSolution& elemSol) const
     {
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
         const auto radius = this->spatialParams().radius(eIdx);
         return M_PI*radius*radius;
     }
@@ -213,7 +213,7 @@ public:
                           const SubControlVolumeFace& scvf) const
     {
         NeumannFluxes values(0.0);
-        if (scvf.center()[2] + eps_ > this->fvGridGeometry().bBoxMax()[2])
+        if (scvf.center()[2] + eps_ > this->gridGeometry().bBoxMax()[2])
         {
             const auto r = this->spatialParams().radius(scvf.insideScvIdx());
             values[Indices::conti0EqIdx] = transpirationRate_/(M_PI*r*r)/scvf.area();
@@ -297,9 +297,9 @@ public:
     void computeSourceIntegral(const SolutionVector& sol, const GridVariables& gridVars)
     {
         PrimaryVariables source(0.0);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             auto elemVolVars = localView(gridVars.curGridVolVars());
diff --git a/test/multidomain/embedded/1d3d/1p_richards/problem_soil.hh b/test/multidomain/embedded/1d3d/1p_richards/problem_soil.hh
index b784f15b1fced02a539bbb4495fa2b9a61e298cc..c1d421f9d91d0572a6e95e76171649620261f0d8 100644
--- a/test/multidomain/embedded/1d3d/1p_richards/problem_soil.hh
+++ b/test/multidomain/embedded/1d3d/1p_richards/problem_soil.hh
@@ -80,7 +80,7 @@ struct Problem<TypeTag, TTag::Soil> { using type = SoilProblem<TypeTag>; };
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Soil>
 {
-    using type = SoilSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = SoilSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                    GetPropType<TypeTag, Properties::Scalar>>;
 };
 } // end namespace Properties
@@ -96,7 +96,7 @@ class SoilProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
@@ -253,9 +253,9 @@ public:
     void computeSourceIntegral(const SolutionVector& sol, const GridVariables& gridVars)
     {
         PrimaryVariables source(0.0);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             auto elemVolVars = localView(gridVars.curGridVolVars());
diff --git a/test/multidomain/embedded/1d3d/1p_richards/spatialparams_root.hh b/test/multidomain/embedded/1d3d/1p_richards/spatialparams_root.hh
index 6425a5a30ea5137dfedd172afa76125b54161ba6..42a3b62a17d93c7907f082696a8a26affc1fc064 100644
--- a/test/multidomain/embedded/1d3d/1p_richards/spatialparams_root.hh
+++ b/test/multidomain/embedded/1d3d/1p_richards/spatialparams_root.hh
@@ -94,7 +94,7 @@ public:
                                   const SubControlVolume& scv,
                                   const ElementSolution& elemSol) const
     {
-        const Scalar r = radius(this->fvGridGeometry().elementMapper().index(element));
+        const Scalar r = radius(this->gridGeometry().elementMapper().index(element));
         return constantKx_ / (M_PI*r*r) * Components::SimpleH2O<Scalar>::liquidViscosity(285.15, 1e5);
     }
 
diff --git a/test/multidomain/embedded/2d3d/1p_1p/main.cc b/test/multidomain/embedded/2d3d/1p_1p/main.cc
index 5ea0db3d1719f52d7e59f553c2f274c94bfd65aa..0467efaa23e8d3657fa3364f0858cfbebc48c973 100644
--- a/test/multidomain/embedded/2d3d/1p_1p/main.cc
+++ b/test/multidomain/embedded/2d3d/1p_1p/main.cc
@@ -171,10 +171,10 @@ int main(int argc, char** argv) try
     const auto& lowDimGridView = lowDimGridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::GridGeometry>;
     auto bulkFvGridGeometry = std::make_shared<BulkFVGridGeometry>(bulkGridView);
     bulkFvGridGeometry->update();
-    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::FVGridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::GridGeometry>;
     auto lowDimFvGridGeometry = std::make_shared<LowDimFVGridGeometry>(lowDimGridView);
     lowDimFvGridGeometry->update();
 
diff --git a/test/multidomain/embedded/2d3d/1p_1p/problem_fracture.hh b/test/multidomain/embedded/2d3d/1p_1p/problem_fracture.hh
index 9f5f3e4015a113a84eb7f724b6170b4d9bfd2abe..17fff01a7ac1fe6efaac7352a21f6f06af853171 100644
--- a/test/multidomain/embedded/2d3d/1p_1p/problem_fracture.hh
+++ b/test/multidomain/embedded/2d3d/1p_1p/problem_fracture.hh
@@ -88,7 +88,7 @@ struct LocalResidual<TypeTag, TTag::Fracture> { using type = OnePIncompressibleL
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Fracture>
 {
-    using type = MatrixFractureSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = MatrixFractureSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                              GetPropType<TypeTag, Properties::Scalar>>;
 };
 } // end namespace Properties
@@ -107,7 +107,7 @@ class FractureProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
@@ -181,9 +181,9 @@ public:
     {
         BoundaryTypes values;
         values.setAllNeumann();
-        if (globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_)
+        if (globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_)
             values.setAllDirichlet();
-        else if (globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        else if (globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
             values.setAllDirichlet();
         return values;
     }
@@ -197,9 +197,9 @@ public:
      */
     PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const
     {
-        if (globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_)
+        if (globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_)
             return PrimaryVariables(2e5);
-        else // (globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        else // (globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
             return PrimaryVariables(1e5);
     }
 
@@ -279,9 +279,9 @@ public:
     void computeSourceIntegral(const SolutionVector& sol, const GridVariables& gridVars)
     {
         NumEqVector source(0.0);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             auto elemVolVars = localView(gridVars.curGridVolVars());
diff --git a/test/multidomain/embedded/2d3d/1p_1p/problem_matrix.hh b/test/multidomain/embedded/2d3d/1p_1p/problem_matrix.hh
index 02fd315a361f04fd71026f131b9c3dc2b948ebf2..e775429903faa57f85a4a4cd1ffcdaf1661dba87 100644
--- a/test/multidomain/embedded/2d3d/1p_1p/problem_matrix.hh
+++ b/test/multidomain/embedded/2d3d/1p_1p/problem_matrix.hh
@@ -93,7 +93,7 @@ struct FluidSystem<TypeTag, TTag::Matrix>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Matrix>
 {
-    using type = MatrixFractureSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = MatrixFractureSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                              GetPropType<TypeTag, Properties::Scalar>>;
 };
 } // end namespace Properties
@@ -108,7 +108,7 @@ class MatrixProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
@@ -258,9 +258,9 @@ public:
     void computeSourceIntegral(const SolutionVector& sol, const GridVariables& gridVars)
     {
         NumEqVector source(0.0);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             auto elemVolVars = localView(gridVars.curGridVolVars());
diff --git a/test/multidomain/facet/1p_1p/analytical/main.cc b/test/multidomain/facet/1p_1p/analytical/main.cc
index 0f00d2ceb6d7bf480bfeac2f1233e109853888d7..f148770eb4942c21669a600cba5a04af5c24af12 100644
--- a/test/multidomain/facet/1p_1p/analytical/main.cc
+++ b/test/multidomain/facet/1p_1p/analytical/main.cc
@@ -57,8 +57,8 @@
 template< class BulkTypeTag, class LowDimTypeTag >
 class TestTraits
 {
-    using BulkFVGridGeometry = Dumux::GetPropType<BulkTypeTag, Dumux::Properties::FVGridGeometry>;
-    using LowDimFVGridGeometry = Dumux::GetPropType<LowDimTypeTag, Dumux::Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = Dumux::GetPropType<BulkTypeTag, Dumux::Properties::GridGeometry>;
+    using LowDimFVGridGeometry = Dumux::GetPropType<LowDimTypeTag, Dumux::Properties::GridGeometry>;
 public:
     using MDTraits = Dumux::MultiDomainTraits<BulkTypeTag, LowDimTypeTag>;
     using CouplingMapper = Dumux::FacetCouplingMapper<BulkFVGridGeometry, LowDimFVGridGeometry>;
@@ -122,7 +122,7 @@ computeL2Norm(const GridView& gridView,
     for (const auto& element : elements(gridView))
     {
         // make discrete element solution
-        const auto elemSol = elementSolution(element, x, problem.fvGridGeometry());
+        const auto elemSol = elementSolution(element, x, problem.gridGeometry());
 
         // integrate the pressure error over the element
         const auto eg = element.geometry();
@@ -227,8 +227,8 @@ int main(int argc, char** argv) try
     const auto& lowDimGridView = gridManager.template grid<1>().leafGridView();
 
     // create the finite volume grid geometries
-    using BulkFVGridGeometry = GetPropType<BulkProblemTypeTag, Properties::FVGridGeometry>;
-    using LowDimFVGridGeometry = GetPropType<LowDimProblemTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkProblemTypeTag, Properties::GridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimProblemTypeTag, Properties::GridGeometry>;
     auto bulkFvGridGeometry = std::make_shared<BulkFVGridGeometry>(bulkGridView);
     auto lowDimFvGridGeometry = std::make_shared<LowDimFVGridGeometry>(lowDimGridView);
     updateBulkFVGridGeometry(*bulkFvGridGeometry, gridManager, lowDimGridView);
diff --git a/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh b/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh
index afe4a2d0e5ae743b4f87ba2f87b10104a012b0b5..ffde496f2cc77c031f80576f9f1ffb58f5389b3f 100644
--- a/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh
+++ b/test/multidomain/facet/1p_1p/analytical/problem_bulk.hh
@@ -61,7 +61,7 @@ struct Problem<TypeTag, TTag::OnePBulk> { using type = OnePBulkProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePBulk>
 {
-    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::GridGeometry>,
                                     GetPropType<TypeTag, Properties::Scalar> >;
 };
 
diff --git a/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh b/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh
index 5f4b64c6d7cd8a20c311f79de03498ab5f2916cd..76b5d56108dbfcb894acb2744361509c307c5f23 100644
--- a/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh
+++ b/test/multidomain/facet/1p_1p/analytical/problem_lowdim.hh
@@ -61,7 +61,7 @@ struct Problem<TypeTag, TTag::OnePLowDim> { using type = OnePLowDimProblem<TypeT
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePLowDim>
 {
-    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::GridGeometry>,
                                     GetPropType<TypeTag, Properties::Scalar> >;
 };
 
diff --git a/test/multidomain/facet/1p_1p/gravity/main.cc b/test/multidomain/facet/1p_1p/gravity/main.cc
index e62f5c8df5894f29d92ee37b5d6ec685fdead63c..a781c178ba967488700cba7516da91d41268c668 100644
--- a/test/multidomain/facet/1p_1p/gravity/main.cc
+++ b/test/multidomain/facet/1p_1p/gravity/main.cc
@@ -54,8 +54,8 @@ namespace Dumux {
 template< class BulkTypeTag, class LowDimTypeTag >
 class TestTraits
 {
-    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::FVGridGeometry>;
-    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::GridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::GridGeometry>;
 public:
     using MDTraits = Dumux::MultiDomainTraits<BulkTypeTag, LowDimTypeTag>;
     using CouplingMapper = Dumux::FacetCouplingMapper<BulkFVGridGeometry, LowDimFVGridGeometry>;
@@ -114,8 +114,8 @@ int main(int argc, char** argv) try
     const auto& lowDimGridView = gridManager.template grid<1>().leafGridView();
 
     // create the finite volume grid geometries
-    using BulkFVGridGeometry = GetPropType<BulkProblemTypeTag, Properties::FVGridGeometry>;
-    using LowDimFVGridGeometry = GetPropType<LowDimProblemTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkProblemTypeTag, Properties::GridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimProblemTypeTag, Properties::GridGeometry>;
     auto bulkFvGridGeometry = std::make_shared<BulkFVGridGeometry>(bulkGridView);
     auto lowDimFvGridGeometry = std::make_shared<LowDimFVGridGeometry>(lowDimGridView);
     bulkFvGridGeometry->update();
diff --git a/test/multidomain/facet/1p_1p/gravity/problem_bulk.hh b/test/multidomain/facet/1p_1p/gravity/problem_bulk.hh
index d6dbf999d9f84b893f00b80c954d36204da292ce..25d145cd07daf6f3b0cdc127bc63b1017618d821 100644
--- a/test/multidomain/facet/1p_1p/gravity/problem_bulk.hh
+++ b/test/multidomain/facet/1p_1p/gravity/problem_bulk.hh
@@ -65,7 +65,7 @@ struct Problem<TypeTag, TTag::OnePBulk> { using type = OnePBulkProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePBulk>
 {
-    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::GridGeometry>,
                                     GetPropType<TypeTag, Properties::Scalar> >;
 };
 
@@ -130,7 +130,7 @@ public:
     {
         BoundaryTypes values;
         values.setAllNeumann();
-        if (globalPos[1] < 1e-6 || globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - 1e-6)
+        if (globalPos[1] < 1e-6 || globalPos[1] > this->gridGeometry().bBoxMax()[1] - 1e-6)
             values.setAllDirichlet();
         return values;
     }
diff --git a/test/multidomain/facet/1p_1p/gravity/problem_lowdim.hh b/test/multidomain/facet/1p_1p/gravity/problem_lowdim.hh
index fe61484a889b7c8d351981d70ba31431cdbd1b3e..cab046aefba27545e9778a91859de800961013f5 100644
--- a/test/multidomain/facet/1p_1p/gravity/problem_lowdim.hh
+++ b/test/multidomain/facet/1p_1p/gravity/problem_lowdim.hh
@@ -67,7 +67,7 @@ struct Problem<TypeTag, TTag::OnePLowDim> { using type = OnePLowDimProblem<TypeT
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePLowDim>
 {
-    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::GridGeometry>,
                                     GetPropType<TypeTag, Properties::Scalar> >;
 };
 
diff --git a/test/multidomain/facet/1p_1p/linearprofile/main.cc b/test/multidomain/facet/1p_1p/linearprofile/main.cc
index 28640394e43b1d1ae074eae245debe20b8597f81..b50d1f9863a67233b2aa6ab987da29e476b3e850 100644
--- a/test/multidomain/facet/1p_1p/linearprofile/main.cc
+++ b/test/multidomain/facet/1p_1p/linearprofile/main.cc
@@ -53,8 +53,8 @@ namespace Dumux {
 template< class BulkTypeTag, class LowDimTypeTag >
 class TestTraits
 {
-    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::FVGridGeometry>;
-    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkTypeTag, Properties::GridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimTypeTag, Properties::GridGeometry>;
 public:
     using MDTraits = Dumux::MultiDomainTraits<BulkTypeTag, LowDimTypeTag>;
     using CouplingMapper = Dumux::FacetCouplingMapper<BulkFVGridGeometry, LowDimFVGridGeometry>;
@@ -113,8 +113,8 @@ int main(int argc, char** argv) try
     const auto& lowDimGridView = gridManager.template grid<1>().leafGridView();
 
     // create the finite volume grid geometries
-    using BulkFVGridGeometry = GetPropType<BulkProblemTypeTag, Properties::FVGridGeometry>;
-    using LowDimFVGridGeometry = GetPropType<LowDimProblemTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkProblemTypeTag, Properties::GridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimProblemTypeTag, Properties::GridGeometry>;
     auto bulkFvGridGeometry = std::make_shared<BulkFVGridGeometry>(bulkGridView);
     auto lowDimFvGridGeometry = std::make_shared<LowDimFVGridGeometry>(lowDimGridView);
     bulkFvGridGeometry->update();
diff --git a/test/multidomain/facet/1p_1p/linearprofile/problem_bulk.hh b/test/multidomain/facet/1p_1p/linearprofile/problem_bulk.hh
index e31a4b4c1a94b72f869637e7f98240b4549af929..dfd2fadc4c098319dc7b71af8de56095fd7696f3 100644
--- a/test/multidomain/facet/1p_1p/linearprofile/problem_bulk.hh
+++ b/test/multidomain/facet/1p_1p/linearprofile/problem_bulk.hh
@@ -66,7 +66,7 @@ struct Problem<TypeTag, TTag::OnePBulk> { using type = OnePBulkProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePBulk>
 {
-    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::GridGeometry>,
                                     GetPropType<TypeTag, Properties::Scalar> >;
 };
 
@@ -129,7 +129,7 @@ public:
     {
         BoundaryTypes values;
         values.setAllNeumann();
-        if (globalPos[0] < 1e-6 || globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - 1e-6)
+        if (globalPos[0] < 1e-6 || globalPos[0] > this->gridGeometry().bBoxMax()[0] - 1e-6)
             values.setAllDirichlet();
         return values;
     }
@@ -156,7 +156,7 @@ public:
 
     //! Evaluates the initial conditions.
     PrimaryVariables initialAtPos(const GlobalPosition& globalPos) const
-    { return PrimaryVariables(1.0 + globalPos[0]/this->fvGridGeometry().bBoxMax()[0]); }
+    { return PrimaryVariables(1.0 + globalPos[0]/this->gridGeometry().bBoxMax()[0]); }
 
     //! Returns the temperature in \f$\mathrm{[K]}\f$ in the domain.
     Scalar temperature() const
diff --git a/test/multidomain/facet/1p_1p/linearprofile/problem_lowdim.hh b/test/multidomain/facet/1p_1p/linearprofile/problem_lowdim.hh
index 73ce6e708b2e4087fa2fb3906dfd3060f5b87d21..793178315d17d66f473c05c0cc196cdfec447330 100644
--- a/test/multidomain/facet/1p_1p/linearprofile/problem_lowdim.hh
+++ b/test/multidomain/facet/1p_1p/linearprofile/problem_lowdim.hh
@@ -67,7 +67,7 @@ struct Problem<TypeTag, TTag::OnePLowDim> { using type = OnePLowDimProblem<TypeT
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePLowDim>
 {
-    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::GridGeometry>,
                                     GetPropType<TypeTag, Properties::Scalar> >;
 };
 
diff --git a/test/multidomain/facet/1p_1p/threedomain/main.cc b/test/multidomain/facet/1p_1p/threedomain/main.cc
index 45fa2e8436ad4c18b025d87b369a8e888ad8b0fb..a0de169837a8fde1faa4b53e3a5434862171fb8f 100644
--- a/test/multidomain/facet/1p_1p/threedomain/main.cc
+++ b/test/multidomain/facet/1p_1p/threedomain/main.cc
@@ -56,9 +56,9 @@
 template<class BulkTypeTag, class FacetTypeTag, class EdgeTypeTag>
 class TestTraits
 {
-    using BulkFVG = Dumux::GetPropType<BulkTypeTag, Dumux::Properties::FVGridGeometry>;
-    using FacetFVG = Dumux::GetPropType<FacetTypeTag, Dumux::Properties::FVGridGeometry>;
-    using EdgeFVG = Dumux::GetPropType<EdgeTypeTag, Dumux::Properties::FVGridGeometry>;
+    using BulkFVG = Dumux::GetPropType<BulkTypeTag, Dumux::Properties::GridGeometry>;
+    using FacetFVG = Dumux::GetPropType<FacetTypeTag, Dumux::Properties::GridGeometry>;
+    using EdgeFVG = Dumux::GetPropType<EdgeTypeTag, Dumux::Properties::GridGeometry>;
 public:
     using MDTraits = Dumux::MultiDomainTraits<BulkTypeTag, FacetTypeTag, EdgeTypeTag>;
     using CouplingMapper = Dumux::FacetCouplingThreeDomainMapper<BulkFVG, FacetFVG, EdgeFVG>;
diff --git a/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh b/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh
index 81076edbb56a8fa7618d7d2b3b582ad533aab7c4..f37b45af45dd18d20b201b85826c8eafb75b2f04 100644
--- a/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/problem_bulk.hh
@@ -62,7 +62,7 @@ struct Problem<TypeTag, TTag::OnePBulk> { using type = OnePBulkProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePBulk>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -128,7 +128,7 @@ public:
     {
         BoundaryTypes values;
         values.setAllNeumann();
-        if (globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + 1e-6 || globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - 1e-6)
+        if (globalPos[1] < this->gridGeometry().bBoxMin()[1] + 1e-6 || globalPos[1] > this->gridGeometry().bBoxMax()[1] - 1e-6)
             values.setAllDirichlet();
         return values;
     }
@@ -152,8 +152,8 @@ public:
     PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const
     {
         const auto y = globalPos[1];
-        const auto yMin = this->fvGridGeometry().bBoxMin()[1];
-        const auto yMax = this->fvGridGeometry().bBoxMax()[1];
+        const auto yMin = this->gridGeometry().bBoxMin()[1];
+        const auto yMax = this->gridGeometry().bBoxMax()[1];
 
         return PrimaryVariables( {2.0 - (y-yMin)/(yMax-yMin)} );
     }
diff --git a/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh b/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh
index 34cb8c89651306ad8f190788516cbe57875d917b..c8423409dfafe55901aa7306350dd8931e760a14 100644
--- a/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/problem_edge.hh
@@ -64,7 +64,7 @@ struct Problem<TypeTag, TTag::OnePEdge> { using type = OnePEdgeProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePEdge>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePSpatialParams<FVGridGeometry, Scalar>;
 };
diff --git a/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh b/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh
index 8e77d6edb575e88f3fb3278793f716c9c4d3d831..c52cc5ba268d2cfb3ae413ff38b56d8483d09a30 100644
--- a/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/problem_facet.hh
@@ -63,7 +63,7 @@ struct Problem<TypeTag, TTag::OnePFacet> { using type = OnePFacetProblem<TypeTag
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePFacet>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePSpatialParams<FVGridGeometry, Scalar>;
 };
diff --git a/test/multidomain/facet/tracer_tracer/main.cc b/test/multidomain/facet/tracer_tracer/main.cc
index 5f55261a939e362b9e4bc20210cca2b2428a4891..00b9b4a8eda4ba788e57e5b5dd2e10ef7d4b1c0e 100644
--- a/test/multidomain/facet/tracer_tracer/main.cc
+++ b/test/multidomain/facet/tracer_tracer/main.cc
@@ -60,8 +60,8 @@
 template< class BulkTypeTag, class LowDimTypeTag >
 class TestTraits
 {
-    using BulkFVGridGeometry = Dumux::GetPropType<BulkTypeTag, Dumux::Properties::FVGridGeometry>;
-    using LowDimFVGridGeometry = Dumux::GetPropType<LowDimTypeTag, Dumux::Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = Dumux::GetPropType<BulkTypeTag, Dumux::Properties::GridGeometry>;
+    using LowDimFVGridGeometry = Dumux::GetPropType<LowDimTypeTag, Dumux::Properties::GridGeometry>;
 public:
     using MDTraits = Dumux::MultiDomainTraits<BulkTypeTag, LowDimTypeTag>;
     using CouplingMapper = Dumux::FacetCouplingMapper<BulkFVGridGeometry, LowDimFVGridGeometry>;
@@ -251,8 +251,8 @@ int main(int argc, char** argv) try
     std::vector< std::vector<double> > lowDimVolumeFluxes;
 
     // create the finite volume grid geometries
-    using BulkFVGridGeometry = GetPropType<BulkOnePTypeTag, Properties::FVGridGeometry>;
-    using LowDimFVGridGeometry = GetPropType<LowDimOnePTypeTag, Properties::FVGridGeometry>;
+    using BulkFVGridGeometry = GetPropType<BulkOnePTypeTag, Properties::GridGeometry>;
+    using LowDimFVGridGeometry = GetPropType<LowDimOnePTypeTag, Properties::GridGeometry>;
     auto bulkFvGridGeometry = std::make_shared<BulkFVGridGeometry>(bulkGridView);
     auto lowDimFvGridGeometry = std::make_shared<LowDimFVGridGeometry>(lowDimGridView);
     updateBulkFVGridGeometry(*bulkFvGridGeometry, gridManager, lowDimGridView);
diff --git a/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh b/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh
index ae1aa0107acb98fb702f4851e6c8c4661796a4b6..92a4b7269e4c34c2523ea9cb28c8806864446f76 100644
--- a/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh
+++ b/test/multidomain/facet/tracer_tracer/problem_1p_bulk.hh
@@ -64,7 +64,7 @@ struct Problem<TypeTag, TTag::OnePBulk> { using type = OnePBulkProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePBulk>
 {
-    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::GridGeometry>,
                                     GetPropType<TypeTag, Properties::Scalar> >;
 };
 
@@ -129,7 +129,7 @@ public:
     {
         BoundaryTypes values;
         values.setAllNeumann();
-        if (globalPos[0] < 1e-6 || globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - 1e-6)
+        if (globalPos[0] < 1e-6 || globalPos[0] > this->gridGeometry().bBoxMax()[0] - 1e-6)
             values.setAllDirichlet();
         return values;
     }
diff --git a/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh b/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh
index 8794e7c11130f9d9a33fc8f5e7ff77f3c173c33b..cd333643b92fa5548139a0a6a38f1ba9e75399ea 100644
--- a/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh
+++ b/test/multidomain/facet/tracer_tracer/problem_1p_lowdim.hh
@@ -63,7 +63,7 @@ struct Problem<TypeTag, TTag::OnePLowDim> { using type = OnePLowDimProblem<TypeT
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePLowDim>
 {
-    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = OnePSpatialParams< GetPropType<TypeTag, Properties::GridGeometry>,
                                     GetPropType<TypeTag, Properties::Scalar> >;
 };
 
diff --git a/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh b/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh
index 65515cde1eb59ccc363faa69736cecdaa5f080c0..04ddab7dce0a2ea7c79fed265e0e9a02176dd507 100644
--- a/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh
+++ b/test/multidomain/facet/tracer_tracer/problem_tracer_bulk.hh
@@ -74,7 +74,7 @@ struct Problem<TypeTag, TTag::TracerTestBulk> { using type = TracerBulkProblem<T
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TracerTestBulk>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TracerSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -111,7 +111,7 @@ class TracerBulkProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
diff --git a/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh b/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh
index c09e551d82dd92ccec414e4dafb11043f94f8e87..19e2db2beb22b62ece5f0ad813f180cca1f7cd22 100644
--- a/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh
+++ b/test/multidomain/facet/tracer_tracer/problem_tracer_lowdim.hh
@@ -67,7 +67,7 @@ struct Problem<TypeTag, TTag::TracerTestLowDim> { using type = TracerLowDimProbl
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TracerTestLowDim>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TracerSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -104,7 +104,7 @@ class TracerLowDimProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
diff --git a/test/multidomain/facet/tracer_tracer/spatialparams_tracer.hh b/test/multidomain/facet/tracer_tracer/spatialparams_tracer.hh
index a86af5ada6ee719e854e9e637ae9e8e7c63be281..0b787d974d8545c439406e607d8276bfb49929e0 100644
--- a/test/multidomain/facet/tracer_tracer/spatialparams_tracer.hh
+++ b/test/multidomain/facet/tracer_tracer/spatialparams_tracer.hh
@@ -91,7 +91,7 @@ public:
                       const ElementVolumeVariables& elemVolVars,
                       const SubControlVolumeFace& scvf) const
     {
-        return isBox ? volumeFlux_[this->fvGridGeometry().elementMapper().index(element)][scvf.index()]
+        return isBox ? volumeFlux_[this->gridGeometry().elementMapper().index(element)][scvf.index()]
                      : volumeFlux_[scvf.index()][0];
     }
 
diff --git a/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh b/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh
index fc3477bc6a7b0f7adfa442ca2e69a63be4959b06..90d0d1d71aa5f2b4a643ad122fe67c0855a41909 100644
--- a/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh
+++ b/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh
@@ -39,7 +39,7 @@ class TracerFluidSystem : public FluidSystems::Base<GetPropType<TypeTag, Propert
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
 public:
diff --git a/test/multidomain/poromechanics/el1p/main.cc b/test/multidomain/poromechanics/el1p/main.cc
index 92f697d8939df43babafcd0aef5b3dd0d59d66a3..992cfe962c1f6a5a390dd601b66aa1ef8edaf1a8 100644
--- a/test/multidomain/poromechanics/el1p/main.cc
+++ b/test/multidomain/poromechanics/el1p/main.cc
@@ -108,8 +108,8 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometries
-    using OnePFVGridGeometry = GetPropType<OnePTypeTag, Properties::FVGridGeometry>;
-    using PoroMechFVGridGeometry = GetPropType<PoroMechTypeTag, Properties::FVGridGeometry>;
+    using OnePFVGridGeometry = GetPropType<OnePTypeTag, Properties::GridGeometry>;
+    using PoroMechFVGridGeometry = GetPropType<PoroMechTypeTag, Properties::GridGeometry>;
     auto onePFvGridGeometry = std::make_shared<OnePFVGridGeometry>(leafGridView);
     auto poroMechFvGridGeometry = std::make_shared<PoroMechFVGridGeometry>(leafGridView);
     onePFvGridGeometry->update();
diff --git a/test/multidomain/poromechanics/el1p/problem_1p.hh b/test/multidomain/poromechanics/el1p/problem_1p.hh
index 0d2ff4b9b768511c11e38174eec9557c0e63ca93..25516dac45e28206af012b85aa62bcf0f724c6b1 100644
--- a/test/multidomain/poromechanics/el1p/problem_1p.hh
+++ b/test/multidomain/poromechanics/el1p/problem_1p.hh
@@ -67,7 +67,7 @@ struct Problem<TypeTag, TTag::OnePSub> { using type = OnePSubProblem<TypeTag> ;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePSub>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
     using type = OnePSpatialParams<FVGridGeometry, Scalar, CouplingManager>;
@@ -94,7 +94,7 @@ class OnePSubProblem : public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
 public:
     OnePSubProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry,
diff --git a/test/multidomain/poromechanics/el1p/problem_poroelastic.hh b/test/multidomain/poromechanics/el1p/problem_poroelastic.hh
index 2194719b9ede5ef33b9b0a7cd57ecd884b3bf3b3..41e4d218385d3d9d7b1dd83e3f6248761cbd598b 100644
--- a/test/multidomain/poromechanics/el1p/problem_poroelastic.hh
+++ b/test/multidomain/poromechanics/el1p/problem_poroelastic.hh
@@ -66,7 +66,7 @@ template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::PoroElasticSub>
 {
     using type = PoroElasticSpatialParams< GetPropType<TypeTag, Properties::Scalar>,
-                                           GetPropType<TypeTag, Properties::FVGridGeometry> >;
+                                           GetPropType<TypeTag, Properties::GridGeometry> >;
 };
 } // end namespace Properties
 
@@ -86,7 +86,7 @@ class PoroElasticSubProblem : public GeomechanicsFVProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
 
diff --git a/test/multidomain/poromechanics/el1p/spatialparams_1p.hh b/test/multidomain/poromechanics/el1p/spatialparams_1p.hh
index 206f8503997a375345f3072998e3ae1b45739830..e5331893b2e43c2aa758f837edd8aff6c1edc495 100644
--- a/test/multidomain/poromechanics/el1p/spatialparams_1p.hh
+++ b/test/multidomain/poromechanics/el1p/spatialparams_1p.hh
@@ -75,7 +75,7 @@ public:
     {
         static constexpr auto poroMechId = CouplingManager::poroMechId;
 
-        const auto& poroMechGridGeom = couplingManagerPtr_->problem(poroMechId).fvGridGeometry();
+        const auto& poroMechGridGeom = couplingManagerPtr_->problem(poroMechId).gridGeometry();
         const auto poroMechElemSol = elementSolution(element, couplingManagerPtr_->curSol()[poroMechId], poroMechGridGeom);
 
         // evaluate the deformation-dependent porosity at the scv center
diff --git a/test/multidomain/poromechanics/el1p/spatialparams_poroelastic.hh b/test/multidomain/poromechanics/el1p/spatialparams_poroelastic.hh
index 5269d8e0bcdb1f778ee09f714fe3f2b54d30bc57..4416db2d9e015285f51cc962ee4184cbee0da844 100644
--- a/test/multidomain/poromechanics/el1p/spatialparams_poroelastic.hh
+++ b/test/multidomain/poromechanics/el1p/spatialparams_poroelastic.hh
@@ -76,7 +76,7 @@ public:
                     const ElementSolution& elemSol) const
 
     {
-        return PorosityDeformation<Scalar>::evaluatePorosity(this->fvGridGeometry(), element, scv, elemSol, initPorosity_);
+        return PorosityDeformation<Scalar>::evaluatePorosity(this->gridGeometry(), element, scv, elemSol, initPorosity_);
     }
 
     //! Returns the Biot coefficient of the porous medium.
diff --git a/test/multidomain/poromechanics/el2p/main.cc b/test/multidomain/poromechanics/el2p/main.cc
index c945a4566b82969b2aed66363e8ad9f26de9685a..f53a190f27b589be1e9ff823f2bf19084ab10bc6 100644
--- a/test/multidomain/poromechanics/el2p/main.cc
+++ b/test/multidomain/poromechanics/el2p/main.cc
@@ -110,8 +110,8 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometries
-    using TwoPFVGridGeometry = GetPropType<TwoPTypeTag, Properties::FVGridGeometry>;
-    using PoroMechFVGridGeometry = GetPropType<PoroMechTypeTag, Properties::FVGridGeometry>;
+    using TwoPFVGridGeometry = GetPropType<TwoPTypeTag, Properties::GridGeometry>;
+    using PoroMechFVGridGeometry = GetPropType<PoroMechTypeTag, Properties::GridGeometry>;
     auto twoPFvGridGeometry = std::make_shared<TwoPFVGridGeometry>(leafGridView);
     auto poroMechFvGridGeometry = std::make_shared<PoroMechFVGridGeometry>(leafGridView);
     twoPFvGridGeometry->update();
diff --git a/test/multidomain/poromechanics/el2p/problem_2p.hh b/test/multidomain/poromechanics/el2p/problem_2p.hh
index 57a869a288725b73e3ce51ef15e89dfe4d1dfc9a..8db13e8e4b884fc87e5614da75d0cf7854bd3524 100644
--- a/test/multidomain/poromechanics/el2p/problem_2p.hh
+++ b/test/multidomain/poromechanics/el2p/problem_2p.hh
@@ -68,7 +68,7 @@ struct Problem<TypeTag, TTag::TwoPSub> { using type = TwoPSubProblem<TypeTag> ;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TwoPSub>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using CouplingManager = GetPropType<TypeTag, Properties::CouplingManager>;
     using type = TwoPSpatialParams<FVGridGeometry, Scalar, CouplingManager>;
@@ -102,7 +102,7 @@ class TwoPSubProblem : public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
 public:
     TwoPSubProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry,
diff --git a/test/multidomain/poromechanics/el2p/problem_poroelastic.hh b/test/multidomain/poromechanics/el2p/problem_poroelastic.hh
index 4034d3ea08b3a80cb050b4005996ee30a653f0fd..bf445dbfe7c84e932ab31fa3046915be02560ffd 100644
--- a/test/multidomain/poromechanics/el2p/problem_poroelastic.hh
+++ b/test/multidomain/poromechanics/el2p/problem_poroelastic.hh
@@ -67,7 +67,7 @@ template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::PoroElasticSub>
 {
     using type = PoroElasticSpatialParams< GetPropType<TypeTag, Properties::Scalar>,
-                                           GetPropType<TypeTag, Properties::FVGridGeometry> >;
+                                           GetPropType<TypeTag, Properties::GridGeometry> >;
 };
 } // end namespace Properties
 
@@ -88,7 +88,7 @@ class PoroElasticSubProblem : public GeomechanicsFVProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
 
diff --git a/test/multidomain/poromechanics/el2p/spatialparams_2p.hh b/test/multidomain/poromechanics/el2p/spatialparams_2p.hh
index 4cba433c4cd04e0cb5c5bfc6374282705ade48d2..e33c97f6227e4f1f330683aa372abf9681d3ba73 100644
--- a/test/multidomain/poromechanics/el2p/spatialparams_2p.hh
+++ b/test/multidomain/poromechanics/el2p/spatialparams_2p.hh
@@ -89,7 +89,7 @@ public:
     {
         static constexpr auto poroMechId = CouplingManager::poroMechId;
 
-        const auto& poroMechGridGeom = couplingManagerPtr_->problem(poroMechId).fvGridGeometry();
+        const auto& poroMechGridGeom = couplingManagerPtr_->problem(poroMechId).gridGeometry();
         const auto poroMechElemSol = elementSolution(element, couplingManagerPtr_->curSol()[poroMechId], poroMechGridGeom);
 
         // evaluate the deformation-dependent porosity at the scv center
diff --git a/test/multidomain/poromechanics/el2p/spatialparams_poroelastic.hh b/test/multidomain/poromechanics/el2p/spatialparams_poroelastic.hh
index 5269d8e0bcdb1f778ee09f714fe3f2b54d30bc57..4416db2d9e015285f51cc962ee4184cbee0da844 100644
--- a/test/multidomain/poromechanics/el2p/spatialparams_poroelastic.hh
+++ b/test/multidomain/poromechanics/el2p/spatialparams_poroelastic.hh
@@ -76,7 +76,7 @@ public:
                     const ElementSolution& elemSol) const
 
     {
-        return PorosityDeformation<Scalar>::evaluatePorosity(this->fvGridGeometry(), element, scv, elemSol, initPorosity_);
+        return PorosityDeformation<Scalar>::evaluatePorosity(this->gridGeometry(), element, scv, elemSol, initPorosity_);
     }
 
     //! Returns the Biot coefficient of the porous medium.
diff --git a/test/porousmediumflow/1p/implicit/compressible/instationary/main.cc b/test/porousmediumflow/1p/implicit/compressible/instationary/main.cc
index d4a027c6023783db0ebd61a343da0125de5590df..10ce65de398ba0a1165e0d9e67a11f6084ef845d 100644
--- a/test/porousmediumflow/1p/implicit/compressible/instationary/main.cc
+++ b/test/porousmediumflow/1p/implicit/compressible/instationary/main.cc
@@ -84,7 +84,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/compressible/instationary/problem.hh b/test/porousmediumflow/1p/implicit/compressible/instationary/problem.hh
index 242086ba6ae81ce1179cc595e86a88fd8227b1a5..90b065496341db382e6cc80b65e33891b20f9b19 100644
--- a/test/porousmediumflow/1p/implicit/compressible/instationary/problem.hh
+++ b/test/porousmediumflow/1p/implicit/compressible/instationary/problem.hh
@@ -66,7 +66,7 @@ struct Problem<TypeTag, TTag::OnePCompressible> { using type = OnePTestProblem<T
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePCompressible>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -105,7 +105,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 FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     static constexpr int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
@@ -129,7 +129,7 @@ public:
         BoundaryTypes values;
 
         Scalar eps = 1.0e-6;
-        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->fvGridGeometry().bBoxMax()[dimWorld-1] - eps)
+        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->gridGeometry().bBoxMax()[dimWorld-1] - eps)
             values.setAllDirichlet();
         else
             values.setAllNeumann();
diff --git a/test/porousmediumflow/1p/implicit/compressible/stationary/main.cc b/test/porousmediumflow/1p/implicit/compressible/stationary/main.cc
index 551b5ef788566fec6576357af36356e5ae2f2057..4a61085b581582de1b7cfa165c85762fb07e7247 100644
--- a/test/porousmediumflow/1p/implicit/compressible/stationary/main.cc
+++ b/test/porousmediumflow/1p/implicit/compressible/stationary/main.cc
@@ -82,7 +82,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/compressible/stationary/problem.hh b/test/porousmediumflow/1p/implicit/compressible/stationary/problem.hh
index 242086ba6ae81ce1179cc595e86a88fd8227b1a5..90b065496341db382e6cc80b65e33891b20f9b19 100644
--- a/test/porousmediumflow/1p/implicit/compressible/stationary/problem.hh
+++ b/test/porousmediumflow/1p/implicit/compressible/stationary/problem.hh
@@ -66,7 +66,7 @@ struct Problem<TypeTag, TTag::OnePCompressible> { using type = OnePTestProblem<T
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePCompressible>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -105,7 +105,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 FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     static constexpr int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
@@ -129,7 +129,7 @@ public:
         BoundaryTypes values;
 
         Scalar eps = 1.0e-6;
-        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->fvGridGeometry().bBoxMax()[dimWorld-1] - eps)
+        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->gridGeometry().bBoxMax()[dimWorld-1] - eps)
             values.setAllDirichlet();
         else
             values.setAllNeumann();
diff --git a/test/porousmediumflow/1p/implicit/convergence/main.cc b/test/porousmediumflow/1p/implicit/convergence/main.cc
index ab4ddf5eacba44bf5d0e2eab48d4d589b92464ac..7fa845f47b095fb241616570df4691cb1c9d9dab 100644
--- a/test/porousmediumflow/1p/implicit/convergence/main.cc
+++ b/test/porousmediumflow/1p/implicit/convergence/main.cc
@@ -49,7 +49,7 @@ int main(int argc, char** argv) try
 {
     using namespace Dumux;
     using TypeTag = Properties::TTag::TYPETAG;
-    static constexpr auto dm = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod;
+    static constexpr auto dm = GetPropType<TypeTag, Properties::GridGeometry>::discMethod;
     static constexpr bool isBox = dm == DiscretizationMethod::box;
 
     // initialize MPI, finalize is done automatically on exit
diff --git a/test/porousmediumflow/1p/implicit/convergence/problem.hh b/test/porousmediumflow/1p/implicit/convergence/problem.hh
index 72b99d09f715f8d8718ca2ae02e3cb89e6a0c971..3df9ebca6cb507bdd3d3d4702d3c58aaebaa3676 100644
--- a/test/porousmediumflow/1p/implicit/convergence/problem.hh
+++ b/test/porousmediumflow/1p/implicit/convergence/problem.hh
@@ -67,7 +67,7 @@ struct Problem<TypeTag, TTag::OnePIncompressible> { using type = OnePTestProblem
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePIncompressible>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -100,7 +100,7 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using GridView = typename FVGridGeometry::GridView;
diff --git a/test/porousmediumflow/1p/implicit/convergence/solver.hh b/test/porousmediumflow/1p/implicit/convergence/solver.hh
index 93eef93e25d1cdddd118ca41739618421452d1b5..ea178eb0d30b6d42b1fe9b8e1ccaad43a51e08c8 100644
--- a/test/porousmediumflow/1p/implicit/convergence/solver.hh
+++ b/test/porousmediumflow/1p/implicit/convergence/solver.hh
@@ -51,7 +51,7 @@ template<class TypeTag>
 struct SolutionStorage
 {
     using Grid = Dumux::GetPropType<TypeTag, Dumux::Properties::Grid>;
-    using GridGeometry = Dumux::GetPropType<TypeTag, Dumux::Properties::FVGridGeometry>;
+    using GridGeometry = Dumux::GetPropType<TypeTag, Dumux::Properties::GridGeometry>;
     using SolutionVector = Dumux::GetPropType<TypeTag, Dumux::Properties::SolutionVector>;
 
 public:
@@ -88,7 +88,7 @@ SolutionStorage<TypeTag> solveRefinementLevel(int numCells)
     Dune::Timer timer;
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/fracture2d3d/main.cc b/test/porousmediumflow/1p/implicit/fracture2d3d/main.cc
index a83f07026adf6678f6285db6b92a27742719a248..15b1f325918bf35d2252090482054529d03729f5 100644
--- a/test/porousmediumflow/1p/implicit/fracture2d3d/main.cc
+++ b/test/porousmediumflow/1p/implicit/fracture2d3d/main.cc
@@ -105,7 +105,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/fracture2d3d/problem.hh b/test/porousmediumflow/1p/implicit/fracture2d3d/problem.hh
index d3610094aba356a738a858c0c8df263e661d1905..c6a4786a1a2fde8b52e9242b9245a40c4eda1ffd 100644
--- a/test/porousmediumflow/1p/implicit/fracture2d3d/problem.hh
+++ b/test/porousmediumflow/1p/implicit/fracture2d3d/problem.hh
@@ -84,7 +84,7 @@ struct FluidSystem<TypeTag, TTag::Fracture>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Fracture>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = FractureSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -117,7 +117,7 @@ class FractureProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
 public:
     FractureProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
@@ -167,7 +167,7 @@ public:
         BoundaryTypes values;
 
         values.setAllNeumann();
-        const auto& gg = this->fvGridGeometry();
+        const auto& gg = this->gridGeometry();
         if (globalPos[0] > gg.bBoxMax()[0] - eps_ || globalPos[0] < gg.bBoxMin()[0] + eps_)
             values.setAllDirichlet();
 
@@ -201,7 +201,7 @@ public:
     PrimaryVariables initialAtPos(const GlobalPosition &globalPos) const
     {
         PrimaryVariables values(0.0);
-        const auto& gg = this->fvGridGeometry();
+        const auto& gg = this->gridGeometry();
         values[pressureIdx] = 1.0e5*(globalPos[0] - gg.bBoxMin()[0])/(gg.bBoxMax()[0] - gg.bBoxMin()[0]) + 1.0e5;
         return values;
     }
diff --git a/test/porousmediumflow/1p/implicit/incompressible/main.cc b/test/porousmediumflow/1p/implicit/incompressible/main.cc
index 42e508226bc3ece6c2b547b825704937d04b597e..541327d37f2994e466acc15021dac61d2fea0bd0 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/main.cc
+++ b/test/porousmediumflow/1p/implicit/incompressible/main.cc
@@ -114,7 +114,7 @@ int main(int argc, char** argv) try
     Dune::Timer timer;
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/incompressible/problem.hh b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
index 47bd0ac4bd8a84b3631e62a3fc512b6c71ba6d30..d7ea6a085ea4f9d346f5e510dab842522609f731 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/problem.hh
+++ b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
@@ -73,7 +73,7 @@ struct Problem<TypeTag, TTag::OnePIncompressible> { using type = OnePTestProblem
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePIncompressible>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -120,7 +120,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 FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     static constexpr int dimWorld = GridView::dimensionworld;
@@ -153,7 +153,7 @@ public:
         BoundaryTypes values;
 
         Scalar eps = 1.0e-6;
-        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->fvGridGeometry().bBoxMax()[dimWorld-1] - eps)
+        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->gridGeometry().bBoxMax()[dimWorld-1] - eps)
             values.setAllDirichlet();
         else
             values.setAllNeumann();
@@ -171,7 +171,7 @@ public:
     PrimaryVariables dirichletAtPos(const GlobalPosition &globalPos) const
     {
         PrimaryVariables values(0);
-        values[0] = 1.0e+5 + dp_dy_*(globalPos[dimWorld-1] - this->fvGridGeometry().bBoxMax()[dimWorld-1]);
+        values[0] = 1.0e+5 + dp_dy_*(globalPos[dimWorld-1] - this->gridGeometry().bBoxMax()[dimWorld-1]);
 
         return values;
     }
diff --git a/test/porousmediumflow/1p/implicit/internaldirichlet/problem.hh b/test/porousmediumflow/1p/implicit/internaldirichlet/problem.hh
index 1b10e790583df697856e7776a3566c16a8360472..6708ff689c26bc6e812f88aaf755bf429ba5c896 100644
--- a/test/porousmediumflow/1p/implicit/internaldirichlet/problem.hh
+++ b/test/porousmediumflow/1p/implicit/internaldirichlet/problem.hh
@@ -61,7 +61,7 @@ class OnePTestProblemInternalDirichlet : public OnePTestProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NeumannValues = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
@@ -94,7 +94,7 @@ public:
      */
     NeumannValues neumannAtPos(const GlobalPosition& globalPos) const
     {
-        const auto& gg = this->fvGridGeometry();
+        const auto& gg = this->gridGeometry();
         if (globalPos[0] < gg.bBoxMin()[0] + eps_)
             return NeumannValues(1e3);
         else if (globalPos[1] < gg.bBoxMin()[1] + eps_)
@@ -121,7 +121,7 @@ public:
     {
         // the pure Neumann problem is only defined up to a constant
         // we create a well-posed problem by fixing the pressure at one dof in the middle of the domain
-        return (scv.dofIndex() == static_cast<std::size_t>(this->fvGridGeometry().numDofs()/2));
+        return (scv.dofIndex() == static_cast<std::size_t>(this->gridGeometry().numDofs()/2));
     }
 
     /*!
diff --git a/test/porousmediumflow/1p/implicit/isothermal/main.cc b/test/porousmediumflow/1p/implicit/isothermal/main.cc
index fa8911cc9f98a8be1b80c906e9e7c3b5df741d71..260882ed01264a3d10c3a805a29d72926f3f788b 100644
--- a/test/porousmediumflow/1p/implicit/isothermal/main.cc
+++ b/test/porousmediumflow/1p/implicit/isothermal/main.cc
@@ -111,7 +111,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/isothermal/problem.hh b/test/porousmediumflow/1p/implicit/isothermal/problem.hh
index ab7d74ed819de24870111fa80f5baa31e817f427..cd5f8526c26980a7992fdaa62649eb1dba2de7d2 100644
--- a/test/porousmediumflow/1p/implicit/isothermal/problem.hh
+++ b/test/porousmediumflow/1p/implicit/isothermal/problem.hh
@@ -79,9 +79,9 @@ struct Problem<TypeTag, TTag::OnePTest>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, FVGridGeometry>;
+    using GridGeometry = GetPropType<TypeTag, GridGeometry>;
     using Scalar = GetPropType<TypeTag, Scalar>;
-    using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
+    using type = OnePTestSpatialParams<GridGeometry, Scalar>;
 };
 
 #ifdef FORCHHEIMER
@@ -132,15 +132,15 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag>
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
 public:
-    OnePTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
-    : ParentType(fvGridGeometry)
+    OnePTestProblem(std::shared_ptr<const GridGeometry> gridGeometry)
+    : ParentType(gridGeometry)
     {
         name_ = getParam<std::string>("Problem.Name");
     }
@@ -184,7 +184,7 @@ public:
     {
         BoundaryTypes values;
 
-        if (globalPos[dimWorld-1] < eps_ || globalPos[dimWorld-1] > this->fvGridGeometry().bBoxMax()[dimWorld-1] - eps_)
+        if (globalPos[dimWorld-1] < eps_ || globalPos[dimWorld-1] > this->gridGeometry().bBoxMax()[dimWorld-1] - eps_)
             values.setAllDirichlet();
         else
             values.setAllNeumann();
diff --git a/test/porousmediumflow/1p/implicit/network1d3d/main.cc b/test/porousmediumflow/1p/implicit/network1d3d/main.cc
index d92800a605511653bc7a6a7a38afdf8e6078e5bd..b13d508365007b4f960705e2c1d0d3575897cd5e 100644
--- a/test/porousmediumflow/1p/implicit/network1d3d/main.cc
+++ b/test/porousmediumflow/1p/implicit/network1d3d/main.cc
@@ -105,7 +105,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/network1d3d/problem.hh b/test/porousmediumflow/1p/implicit/network1d3d/problem.hh
index 6d8fd5ec8fb065e28475befc6730f011ab8689b1..67133df7c50fcad313cbaa6b466553d4b9fd3420 100644
--- a/test/porousmediumflow/1p/implicit/network1d3d/problem.hh
+++ b/test/porousmediumflow/1p/implicit/network1d3d/problem.hh
@@ -65,6 +65,13 @@ template<class TypeTag>
 struct Grid<TypeTag, TTag::TubesTest> { using type = Dune::FoamGrid<1, 3>; };
 #endif
 
+// Dumux 3.1 changes the property `FVGridGeometry` to `GridGeometry`.
+// For ensuring backward compatibility on the user side, it is necessary to
+// stick to the old name for the specializations, see the discussion in MR 1647.
+// Use diagnostic pragmas to prevent the emission of a warning message.
+// TODO after 3.1: Rename to GridGeometry, remove the pragmas and this comment.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 // if we have pt scotch use the reordering dof mapper to optimally sort the dofs (cc)
 template<class TypeTag>
 struct FVGridGeometry<TypeTag, TTag::TubesTestCCTpfa>
@@ -95,6 +102,7 @@ private:
 public:
     using type = BoxFVGridGeometry<Scalar, GridView, enableCache, BoxDefaultGridGeometryTraits<GridView, MapperTraits>>;
 };
+#pragma GCC diagnostic pop
 
 // Set the problem property
 template<class TypeTag>
@@ -104,7 +112,7 @@ struct Problem<TypeTag, TTag::TubesTest> { using type = TubesTestProblem<TypeTag
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TubesTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TubesTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -146,13 +154,13 @@ class TubesTestProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
-    enum { isBox = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box };
+    enum { isBox = GetPropType<TypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box };
 
 public:
     TubesTestProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
@@ -306,7 +314,7 @@ public:
         // get the Gaussian quadrature rule for intervals
         const auto& quad = Dune::QuadratureRules<Scalar, dim>::rule(Dune::GeometryType(1), 1);
 
-        const auto& gg = this->fvGridGeometry();
+        const auto& gg = this->gridGeometry();
         for (const auto& element : elements(gg.gridView()))
         {
             const auto eIdx = gg.elementMapper().index(element);
diff --git a/test/porousmediumflow/1p/implicit/nonisothermal/main.cc b/test/porousmediumflow/1p/implicit/nonisothermal/main.cc
index 3d1a976a599ef6f80e7b3883e953f4ed2b54c6ca..d5c20b5452cce4a4f2dbcb575d27a4e0c02ae5c5 100644
--- a/test/porousmediumflow/1p/implicit/nonisothermal/main.cc
+++ b/test/porousmediumflow/1p/implicit/nonisothermal/main.cc
@@ -108,7 +108,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/nonisothermal/problem_conduction.hh b/test/porousmediumflow/1p/implicit/nonisothermal/problem_conduction.hh
index e41a276186676fe7a11455646faf8793d6a7f5a8..64dd602a39ac237e4b4923450b35a8ea0d86a6ec 100644
--- a/test/porousmediumflow/1p/implicit/nonisothermal/problem_conduction.hh
+++ b/test/porousmediumflow/1p/implicit/nonisothermal/problem_conduction.hh
@@ -77,7 +77,7 @@ struct FluidSystem<TypeTag, TTag::OnePNIConduction>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePNIConduction>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePNISpatialParams<FVGridGeometry, Scalar>;
 };
@@ -131,7 +131,7 @@ class OnePNIConductionProblem : public PorousMediumFlowProblem<TypeTag>
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
 public:
     OnePNIConductionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, const std::string& paramGroup)
@@ -154,12 +154,12 @@ public:
     //! Udpate the analytical temperature
     void updateExactTemperature(const SolutionVector& curSol, Scalar time)
     {
-        const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin());
+        const auto someElement = *(elements(this->gridGeometry().gridView()).begin());
 
-        auto someElemSol = elementSolution(someElement, curSol, this->fvGridGeometry());
+        auto someElemSol = elementSolution(someElement, curSol, this->gridGeometry());
         const auto someInitSol = initialAtPos(someElement.geometry().center());
 
-        auto someFvGeometry = localView(this->fvGridGeometry());
+        auto someFvGeometry = localView(this->gridGeometry());
         someFvGeometry.bindElement(someElement);
         const auto someScv = *(scvs(someFvGeometry).begin());
 
@@ -175,9 +175,9 @@ public:
         const auto effectiveThermalConductivity = ThermalConductivityModel::effectiveThermalConductivity(volVars);
         using std::max;
         time = max(time, 1e-10);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
@@ -224,7 +224,7 @@ public:
     {
         BoundaryTypes bcTypes;
 
-        if(globalPos[0] < eps_ || globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] < eps_ || globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
             bcTypes.setAllDirichlet();
         else
             bcTypes.setAllNeumann();
diff --git a/test/porousmediumflow/1p/implicit/nonisothermal/problem_convection.hh b/test/porousmediumflow/1p/implicit/nonisothermal/problem_convection.hh
index 438c5db19b0b782ace5b8157b433337c6dc37c6d..fc9ce339eb8c86cab63c7cbdb9fe93e33a05757b 100644
--- a/test/porousmediumflow/1p/implicit/nonisothermal/problem_convection.hh
+++ b/test/porousmediumflow/1p/implicit/nonisothermal/problem_convection.hh
@@ -77,7 +77,7 @@ struct FluidSystem<TypeTag, TTag::OnePNIConvection>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePNIConvection>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePNISpatialParams<FVGridGeometry, Scalar>;
 };
@@ -112,7 +112,7 @@ class OnePNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using ParentType = PorousMediumFlowProblem<TypeTag>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
@@ -143,7 +143,7 @@ class OnePNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
 public:
     OnePNIConvectionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry, const std::string& paramGroup)
@@ -160,7 +160,7 @@ public:
         pressureHigh_ = 2e5;
         pressureLow_ = 1e5;
 
-        temperatureExact_.resize(this->fvGridGeometry().numDofs());
+        temperatureExact_.resize(this->gridGeometry().numDofs());
     }
 
     //! Get exact temperature vector for output
@@ -172,12 +172,12 @@ public:
     //! Udpate the analytical temperature
     void updateExactTemperature(const SolutionVector& curSol, Scalar time)
     {
-        const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin());
+        const auto someElement = *(elements(this->gridGeometry().gridView()).begin());
 
-        auto someElemSol = elementSolution(someElement, curSol, this->fvGridGeometry());
+        auto someElemSol = elementSolution(someElement, curSol, this->gridGeometry());
         const auto someInitSol = initialAtPos(someElement.geometry().center());
 
-        auto someFvGeometry = localView(this->fvGridGeometry());
+        auto someFvGeometry = localView(this->gridGeometry());
         someFvGeometry.bindElement(someElement);
         const auto someScv = *(scvs(someFvGeometry).begin());
 
@@ -198,9 +198,9 @@ public:
         const Scalar retardedFrontVelocity = darcyVelocity_*storageW/storageTotal/porosity;
         std::cout << "retarded velocity: " << retardedFrontVelocity << '\n';
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
@@ -243,7 +243,7 @@ public:
     {
         BoundaryTypes bcTypes;
 
-        if(globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
             bcTypes.setAllDirichlet();
         else
             bcTypes.setAllNeumann();
diff --git a/test/porousmediumflow/1p/implicit/periodicbc/main.cc b/test/porousmediumflow/1p/implicit/periodicbc/main.cc
index 17f97ba2d441f0035feefd5a6cbf01bff06b1c42..393ca05ee9926c824a8a65f4b39a8be4980d4120 100644
--- a/test/porousmediumflow/1p/implicit/periodicbc/main.cc
+++ b/test/porousmediumflow/1p/implicit/periodicbc/main.cc
@@ -77,7 +77,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry (and make it periodic)
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/periodicbc/problem.hh b/test/porousmediumflow/1p/implicit/periodicbc/problem.hh
index 38fbca5ddc172ebf5e22dbd112cba223be3cd2fa..cb78df459f2e39fbb630d18187e70bef56315a6c 100644
--- a/test/porousmediumflow/1p/implicit/periodicbc/problem.hh
+++ b/test/porousmediumflow/1p/implicit/periodicbc/problem.hh
@@ -113,7 +113,7 @@ class OnePTestProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using SourceValues = GetPropType<TypeTag, Properties::NumEqVector>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     static constexpr int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/1p/implicit/periodicbc/spatialparams.hh b/test/porousmediumflow/1p/implicit/periodicbc/spatialparams.hh
index 4b0f3202dcdbcebc098a692bc2d90b5fa7fd58ab..73a25ecd30dd7238d8486048493d492bb85c22a6 100644
--- a/test/porousmediumflow/1p/implicit/periodicbc/spatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/periodicbc/spatialparams.hh
@@ -36,12 +36,12 @@ namespace Dumux {
  */
 template<class TypeTag>
 class OnePTestSpatialParams
-: public FVSpatialParamsOneP<GetPropType<TypeTag, Properties::FVGridGeometry>,
+: public FVSpatialParamsOneP<GetPropType<TypeTag, Properties::GridGeometry>,
                              GetPropType<TypeTag, Properties::Scalar>,
                              OnePTestSpatialParams<TypeTag>>
 {
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
diff --git a/test/porousmediumflow/1p/implicit/pointsources/timedependent/main.cc b/test/porousmediumflow/1p/implicit/pointsources/timedependent/main.cc
index ebb90d2a9494cc7332f03fc5e47cc71af8b2283b..e1c7cafab6405f31b190ea9dc9ec306527252eb6 100644
--- a/test/porousmediumflow/1p/implicit/pointsources/timedependent/main.cc
+++ b/test/porousmediumflow/1p/implicit/pointsources/timedependent/main.cc
@@ -80,7 +80,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/pointsources/timedependent/problem.hh b/test/porousmediumflow/1p/implicit/pointsources/timedependent/problem.hh
index 45034b6aecdcd117536a254c1b0c384f1fa3153b..d3c9d1bd7ea36d1c370b011fc3a01304cfd47433 100644
--- a/test/porousmediumflow/1p/implicit/pointsources/timedependent/problem.hh
+++ b/test/porousmediumflow/1p/implicit/pointsources/timedependent/problem.hh
@@ -72,10 +72,10 @@ class OnePSingularityProblemTimeDependent : public OnePSingularityProblem<TypeTa
 
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
 public:
     OnePSingularityProblemTimeDependent(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
diff --git a/test/porousmediumflow/1p/implicit/pointsources/timeindependent/main.cc b/test/porousmediumflow/1p/implicit/pointsources/timeindependent/main.cc
index 9d8acf57cf662bef92092806f12652d4f749fb99..d10892dea3360f6f3aef09952ef3f0d59477d164 100644
--- a/test/porousmediumflow/1p/implicit/pointsources/timeindependent/main.cc
+++ b/test/porousmediumflow/1p/implicit/pointsources/timeindependent/main.cc
@@ -80,7 +80,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1p/implicit/pointsources/timeindependent/problem.hh b/test/porousmediumflow/1p/implicit/pointsources/timeindependent/problem.hh
index 11fd23ae89b9d851b88c02ee5cdf8f495845645f..816eed96a0584e0a1d111d22dccd8bd1fe4fb8f8 100644
--- a/test/porousmediumflow/1p/implicit/pointsources/timeindependent/problem.hh
+++ b/test/porousmediumflow/1p/implicit/pointsources/timeindependent/problem.hh
@@ -75,7 +75,7 @@ struct Problem<TypeTag, TTag::OnePSingularity> { using type = OnePSingularityPro
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePSingularity>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePSingularitySpatialParams<FVGridGeometry, Scalar>;
 };
@@ -112,7 +112,7 @@ class OnePSingularityProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PointSource = GetPropType<TypeTag, Properties::PointSource>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Element = typename FVGridGeometry::GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/main.cc b/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/main.cc
index 22022853bac60ed4cd1d7722cb3add04481163f6..0a26f5f85f15e1093d9e89acf2f0e09de4f3e66d 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/main.cc
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/main.cc
@@ -84,7 +84,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/problem.hh b/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/problem.hh
index fa30a4db0fd87b2a5796b1ed144feb177196fcd5..ad481750832c0781c02c35a99532e489c10ad4ae 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/problem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/problem.hh
@@ -86,7 +86,7 @@ struct FluidSystem<TypeTag, TTag::OnePTwoCTest>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePTwoCTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -134,8 +134,8 @@ class OnePTwoCTestProblem : public PorousMediumFlowProblem<TypeTag>
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
 
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
@@ -161,7 +161,7 @@ class OnePTwoCTestProblem : public PorousMediumFlowProblem<TypeTag>
 
     //! Property that defines whether mole or mass fractions are used
     static constexpr bool useMoles = getPropValue<TypeTag, Properties::UseMoles>();
-    static const bool isBox = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box;
+    static const bool isBox = GetPropType<TypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box;
 
     static const int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename SubControlVolumeFace::GlobalPosition;
@@ -263,7 +263,7 @@ public:
     {
         // no-flow everywhere except at the right boundary
         NumEqVector values(0.0);
-        const auto xMax = this->fvGridGeometry().bBoxMax()[0];
+        const auto xMax = this->gridGeometry().bBoxMax()[0];
         const auto& ipGlobal = scvf.ipGlobal();
         if (ipGlobal[0] < xMax - eps_)
             return values;
@@ -319,7 +319,7 @@ public:
      {
         // no-flow everywhere except at the right boundary
         NumEqVector values(0.0);
-        const auto xMax = this->fvGridGeometry().bBoxMax()[0];
+        const auto xMax = this->gridGeometry().bBoxMax()[0];
         const auto& ipGlobal = scvf.ipGlobal();
         if (ipGlobal[0] < xMax - eps_)
             return values;
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/saltwaterintrusion/main.cc b/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/saltwaterintrusion/main.cc
index 015afbd5e50235fae450eae9fb735cf4731cd254..adbf3fb55a1c6c4ccb3fef48af32bdbfcbd2a394 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/saltwaterintrusion/main.cc
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/saltwaterintrusion/main.cc
@@ -84,7 +84,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/saltwaterintrusion/problem.hh b/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/saltwaterintrusion/problem.hh
index 880c6977483fe2ce1c3232d76ea87a40e451a5ea..8389827a28b3c04678ea646779bec2e90fffe762 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/saltwaterintrusion/problem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/isothermal/saltwaterintrusion/problem.hh
@@ -61,7 +61,7 @@ struct FluidSystem<TypeTag, TTag::SaltWaterIntrusionTest>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::SaltWaterIntrusionTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -95,7 +95,7 @@ class SaltWaterIntrusionTestProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     // copy pressure index for convenience
     enum { pressureIdx = Indices::pressureIdx };
@@ -142,7 +142,7 @@ public:
         values.setAllNeumann();
 
         // use Dirichlet BCs on the left and right boundary
-        if(globalPos[0] < eps_ || globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] < eps_ || globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
             values.setAllDirichlet();
 
         return values;
@@ -158,7 +158,7 @@ public:
         PrimaryVariables values = initialAtPos(globalPos);
 
         // salt water is in contact on the right boundary
-        if (globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if (globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
             values[FluidSystem::NaClIdx] = 0.035; // 3.5% salinity (sea water)
 
         return values;
@@ -178,7 +178,7 @@ public:
      */
     PrimaryVariables initialAtPos(const GlobalPosition& globalPos) const
     {
-        const Scalar depth = this->fvGridGeometry().bBoxMax()[1] - globalPos[1];
+        const Scalar depth = this->gridGeometry().bBoxMax()[1] - globalPos[1];
         PrimaryVariables priVars;
         priVars[pressureIdx] = 1e5 + depth*9.81*1000; // hydrostatic pressure (assume rho_water = 1000.0)
         priVars[FluidSystem::NaClIdx] = 0.0;          // initially only fresh water is present
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/conduction/main.cc b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/conduction/main.cc
index 8322346c51dc03fa1603688beccb2fa97a9cdf70..fd9ad1d16d042ecd2d45381fbc9c414b0558c57b 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/conduction/main.cc
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/conduction/main.cc
@@ -84,7 +84,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/conduction/problem.hh b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/conduction/problem.hh
index 30c5352e142646ee6d6c0981d8ef32ac8f5f09d6..627739a67f7234cf0d36d29b134f8b9adc4dc848 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/conduction/problem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/conduction/problem.hh
@@ -83,7 +83,7 @@ struct FluidSystem<TypeTag, TTag::OnePTwoCNIConduction>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePTwoCNIConduction>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -128,7 +128,7 @@ class OnePTwoCNIConductionProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using Element = typename GridView::template Codim<0>::Entity;
     using ThermalConductivityModel = GetPropType<TypeTag, Properties::ThermalConductivityModel>;
@@ -176,12 +176,12 @@ public:
     //! Udpate the analytical temperature
     void updateExactTemperature(const SolutionVector& curSol, Scalar time)
     {
-        const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin());
+        const auto someElement = *(elements(this->gridGeometry().gridView()).begin());
 
-        auto someElemSol = elementSolution(someElement, curSol, this->fvGridGeometry());
+        auto someElemSol = elementSolution(someElement, curSol, this->gridGeometry());
         const auto someInitSol = initialAtPos(someElement.geometry().center());
 
-        auto someFvGeometry = localView(this->fvGridGeometry());
+        auto someFvGeometry = localView(this->gridGeometry());
         someFvGeometry.bindElement(someElement);
         const auto someScv = *(scvs(someFvGeometry).begin());
 
@@ -197,9 +197,9 @@ public:
         const auto effectiveThermalConductivity = ThermalConductivityModel::effectiveThermalConductivity(volVars);
         using std::max;
         time = max(time, 1e-10);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
@@ -245,7 +245,7 @@ public:
     {
         BoundaryTypes values;
 
-        if(globalPos[0] < eps_ || globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] < eps_ || globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
         {
             values.setAllDirichlet();
         }
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/convection/main.cc b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/convection/main.cc
index feb90d092cfc6821d2d9e0c785630e734aaca2d0..c7deaed5a0d7cfbbcf9b31b205cf61ff650e4276 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/convection/main.cc
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/convection/main.cc
@@ -84,7 +84,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/convection/problem.hh b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/convection/problem.hh
index 641744bedc2b87cafe1b1974c676b218262420d0..8002ec769d6aefcc70007d52dcd62596fd014071 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/convection/problem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/convection/problem.hh
@@ -84,7 +84,7 @@ struct FluidSystem<TypeTag, TTag::OnePTwoCNIConvection>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePTwoCNIConvection>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -130,8 +130,8 @@ class OnePTwoCNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
@@ -198,12 +198,12 @@ public:
     //! Udpate the analytical temperature
     void updateExactTemperature(const SolutionVector& curSol, Scalar time)
     {
-        const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin());
+        const auto someElement = *(elements(this->gridGeometry().gridView()).begin());
 
-        auto someElemSol = elementSolution(someElement, curSol, this->fvGridGeometry());
+        auto someElemSol = elementSolution(someElement, curSol, this->gridGeometry());
         const auto someInitSol = initialAtPos(someElement.geometry().center());
 
-        auto someFvGeometry = localView(this->fvGridGeometry());
+        auto someFvGeometry = localView(this->gridGeometry());
         someFvGeometry.bindElement(someElement);
         const auto someScv = *(scvs(someFvGeometry).begin());
 
@@ -224,9 +224,9 @@ public:
         const Scalar retardedFrontVelocity = darcyVelocity_*storageW/storageTotal/porosity;
         std::cout << "retarded velocity: " << retardedFrontVelocity << '\n';
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
@@ -267,7 +267,7 @@ public:
     {
         BoundaryTypes values;
 
-        if(globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
         {
             values.setAllDirichlet();
         }
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/transientbc/main.cc b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/transientbc/main.cc
index 94e78d65e50e04d4f54ec370a62778eccd68a40d..f9564773e87a906b8c5bc4d8b0da7280a32ca7a1 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/transientbc/main.cc
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/transientbc/main.cc
@@ -84,7 +84,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/transientbc/problem.hh b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/transientbc/problem.hh
index b36f4932b4868c112aba357e03ea25d0e5f7f256..2be743d10a53318cfaa44e3cc100ee4885892df8 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/transientbc/problem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2c/nonisothermal/transientbc/problem.hh
@@ -83,7 +83,7 @@ struct FluidSystem<TypeTag, TTag::OnePTwoCNITransientBC>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePTwoCNITransientBC>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -141,8 +141,8 @@ class OnePTwoCNITransientBCProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
@@ -217,7 +217,7 @@ public:
     {
         BoundaryTypes values;
 
-        if(globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_ || globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_ || globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
             values.setAllDirichlet();
         else
             values.setAllNeumann();
@@ -235,7 +235,7 @@ public:
         PrimaryVariables values = initial_(globalPos);
 
         // make the BCs on the left border time-dependent
-        if (globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_)
+        if (globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_)
         {
             values[pressureIdx] += time_ * 1.0;
             values[N2Idx] += time_ * 1e-8;
@@ -301,7 +301,7 @@ private:
     {
         PrimaryVariables priVars;
 
-        if (globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_)
+        if (globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_)
         {
             priVars[pressureIdx] = 1.1e5; // initial condition for the pressure
             priVars[N2Idx] = 2e-10;  // initial condition for the N2 molefraction
diff --git a/test/porousmediumflow/1pnc/implicit/1p3c/main.cc b/test/porousmediumflow/1pnc/implicit/1p3c/main.cc
index 3495fe259f3ed9cc1bcd17a95d7ae71b386bd52e..5d5c2cf24abd2f843e01340472e7d5c4dc14bbe1 100644
--- a/test/porousmediumflow/1pnc/implicit/1p3c/main.cc
+++ b/test/porousmediumflow/1pnc/implicit/1p3c/main.cc
@@ -85,7 +85,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1pnc/implicit/1p3c/problem.hh b/test/porousmediumflow/1pnc/implicit/1p3c/problem.hh
index 9b482bf7afa24cd0d012f4e740d313f9d18d0145..7bcc590505a796492d763ff8718d04d75f249c6f 100644
--- a/test/porousmediumflow/1pnc/implicit/1p3c/problem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p3c/problem.hh
@@ -209,7 +209,7 @@ struct FluidSystem<TypeTag, TTag::MaxwellStefanOnePThreeCTest>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::MaxwellStefanOnePThreeCTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -248,7 +248,7 @@ class MaxwellStefanOnePThreeCTestProblem : public PorousMediumFlowProblem<TypeTa
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
 
@@ -309,12 +309,12 @@ public:
             Scalar j = 0.0;
             if (!(time < 0.0))
             {
-                for (const auto& element : elements(this->fvGridGeometry().gridView()))
+                for (const auto& element : elements(this->gridGeometry().gridView()))
                 {
-                    auto fvGeometry = localView(this->fvGridGeometry());
+                    auto fvGeometry = localView(this->gridGeometry());
                     fvGeometry.bindElement(element);
 
-                    const auto elemSol = elementSolution(element, curSol, this->fvGridGeometry());
+                    const auto elemSol = elementSolution(element, curSol, this->gridGeometry());
                     for (auto&& scv : scvs(fvGeometry))
                     {
                         const auto& globalPos = scv.dofPosition();
diff --git a/test/porousmediumflow/1pnc/implicit/nonequilibrium/main.cc b/test/porousmediumflow/1pnc/implicit/nonequilibrium/main.cc
index d167c1d8faf06a3d0317fbb975c570ebdc658b5e..0b75cd7a96469267a61b929024a3ac63b795ba38 100644
--- a/test/porousmediumflow/1pnc/implicit/nonequilibrium/main.cc
+++ b/test/porousmediumflow/1pnc/implicit/nonequilibrium/main.cc
@@ -84,7 +84,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1pnc/implicit/nonequilibrium/problem.hh b/test/porousmediumflow/1pnc/implicit/nonequilibrium/problem.hh
index a454c64c61a6b01627689433c809dd034fde7799..ebc2a80e2fa90ee7e6c280a0f3365dc4b892b82d 100644
--- a/test/porousmediumflow/1pnc/implicit/nonequilibrium/problem.hh
+++ b/test/porousmediumflow/1pnc/implicit/nonequilibrium/problem.hh
@@ -76,7 +76,7 @@ struct FluidSystem<TypeTag, TTag::OnePTwoCThermalNonequilibrium>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::OnePTwoCThermalNonequilibrium>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePNCNonequilibriumTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -114,8 +114,8 @@ class OnePTwoCThermalNonequilibriumProblem : public PorousMediumFlowProblem<Type
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
 
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
@@ -242,7 +242,7 @@ public:
         const auto& globalPos = scvf.ipGlobal();
         const auto& scv = fvGeometry.scv(scvf.insideScvIdx());
 
-        if (globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if (globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
         {
              flux[contiH2OEqIdx] = -darcyVelocity_*elemVolVars[scv].molarDensity();
              flux[contiN2EqIdx] = -darcyVelocity_*elemVolVars[scv].molarDensity()*elemVolVars[scv].moleFraction(0, N2Idx);
diff --git a/test/porousmediumflow/1pncmin/implicit/nonisothermal/main.cc b/test/porousmediumflow/1pncmin/implicit/nonisothermal/main.cc
index 5657513dc9b0c924797d09465070eaefe025d672..324908de81a0c2a4583c44b87fb9f604d9c03eff 100644
--- a/test/porousmediumflow/1pncmin/implicit/nonisothermal/main.cc
+++ b/test/porousmediumflow/1pncmin/implicit/nonisothermal/main.cc
@@ -110,7 +110,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/1pncmin/implicit/nonisothermal/problem.hh b/test/porousmediumflow/1pncmin/implicit/nonisothermal/problem.hh
index d56247db08796cd9a66222e508f693778d9b4ffc..67d8627fea18d259ed94063cceda41646d6adfe5 100644
--- a/test/porousmediumflow/1pncmin/implicit/nonisothermal/problem.hh
+++ b/test/porousmediumflow/1pncmin/implicit/nonisothermal/problem.hh
@@ -90,7 +90,7 @@ struct SolidSystem<TypeTag, TTag::ThermoChem>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::ThermoChem>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = ThermoChemSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -131,10 +131,10 @@ class ThermoChemProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using ReactionRate = ThermoChemReaction;
@@ -180,7 +180,7 @@ public:
         boundaryVaporMoleFrac_ = getParam<Scalar>("Problem.BoundaryMoleFraction");
         boundaryTemperature_ = getParam<Scalar>("Problem.BoundaryTemperature");
 
-        unsigned int codim = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box ? dim : 0;
+        unsigned int codim = GetPropType<TypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box ? dim : 0;
         permeability_.resize(fvGridGeometry->gridView().size(codim));
         porosity_.resize(fvGridGeometry->gridView().size(codim));
         reactionRate_.resize(fvGridGeometry->gridView().size(codim));
@@ -380,11 +380,11 @@ public:
      */
     void updateVtkOutput(const SolutionVector& curSol)
     {
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            const auto elemSol = elementSolution(element, curSol, this->fvGridGeometry());
+            const auto elemSol = elementSolution(element, curSol, this->gridGeometry());
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
diff --git a/test/porousmediumflow/2p/implicit/adaptive/main.cc b/test/porousmediumflow/2p/implicit/adaptive/main.cc
index 2f2597e49ad85dd968627cd82e9b2545fefebf3c..dabb29b258ea3b797409c3b6791531641d135bd4 100644
--- a/test/porousmediumflow/2p/implicit/adaptive/main.cc
+++ b/test/porousmediumflow/2p/implicit/adaptive/main.cc
@@ -123,7 +123,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p/implicit/adaptive/problem.hh b/test/porousmediumflow/2p/implicit/adaptive/problem.hh
index d6b95cc4865962af199e00632c60d5c5084bafa6..3de0f798f2e980ff690e2a6f47bf87d00ba04d14 100644
--- a/test/porousmediumflow/2p/implicit/adaptive/problem.hh
+++ b/test/porousmediumflow/2p/implicit/adaptive/problem.hh
@@ -46,7 +46,7 @@ class TwoPTestProblemAdaptive : public TwoPTestProblem<TypeTag>
     using Vertex = typename GridView::template Codim<GridView::dimensionworld>::Entity;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     static constexpr bool isBox = FVGridGeometry::discMethod == DiscretizationMethod::box;
 
@@ -66,7 +66,7 @@ public:
     PrimaryVariables initial(const Element& element) const
     {
         const auto delta = 0.0625;
-        unsigned int cellsX = this->fvGridGeometry().bBoxMax()[0]/delta;
+        unsigned int cellsX = this->gridGeometry().bBoxMax()[0]/delta;
         const auto globalPos = element.geometry().center();
 
         // the input data corresponds to a uniform grid with discretization length deltaX_
@@ -80,7 +80,7 @@ public:
     PrimaryVariables initial(const Vertex& vertex) const
     {
         const auto delta = 0.0625;
-        unsigned int verticesX = this->fvGridGeometry().bBoxMax()[0]/delta + 1;
+        unsigned int verticesX = this->gridGeometry().bBoxMax()[0]/delta + 1;
         const auto globalPos = vertex.geometry().center();
 
         // the input data corresponds to a uniform grid with discretization length deltaX_
diff --git a/test/porousmediumflow/2p/implicit/boxdfm/main.cc b/test/porousmediumflow/2p/implicit/boxdfm/main.cc
index 32d47f72fd75f6764f7a24e6d4d4024228c489ad..32090672e92cc90f7f365faffac903898f2c18be 100644
--- a/test/porousmediumflow/2p/implicit/boxdfm/main.cc
+++ b/test/porousmediumflow/2p/implicit/boxdfm/main.cc
@@ -117,7 +117,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.template grid<0>().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update(fractureGridAdapter);
 
diff --git a/test/porousmediumflow/2p/implicit/boxdfm/problem.hh b/test/porousmediumflow/2p/implicit/boxdfm/problem.hh
index d884708353aaecf99f285b4ecc83879e9cf6bb2d..7e7d92ff11c93f2407f4e3ca41a46b74db4a8d9e 100644
--- a/test/porousmediumflow/2p/implicit/boxdfm/problem.hh
+++ b/test/porousmediumflow/2p/implicit/boxdfm/problem.hh
@@ -75,7 +75,7 @@ template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TwoPIncompressibleBoxDfm>
 {
 private:
-    using FVG = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVG = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 public:
     using type = TwoPTestSpatialParams<FVG, Scalar>;
@@ -125,7 +125,7 @@ class TwoPTestProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
 
     // some indices for convenience
@@ -178,7 +178,7 @@ public:
     {
         BoundaryTypes values;
         values.setAllNeumann();
-        if (globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_ || globalPos[0] < 1e-6)
+        if (globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_ || globalPos[0] < 1e-6)
             values.setAllDirichlet();
         return values;
     }
@@ -217,7 +217,7 @@ public:
         PrimaryVariables values;
 
         // pressure gradient from left to right
-        values[pressureH2OIdx] = 2e5 - 1e5*globalPos[0]/this->fvGridGeometry().bBoxMax()[0];
+        values[pressureH2OIdx] = 2e5 - 1e5*globalPos[0]/this->gridGeometry().bBoxMax()[0];
         values[saturationDNAPLIdx] = 0;
         return values;
     }
diff --git a/test/porousmediumflow/2p/implicit/boxdfm/spatialparams.hh b/test/porousmediumflow/2p/implicit/boxdfm/spatialparams.hh
index aa572a2e13d3c130212eda11387b94b79af4388a..68e4011439413810c026f53a0deab9d26acf5c8a 100644
--- a/test/porousmediumflow/2p/implicit/boxdfm/spatialparams.hh
+++ b/test/porousmediumflow/2p/implicit/boxdfm/spatialparams.hh
@@ -148,7 +148,7 @@ public:
     template<class SolutionVector>
     void updateMaterialInterfaceParams(const SolutionVector& x)
     {
-        materialInterfaceParams_.update(this->fvGridGeometry(), *this, x);
+        materialInterfaceParams_.update(this->gridGeometry(), *this, x);
     }
 
     //! Returns the material parameters associated with a nodal dof
diff --git a/test/porousmediumflow/2p/implicit/cornerpoint/main.cc b/test/porousmediumflow/2p/implicit/cornerpoint/main.cc
index b520f01bed84d361bd9c17241861cf6cf748a8e9..1b55d6dd8a0626781f50c8aa729ba42862dfc104 100644
--- a/test/porousmediumflow/2p/implicit/cornerpoint/main.cc
+++ b/test/porousmediumflow/2p/implicit/cornerpoint/main.cc
@@ -118,7 +118,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p/implicit/cornerpoint/problem.hh b/test/porousmediumflow/2p/implicit/cornerpoint/problem.hh
index 89b4e89442640ef64362b683b9a3acc1abde4158..2f31bd79a3a9abc4539981c1887c6115cbf6f37e 100644
--- a/test/porousmediumflow/2p/implicit/cornerpoint/problem.hh
+++ b/test/porousmediumflow/2p/implicit/cornerpoint/problem.hh
@@ -77,7 +77,7 @@ template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TwoPCornerPoint>
 {
 private:
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 public:
     using type = TwoPCornerPointTestSpatialParams<FVGridGeometry, Scalar>;
@@ -104,7 +104,7 @@ class TwoPCornerPointTestProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
@@ -185,7 +185,7 @@ public:
     {
         NumEqVector values(0.0);
 
-        int eIdx = this->fvGridGeometry().gridView().indexSet().index(element);
+        int eIdx = this->gridGeometry().gridView().indexSet().index(element);
         if (eIdx == injectionElement_)
             values[FluidSystem::phase1Idx] = injectionRate_/element.geometry().volume();
 
@@ -236,7 +236,7 @@ public:
     template<class VTKWriter>
     void addFieldsToWriter(VTKWriter& vtk)
     {
-        const auto numElements = this->fvGridGeometry().gridView().size(0);
+        const auto numElements = this->gridGeometry().gridView().size(0);
 
         permX_.resize(numElements);
         permZ_.resize(numElements);
@@ -244,10 +244,10 @@ public:
         vtk.addField(permX_, "PERMX [mD]");
         vtk.addField(permZ_, "PERMZ [mD]");
 
-        const auto& gridView = this->fvGridGeometry().gridView();
+        const auto& gridView = this->gridGeometry().gridView();
         for (const auto& element : elements(gridView))
         {
-            const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+            const auto eIdx = this->gridGeometry().elementMapper().index(element);
 
             // transfer output to mD = 9.86923e-16 m^2
             permX_[eIdx] = this->spatialParams().permeabilityX(eIdx)/9.86923e-16;
diff --git a/test/porousmediumflow/2p/implicit/cornerpoint/spatialparams.hh b/test/porousmediumflow/2p/implicit/cornerpoint/spatialparams.hh
index ba30f5eaef6120065d9102295968c1fec4a62128..81ef9bfcd09f92fbd77522090d2bf4f88ea7853b 100644
--- a/test/porousmediumflow/2p/implicit/cornerpoint/spatialparams.hh
+++ b/test/porousmediumflow/2p/implicit/cornerpoint/spatialparams.hh
@@ -67,7 +67,7 @@ public:
     {
         homogeneous_ = getParam<bool>("Problem.Homogeneous");
 
-        const std::vector<int>& globalCell = this->fvGridGeometry().gridView().grid().globalCell();
+        const std::vector<int>& globalCell = this->gridGeometry().gridView().grid().globalCell();
 
         if (deck_->hasKeyword("PORO")) {
             std::cout << "Found PORO..." << std::endl;
@@ -134,7 +134,7 @@ public:
                                   const SubControlVolume& scv,
                                   const ElementSolution& elemSol) const
     {
-        int eIdx = this->fvGridGeometry().gridView().indexSet().index(element);
+        int eIdx = this->gridGeometry().gridView().indexSet().index(element);
 
         PermeabilityType K(0);
         K[0][0] = K[1][1] = permX_[eIdx];
@@ -156,7 +156,7 @@ public:
                     const SubControlVolume& scv,
                     const ElementSolution& elemSol) const
     {
-        int eIdx = this->fvGridGeometry().gridView().indexSet().index(element);
+        int eIdx = this->gridGeometry().gridView().indexSet().index(element);
         return porosity_[eIdx];
     }
 
diff --git a/test/porousmediumflow/2p/implicit/fracture/main.cc b/test/porousmediumflow/2p/implicit/fracture/main.cc
index 8660b4dc6f01f43f4db8facc1cba477e4eb8d33f..6ed7851dc15bd9776ce262d2e6e59b973c3b1c8d 100644
--- a/test/porousmediumflow/2p/implicit/fracture/main.cc
+++ b/test/porousmediumflow/2p/implicit/fracture/main.cc
@@ -93,7 +93,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p/implicit/fracture/problem.hh b/test/porousmediumflow/2p/implicit/fracture/problem.hh
index 3292340e70cefee3ceae2bac806c9116be5764a1..0d725b27c51f8a689518defdc48763697aed2fc7 100644
--- a/test/porousmediumflow/2p/implicit/fracture/problem.hh
+++ b/test/porousmediumflow/2p/implicit/fracture/problem.hh
@@ -82,7 +82,7 @@ struct FluidSystem<TypeTag, TTag::Fracture>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Fracture>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = FractureSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -111,7 +111,7 @@ class FractureProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
@@ -193,7 +193,7 @@ public:
      */
     PrimaryVariables dirichletAtPos(const GlobalPosition &globalPos) const
     {
-        const auto depth = this->fvGridGeometry().bBoxMax()[dimWorld-1] - globalPos[dimWorld-1];
+        const auto depth = this->gridGeometry().bBoxMax()[dimWorld-1] - globalPos[dimWorld-1];
         const auto g = this->spatialParams().gravity(globalPos)[dimWorld-1];
 
         PrimaryVariables values;
diff --git a/test/porousmediumflow/2p/implicit/incompressible/main.cc b/test/porousmediumflow/2p/implicit/incompressible/main.cc
index a34ec38b9371bdcfa5fb5e834fd82d1584efc1d4..d493c01fb6ef36d5fadf897abb0ad8c9d094c3de 100644
--- a/test/porousmediumflow/2p/implicit/incompressible/main.cc
+++ b/test/porousmediumflow/2p/implicit/incompressible/main.cc
@@ -113,7 +113,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p/implicit/incompressible/problem.hh b/test/porousmediumflow/2p/implicit/incompressible/problem.hh
index 100b86651ede0a06703dd9917b32b058362c1984..fafda26c0f45dfb98978b96bc04b41fd468d881c 100644
--- a/test/porousmediumflow/2p/implicit/incompressible/problem.hh
+++ b/test/porousmediumflow/2p/implicit/incompressible/problem.hh
@@ -84,7 +84,7 @@ template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TwoPIncompressible>
 {
 private:
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
 public:
     using type = TwoPTestSpatialParams<FVGridGeometry, Scalar>;
@@ -116,7 +116,7 @@ class TwoPTestProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
@@ -164,10 +164,10 @@ public:
 
         Scalar densityW = FluidSystem::density(fluidState, waterPhaseIdx);
 
-        Scalar height = this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1];
-        Scalar depth = this->fvGridGeometry().bBoxMax()[1] - globalPos[1];
+        Scalar height = this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1];
+        Scalar depth = this->gridGeometry().bBoxMax()[1] - globalPos[1];
         Scalar alpha = 1 + 1.5/height;
-        Scalar width = this->fvGridGeometry().bBoxMax()[0] - this->fvGridGeometry().bBoxMin()[0];
+        Scalar width = this->gridGeometry().bBoxMax()[0] - this->gridGeometry().bBoxMin()[0];
         Scalar factor = (width*alpha + (1.0 - alpha)*globalPos[0])/width;
 
         // hydrostatic pressure scaled by alpha
@@ -213,7 +213,7 @@ public:
 
         Scalar densityW = FluidSystem::density(fluidState, waterPhaseIdx);
 
-        Scalar depth = this->fvGridGeometry().bBoxMax()[1] - globalPos[1];
+        Scalar depth = this->gridGeometry().bBoxMax()[1] - globalPos[1];
 
         // hydrostatic pressure
         values[pressureH2OIdx] = 1e5 - densityW*this->spatialParams().gravity(globalPos)[1]*depth;
@@ -236,28 +236,28 @@ public:
 private:
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_;
+        return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_;
     }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_;
+        return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_;
     }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_;
+        return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_;
     }
 
     bool onInlet_(const GlobalPosition &globalPos) const
     {
-        Scalar width = this->fvGridGeometry().bBoxMax()[0] - this->fvGridGeometry().bBoxMin()[0];
-        Scalar lambda = (this->fvGridGeometry().bBoxMax()[0] - globalPos[0])/width;
+        Scalar width = this->gridGeometry().bBoxMax()[0] - this->gridGeometry().bBoxMin()[0];
+        Scalar lambda = (this->gridGeometry().bBoxMax()[0] - globalPos[0])/width;
         return onUpperBoundary_(globalPos) && 0.5 < lambda && lambda < 2.0/3.0;
     }
 
diff --git a/test/porousmediumflow/2p/implicit/incompressible/spatialparams.hh b/test/porousmediumflow/2p/implicit/incompressible/spatialparams.hh
index 0e56dbd50553bb645c5b889f1e8fe5409556a07b..5a7558ba780af768647203a317eb4393ca098efd 100644
--- a/test/porousmediumflow/2p/implicit/incompressible/spatialparams.hh
+++ b/test/porousmediumflow/2p/implicit/incompressible/spatialparams.hh
@@ -151,7 +151,7 @@ public:
     void updateMaterialInterfaceParams(const SolutionVector& x)
     {
         if (FVGridGeometry::discMethod == DiscretizationMethod::box)
-            materialInterfaceParams_.update(this->fvGridGeometry(), *this, x);
+            materialInterfaceParams_.update(this->gridGeometry(), *this, x);
     }
 
     //! Returns the material parameters associated with a nodal dof
diff --git a/test/porousmediumflow/2p/implicit/nonisothermal/main.cc b/test/porousmediumflow/2p/implicit/nonisothermal/main.cc
index b395e514515bbde4556c2d8ece2bd55c2c8e45b3..bcb1684233c7240a64c9d901f9287ed71e387ce8 100644
--- a/test/porousmediumflow/2p/implicit/nonisothermal/main.cc
+++ b/test/porousmediumflow/2p/implicit/nonisothermal/main.cc
@@ -104,7 +104,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p/implicit/nonisothermal/problem.hh b/test/porousmediumflow/2p/implicit/nonisothermal/problem.hh
index 59323e48127ab8299559ae5d6aa98a7a6d8d186d..97554608aa266a3c9f382ba49b295bda7d4c793d 100644
--- a/test/porousmediumflow/2p/implicit/nonisothermal/problem.hh
+++ b/test/porousmediumflow/2p/implicit/nonisothermal/problem.hh
@@ -82,7 +82,7 @@ struct FluidSystem<TypeTag, TTag::Injection2PNITypeTag> { using type = FluidSyst
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Injection2PNITypeTag>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = InjectionSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -151,9 +151,9 @@ class InjectionProblem2PNI : public PorousMediumFlowProblem<TypeTag>
 
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
 
diff --git a/test/porousmediumflow/2p1c/implicit/main.cc b/test/porousmediumflow/2p1c/implicit/main.cc
index 766b6df8379fec862700de46044e41d160190a96..d5516a4fdf6dd23ab424f4d5ec083c56606b1154 100644
--- a/test/porousmediumflow/2p1c/implicit/main.cc
+++ b/test/porousmediumflow/2p1c/implicit/main.cc
@@ -84,7 +84,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p1c/implicit/problem.hh b/test/porousmediumflow/2p1c/implicit/problem.hh
index 363c199033d4fd1136f94bee0f838c7469d61253..2708c8fa5d57f1bc7239ace97761c2a2a317f6b8 100644
--- a/test/porousmediumflow/2p1c/implicit/problem.hh
+++ b/test/porousmediumflow/2p1c/implicit/problem.hh
@@ -74,7 +74,7 @@ public:
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::InjectionProblem>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = InjectionProblemSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -106,12 +106,12 @@ class InjectionProblem : public PorousMediumFlowProblem<TypeTag>
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
 
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     // copy some indices for convenience
     enum {
@@ -161,7 +161,7 @@ public:
     {
         BoundaryTypes bcTypes;
 
-        if(globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_ || globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_ || globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
            bcTypes.setAllDirichlet();
         else
            bcTypes.setAllNeumann();
@@ -235,7 +235,7 @@ public:
         PrimaryVariables values(0.0);
 
         const Scalar densityW = 1000.0;
-        values[pressureIdx] = 101300.0 + (this->fvGridGeometry().bBoxMax()[1] - globalPos[1])*densityW*9.81; // hydrostatic pressure
+        values[pressureIdx] = 101300.0 + (this->gridGeometry().bBoxMax()[1] - globalPos[1])*densityW*9.81; // hydrostatic pressure
         values[switchIdx] = 283.13;
 
         values.setState(liquidPhaseOnly);
diff --git a/test/porousmediumflow/2p2c/implicit/chemicalnonequilibrium/main.cc b/test/porousmediumflow/2p2c/implicit/chemicalnonequilibrium/main.cc
index 56d05a9a9e36f0cd46f5be8a53ad1ee436a67753..161016f4bbc61956473fd6e3d6d65029958a0f41 100644
--- a/test/porousmediumflow/2p2c/implicit/chemicalnonequilibrium/main.cc
+++ b/test/porousmediumflow/2p2c/implicit/chemicalnonequilibrium/main.cc
@@ -105,7 +105,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p2c/implicit/chemicalnonequilibrium/problem.hh b/test/porousmediumflow/2p2c/implicit/chemicalnonequilibrium/problem.hh
index f750bb9c011e245323a7fedbc9613d8f95bcd02e..7db04a2d879f58ea3ef0ade5038e7a11aaa79fc4 100644
--- a/test/porousmediumflow/2p2c/implicit/chemicalnonequilibrium/problem.hh
+++ b/test/porousmediumflow/2p2c/implicit/chemicalnonequilibrium/problem.hh
@@ -80,7 +80,7 @@ public:
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TwoPTwoCChemicalNonequilibrium>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TwoPTwoCChemicalNonequilibriumSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -131,12 +131,12 @@ class TwoPTwoCChemicalNonequilibriumProblem : public PorousMediumFlowProblem<Typ
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
 
@@ -202,7 +202,7 @@ public:
     BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const
     {
         BoundaryTypes bcTypes;
-         if (globalPos[0] <  this->fvGridGeometry().bBoxMin()[0] + eps_)
+         if (globalPos[0] <  this->gridGeometry().bBoxMin()[0] + eps_)
             bcTypes.setAllDirichlet();
          else
             bcTypes.setAllNeumann();
@@ -243,7 +243,7 @@ public:
         const auto& volVars = elemVolVars[scvf.insideScvIdx()];
         Scalar boundaryLayerThickness = 0.0016;
         //right side
-        if (globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if (globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
         {
             Scalar moleFracH2OInside = volVars.moleFraction(FluidSystem::gasPhaseIdx, FluidSystem::H2OIdx);
             Scalar moleFracRefH2O = 0.0;
@@ -289,14 +289,14 @@ public:
 
     void updateVtkFields(const SolutionVector& curSol)
     {
-        const auto& gridView = this->fvGridGeometry().gridView();
+        const auto& gridView = this->gridGeometry().gridView();
         xEquilxwn_.resize(gridView.size(dofCodim));
         xEquilxnw_.resize(gridView.size(dofCodim));
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto elemSol = elementSolution(element, curSol, this->fvGridGeometry());
+            auto elemSol = elementSolution(element, curSol, this->gridGeometry());
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
diff --git a/test/porousmediumflow/2p2c/implicit/injection/main.cc b/test/porousmediumflow/2p2c/implicit/injection/main.cc
index 730633d1c3225e1ceb2ca967bbd6b47ea1e099f8..61861d1c67b52e55b4fee6b86c87ccc17c4bd5ef 100644
--- a/test/porousmediumflow/2p2c/implicit/injection/main.cc
+++ b/test/porousmediumflow/2p2c/implicit/injection/main.cc
@@ -80,7 +80,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p2c/implicit/injection/problem.hh b/test/porousmediumflow/2p2c/implicit/injection/problem.hh
index 3c4b6f0cb7a0e2cdd0db388f0d67bddf178eb36b..19e1b09295ba6607a3130e73386d34f5f22cf575 100644
--- a/test/porousmediumflow/2p2c/implicit/injection/problem.hh
+++ b/test/porousmediumflow/2p2c/implicit/injection/problem.hh
@@ -76,7 +76,7 @@ struct FluidSystem<TypeTag, TTag::Injection>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Injection>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = InjectionSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -143,7 +143,7 @@ class InjectionProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
 
@@ -183,7 +183,7 @@ class InjectionProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
 
     //! Property that defines whether mole or mass fractions are used
diff --git a/test/porousmediumflow/2p2c/implicit/mpnccomparison/main.cc b/test/porousmediumflow/2p2c/implicit/mpnccomparison/main.cc
index 85919bb8b8aa2f1aa6ccc0f9de3e34ea52200af8..3500d484b1a07749b21359f7135a38ad4f7ef7f2 100644
--- a/test/porousmediumflow/2p2c/implicit/mpnccomparison/main.cc
+++ b/test/porousmediumflow/2p2c/implicit/mpnccomparison/main.cc
@@ -105,7 +105,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p2c/implicit/mpnccomparison/problem.hh b/test/porousmediumflow/2p2c/implicit/mpnccomparison/problem.hh
index 1a102bee31909ac39d6119a3f65ac06c0f098d95..794e5ee895ea96b26ff24a294b52b295ae9310c0 100644
--- a/test/porousmediumflow/2p2c/implicit/mpnccomparison/problem.hh
+++ b/test/porousmediumflow/2p2c/implicit/mpnccomparison/problem.hh
@@ -74,7 +74,7 @@ struct FluidSystem<TypeTag, TTag::TwoPTwoCComparison>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TwoPTwoCComparison>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TwoPTwoCComparisonSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -111,12 +111,12 @@ class TwoPTwoCComparisonProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     using ModelTraits = GetPropType<TypeTag, Properties::ModelTraits>;
     using Indices = typename ModelTraits::Indices;
diff --git a/test/porousmediumflow/2p2c/implicit/waterair/main.cc b/test/porousmediumflow/2p2c/implicit/waterair/main.cc
index 3aebc0e632e4c3b9abf9bb20b6c9c8df373dc52f..a8a818205e6fdcc32654f6f57cb60923ee1666a4 100644
--- a/test/porousmediumflow/2p2c/implicit/waterair/main.cc
+++ b/test/porousmediumflow/2p2c/implicit/waterair/main.cc
@@ -80,7 +80,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2p2c/implicit/waterair/problem.hh b/test/porousmediumflow/2p2c/implicit/waterair/problem.hh
index 248bf784388812316dc22505fa44d1d6256fe180..a95f2fde0165f090208a1572a2b9e4788eae91fc 100644
--- a/test/porousmediumflow/2p2c/implicit/waterair/problem.hh
+++ b/test/porousmediumflow/2p2c/implicit/waterair/problem.hh
@@ -68,7 +68,7 @@ struct FluidSystem<TypeTag, TTag::WaterAir> { using type = FluidSystems::H2ON2<G
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::WaterAir>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = WaterAirSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -149,8 +149,8 @@ class WaterAirProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
 
diff --git a/test/porousmediumflow/2pnc/implicit/diffusion/main.cc b/test/porousmediumflow/2pnc/implicit/diffusion/main.cc
index 3f090de5c4f60244b99e89e12c1d89b887e923c0..ebb030d8ae5b66146854814fa0c1a16521a4efd9 100644
--- a/test/porousmediumflow/2pnc/implicit/diffusion/main.cc
+++ b/test/porousmediumflow/2pnc/implicit/diffusion/main.cc
@@ -102,7 +102,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2pnc/implicit/diffusion/problem.hh b/test/porousmediumflow/2pnc/implicit/diffusion/problem.hh
index e7f1ba91496b7714c5f350468f3b6a935c13bcb3..2c8a3cae7a030d1c05200952092145a877f98f81 100644
--- a/test/porousmediumflow/2pnc/implicit/diffusion/problem.hh
+++ b/test/porousmediumflow/2pnc/implicit/diffusion/problem.hh
@@ -71,7 +71,7 @@ struct FluidSystem<TypeTag, TTag::TwoPNCDiffusion>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TwoPNCDiffusion>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TwoPNCDiffusionSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -116,7 +116,7 @@ class TwoPNCDiffusionProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     //! Property that defines whether mole or mass fractions are used
     static constexpr bool useMoles = getPropValue<TypeTag, Properties::UseMoles>();
@@ -192,7 +192,7 @@ public:
          priVars[Indices::pressureIdx] = 1e5;
          priVars[Indices::switchIdx] = 1e-5 ;
 
-         if (globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_)
+         if (globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_)
              priVars[Indices::switchIdx] = 1e-3;
 
         return priVars;
diff --git a/test/porousmediumflow/2pnc/implicit/fuelcell/main.cc b/test/porousmediumflow/2pnc/implicit/fuelcell/main.cc
index e24166ae03fc3776cffa8c33752c6942a4ea5a61..795b08881b9841a196399bb20c329c6ea1ad0ae4 100644
--- a/test/porousmediumflow/2pnc/implicit/fuelcell/main.cc
+++ b/test/porousmediumflow/2pnc/implicit/fuelcell/main.cc
@@ -102,7 +102,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2pnc/implicit/fuelcell/problem.hh b/test/porousmediumflow/2pnc/implicit/fuelcell/problem.hh
index 68c2361a7b7cdd8d1c8916c5bdce58f89097b42e..6ef872e50c712630329869b72186e91d2df8a13f 100644
--- a/test/porousmediumflow/2pnc/implicit/fuelcell/problem.hh
+++ b/test/porousmediumflow/2pnc/implicit/fuelcell/problem.hh
@@ -74,7 +74,7 @@ struct Problem<TypeTag, TTag::FuelCell> { using type = FuelCellProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::FuelCell>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = FuelCellSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -114,11 +114,11 @@ class FuelCellProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     // Select the electrochemistry method
@@ -265,7 +265,7 @@ public:
     template<class VTKWriter>
     void addVtkFields(VTKWriter& vtk)
     {
-        const auto& gridView = this->fvGridGeometry().gridView();
+        const auto& gridView = this->gridGeometry().gridView();
         currentDensity_.resize(gridView.size(dofCodim));
         reactionSourceH2O_.resize(gridView.size(dofCodim));
         reactionSourceO2_.resize(gridView.size(dofCodim));
@@ -281,11 +281,11 @@ public:
 
     void updateVtkFields(const SolutionVector& curSol)
     {
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto elemSol = elementSolution(element, curSol, this->fvGridGeometry());
+            auto elemSol = elementSolution(element, curSol, this->gridGeometry());
 
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
@@ -339,10 +339,10 @@ private:
     }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
-    { return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_; }
+    { return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_; }
 
     bool inReactionLayer_(const GlobalPosition& globalPos) const
-    { return globalPos[1] < 0.1*(this->fvGridGeometry().bBoxMax()[1] - this->fvGridGeometry().bBoxMin()[1]) + eps_; }
+    { return globalPos[1] < 0.1*(this->gridGeometry().bBoxMax()[1] - this->gridGeometry().bBoxMin()[1]) + eps_; }
 
     Scalar temperature_;
     static constexpr Scalar eps_ = 1e-6;
diff --git a/test/porousmediumflow/2pncmin/implicit/main.cc b/test/porousmediumflow/2pncmin/implicit/main.cc
index 0d72a6bbc0ba4363aa11dbf78999b6a37dc2542c..e4a26d328b570cbb0425f02ba54e76b6cc0c22ce 100644
--- a/test/porousmediumflow/2pncmin/implicit/main.cc
+++ b/test/porousmediumflow/2pncmin/implicit/main.cc
@@ -103,7 +103,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/2pncmin/implicit/problem.hh b/test/porousmediumflow/2pncmin/implicit/problem.hh
index 2b9941d2e4f79b7384c60270b4cab8363e908447..dcac0dd49177720e017fee07efcb900816c551cf 100644
--- a/test/porousmediumflow/2pncmin/implicit/problem.hh
+++ b/test/porousmediumflow/2pncmin/implicit/problem.hh
@@ -86,7 +86,7 @@ struct SolidSystem<TypeTag, TTag::Dissolution>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Dissolution>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = DissolutionSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -178,9 +178,9 @@ class DissolutionProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GlobalPosition = typename SubControlVolume::GlobalPosition;
 
@@ -209,7 +209,7 @@ public:
         temperatureHigh_        = getParam<Scalar>("FluidSystem.TemperatureHigh");
         name_                   = getParam<std::string>("Problem.Name");
 
-        unsigned int codim = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box ? dim : 0;
+        unsigned int codim = GetPropType<TypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box ? dim : 0;
         permeability_.resize(fvGridGeometry->gridView().size(codim));
 
         FluidSystem::init(/*Tmin=*/temperatureLow_,
@@ -264,8 +264,8 @@ public:
     {
         BoundaryTypes bcTypes;
 
-        const Scalar rmax = this->fvGridGeometry().bBoxMax()[0];
-        const Scalar rmin = this->fvGridGeometry().bBoxMin()[0];
+        const Scalar rmax = this->gridGeometry().bBoxMax()[0];
+        const Scalar rmin = this->gridGeometry().bBoxMin()[0];
 
         // default to Neumann
         bcTypes.setAllNeumann();
@@ -289,8 +289,8 @@ public:
         PrimaryVariables priVars(0.0);
         priVars.setState(bothPhases);
 
-        const Scalar rmax = this->fvGridGeometry().bBoxMax()[0];
-        const Scalar rmin = this->fvGridGeometry().bBoxMin()[0];
+        const Scalar rmax = this->gridGeometry().bBoxMax()[0];
+        const Scalar rmin = this->gridGeometry().bBoxMin()[0];
 
         if(globalPos[0] > rmax - eps_)
         {
@@ -406,11 +406,11 @@ public:
 
     void updateVtkOutput(const SolutionVector& curSol)
         {
-            for (const auto& element : elements(this->fvGridGeometry().gridView()))
+            for (const auto& element : elements(this->gridGeometry().gridView()))
             {
-                const auto elemSol = elementSolution(element, curSol, this->fvGridGeometry());
+                const auto elemSol = elementSolution(element, curSol, this->gridGeometry());
 
-                auto fvGeometry = localView(this->fvGridGeometry());
+                auto fvGeometry = localView(this->gridGeometry());
                 fvGeometry.bindElement(element);
 
                 for (auto&& scv : scvs(fvGeometry))
diff --git a/test/porousmediumflow/3p/implicit/conduction/main.cc b/test/porousmediumflow/3p/implicit/conduction/main.cc
index 05b37be515154afe530693fc4847808e2010179d..49cef2fc618a5555d27febb396adafd45cb26c82 100644
--- a/test/porousmediumflow/3p/implicit/conduction/main.cc
+++ b/test/porousmediumflow/3p/implicit/conduction/main.cc
@@ -109,7 +109,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/3p/implicit/conduction/problem.hh b/test/porousmediumflow/3p/implicit/conduction/problem.hh
index fecb632d9a22f4abc70c523cd946919c35fb4c24..7ec8bbbfeae6a9158155f21110b66ac4f6ff0597 100644
--- a/test/porousmediumflow/3p/implicit/conduction/problem.hh
+++ b/test/porousmediumflow/3p/implicit/conduction/problem.hh
@@ -73,7 +73,7 @@ struct FluidSystem<TypeTag, TTag::ThreePNIConduction>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::ThreePNIConduction>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = ThreePNISpatialParams<FVGridGeometry, Scalar>;
 };
@@ -112,7 +112,7 @@ class ThreePNIConductionProblem : public PorousMediumFlowProblem<TypeTag>
 
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
@@ -159,12 +159,12 @@ public:
     //! Udpate the analytical temperature
     void updateExactTemperature(const SolutionVector& curSol, Scalar time)
     {
-        const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin());
+        const auto someElement = *(elements(this->gridGeometry().gridView()).begin());
 
-        const auto someElemSol = elementSolution(someElement, curSol, this->fvGridGeometry());
+        const auto someElemSol = elementSolution(someElement, curSol, this->gridGeometry());
         const auto someInitSol = initialAtPos(someElement.geometry().center());
 
-        auto someFvGeometry = localView(this->fvGridGeometry());
+        auto someFvGeometry = localView(this->gridGeometry());
         someFvGeometry.bindElement(someElement);
         const auto someScv = *(scvs(someFvGeometry).begin());
 
@@ -180,9 +180,9 @@ public:
         const auto effectiveThermalConductivity = ThermalConductivityModel::effectiveThermalConductivity(volVars);
         using std::max;
         time = max(time, 1e-10);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
@@ -228,7 +228,7 @@ public:
     BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const
     {
         BoundaryTypes values;
-        if(globalPos[0] < eps_ || globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] < eps_ || globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
         {
             values.setAllDirichlet();
         }
diff --git a/test/porousmediumflow/3p/implicit/convection/main.cc b/test/porousmediumflow/3p/implicit/convection/main.cc
index e3ca2b1933b123c9f5e31b989c6b3dcb361915d1..3b4ce393db1bb42a651db44709d1c89013650de4 100644
--- a/test/porousmediumflow/3p/implicit/convection/main.cc
+++ b/test/porousmediumflow/3p/implicit/convection/main.cc
@@ -109,7 +109,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/3p/implicit/convection/problem.hh b/test/porousmediumflow/3p/implicit/convection/problem.hh
index 2e69e32f16f1c7c3f590826d81cc72105b7c29b1..bcdff72d3f2c1d73b18cc101117d393d91fe7a77 100644
--- a/test/porousmediumflow/3p/implicit/convection/problem.hh
+++ b/test/porousmediumflow/3p/implicit/convection/problem.hh
@@ -75,7 +75,7 @@ struct FluidSystem<TypeTag, TTag::ThreePNIConvection>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::ThreePNIConvection>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = ThreePNISpatialParams<FVGridGeometry, Scalar>;
 };
@@ -114,8 +114,8 @@ class ThreePNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
 
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
@@ -164,7 +164,7 @@ public:
         pressureHigh_ = 2e5;
         pressureLow_ = 1e5;
 
-        temperatureExact_.resize(this->fvGridGeometry().numDofs());
+        temperatureExact_.resize(this->gridGeometry().numDofs());
     }
 
     //! Get exact temperature vector for output
@@ -176,12 +176,12 @@ public:
     //! Udpate the analytical temperature
     void updateExactTemperature(const SolutionVector& curSol, Scalar time)
     {
-        const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin());
+        const auto someElement = *(elements(this->gridGeometry().gridView()).begin());
 
-        const auto someElemSol = elementSolution(someElement, curSol, this->fvGridGeometry());
+        const auto someElemSol = elementSolution(someElement, curSol, this->gridGeometry());
         const auto someInitSol = initialAtPos(someElement.geometry().center());
 
-        auto someFvGeometry = localView(this->fvGridGeometry());
+        auto someFvGeometry = localView(this->gridGeometry());
         someFvGeometry.bindElement(someElement);
         const auto someScv = *(scvs(someFvGeometry).begin());
 
@@ -202,9 +202,9 @@ public:
         const Scalar retardedFrontVelocity = darcyVelocity_*storageW/storageTotal/porosity;
         std::cout << "retarded velocity: " << retardedFrontVelocity << '\n';
 
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
             for (auto&& scv : scvs(fvGeometry))
             {
@@ -246,7 +246,7 @@ public:
     BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const
     {
         BoundaryTypes values;
-        if(globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
         {
             values.setAllDirichlet();
         }
diff --git a/test/porousmediumflow/3p/implicit/infiltration/main.cc b/test/porousmediumflow/3p/implicit/infiltration/main.cc
index c7195a72878925a499387d04bb653f03128ee7cc..7226c3ae8f140670f848fa9bfdd9f6bae66bc815 100644
--- a/test/porousmediumflow/3p/implicit/infiltration/main.cc
+++ b/test/porousmediumflow/3p/implicit/infiltration/main.cc
@@ -109,7 +109,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/3p/implicit/infiltration/problem.hh b/test/porousmediumflow/3p/implicit/infiltration/problem.hh
index aac49904b4905abf64e96f0ef6bd0e4f500c10fd..699f999ceffd534017b2b161f7bc08277344c9fa 100644
--- a/test/porousmediumflow/3p/implicit/infiltration/problem.hh
+++ b/test/porousmediumflow/3p/implicit/infiltration/problem.hh
@@ -83,7 +83,7 @@ public:
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::InfiltrationThreeP>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = InfiltrationThreePSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -141,7 +141,7 @@ class InfiltrationThreePProblem : public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
@@ -203,8 +203,8 @@ public:
     {
         BoundaryTypes values;
 
-        if(globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_
-           || globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_)
+        if(globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_
+           || globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_)
             values.setAllDirichlet();
         else
             values.setAllNeumann();
@@ -241,7 +241,7 @@ public:
         if (time_ < 2592000.0 - eps_)
         {
             if ((globalPos[0] < 175.0 + eps_) && (globalPos[0] > 155.0 - eps_)
-                 && (globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_))
+                 && (globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_))
             {
                 // mol fluxes, convert with M(Mesit.)=0,120 kg/mol --> 1.2e-4  kg/(sm)
                 values[Indices::conti0EqIdx + FluidSystem::nCompIdx] = -0.001;
diff --git a/test/porousmediumflow/3p3c/implicit/columnxylol/main.cc b/test/porousmediumflow/3p3c/implicit/columnxylol/main.cc
index 9c15316db919cbe114b5472cef72733dfca7c67e..32d93ba26f490a6a2be517da9704bfdf26630b11 100644
--- a/test/porousmediumflow/3p3c/implicit/columnxylol/main.cc
+++ b/test/porousmediumflow/3p3c/implicit/columnxylol/main.cc
@@ -107,7 +107,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/3p3c/implicit/columnxylol/problem.hh b/test/porousmediumflow/3p3c/implicit/columnxylol/problem.hh
index 16f899013b5442551dd98ffd749700902e37af1a..8cea3a60ca5add650f68b36a74f4e9943c60574c 100644
--- a/test/porousmediumflow/3p3c/implicit/columnxylol/problem.hh
+++ b/test/porousmediumflow/3p3c/implicit/columnxylol/problem.hh
@@ -95,7 +95,7 @@ public:
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Column>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = ColumnSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -160,8 +160,8 @@ class ColumnProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
 
@@ -234,7 +234,7 @@ public:
         NumEqVector values(0.0);
 
         // negative values for injection
-        if (globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_)
+        if (globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_)
         {
             values[contiWEqIdx] = -0.395710;
             values[contiGEqIdx] = -0.000001;
@@ -271,7 +271,7 @@ public:
     template<class VTKWriter>
     void addVtkFields(VTKWriter& vtk)
     {
-        const auto& gg = this->fvGridGeometry();
+        const auto& gg = this->gridGeometry();
         Kxx_.resize(gg.numDofs());
         vtk.addField(Kxx_, "permeability");
 
@@ -293,7 +293,7 @@ private:
         PrimaryVariables values;
         values.setState(threePhases);
         const auto y = globalPos[1];
-        const auto yMax = this->fvGridGeometry().bBoxMax()[1];
+        const auto yMax = this->gridGeometry().bBoxMax()[1];
 
         values[temperatureIdx] = 296.15;
         values[pressureIdx] = 1.e5;
diff --git a/test/porousmediumflow/3p3c/implicit/infiltration/main.cc b/test/porousmediumflow/3p3c/implicit/infiltration/main.cc
index 9c15316db919cbe114b5472cef72733dfca7c67e..32d93ba26f490a6a2be517da9704bfdf26630b11 100644
--- a/test/porousmediumflow/3p3c/implicit/infiltration/main.cc
+++ b/test/porousmediumflow/3p3c/implicit/infiltration/main.cc
@@ -107,7 +107,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/3p3c/implicit/infiltration/problem.hh b/test/porousmediumflow/3p3c/implicit/infiltration/problem.hh
index 08ec8d2318bad1e22924853b500b0557785220f6..35e4691d9420140c7e6645fb92c5d03084b5f49f 100644
--- a/test/porousmediumflow/3p3c/implicit/infiltration/problem.hh
+++ b/test/porousmediumflow/3p3c/implicit/infiltration/problem.hh
@@ -66,7 +66,7 @@ struct Problem<TypeTag, TTag::InfiltrationThreePThreeC> { using type = Infiltrat
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::InfiltrationThreePThreeC>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = InfiltrationThreePThreeCSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -138,7 +138,7 @@ class InfiltrationThreePThreeCProblem : public PorousMediumFlowProblem<TypeTag>
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
@@ -194,9 +194,9 @@ public:
     BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const
     {
         BoundaryTypes values;
-        if(globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
             values.setAllDirichlet();
-        else if(globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_)
+        else if(globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_)
             values.setAllDirichlet();
         else
             values.setAllNeumann();
diff --git a/test/porousmediumflow/3p3c/implicit/kuevette/main.cc b/test/porousmediumflow/3p3c/implicit/kuevette/main.cc
index 9c15316db919cbe114b5472cef72733dfca7c67e..32d93ba26f490a6a2be517da9704bfdf26630b11 100644
--- a/test/porousmediumflow/3p3c/implicit/kuevette/main.cc
+++ b/test/porousmediumflow/3p3c/implicit/kuevette/main.cc
@@ -107,7 +107,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/3p3c/implicit/kuevette/problem.hh b/test/porousmediumflow/3p3c/implicit/kuevette/problem.hh
index bc13cc5fd1b55e736c12f60c5556aca06fff217b..f73ab7dfa09b6b58cb5fe3c34822176e651b2072 100644
--- a/test/porousmediumflow/3p3c/implicit/kuevette/problem.hh
+++ b/test/porousmediumflow/3p3c/implicit/kuevette/problem.hh
@@ -72,7 +72,7 @@ struct Problem<TypeTag, TTag::Kuevette> { using type = KuevetteProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Kuevette>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = KuevetteSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -145,8 +145,8 @@ class KuevetteProblem : public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
@@ -191,7 +191,7 @@ public:
     BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const
     {
         BoundaryTypes bcTypes;
-        if(globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
             bcTypes.setAllDirichlet();
         else
             bcTypes.setAllNeumann();
@@ -272,7 +272,7 @@ public:
     template<class VTKWriter>
     void addVtkFields(VTKWriter& vtk)
     {
-        const auto& gg = this->fvGridGeometry();
+        const auto& gg = this->gridGeometry();
         Kxx_.resize(gg.numDofs());
         vtk.addField(Kxx_, "permeability");
 
diff --git a/test/porousmediumflow/3pwateroil/implicit/main.cc b/test/porousmediumflow/3pwateroil/implicit/main.cc
index dd0d2e5c1a106ca46f363238041847c21b0f271a..13fe934e550f8dc7b6508ef87e47cc48cb45c1f1 100644
--- a/test/porousmediumflow/3pwateroil/implicit/main.cc
+++ b/test/porousmediumflow/3pwateroil/implicit/main.cc
@@ -107,7 +107,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/3pwateroil/implicit/problem.hh b/test/porousmediumflow/3pwateroil/implicit/problem.hh
index 65b4d11940c8067ec1f1bed13ccef82bf9a81b2b..448a3d2ec013b263e50f182682d8f190c34ed001 100644
--- a/test/porousmediumflow/3pwateroil/implicit/problem.hh
+++ b/test/porousmediumflow/3pwateroil/implicit/problem.hh
@@ -62,7 +62,7 @@ struct Problem<TypeTag, TTag::Sagd> { using type = Dumux::SagdProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Sagd>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = SagdSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -99,7 +99,7 @@ class SagdProblem : public PorousMediumFlowProblem<TypeTag>
 {
     using ParentType = PorousMediumFlowProblem<TypeTag>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
@@ -130,7 +130,7 @@ class SagdProblem : public PorousMediumFlowProblem<TypeTag>
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GlobalPosition = typename SubControlVolumeFace::GlobalPosition;
 
diff --git a/test/porousmediumflow/co2/implicit/main.cc b/test/porousmediumflow/co2/implicit/main.cc
index 532e7717d6c184ef5254aa30ec5f85f171cd4882..cdbc9af8b5997fba9e8abcdb2d254aad8dc00807 100644
--- a/test/porousmediumflow/co2/implicit/main.cc
+++ b/test/porousmediumflow/co2/implicit/main.cc
@@ -79,7 +79,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/co2/implicit/problem.hh b/test/porousmediumflow/co2/implicit/problem.hh
index fadd08beaa316f12ce805f95128a9c5069f1c8b3..46e7a10a9cab627549615889fbb4a3f6be085bc6 100644
--- a/test/porousmediumflow/co2/implicit/problem.hh
+++ b/test/porousmediumflow/co2/implicit/problem.hh
@@ -73,7 +73,7 @@ struct Problem<TypeTag, TTag::Heterogeneous> { using type = HeterogeneousProblem
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Heterogeneous>
 {
-    using type = HeterogeneousSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = HeterogeneousSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                             GetPropType<TypeTag, Properties::Scalar>>;
 };
 
@@ -111,7 +111,7 @@ struct Problem<TypeTag, TTag::HeterogeneousNI> { using type = HeterogeneousProbl
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::HeterogeneousNI>
 {
-    using type = HeterogeneousSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = HeterogeneousSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                             GetPropType<TypeTag, Properties::Scalar>>;
 };
 
@@ -205,8 +205,8 @@ class HeterogeneousProblem : public PorousMediumFlowProblem<TypeTag>
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
@@ -216,7 +216,7 @@ class HeterogeneousProblem : public PorousMediumFlowProblem<TypeTag>
     static constexpr bool useMoles = ModelTraits::useMoles();
 
     // the discretization method we are using
-    static constexpr auto discMethod = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod;
+    static constexpr auto discMethod = GetPropType<TypeTag, Properties::GridGeometry>::discMethod;
 
     // world dimension to access gravity vector
     static constexpr int dimWorld = GridView::dimensionworld;
@@ -274,8 +274,8 @@ public:
     template<class VTKWriter>
     void addFieldsToWriter(VTKWriter& vtk)
     {
-        const auto numElements = this->fvGridGeometry().gridView().size(0);
-        const auto numDofs = this->fvGridGeometry().numDofs();
+        const auto numElements = this->gridGeometry().gridView().size(0);
+        const auto numDofs = this->gridGeometry().numDofs();
 
         vtkKxx_.resize(numElements);
         vtkPorosity_.resize(numElements);
@@ -293,11 +293,11 @@ public:
         vtk.addField(vtkTemperature_, "T");
 #endif
 
-        const auto& gridView = this->fvGridGeometry().gridView();
+        const auto& gridView = this->gridGeometry().gridView();
         for (const auto& element : elements(gridView))
         {
-            const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
-            auto fvGeometry = localView(this->fvGridGeometry());
+            const auto eIdx = this->gridGeometry().elementMapper().index(element);
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (const auto& scv : scvs(fvGeometry))
diff --git a/test/porousmediumflow/co2/implicit/spatialparams.hh b/test/porousmediumflow/co2/implicit/spatialparams.hh
index 21d0c66cba573347dc3b756f26a57c5c06622c4c..278289e22312d63f191048d74048590b2b0ae8ef 100644
--- a/test/porousmediumflow/co2/implicit/spatialparams.hh
+++ b/test/porousmediumflow/co2/implicit/spatialparams.hh
@@ -91,12 +91,12 @@ public:
      */
     void getParamsFromGrid()
     {
-        const auto& gridView = this->fvGridGeometry().gridView();
+        const auto& gridView = this->gridGeometry().gridView();
         paramIdx_.resize(gridView.size(0));
 
         for (const auto& element : elements(gridView))
         {
-            const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+            const auto eIdx = this->gridGeometry().elementMapper().index(element);
             paramIdx_[eIdx] = gridData_->parameters(element)[0];
         }
     }
@@ -117,7 +117,7 @@ public:
                                   const ElementSolution& elemSol) const
     {
         // Get the global index of the element
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
         return permeability(eIdx);
     }
 
@@ -153,7 +153,7 @@ public:
                                int compIdx) const
     {
         // Get the global index of the element
-        const auto eIdx = this->fvGridGeometry().elementMapper().index(element);
+        const auto eIdx = this->gridGeometry().elementMapper().index(element);
         return inertVolumeFraction(eIdx);
     }
 
diff --git a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/main.cc b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/main.cc
index 89aae1fc834ae0dcfe52ba2fc879c46e3ba95b6b..af5d82834f89040203d0f51e89da5e217db5a77a 100644
--- a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/main.cc
+++ b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/main.cc
@@ -111,7 +111,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/problem.hh b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/problem.hh
index 455db194445ef1c9a246b50d09d0face3c9203dc..d70f84ffbd451e5ea3f799791c19ebe7447aad67 100644
--- a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/problem.hh
+++ b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/problem.hh
@@ -73,7 +73,7 @@ struct Problem<TypeTag, TTag::MPNCComparison> { using type = MPNCComparisonProbl
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::MPNCComparison>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = MPNCComparisonSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -114,11 +114,11 @@ class MPNCComparisonProblem
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NeumannFluxes = GetPropType<TypeTag, Properties::NumEqVector>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FluidState = GetPropType<TypeTag, Properties::FluidState>;
     using ParameterCache = typename FluidSystem::ParameterCache;
 
@@ -134,7 +134,7 @@ class MPNCComparisonProblem
 
     using GlobalPosition = typename SubControlVolumeFace::GlobalPosition;
     using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
-    static constexpr bool isBox = GetPropType<TypeTag, Properties::FVGridGeometry>::discMethod == DiscretizationMethod::box;
+    static constexpr bool isBox = GetPropType<TypeTag, Properties::GridGeometry>::discMethod == DiscretizationMethod::box;
 
 public:
     MPNCComparisonProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
diff --git a/test/porousmediumflow/mpnc/implicit/kinetic/main.cc b/test/porousmediumflow/mpnc/implicit/kinetic/main.cc
index 50cccb1d44ce189e4128fcf348b9d1af8abe8a4d..104d5baa29a248eede3e60be9c6ff3ae7e3bd690 100644
--- a/test/porousmediumflow/mpnc/implicit/kinetic/main.cc
+++ b/test/porousmediumflow/mpnc/implicit/kinetic/main.cc
@@ -108,7 +108,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/mpnc/implicit/kinetic/problem.hh b/test/porousmediumflow/mpnc/implicit/kinetic/problem.hh
index 45999cc325c800650e64888843f3c8a7fef7fb74..d23391bbf4c4068ad32416e1a97af85a57b3678b 100644
--- a/test/porousmediumflow/mpnc/implicit/kinetic/problem.hh
+++ b/test/porousmediumflow/mpnc/implicit/kinetic/problem.hh
@@ -113,9 +113,9 @@ struct SolidSystem<TypeTag, TTag::EvaporationAtmosphere>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::EvaporationAtmosphere>
 {
-    using FVGridGeometry = GetPropType<TypeTag, FVGridGeometry>;
+    using GridGeometry = GetPropType<TypeTag, GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using type = EvaporationAtmosphereSpatialParams<FVGridGeometry, Scalar>;
+    using type = EvaporationAtmosphereSpatialParams<GridGeometry, Scalar>;
 };
 } // end namespace Properties
 
@@ -137,13 +137,13 @@ class EvaporationAtmosphereProblem: public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using ElementFluxVariablesCache = typename GetPropType<TypeTag, Properties::GridFluxVariablesCache>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
     using FluidState = GetPropType<TypeTag, Properties::FluidState>;
     using ParameterCache = typename FluidSystem::ParameterCache;
@@ -175,8 +175,8 @@ class EvaporationAtmosphereProblem: public PorousMediumFlowProblem<TypeTag>
     static constexpr auto leastWettingFirst = MpNcPressureFormulation::leastWettingFirst;
 
 public:
-    EvaporationAtmosphereProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
-        : ParentType(fvGridGeometry)
+    EvaporationAtmosphereProblem(std::shared_ptr<const GridGeometry> gridGeometry)
+        : ParentType(gridGeometry)
     {
         percentOfEquil_         = getParam<Scalar>("BoundaryConditions.percentOfEquil");
         nTemperature_           = getParam<Scalar>("FluidSystem.nTemperature");
@@ -488,19 +488,19 @@ private:
      * \brief Returns whether the tested position is on the left boundary of the domain.
      */
     bool onLeftBoundary_(const GlobalPosition & globalPos) const
-    {  return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_;   }
+    {  return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_;   }
 
     /*!
      * \brief Returns whether the tested position is on the right boundary of the domain.
      */
     bool onRightBoundary_(const GlobalPosition & globalPos) const
-    { return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;    }
+    { return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;    }
 
     /*!
      * \brief Returns whether the tested position is on the lower boundary of the domain.
      */
     bool onLowerBoundary_(const GlobalPosition & globalPos) const
-    { return globalPos[dimWorld-1] < this->fvGridGeometry().bBoxMin()[dimWorld-1] + eps_;    }
+    { return globalPos[dimWorld-1] < this->gridGeometry().bBoxMin()[dimWorld-1] + eps_;    }
 
 private:
     static constexpr Scalar eps_ = 1e-6;
diff --git a/test/porousmediumflow/mpnc/implicit/obstacle/main.cc b/test/porousmediumflow/mpnc/implicit/obstacle/main.cc
index 89aae1fc834ae0dcfe52ba2fc879c46e3ba95b6b..af5d82834f89040203d0f51e89da5e217db5a77a 100644
--- a/test/porousmediumflow/mpnc/implicit/obstacle/main.cc
+++ b/test/porousmediumflow/mpnc/implicit/obstacle/main.cc
@@ -111,7 +111,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/mpnc/implicit/obstacle/problem.hh b/test/porousmediumflow/mpnc/implicit/obstacle/problem.hh
index 14646f23c23d5a0d22fc07acf4da16c5f748b648..c70f1bdc7def56cc8bc507daebf825c729b001e2 100644
--- a/test/porousmediumflow/mpnc/implicit/obstacle/problem.hh
+++ b/test/porousmediumflow/mpnc/implicit/obstacle/problem.hh
@@ -76,7 +76,7 @@ struct Problem<TypeTag, TTag::Obstacle> { using type = ObstacleProblem<TypeTag>;
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::Obstacle>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = ObstacleSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -134,12 +134,12 @@ class ObstacleProblem
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FluidState = GetPropType<TypeTag, Properties::FluidState>;
     using ParameterCache = typename FluidSystem::ParameterCache;
 
diff --git a/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/combustionlocalresidual.hh b/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/combustionlocalresidual.hh
index 0747cbccb7fd18a34010e61a8103c88afb185acd..964fe935faac2f28b41537e0881f89c75b8ea7c3 100644
--- a/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/combustionlocalresidual.hh
+++ b/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/combustionlocalresidual.hh
@@ -45,7 +45,7 @@ class CombustionEnergyLocalResidual
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
diff --git a/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/main.cc b/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/main.cc
index 8c0137fde9f7fd2c4147de86efbe587f82a11729..e7e39d72200c5deceb6140d1415ea9883f90cfb4 100644
--- a/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/main.cc
+++ b/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/main.cc
@@ -108,7 +108,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/problem.hh b/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/problem.hh
index cffa3ba183d47f5e21c50f9cdcc895b925f0e224..247c52a576f2e88d3e4f2150d10f543011407411 100644
--- a/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/problem.hh
+++ b/test/porousmediumflow/mpnc/implicit/thermalnonequilibrium/problem.hh
@@ -81,9 +81,9 @@ struct Problem<TypeTag, TTag::CombustionOneComponent>
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::CombustionOneComponent>
 {
-    using FVGridGeometry = GetPropType<TypeTag, FVGridGeometry>;
+    using GridGeometry = GetPropType<TypeTag, GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using type = CombustionSpatialParams<FVGridGeometry, Scalar>;
+    using type = CombustionSpatialParams<GridGeometry, Scalar>;
 };
 
 template<class TypeTag>
@@ -181,13 +181,13 @@ class CombustionProblemOneComponent: public PorousMediumFlowProblem<TypeTag>
     using ElementVolumeVariables = typename GridVariables::GridVolumeVariables::LocalView;
     using ElementFluxVariablesCache = typename GridVariables::GridFluxVariablesCache::LocalView;
 
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FluidState = GetPropType<TypeTag, Properties::FluidState>;
     using ParameterCache = typename FluidSystem::ParameterCache;
 
@@ -215,8 +215,8 @@ class CombustionProblemOneComponent: public PorousMediumFlowProblem<TypeTag>
     static constexpr auto leastWettingFirst = MpNcPressureFormulation::leastWettingFirst;
 
 public:
-    CombustionProblemOneComponent(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
-        : ParentType(fvGridGeometry)
+    CombustionProblemOneComponent(std::shared_ptr<const GridGeometry> gridGeometry)
+        : ParentType(gridGeometry)
     {
             outputName_ = getParam<std::string>("Problem.Name");
             nRestart_ = getParam<Scalar>("Constants.nRestart");
@@ -517,13 +517,13 @@ private:
      * \brief Returns whether the tested position is on the left boundary of the domain.
      */
     bool onLeftBoundary_(const GlobalPosition & globalPos) const
-    {   return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_;}
+    {   return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_;}
 
     /*!
     * \brief Returns whether the tested position is on the right boundary of the domain.
      */
     bool onRightBoundary_(const GlobalPosition & globalPos) const
-    {   return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;}
+    {   return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;}
 
     /*!
      * \brief Returns whether the tested position is in a specific region (right) in the domain
diff --git a/test/porousmediumflow/richards/implicit/analytical/main.cc b/test/porousmediumflow/richards/implicit/analytical/main.cc
index b222a14f445f8b9505246ff71fe5476b289a19c6..13f69c103f60ae4f1d8266b8471eaa37872c00f7 100644
--- a/test/porousmediumflow/richards/implicit/analytical/main.cc
+++ b/test/porousmediumflow/richards/implicit/analytical/main.cc
@@ -105,7 +105,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/richards/implicit/analytical/problem.hh b/test/porousmediumflow/richards/implicit/analytical/problem.hh
index 00335a032db76ce6bfd2c6625f9bf08c12a29c79..03620950b6677e6592c89d42cda2a593c7b3afcd 100644
--- a/test/porousmediumflow/richards/implicit/analytical/problem.hh
+++ b/test/porousmediumflow/richards/implicit/analytical/problem.hh
@@ -79,7 +79,7 @@ struct Problem<TypeTag, TTag::RichardsAnalytical> { using type = RichardsAnalyti
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::RichardsAnalytical>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = RichardsAnalyticalSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -110,7 +110,7 @@ class RichardsAnalyticalProblem :  public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     enum {
         // copy some indices for convenience
@@ -325,9 +325,9 @@ public:
         Scalar l2analytic = 0.0;
         const Scalar time = time_;
 
-        for (const auto& element :elements(this->fvGridGeometry().gridView()))
+        for (const auto& element :elements(this->gridGeometry().gridView()))
         {
-            int eIdx = this->fvGridGeometry().elementMapper().index(element);
+            int eIdx = this->gridGeometry().elementMapper().index(element);
             // value from numerical approximation
             Scalar numericalSolution = curSol[eIdx];
 
@@ -366,7 +366,7 @@ public:
         // compute L2 error if analytical solution is available
         std::cout.precision(8);
         std::cout << "L2 error for "
-                  << std::setw(6) << this->fvGridGeometry().gridView().size(0)
+                  << std::setw(6) << this->gridGeometry().gridView().size(0)
                   << " elements: "
                   << std::scientific
                   << l2error
@@ -378,13 +378,13 @@ private:
     // evaluates if global position is at lower boundary
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_;
+        return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_;
     }
 
     // evaluates if global position is at upper boundary
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_;
+        return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_;
     }
 
     static constexpr Scalar eps_ = 3e-6;
diff --git a/test/porousmediumflow/richards/implicit/lens/main.cc b/test/porousmediumflow/richards/implicit/lens/main.cc
index 912d87789389c69bac1228d8130dab220fca5fc5..868611ddb69570348a8ff0fd71994ce9dea4ba9f 100644
--- a/test/porousmediumflow/richards/implicit/lens/main.cc
+++ b/test/porousmediumflow/richards/implicit/lens/main.cc
@@ -85,7 +85,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/richards/implicit/lens/problem.hh b/test/porousmediumflow/richards/implicit/lens/problem.hh
index 1feea08cdc8b27500edb3b1e888a9f66d081d309..3dbb14b98f6b1d015f5a1d0702ef4c18a774ece9 100644
--- a/test/porousmediumflow/richards/implicit/lens/problem.hh
+++ b/test/porousmediumflow/richards/implicit/lens/problem.hh
@@ -77,7 +77,7 @@ struct Problem<TypeTag, TTag::RichardsLens> { using type = RichardsLensProblem<T
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::RichardsLens>
 {
-    using type = RichardsLensSpatialParams<GetPropType<TypeTag, Properties::FVGridGeometry>,
+    using type = RichardsLensSpatialParams<GetPropType<TypeTag, Properties::GridGeometry>,
                                            GetPropType<TypeTag, Properties::Scalar>>;
 };
 } // end namespace Dumux
@@ -118,7 +118,7 @@ class RichardsLensProblem : public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     enum {
         // copy some indices for convenience
         pressureIdx = Indices::pressureIdx,
@@ -252,28 +252,28 @@ private:
 
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_;
+        return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_;
     }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_;
+        return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_;
     }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_;
+        return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_;
     }
 
     bool onInlet_(const GlobalPosition &globalPos) const
     {
-        Scalar width = this->fvGridGeometry().bBoxMax()[0] - this->fvGridGeometry().bBoxMin()[0];
-        Scalar lambda = (this->fvGridGeometry().bBoxMax()[0] - globalPos[0])/width;
+        Scalar width = this->gridGeometry().bBoxMax()[0] - this->gridGeometry().bBoxMin()[0];
+        Scalar lambda = (this->gridGeometry().bBoxMax()[0] - globalPos[0])/width;
         return onUpperBoundary_(globalPos) && 0.5 < lambda + eps_ && lambda < 2.0/3.0 + eps_;
     }
 
diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/conduction/main.cc b/test/porousmediumflow/richards/implicit/nonisothermal/conduction/main.cc
index c23d1d179a02aa98598168942bddbdf744f65192..15b210a10930b67e81ed2b2ae0aac4a93abb1321 100644
--- a/test/porousmediumflow/richards/implicit/nonisothermal/conduction/main.cc
+++ b/test/porousmediumflow/richards/implicit/nonisothermal/conduction/main.cc
@@ -105,7 +105,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/conduction/problem.hh b/test/porousmediumflow/richards/implicit/nonisothermal/conduction/problem.hh
index 5af51fd32bc3c05efc972989c3ffe0c0b88a36b9..bbf972c8d8f8aeebef62ea10e3bce13b24f21b3d 100644
--- a/test/porousmediumflow/richards/implicit/nonisothermal/conduction/problem.hh
+++ b/test/porousmediumflow/richards/implicit/nonisothermal/conduction/problem.hh
@@ -73,7 +73,7 @@ struct FluidSystem<TypeTag, TTag::RichardsNIConduction> { using type = FluidSyst
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::RichardsNIConduction>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = RichardsNISpatialParams<FVGridGeometry, Scalar>;
 };
@@ -108,7 +108,7 @@ class RichardsNIConductionProblem :public PorousMediumFlowProblem<TypeTag>
 
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
@@ -153,12 +153,12 @@ public:
   //! Udpate the analytical temperature
     void updateExactTemperature(const SolutionVector& curSol, Scalar time)
     {
-        const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin());
+        const auto someElement = *(elements(this->gridGeometry().gridView()).begin());
 
-        const auto someElemSol = elementSolution(someElement, curSol, this->fvGridGeometry());
+        const auto someElemSol = elementSolution(someElement, curSol, this->gridGeometry());
         const auto someInitSol = initialAtPos(someElement.geometry().center());
 
-        auto someFvGeometry = localView(this->fvGridGeometry());
+        auto someFvGeometry = localView(this->gridGeometry());
         someFvGeometry.bindElement(someElement);
         const auto someScv = *(scvs(someFvGeometry).begin());
 
@@ -174,9 +174,9 @@ public:
         const auto effectiveThermalConductivity = ThermalConductivityModel::effectiveThermalConductivity(volVars);
         using std::max;
         time = max(time, 1e-10);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
@@ -221,7 +221,7 @@ public:
     BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const
     {
         BoundaryTypes values;
-        if(globalPos[0] < eps_ || globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] < eps_ || globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
         {
             values.setAllDirichlet();
         }
diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/convection/main.cc b/test/porousmediumflow/richards/implicit/nonisothermal/convection/main.cc
index c23d1d179a02aa98598168942bddbdf744f65192..15b210a10930b67e81ed2b2ae0aac4a93abb1321 100644
--- a/test/porousmediumflow/richards/implicit/nonisothermal/convection/main.cc
+++ b/test/porousmediumflow/richards/implicit/nonisothermal/convection/main.cc
@@ -105,7 +105,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/convection/problem.hh b/test/porousmediumflow/richards/implicit/nonisothermal/convection/problem.hh
index b436e5b3a0ad74aebf5e515e1376de05463347b0..557f23e79fe845c750e6344ad1e73c38c7414c0a 100644
--- a/test/porousmediumflow/richards/implicit/nonisothermal/convection/problem.hh
+++ b/test/porousmediumflow/richards/implicit/nonisothermal/convection/problem.hh
@@ -74,7 +74,7 @@ struct FluidSystem<TypeTag, TTag::RichardsNIConvection> { using type = FluidSyst
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::RichardsNIConvection>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = RichardsNISpatialParams<FVGridGeometry, Scalar>;
 };
@@ -110,8 +110,8 @@ class RichardsNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
 
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
@@ -165,12 +165,12 @@ public:
     //! Update the analytical temperature
     void updateExactTemperature(const SolutionVector& curSol, Scalar time)
     {
-        const auto someElement = *(elements(this->fvGridGeometry().gridView()).begin());
+        const auto someElement = *(elements(this->gridGeometry().gridView()).begin());
 
-        const auto someElemSol = elementSolution(someElement, curSol, this->fvGridGeometry());
+        const auto someElemSol = elementSolution(someElement, curSol, this->gridGeometry());
         const auto someInitSol = initialAtPos(someElement.geometry().center());
 
-        auto someFvGeometry = localView(this->fvGridGeometry());
+        auto someFvGeometry = localView(this->gridGeometry());
         someFvGeometry.bindElement(someElement);
         const auto someScv = *(scvs(someFvGeometry).begin());
 
@@ -186,9 +186,9 @@ public:
         const auto effectiveThermalConductivity = ThermalConductivityModel::effectiveThermalConductivity(volVars);
         using std::max;
         time = max(time, 1e-10);
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             for (auto&& scv : scvs(fvGeometry))
@@ -234,7 +234,7 @@ public:
     BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const
     {
         BoundaryTypes values;
-        if(globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_)
+        if(globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_)
         {
             values.setAllDirichlet();
         }
diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/main.cc b/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/main.cc
index a974bc662577063a79e4156b8b51cf4a6ece7883..c272af71881a02fbd056bb38992da8f68cd2e5a3 100644
--- a/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/main.cc
+++ b/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/main.cc
@@ -79,7 +79,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/problem.hh b/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/problem.hh
index 8e8d79626150507d50609cf100a7cc4b0f5c44c4..bc9a28d6fa1cebb7b86de0b8dcd990081d5bcfa7 100644
--- a/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/problem.hh
+++ b/test/porousmediumflow/richards/implicit/nonisothermal/evaporation/problem.hh
@@ -72,7 +72,7 @@ struct FluidSystem<TypeTag, TTag::RichardsNIEvaporation> { using type = FluidSys
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::RichardsNIEvaporation>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = RichardsNISpatialParams<FVGridGeometry, Scalar>;
 };
@@ -100,7 +100,7 @@ class RichardsNIEvaporationProblem : public PorousMediumFlowProblem<TypeTag>
 
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
@@ -216,7 +216,7 @@ public:
         const auto& volVars = elemVolVars[scvf.insideScvIdx()];
         Scalar boundaryLayerThickness = 0.0016;
 
-        if(globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_)
+        if(globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_)
         {
              values[conti0EqIdx] = 1e-3;
              values[energyEqIdx] = FluidSystem::enthalpy( volVars.fluidState(), FluidSystem::gasPhaseIdx) * values[conti0EqIdx];
diff --git a/test/porousmediumflow/richardsnc/implicit/main.cc b/test/porousmediumflow/richardsnc/implicit/main.cc
index 538bd609caaf1003d6a003621431ab012911148b..495346abe623723209aba794ff7d4971f215cd5e 100644
--- a/test/porousmediumflow/richardsnc/implicit/main.cc
+++ b/test/porousmediumflow/richardsnc/implicit/main.cc
@@ -105,7 +105,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/richardsnc/implicit/problem.hh b/test/porousmediumflow/richardsnc/implicit/problem.hh
index f3a2115aa2cd7be6416957c18806a1946cabbde0..6fc6476eca61201d1e885c0929c2c6d6cf9fa3f4 100644
--- a/test/porousmediumflow/richardsnc/implicit/problem.hh
+++ b/test/porousmediumflow/richardsnc/implicit/problem.hh
@@ -69,7 +69,7 @@ struct Problem<TypeTag, TTag::RichardsWellTracer> { using type = RichardsWellTra
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::RichardsWellTracer>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = RichardsWellTracerSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -112,7 +112,7 @@ class RichardsWellTracerProblem : public PorousMediumFlowProblem<TypeTag>
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
@@ -121,7 +121,7 @@ class RichardsWellTracerProblem : public PorousMediumFlowProblem<TypeTag>
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     enum {
@@ -144,7 +144,7 @@ public:
         // for initial conditions
         const Scalar sw = 0.4; // start with 80% saturation on top
         using MaterialLaw = typename ParentType::SpatialParams::MaterialLaw;
-        pcTop_ = MaterialLaw::pc(this->spatialParams().materialLawParamsAtPos(this->fvGridGeometry().bBoxMax()), sw);
+        pcTop_ = MaterialLaw::pc(this->spatialParams().materialLawParamsAtPos(this->gridGeometry().bBoxMax()), sw);
 
         // for post time step mass balance
         accumulatedSource_ = 0.0;
@@ -159,9 +159,9 @@ public:
         Scalar tracerMass = 0.0;
 
         // bulk elements
-        for (const auto& element : elements(this->fvGridGeometry().gridView()))
+        for (const auto& element : elements(this->gridGeometry().gridView()))
         {
-            auto fvGeometry = localView(this->fvGridGeometry());
+            auto fvGeometry = localView(this->gridGeometry());
             fvGeometry.bindElement(element);
 
             auto elemVolVars = localView(gridVariables.curGridVolVars());
@@ -280,7 +280,7 @@ public:
      */
     void addPointSources(std::vector<PointSource>& pointSources) const
     {
-        auto globalPos = this->fvGridGeometry().bBoxMax()-this->fvGridGeometry().bBoxMin();
+        auto globalPos = this->gridGeometry().bBoxMax()-this->gridGeometry().bBoxMin();
         globalPos *= 0.5;
         //! Add point source in middle of domain
         pointSources.emplace_back(globalPos,
@@ -316,8 +316,8 @@ private:
     {
         const auto xTracer = [&,this]()
         {
-            const GlobalPosition contaminationPos({0.2*this->fvGridGeometry().bBoxMax()[0], 0.5*this->fvGridGeometry().bBoxMax()[1]});
-            if ((globalPos - contaminationPos).two_norm() < 0.1*(this->fvGridGeometry().bBoxMax()-this->fvGridGeometry().bBoxMin()).two_norm() + eps_)
+            const GlobalPosition contaminationPos({0.2*this->gridGeometry().bBoxMax()[0], 0.5*this->gridGeometry().bBoxMax()[1]});
+            if ((globalPos - contaminationPos).two_norm() < 0.1*(this->gridGeometry().bBoxMax()-this->gridGeometry().bBoxMin()).two_norm() + eps_)
                 return contaminantMoleFraction_;
             else
                 return 0.0;
@@ -326,29 +326,29 @@ private:
         PrimaryVariables values(0.0);
         //! Hydrostatic pressure profile
         values[pressureIdx] = (nonWettingReferencePressure() - pcTop_)
-                               - 9.81*1000*(globalPos[dimWorld-1] - this->fvGridGeometry().bBoxMax()[dimWorld-1]);
+                               - 9.81*1000*(globalPos[dimWorld-1] - this->gridGeometry().bBoxMax()[dimWorld-1]);
         values[compIdx] = xTracer;
         return values;
     }
 
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_;
+        return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_;
     }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     bool onLowerBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] < this->fvGridGeometry().bBoxMin()[1] + eps_;
+        return globalPos[1] < this->gridGeometry().bBoxMin()[1] + eps_;
     }
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - eps_;
+        return globalPos[1] > this->gridGeometry().bBoxMax()[1] - eps_;
     }
 
     static constexpr Scalar eps_ = 1.5e-7;
diff --git a/test/porousmediumflow/solidenergy/main.cc b/test/porousmediumflow/solidenergy/main.cc
index f785eb6ce1bc626305e6a137b73988996b97bb62..ac220e80ea865a00271bfe52b22955c22f381e1c 100644
--- a/test/porousmediumflow/solidenergy/main.cc
+++ b/test/porousmediumflow/solidenergy/main.cc
@@ -70,7 +70,7 @@ struct Problem<TypeTag, TTag::SolidEnergyTest> { using type = SolidEnergyProblem
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::SolidEnergyTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = SolidEnergySpatialParams<FVGridGeometry, Scalar>;
 };
@@ -107,7 +107,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/solidenergy/problem.hh b/test/porousmediumflow/solidenergy/problem.hh
index 5ca18b28c5abebf692ab3b535fe1bad778493b68..9b150b3313f2e41d2d2e63d5a15485310ab51bb4 100644
--- a/test/porousmediumflow/solidenergy/problem.hh
+++ b/test/porousmediumflow/solidenergy/problem.hh
@@ -52,7 +52,7 @@ class SolidEnergyProblem : public PorousMediumFlowProblem<TypeTag>
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVGridGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVGridGeometry::SubControlVolumeFace;
@@ -167,7 +167,7 @@ public:
     void addPointSources(std::vector<PointSource>& pointSources) const
     {
         // add point sources along a sinus
-        const auto& gg = this->fvGridGeometry();
+        const auto& gg = this->gridGeometry();
         const auto ampl = (gg.bBoxMax()[1] - gg.bBoxMin()[1])/3.0;
         const auto len = (gg.bBoxMax()[0] - gg.bBoxMin()[0]);
         const auto freq = 1.0/len;
diff --git a/test/porousmediumflow/tracer/1ptracer/main.cc b/test/porousmediumflow/tracer/1ptracer/main.cc
index 603d8d9d0fd10ecc35e0368cc5dbf318d9b19580..648d4c3166bd8bd6ca83ac5bb25146d55de615eb 100644
--- a/test/porousmediumflow/tracer/1ptracer/main.cc
+++ b/test/porousmediumflow/tracer/1ptracer/main.cc
@@ -87,7 +87,7 @@ int main(int argc, char** argv) try
     Dune::Timer timer;
 
     //! create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<OnePTypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<OnePTypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/tracer/1ptracer/problem_1p.hh b/test/porousmediumflow/tracer/1ptracer/problem_1p.hh
index 150c0b869dbf49c38143f695ce494235e7910fcb..9cffe1e24d4ef3d3febbbd196914c52d29e3bc74 100644
--- a/test/porousmediumflow/tracer/1ptracer/problem_1p.hh
+++ b/test/porousmediumflow/tracer/1ptracer/problem_1p.hh
@@ -63,7 +63,7 @@ struct Problem<TypeTag, TTag::IncompressibleTest> { using type = OnePTestProblem
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::IncompressibleTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -96,9 +96,9 @@ 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 FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
@@ -121,7 +121,7 @@ public:
         const auto globalPos = scvf.ipGlobal();
 
         Scalar eps = 1.0e-6;
-        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->fvGridGeometry().bBoxMax()[dimWorld-1] - eps)
+        if (globalPos[dimWorld-1] < eps || globalPos[dimWorld-1] > this->gridGeometry().bBoxMax()[dimWorld-1] - eps)
             values.setAllDirichlet();
         else
             values.setAllNeumann();
diff --git a/test/porousmediumflow/tracer/1ptracer/problem_tracer.hh b/test/porousmediumflow/tracer/1ptracer/problem_tracer.hh
index 929566b15182cf3cbe374a2eba16b0f4635d7129..df41db777b373f7ca204a11a8298a2bb3c1c6870 100644
--- a/test/porousmediumflow/tracer/1ptracer/problem_tracer.hh
+++ b/test/porousmediumflow/tracer/1ptracer/problem_tracer.hh
@@ -71,7 +71,7 @@ struct Problem<TypeTag, TTag::TracerTest> { using type = TracerTestProblem<TypeT
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TracerTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TracerTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -91,7 +91,7 @@ class TracerFluidSystem : public FluidSystems::Base<GetPropType<TypeTag, Propert
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
 public:
@@ -153,7 +153,7 @@ class TracerTestProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
diff --git a/test/porousmediumflow/tracer/2ptracer/main.cc b/test/porousmediumflow/tracer/2ptracer/main.cc
index 463653edc087a59933426059486480132091680c..0b5843a00a6514816b28aa4c32b2443708b3ea99 100644
--- a/test/porousmediumflow/tracer/2ptracer/main.cc
+++ b/test/porousmediumflow/tracer/2ptracer/main.cc
@@ -92,7 +92,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TwoPTypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TwoPTypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/tracer/2ptracer/problem_tracer.hh b/test/porousmediumflow/tracer/2ptracer/problem_tracer.hh
index b7beb5e2dc627ac35161121c318e3ea7c2bb3782..58c9aa10b2ef62f750046223ce9d573333b5085d 100644
--- a/test/porousmediumflow/tracer/2ptracer/problem_tracer.hh
+++ b/test/porousmediumflow/tracer/2ptracer/problem_tracer.hh
@@ -58,7 +58,7 @@ struct Problem<TypeTag, TTag::TwoPTracerTest> { using type = TwoPTracerTestProbl
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TwoPTracerTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TwoPTracerTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -78,7 +78,7 @@ class TracerFluidSystem : public FluidSystems::Base<GetPropType<TypeTag, Propert
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
 public:
@@ -138,7 +138,7 @@ class TwoPTracerTestProblem : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
@@ -229,22 +229,22 @@ private:
 
     bool onUpperBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[1] > this->fvGridGeometry().bBoxMax()[1] - 0.1 - eps_;
+        return globalPos[1] > this->gridGeometry().bBoxMax()[1] - 0.1 - eps_;
     }
 
     bool onLeftBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] < this->fvGridGeometry().bBoxMin()[0] + eps_;
+        return globalPos[0] < this->gridGeometry().bBoxMin()[0] + eps_;
     }
 
     bool onRightBoundary_(const GlobalPosition &globalPos) const
     {
-        return globalPos[0] > this->fvGridGeometry().bBoxMax()[0] - eps_;
+        return globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_;
     }
 
     bool onStripe1_(const GlobalPosition &globalPos) const
     {
-       const auto xMax = this->fvGridGeometry().bBoxMax()[0];
+       const auto xMax = this->gridGeometry().bBoxMax()[0];
        return  (
            ( (xMax /4.0 - stripeWidth_*0.5) < globalPos[0] + eps_ ) &&
            ( (xMax/4.0 + stripeWidth_*0.5) > globalPos[0] + eps_  )
@@ -253,7 +253,7 @@ private:
 
     bool onStripe2_(const GlobalPosition &globalPos) const
     {
-        const auto xMax = this->fvGridGeometry().bBoxMax()[0];
+        const auto xMax = this->gridGeometry().bBoxMax()[0];
         return  (
             ( (2.0 * xMax /4.0 - stripeWidth_*0.5) < globalPos[0] + eps_ ) &&
             ( (2.0 * xMax/4.0 + stripeWidth_*0.5) > globalPos[0] + eps_ )
@@ -262,7 +262,7 @@ private:
 
     bool onStripe3_(const GlobalPosition &globalPos) const
     {
-        const auto xMax = this->fvGridGeometry().bBoxMax()[0];
+        const auto xMax = this->gridGeometry().bBoxMax()[0];
         return  (
             ( (3.0 * xMax /4.0 - stripeWidth_*0.5) < globalPos[0] + eps_ ) &&
             ( (3.0 * xMax/4.0 + stripeWidth_*0.5) > globalPos[0] + eps_ )
diff --git a/test/porousmediumflow/tracer/2ptracer/spatialparams_tracer.hh b/test/porousmediumflow/tracer/2ptracer/spatialparams_tracer.hh
index c3737a0d96fbb48fee1dfaa82cc15206e0854580..1ec8d2e11be741331c453a0527686a342e766151 100644
--- a/test/porousmediumflow/tracer/2ptracer/spatialparams_tracer.hh
+++ b/test/porousmediumflow/tracer/2ptracer/spatialparams_tracer.hh
@@ -70,7 +70,7 @@ public:
     //! Fluid density
     Scalar fluidDensity(const Element &element,
                         const SubControlVolume& scv) const
-    { return density_[this->fvGridGeometry().elementMapper().index(element)];; }
+    { return density_[this->gridGeometry().elementMapper().index(element)];; }
 
     void setDensity(const std::vector<Scalar>& d)
     { density_ = d; }
diff --git a/test/porousmediumflow/tracer/constvel/main.cc b/test/porousmediumflow/tracer/constvel/main.cc
index acefff54cee7efc30d0f14454f522b94fcfbbca3..5933998f948abbbb5c88263e517f90a840c167f3 100644
--- a/test/porousmediumflow/tracer/constvel/main.cc
+++ b/test/porousmediumflow/tracer/constvel/main.cc
@@ -76,7 +76,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     //! create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/tracer/constvel/problem.hh b/test/porousmediumflow/tracer/constvel/problem.hh
index 8e922b72fe1eaf9f6cc29244dd18431b841d5475..41a145585ce84e4b3c38e18e6bfe3529a34b264f 100644
--- a/test/porousmediumflow/tracer/constvel/problem.hh
+++ b/test/porousmediumflow/tracer/constvel/problem.hh
@@ -79,7 +79,7 @@ struct Problem<TypeTag, TTag::TracerTest> { using type = TracerTest<TypeTag>; };
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::TracerTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = TracerTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -97,7 +97,7 @@ class TracerFluidSystem : public FluidSystems::Base<GetPropType<TypeTag, Propert
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
 public:
@@ -178,7 +178,7 @@ class TracerTest : public PorousMediumFlowProblem<TypeTag>
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using BoundaryTypes = GetPropType<TypeTag, Properties::BoundaryTypes>;
     using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
diff --git a/test/porousmediumflow/tracer/multicomp/main.cc b/test/porousmediumflow/tracer/multicomp/main.cc
index b6909cec7aeb66605b9fe14a1888dc081a47fb5d..6b9e500ab71e099bbbfb3757fd452b44d662fd1c 100644
--- a/test/porousmediumflow/tracer/multicomp/main.cc
+++ b/test/porousmediumflow/tracer/multicomp/main.cc
@@ -111,7 +111,7 @@ int main(int argc, char** argv) try
     const auto& leafGridView = gridManager.grid().leafGridView();
 
     // create the finite volume grid geometry
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
     fvGridGeometry->update();
 
diff --git a/test/porousmediumflow/tracer/multicomp/problem.hh b/test/porousmediumflow/tracer/multicomp/problem.hh
index e4d22e8bece985caabbdb7c62afd3740b626e327..b1ec9294f5f52ad98634300d3fb016f9901da8a3 100644
--- a/test/porousmediumflow/tracer/multicomp/problem.hh
+++ b/test/porousmediumflow/tracer/multicomp/problem.hh
@@ -65,7 +65,7 @@ struct Problem<TypeTag, TTag::MaxwellStefanTest> { using type = MaxwellStefanTes
 template<class TypeTag>
 struct SpatialParams<TypeTag, TTag::MaxwellStefanTest>
 {
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
     using type = MaxwellStefanTestSpatialParams<FVGridGeometry, Scalar>;
 };
@@ -88,7 +88,7 @@ class MaxwellStefanTracerFluidSystem
     using Problem = GetPropType<TypeTag, Properties::Problem>;
     using GridView = GetPropType<TypeTag, Properties::GridView>;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVElementGeometry = typename GetPropType<TypeTag, Properties::FVGridGeometry>::LocalView;
+    using FVElementGeometry = typename GetPropType<TypeTag, Properties::GridGeometry>::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
 
 public:
@@ -208,7 +208,7 @@ class MaxwellStefanTestProblem : public PorousMediumFlowProblem<TypeTag>
     using NumEqVector = GetPropType<TypeTag, Properties::NumEqVector>;
     using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>;
     using SpatialParams = GetPropType<TypeTag, Properties::SpatialParams>;
-    using FVGridGeometry = GetPropType<TypeTag, Properties::FVGridGeometry>;
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
     using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
     using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
 
@@ -260,12 +260,12 @@ public:
             Scalar j = 0.0;
             if (!(time < 0.0))
             {
-                for (const auto& element : elements(this->fvGridGeometry().gridView()))
+                for (const auto& element : elements(this->gridGeometry().gridView()))
                 {
-                    auto fvGeometry = localView(this->fvGridGeometry());
+                    auto fvGeometry = localView(this->gridGeometry());
                     fvGeometry.bindElement(element);
 
-                    const auto elemSol = elementSolution(element, curSol, this->fvGridGeometry());
+                    const auto elemSol = elementSolution(element, curSol, this->gridGeometry());
                     for (auto&& scv : scvs(fvGeometry))
                     {
                         const auto& globalPos = scv.dofPosition();