diff --git a/src/mesh/Mesh.hpp b/src/mesh/Mesh.hpp
index cf199a9d52a048910a76503e84b0cdfb95588b49..04f018e340ad7fb9956556739c301fdc6b8911e0 100644
--- a/src/mesh/Mesh.hpp
+++ b/src/mesh/Mesh.hpp
@@ -38,7 +38,12 @@ public:
     return m_connectivity.numberOfCells();
   }
 
-  Kokkos::View<Rd*> xr() const
+  Kokkos::View<Rd*> xr()
+  {
+    return m_xr;
+  }
+
+  const Kokkos::View<const Rd*> xr() const
   {
     return m_xr;
   }
diff --git a/src/mesh/MeshData.hpp b/src/mesh/MeshData.hpp
index bed5cf97e0c7ed3a0ee60a14b6eaa35c83907d2d..36bfe2852933ff006249dd1573fed353e252206b 100644
--- a/src/mesh/MeshData.hpp
+++ b/src/mesh/MeshData.hpp
@@ -18,7 +18,7 @@ public:
   static constexpr double inv_dimension = 1./dimension;
 
 private:
-  const MeshType& m_mesh;
+  MeshType& m_mesh;
   Kokkos::View<Rd**> m_Cjr;
   Kokkos::View<Rd*>  m_xj;
   Kokkos::View<double*>   m_Vj;
@@ -80,6 +80,11 @@ private:
   }
 
 public:
+  MeshType& mesh()
+  {
+    return m_mesh;
+  }
+
   const MeshType& mesh() const
   {
     return m_mesh;
@@ -107,7 +112,7 @@ public:
     this->_updateCjr();
   }
 
-  MeshData(const MeshType& mesh)
+  MeshData(MeshType& mesh)
     : m_mesh(mesh),
       m_Cjr("Cjr", mesh.numberOfCells(), mesh.connectivity().maxNbNodePerCell()),
       m_xj("xj", mesh.numberOfCells()),