diff --git a/dumux/common/intersectionmapper.hh b/dumux/common/intersectionmapper.hh
index a2067d2cae83cadf1acdb1ee58b02a70d7aab85f..6c32d6c4e071d69625014f0ae41fe9e0bc76d27c 100644
--- a/dumux/common/intersectionmapper.hh
+++ b/dumux/common/intersectionmapper.hh
@@ -41,7 +41,7 @@ template<class GridView>
 class ConformingGridIntersectionMapper
 {
     using Element = typename GridView::template Codim<0>::Entity;
-    using IndexType = unsigned int;
+    using GridIndexType = typename GridView::IndexSet::IndexType;
 
     static constexpr int codimIntersection =  1;
 public:
@@ -68,7 +68,7 @@ public:
         return element.subEntities(1);
     }
 
-    IndexType globalIntersectionIndex(const Element& element, const IndexType localFaceIdx) const
+    GridIndexType globalIntersectionIndex(const Element& element, const std::size_t localFaceIdx) const
     {
         return gridView_.indexSet().subIndex(element, localFaceIdx, codimIntersection);
     }
@@ -87,7 +87,7 @@ class NonConformingGridIntersectionMapper
 {
     using Element = typename GridView::template Codim<0>::Entity;
     using Intersection = typename GridView::Intersection;
-    using IndexType = unsigned int;
+    using GridIndexType = typename GridView::IndexSet::IndexType;
 
 public:
     NonConformingGridIntersectionMapper(const GridView& gridview)
@@ -104,7 +104,7 @@ public:
         return numIntersections_;
     }
 
-    IndexType globalIntersectionIndex(const Element& element, const IndexType localFaceIdx) const
+    GridIndexType globalIntersectionIndex(const Element& element, const std::size_t localFaceIdx) const
     {
         return (intersectionMapGlobal_[index(element)].find(localFaceIdx))->second; //use find() for const function!
     }
@@ -165,7 +165,7 @@ public:
     }
 
 private:
-    IndexType index(const Element& element) const
+    GridIndexType index(const Element& element) const
     {
         return gridView_.indexSet().index(element);
     }
diff --git a/dumux/geomechanics/poroelastic/couplingmanager.hh b/dumux/geomechanics/poroelastic/couplingmanager.hh
index 580c30231ac3b35972072f976909cd65a5b9447d..29cfddedda06aa52a246cb56317e0df03381806b 100644
--- a/dumux/geomechanics/poroelastic/couplingmanager.hh
+++ b/dumux/geomechanics/poroelastic/couplingmanager.hh
@@ -73,7 +73,7 @@ class PoroMechanicsCouplingManager : public virtual CouplingManager< MDTraits >
     template<std::size_t id> using FVGridGeometry = typename GridVariables<id>::GridGeometry;
     template<std::size_t id> using FVElementGeometry = typename FVGridGeometry<id>::LocalView;
     template<std::size_t id> using GridView = typename FVGridGeometry<id>::GridView;
-    template<std::size_t id> using IndexType = typename GridView<id>::IndexSet::IndexType;
+    template<std::size_t id> using GridIndexType = typename GridView<id>::IndexSet::IndexType;
     template<std::size_t id> using Element = typename GridView<id>::template Codim<0>::Entity;
     template<std::size_t id> using GlobalPosition = typename Element<id>::Geometry::GlobalCoordinate;
 
@@ -96,8 +96,8 @@ class PoroMechanicsCouplingManager : public virtual CouplingManager< MDTraits >
     //! Types used for coupling stencils
     template<std::size_t id>
     using CouplingIndexType = typename std::conditional< id == PMFlowId,
-                                                         IndexType<PoroMechId>,
-                                                         IndexType<PMFlowId> >::type;
+                                                         GridIndexType<PoroMechId>,
+                                                         GridIndexType<PMFlowId> >::type;
 
     /*!
      * \brief Porous medium flow domain data required for the residual calculation of an
@@ -208,7 +208,7 @@ public:
     void updateCouplingContext(Dune::index_constant<PoroMechId> poroMechDomainId,
                                const PoroMechLocalAssembler& poroMechLocalAssembler,
                                Dune::index_constant<PMFlowId> pmFlowDomainId,
-                               IndexType<PMFlowId> dofIdxGlobalJ,
+                               GridIndexType<PMFlowId> dofIdxGlobalJ,
                                const PrimaryVariables<PMFlowId>& priVarsJ,
                                unsigned int pvIdxJ)
     {
@@ -231,7 +231,7 @@ public:
     void updateCouplingContext(Dune::index_constant<PoroMechId> poroMechDomainIdI,
                                const PoroMechLocalAssembler& poroMechLocalAssembler,
                                Dune::index_constant<PoroMechId> poroMechDomainIdJ,
-                               IndexType<PoroMechId> dofIdxGlobalJ,
+                               GridIndexType<PoroMechId> dofIdxGlobalJ,
                                const PrimaryVariables<PoroMechId>& priVarsJ,
                                unsigned int pvIdxJ)
     {
@@ -252,7 +252,7 @@ public:
     void updateCouplingContext(Dune::index_constant<PMFlowId> pmFlowDomainId,
                                const PMFlowLocalAssembler& pmFlowLocalAssembler,
                                Dune::index_constant<j> domainIdJ,
-                               IndexType<j> dofIdxGlobalJ,
+                               GridIndexType<j> dofIdxGlobalJ,
                                const PrimaryVariables<j>& priVarsJ,
                                unsigned int pvIdxJ)
     {
@@ -312,7 +312,7 @@ public:
     evalCouplingResidual(Dune::index_constant<PMFlowId> pmFlowDomainId,
                          const PMFlowLocalAssembler& pmFlowLocalAssembler,
                          Dune::index_constant<PoroMechId> poroMechDomainId,
-                         IndexType<PoroMechId> dofIdxGlobalJ)
+                         GridIndexType<PoroMechId> dofIdxGlobalJ)
     {
         auto res = pmFlowLocalAssembler.localResidual().evalFluxAndSource(pmFlowLocalAssembler.element(),
                                                                           pmFlowLocalAssembler.fvGeometry(),
@@ -341,7 +341,7 @@ public:
     evalCouplingResidual(Dune::index_constant<PoroMechId> poroMechDomainId,
                          const PoroMechLocalAssembler& pmFlowLocalAssembler,
                          Dune::index_constant<PMFlowId> pmFlowDomainId,
-                         IndexType<PMFlowId> dofIdxGlobalJ)
+                         GridIndexType<PMFlowId> dofIdxGlobalJ)
     {
         return pmFlowLocalAssembler.localResidual().evalFluxAndSource(pmFlowLocalAssembler.element(),
                                                                       pmFlowLocalAssembler.fvGeometry(),
diff --git a/dumux/porousmediumflow/boxdfm/fluxvariablescache.hh b/dumux/porousmediumflow/boxdfm/fluxvariablescache.hh
index 3b49c4dffe6c016015047269408fbf8332a4e436..6e447becc467616bc0a65df67b7d1777f7aef7d6 100644
--- a/dumux/porousmediumflow/boxdfm/fluxvariablescache.hh
+++ b/dumux/porousmediumflow/boxdfm/fluxvariablescache.hh
@@ -50,9 +50,9 @@ class BoxDfmFluxVariablesCache
     using ElementVolumeVariables = typename GetPropType<TypeTag, Properties::GridVolumeVariables>::LocalView;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
-    using IndexType = typename GridView::IndexSet::IndexType;
-    using Stencil = std::vector<IndexType>;
-    using TransmissibilityVector = std::vector<IndexType>;
+    using GridIndexType = typename GridView::IndexSet::IndexType;
+    using Stencil = std::vector<GridIndexType>;
+    using TransmissibilityVector = std::vector<GridIndexType>;
 
     using CoordScalar = typename GridView::ctype;
     static const int dim = GridView::dimension;
diff --git a/dumux/porousmediumflow/boxdfm/fvelementgeometry.hh b/dumux/porousmediumflow/boxdfm/fvelementgeometry.hh
index adf03caf59a00070b9814ef92b81a8a0e05a50dd..a513c682aae78b49a8f7d66b63f2f2d0111031e0 100644
--- a/dumux/porousmediumflow/boxdfm/fvelementgeometry.hh
+++ b/dumux/porousmediumflow/boxdfm/fvelementgeometry.hh
@@ -53,7 +53,7 @@ class BoxDfmFVElementGeometry<GG, true>
     using GridView = typename GG::GridView;
     static constexpr int dim = GridView::dimension;
     static constexpr int dimWorld = GridView::dimensionworld;
-    using IndexType = typename GridView::IndexSet::IndexType;
+    using GridIndexType = typename GridView::IndexSet::IndexType;
     using Element = typename GridView::template Codim<0>::Entity;
     using CoordScalar = typename GridView::ctype;
     using FeLocalBasis = typename GG::FeCache::FiniteElementType::Traits::LocalBasisType;
@@ -74,11 +74,11 @@ public:
     : fvGridGeometryPtr_(&fvGridGeometry) {}
 
     //! Get a sub control volume with a local scv index
-    const SubControlVolume& scv(IndexType scvIdx) const
+    const SubControlVolume& scv(std::size_t scvIdx) const
     { return fvGridGeometry().scvs(eIdx_)[scvIdx]; }
 
     //! Get a sub control volume face with a local scvf index
-    const SubControlVolumeFace& scvf(IndexType scvfIdx) const
+    const SubControlVolumeFace& scvf(std::size_t scvfIdx) const
     { return fvGridGeometry().scvfs(eIdx_)[scvfIdx]; }
 
     //! iterator range for sub control volumes. Iterates over
@@ -143,7 +143,7 @@ public:
 private:
     const Element* elementPtr_;
     const FVGridGeometry* fvGridGeometryPtr_;
-    IndexType eIdx_;
+    GridIndexType eIdx_;
 };
 
 //! specialization in case the FVElementGeometries are not stored
@@ -154,7 +154,7 @@ class BoxDfmFVElementGeometry<GG, false>
     static constexpr int dim = GridView::dimension;
     static constexpr int dimWorld = GridView::dimensionworld;
 
-    using IndexType = typename GridView::IndexSet::IndexType;
+    using GridIndexType = typename GridView::IndexSet::IndexType;
     using Element = typename GridView::template Codim<0>::Entity;
 
     using CoordScalar = typename GridView::ctype;
@@ -181,11 +181,11 @@ public:
     : fvGridGeometryPtr_(&fvGridGeometry) {}
 
     //! Get a sub control volume with a local scv index
-    const SubControlVolume& scv(IndexType scvIdx) const
+    const SubControlVolume& scv(std::size_t scvIdx) const
     { return scvs_[scvIdx]; }
 
     //! Get a sub control volume face with a local scvf index
-    const SubControlVolumeFace& scvf(IndexType scvfIdx) const
+    const SubControlVolumeFace& scvf(std::size_t scvfIdx) const
     { return scvfs_[scvfIdx]; }
 
     //! iterator range for sub control volumes. Iterates over
@@ -315,7 +315,7 @@ private:
             const auto numCorners = isGeometry.corners();
             const auto idxInInside = intersection.indexInInside();
 
-            std::vector<IndexType> isVertexIndices(numCorners);
+            std::vector<GridIndexType> isVertexIndices(numCorners);
             for (unsigned int vIdxLocal = 0; vIdxLocal < numCorners; ++vIdxLocal)
                 isVertexIndices[vIdxLocal] = fvGridGeometry().vertexMapper().subIndex(element,
                                                                                       referenceElement.subEntity(idxInInside, 1, vIdxLocal, dim),
@@ -410,7 +410,7 @@ private:
 
     //! The bound element
     const Element* elementPtr_;
-    IndexType eIdx_;
+    GridIndexType eIdx_;
 
     //! The global geometry this is a restriction of
     const FVGridGeometry* fvGridGeometryPtr_;
diff --git a/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh b/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh
index 5d2184a51352e9aa2c3a4004f5f56cd2387e1a4d..c9c66bdfb231fe9aec4fc899acb19d16ec328c4b 100644
--- a/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh
+++ b/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh
@@ -92,7 +92,7 @@ class BoxDfmFVGridGeometry<Scalar, GV, true, Traits>
 {
     using ThisType = BoxDfmFVGridGeometry<Scalar, GV, true, Traits>;
     using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
-    using IndexType = typename GV::IndexSet::IndexType;
+    using GridIndexType = typename GV::IndexSet::IndexType;
 
     using Element = typename GV::template Codim<0>::Entity;
     using CoordScalar = typename GV::ctype;
@@ -234,7 +234,7 @@ public:
                 const auto numCorners = isGeometry.corners();
                 const auto idxInInside = intersection.indexInInside();
 
-                std::vector<IndexType> isVertexIndices(numCorners);
+                std::vector<GridIndexType> isVertexIndices(numCorners);
                 for (unsigned int vIdxLocal = 0; vIdxLocal < numCorners; ++vIdxLocal)
                     isVertexIndices[vIdxLocal] = this->vertexMapper().subIndex(element,
                                                                                referenceElement.subEntity(idxInInside, 1, vIdxLocal, dim),
@@ -349,9 +349,9 @@ public:
     //! The finite element cache for creating local FE bases
     const FeCache& feCache() const { return feCache_; }
     //! Get the local scvs for an element
-    const std::vector<SubControlVolume>& scvs(IndexType eIdx) const { return scvs_[eIdx]; }
+    const std::vector<SubControlVolume>& scvs(GridIndexType eIdx) const { return scvs_[eIdx]; }
     //! Get the local scvfs for an element
-    const std::vector<SubControlVolumeFace>& scvfs(IndexType eIdx) const { return scvfs_[eIdx]; }
+    const std::vector<SubControlVolumeFace>& scvfs(GridIndexType eIdx) const { return scvfs_[eIdx]; }
     //! If a vertex / d.o.f. is on the boundary
     bool dofOnBoundary(unsigned int dofIdx) const { return boundaryDofIndices_[dofIdx]; }
     //! If a vertex / d.o.f. is on a fracture
@@ -396,7 +396,7 @@ class BoxDfmFVGridGeometry<Scalar, GV, false, Traits>
 {
     using ThisType = BoxDfmFVGridGeometry<Scalar, GV, false, Traits>;
     using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
-    using IndexType = typename GV::IndexSet::IndexType;
+    using GridIndexType = typename GV::IndexSet::IndexType;
 
     static const int dim = GV::dimension;
     static const int dimWorld = GV::dimensionworld;
@@ -484,7 +484,7 @@ public:
                 const auto numCorners = isGeometry.corners();
                 const auto idxInInside = intersection.indexInInside();
 
-                std::vector<IndexType> isVertexIndices(numCorners);
+                std::vector<GridIndexType> isVertexIndices(numCorners);
                 for (unsigned int vIdxLocal = 0; vIdxLocal < numCorners; ++vIdxLocal)
                     isVertexIndices[vIdxLocal] = this->vertexMapper().subIndex(element,
                                                                                referenceElement.subEntity(idxInInside, 1, vIdxLocal, dim),
diff --git a/dumux/porousmediumflow/boxdfm/vtkoutputmodule.hh b/dumux/porousmediumflow/boxdfm/vtkoutputmodule.hh
index 87638790bb9ec46ddd516385cbc110f099efea02..0e6a8530b27ac86ba9887f5c64bbe27e6dbe7506 100644
--- a/dumux/porousmediumflow/boxdfm/vtkoutputmodule.hh
+++ b/dumux/porousmediumflow/boxdfm/vtkoutputmodule.hh
@@ -69,7 +69,7 @@ class BoxDfmVtkOutputModule : public VtkOutputModule<GridVariables, SolutionVect
         dimWorld = GridView::dimensionworld
     };
 
-    using IndexType = typename GridView::IndexSet::IndexType;
+    using GridIndexType = typename GridView::IndexSet::IndexType;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
     using ReferenceElements = typename Dune::ReferenceElements<typename GridView::ctype, dim>;
@@ -503,7 +503,7 @@ private:
         // insert fracture elements
         std::size_t fractureElementCount = 0;
         fractureElementMap_.resize(gridView.size(0));
-        std::set< std::pair<IndexType, unsigned int> > handledFacets;
+        std::set< std::pair<GridIndexType, unsigned int> > handledFacets;
         for (const auto& element : elements(gridView))
         {
             const auto eIdxGlobal = fvGridGeometry.elementMapper().index(element);
@@ -516,7 +516,7 @@ private:
                 const auto numCorners = isGeometry.corners();
                 const auto indexInInside = is.indexInInside();
 
-                std::vector<IndexType> isVertexIndices(numCorners);
+                std::vector<GridIndexType> isVertexIndices(numCorners);
                 for (unsigned int i = 0; i < numCorners; ++i)
                     isVertexIndices[i] = fvGridGeometry.vertexMapper().subIndex(element,
                                                                                 referenceElement.subEntity(indexInInside, 1, i, dim),
@@ -572,13 +572,13 @@ private:
         fractureElementMapper_ = std::make_unique<FractureMapper>(fractureGridView, Dune::mcmgElementLayout());
 
         // obtain map fracture insertion indices -> fracture grid indices
-        std::vector<IndexType> insToVertexIdx(fractureGridView.size(FractureGridView::dimension));
-        std::vector<IndexType> insToElemIdx(fractureGridView.size(0));
+        std::vector<GridIndexType> insToVertexIdx(fractureGridView.size(FractureGridView::dimension));
+        std::vector<GridIndexType> insToElemIdx(fractureGridView.size(0));
         for (const auto& v : vertices(fractureGridView)) insToVertexIdx[ gridFactory.insertionIndex(v) ] = fractureVertexMapper_->index(v);
         for (const auto& e : elements(fractureGridView)) insToElemIdx[ gridFactory.insertionIndex(e) ] = fractureElementMapper_->index(e);
 
         // update vertex index map
-        for (IndexType dofIdx = 0; dofIdx < gridView.size(GridView::dimension); ++dofIdx)
+        for (GridIndexType dofIdx = 0; dofIdx < gridView.size(GridView::dimension); ++dofIdx)
             if (fvGridGeometry.dofOnFracture(dofIdx))
                 vertexToFractureVertexIdx_[dofIdx] = insToVertexIdx[ vertexToFractureVertexIdx_[dofIdx] ];
 
@@ -601,10 +601,10 @@ private:
     std::unique_ptr< Dune::VTKSequenceWriter<FractureGridView> > fractureSequenceWriter_;
 
     // maps to a bulk grid vertex the vertex index within the fracture grid
-    std::vector<IndexType> vertexToFractureVertexIdx_;
+    std::vector<GridIndexType> vertexToFractureVertexIdx_;
 
     // maps to the local facet indices of an element the corresponding fracture element indices
-    std::vector< std::vector<std::pair<IndexType, unsigned int>> > fractureElementMap_;
+    std::vector< std::vector<std::pair<GridIndexType, unsigned int>> > fractureElementMap_;
 };
 
 } // end namespace Dumux