diff --git a/dune/gfe/cosseratvtkwriter.hh b/dune/gfe/cosseratvtkwriter.hh
index 1ccc013a350ed54bfa8685f342a1e22e2b6fbd96..3016ff6716c5f66575212096b406027a31b7b1ce 100644
--- a/dune/gfe/cosseratvtkwriter.hh
+++ b/dune/gfe/cosseratvtkwriter.hh
@@ -119,7 +119,7 @@ public:
     {
       using namespace Dune::TypeTree::Indices;
       std::vector<RigidBodyMotion<double,3>> xRBM(basis.size());
-      for (int i = 0; i < basis.size(); i++) {
+      for (std::size_t i = 0; i < basis.size(); i++) {
         for (int j = 0; j < 3; j ++) // Displacement part
           xRBM[i].r[j] = configuration[_0][i][j];
         xRBM[i].q = configuration[_1][i];    // Rotation part
diff --git a/dune/gfe/parallel/globalp2mapper.hh b/dune/gfe/parallel/globalp2mapper.hh
index 3917e2cd9428155fa46e16ed42ba78cd3e37933a..fad3181dff54f94140cac556932d81a16dec27cc 100644
--- a/dune/gfe/parallel/globalp2mapper.hh
+++ b/dune/gfe/parallel/globalp2mapper.hh
@@ -5,10 +5,6 @@
 
 #include <dune/gfe/parallel/globalmapper.hh>
 
-#include <dune/gfe/parallel/globalmapper.hh>
-
-#include <dune/gfe/parallel/globalmapper.hh>
-
 namespace Dune {
 
   template <class Basis>
diff --git a/dune/gfe/riemannianpnsolver.cc b/dune/gfe/riemannianpnsolver.cc
index 68841b254f2737d91b4042e74be7cf3ac46d1bfd..932f1d65b1a89ad7e2bc01e3bc161d9b0641b483 100644
--- a/dune/gfe/riemannianpnsolver.cc
+++ b/dune/gfe/riemannianpnsolver.cc
@@ -38,8 +38,6 @@ setup(const GridType& grid,
       double initialRegularization,
       bool instrumented)
 {
-    int rank = grid.comm().rank();
-
     grid_                     = &grid;
     assembler_                = assembler;
     x_                        = x;
@@ -255,7 +253,7 @@ void RiemannianProximalNewtonSolver<Basis,TargetSpace,Assembler>::solve()
         if (rank==0)
         {
             // Add the regularization - Identity Matrix for now
-            for(int i=0; i<stiffnessMatrix.N(); i++)
+            for (std::size_t i=0; i<stiffnessMatrix.N(); i++)
               for(int j=0; j<blocksize; j++)
                 stiffnessMatrix[i][i][j][j] += regularization;
 
diff --git a/dune/gfe/surfacecosseratstressassembler.hh b/dune/gfe/surfacecosseratstressassembler.hh
index 61e9b4434ef854702542ee55a448c325bb26337d..1c9b6e9bb216404b188527ec93bf886d34bca110 100644
--- a/dune/gfe/surfacecosseratstressassembler.hh
+++ b/dune/gfe/surfacecosseratstressassembler.hh
@@ -77,7 +77,7 @@ namespace Dune::GFE {
 
           // Extract values at this element
           std::vector<double> localConfiguration(nDofsOrderD);
-          for (int i=0; i<nDofsOrderD; i++)
+          for (size_t i=0; i<nDofsOrderD; i++)
             localConfiguration[i] = xFlat[localViewOrderD.index(i)]; //localViewOrderD.index(i) is a multi-index
 
           //Store the reference gradient and the gradients for this element
@@ -216,7 +216,7 @@ namespace Dune::GFE {
             // Extract local configuration at this element
             std::vector<double> localConfiguration(nDofsOrderD);
             std::vector<double> localConfigurationInitial(nDofsOrderD);
-            for (int i=0; i<nDofsOrderD; i++) {
+            for (size_t i=0; i<nDofsOrderD; i++) {
               localConfiguration[i] = xFlat[localViewOrderD.index(i)];
               localConfigurationInitial[i] = xInitialFlat[localViewOrderD.index(i)];
             }
@@ -231,7 +231,7 @@ namespace Dune::GFE {
             localViewOrderR.bind(element);
             const auto& lFEOrderR = localViewOrderR.tree().child(0).finiteElement();
             VectorR localConfigurationRot(lFEOrderR.size());
-            for (int i=0; i<localConfigurationRot.size(); i++)
+            for (std::size_t i=0; i<localConfigurationRot.size(); i++)
               localConfigurationRot[i] = rot[localViewOrderR.index(i)[0]];//localViewOrderR.index(i) is a multiindex, its first entry is the actual index
             typedef LocalGeodesicFEFunction<dim, double, decltype(lFEOrderR), TargetSpaceR> LocalGFEFunctionType;
             LocalGFEFunctionType localGeodesicFEFunction(lFEOrderR,localConfigurationRot);
diff --git a/src/compute-disc-error.cc b/src/compute-disc-error.cc
index b320954964b5da277f85105775714f4908743643..6f5be98e837a01cc3e7e135bddad38405dc44061 100644
--- a/src/compute-disc-error.cc
+++ b/src/compute-disc-error.cc
@@ -107,8 +107,8 @@ auto findSupportingElement(const GridType& sourceGrid,
   //   Find the corresponding coarse grid element on the adaptive grid.
   //   This is a linear algorithm, but we expect the coarse grid to be small.
   //////////////////////////////////////////////////////////////////////
-  LevelMultipleCodimMultipleGeomTypeMapper<GridType> sourceP0Mapper (sourceGrid, 0, mcmgElementLayout());
-  LevelMultipleCodimMultipleGeomTypeMapper<GridType> targetP0Mapper(targetGrid, 0, mcmgElementLayout());
+  MultipleCodimMultipleGeomTypeMapper<typename GridType::LevelGridView> sourceP0Mapper (sourceGrid.levelGridView(0), mcmgElementLayout());
+  MultipleCodimMultipleGeomTypeMapper<typename GridType::LevelGridView> targetP0Mapper(targetGrid.levelGridView(0), mcmgElementLayout());
   const auto coarseIndex = sourceP0Mapper.index(element);
 
   auto targetLevelView = targetGrid.levelGridView(0);
diff --git a/src/film-on-substrate-stress-plot.cc b/src/film-on-substrate-stress-plot.cc
index a5a7c37add55d933f4a10eaf903be108e2fb27a7..fce87fe3ba5084882fedce20ed00468ff4fd7e98 100644
--- a/src/film-on-substrate-stress-plot.cc
+++ b/src/film-on-substrate-stress-plot.cc
@@ -51,7 +51,7 @@ using ValueType = adouble;
 
 int main (int argc, char *argv[]) try
 {
-  MPIHelper& mpiHelper = MPIHelper::instance(argc, argv);
+  MPIHelper::instance(argc, argv);
 
   // Start Python interpreter
   Python::start();
@@ -196,7 +196,7 @@ int main (int argc, char *argv[]) try
   Functions::interpolate(basisOrderD, x, [](FieldVector<double,dim> x){ return x; });
   Functions::interpolate(basisOrderD, xInitial, [](FieldVector<double,dim> x){ return x; });
 
-  for (int i = 0; i < basisOrderD.size(); i++) {
+  for (std::size_t i = 0; i < basisOrderD.size(); i++) {
     std::stringstream stream;
     stream << x[i];
     //Look up the displacement for this vertex in the deformationMap
@@ -223,7 +223,7 @@ int main (int argc, char *argv[]) try
   rot_director[1].resize(basisOrderR.size());
   rot_director[2].resize(basisOrderR.size());
 
-  for (int i = 0; i < basisOrderR.size(); i++) {
+  for (std::size_t i = 0; i < basisOrderR.size(); i++) {
     std::stringstream stream;
     stream << xOrderR[i];
     Rotation<double,dim> rotation(rotationMap.at(stream.str()));