diff --git a/src/language/modules/MeshModule.cpp b/src/language/modules/MeshModule.cpp
index d06d378dd8eb5a79a80f41497cb592407db37849..fe0e438a80009cf18c15b3f2793361c931d12d68 100644
--- a/src/language/modules/MeshModule.cpp
+++ b/src/language/modules/MeshModule.cpp
@@ -11,7 +11,7 @@
 #include <mesh/DiamondDualMeshManager.hpp>
 #include <mesh/GmshReader.hpp>
 #include <mesh/Mesh.hpp>
-#include <mesh/MeshInterpoler.hpp>
+#include <mesh/MeshRelaxer.hpp>
 #include <mesh/MeshTransformer.hpp>
 #include <utils/Exceptions.hpp>
 
@@ -42,7 +42,7 @@ MeshModule::MeshModule()
 
                               ));
 
-  this->_addBuiltinFunction("interpolate",
+  this->_addBuiltinFunction("relax",
                             std::make_shared<BuiltinFunctionEmbedder<
                               std::shared_ptr<const IMesh>(const std::shared_ptr<const IMesh>&,
                                                            const std::shared_ptr<const IMesh>&, const double&)>>(
@@ -50,7 +50,7 @@ MeshModule::MeshModule()
                               [](const std::shared_ptr<const IMesh>& source_mesh,
                                  const std::shared_ptr<const IMesh>& destination_mesh,
                                  const double& theta) -> std::shared_ptr<const IMesh> {
-                                return MeshInterpoler{}.interpolate(source_mesh, destination_mesh, theta);
+                                return MeshRelaxer{}.relax(source_mesh, destination_mesh, theta);
                               }
 
                               ));
diff --git a/src/mesh/CMakeLists.txt b/src/mesh/CMakeLists.txt
index f536bae7afe8b6d1bc979e4abd9feccaf7c86a7d..309e3323a435571b14d0e0d0f631675558c6314b 100644
--- a/src/mesh/CMakeLists.txt
+++ b/src/mesh/CMakeLists.txt
@@ -20,7 +20,7 @@ add_library(
   MeshFaceBoundary.cpp
   MeshFlatFaceBoundary.cpp
   MeshFlatNodeBoundary.cpp
-  MeshInterpoler.cpp
+  MeshRelaxer.cpp
   MeshLineNodeBoundary.cpp
   MeshNodeBoundary.cpp
   MeshRandomizer.cpp
diff --git a/src/mesh/MeshInterpoler.hpp b/src/mesh/MeshInterpoler.hpp
deleted file mode 100644
index f8a79eea4918bf71b6b7586683a14f2a67194df9..0000000000000000000000000000000000000000
--- a/src/mesh/MeshInterpoler.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef MESH_INTERPOLER_HPP
-#define MESH_INTERPOLER_HPP
-
-class IMesh;
-
-template <typename ConnectivityType>
-class Mesh;
-
-#include <memory>
-
-class MeshInterpoler
-{
- private:
-  template <typename ConnectivityType>
-  std::shared_ptr<const Mesh<ConnectivityType>> _interpolate(const Mesh<ConnectivityType>& source_mesh,
-                                                             const Mesh<ConnectivityType>& destination_mesh,
-                                                             const double& theta) const;
-
- public:
-  std::shared_ptr<const IMesh> interpolate(const std::shared_ptr<const IMesh>& p_source_mesh,
-                                           const std::shared_ptr<const IMesh>& p_destination_mesh,
-                                           const double& theta) const;
-  MeshInterpoler()  = default;
-  ~MeshInterpoler() = default;
-};
-
-#endif   // MESH_INTERPOLER_HPP
diff --git a/src/mesh/MeshInterpoler.cpp b/src/mesh/MeshRelaxer.cpp
similarity index 57%
rename from src/mesh/MeshInterpoler.cpp
rename to src/mesh/MeshRelaxer.cpp
index 26cba4bff5eeca4b75690b47e30126bac070646b..bda3cc7d17680bf8e2b43596d2e9ad2c7d9759ed 100644
--- a/src/mesh/MeshInterpoler.cpp
+++ b/src/mesh/MeshRelaxer.cpp
@@ -1,13 +1,13 @@
-#include <mesh/MeshInterpoler.hpp>
+#include <mesh/MeshRelaxer.hpp>
 
 #include <mesh/Connectivity.hpp>
 #include <mesh/Mesh.hpp>
 
 template <typename ConnectivityType>
 std::shared_ptr<const Mesh<ConnectivityType>>
-MeshInterpoler::_interpolate(const Mesh<ConnectivityType>& source_mesh,
-                             const Mesh<ConnectivityType>& destination_mesh,
-                             const double& theta) const
+MeshRelaxer::_relax(const Mesh<ConnectivityType>& source_mesh,
+                    const Mesh<ConnectivityType>& destination_mesh,
+                    const double& theta) const
 {
   if (source_mesh.shared_connectivity() == destination_mesh.shared_connectivity()) {
     const ConnectivityType& connectivity = source_mesh.connectivity();
@@ -23,14 +23,14 @@ MeshInterpoler::_interpolate(const Mesh<ConnectivityType>& source_mesh,
 
     return std::make_shared<Mesh<ConnectivityType>>(source_mesh.shared_connectivity(), theta_xr);
   } else {
-    throw NormalError("interpolated meshes must share the same connectivity");
+    throw NormalError("relaxed meshes must share the same connectivity");
   }
 }
 
 std::shared_ptr<const IMesh>
-MeshInterpoler::interpolate(const std::shared_ptr<const IMesh>& p_source_mesh,
-                            const std::shared_ptr<const IMesh>& p_destination_mesh,
-                            const double& theta) const
+MeshRelaxer::relax(const std::shared_ptr<const IMesh>& p_source_mesh,
+                   const std::shared_ptr<const IMesh>& p_destination_mesh,
+                   const double& theta) const
 {
   if (p_source_mesh->dimension() != p_destination_mesh->dimension()) {
     throw NormalError("incompatible mesh dimensions");
@@ -38,18 +38,18 @@ MeshInterpoler::interpolate(const std::shared_ptr<const IMesh>& p_source_mesh,
     switch (p_source_mesh->dimension()) {
     case 1: {
       using MeshType = Mesh<Connectivity<1>>;
-      return this->_interpolate(dynamic_cast<const MeshType&>(*p_source_mesh),
-                                dynamic_cast<const MeshType&>(*p_destination_mesh), theta);
+      return this->_relax(dynamic_cast<const MeshType&>(*p_source_mesh),
+                          dynamic_cast<const MeshType&>(*p_destination_mesh), theta);
     }
     case 2: {
       using MeshType = Mesh<Connectivity<2>>;
-      return this->_interpolate(dynamic_cast<const MeshType&>(*p_source_mesh),
-                                dynamic_cast<const MeshType&>(*p_destination_mesh), theta);
+      return this->_relax(dynamic_cast<const MeshType&>(*p_source_mesh),
+                          dynamic_cast<const MeshType&>(*p_destination_mesh), theta);
     }
     case 3: {
       using MeshType = Mesh<Connectivity<3>>;
-      return this->_interpolate(dynamic_cast<const MeshType&>(*p_source_mesh),
-                                dynamic_cast<const MeshType&>(*p_destination_mesh), theta);
+      return this->_relax(dynamic_cast<const MeshType&>(*p_source_mesh),
+                          dynamic_cast<const MeshType&>(*p_destination_mesh), theta);
     }
     default: {
       throw UnexpectedError("invalid mesh dimension");
diff --git a/src/mesh/MeshRelaxer.hpp b/src/mesh/MeshRelaxer.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..96846cbadfefe61902199e927c99ecf96aaf176a
--- /dev/null
+++ b/src/mesh/MeshRelaxer.hpp
@@ -0,0 +1,27 @@
+#ifndef MESH_RELAXER_HPP
+#define MESH_RELAXER_HPP
+
+class IMesh;
+
+template <typename ConnectivityType>
+class Mesh;
+
+#include <memory>
+
+class MeshRelaxer
+{
+ private:
+  template <typename ConnectivityType>
+  std::shared_ptr<const Mesh<ConnectivityType>> _relax(const Mesh<ConnectivityType>& source_mesh,
+                                                       const Mesh<ConnectivityType>& destination_mesh,
+                                                       const double& theta) const;
+
+ public:
+  std::shared_ptr<const IMesh> relax(const std::shared_ptr<const IMesh>& p_source_mesh,
+                                     const std::shared_ptr<const IMesh>& p_destination_mesh,
+                                     const double& theta) const;
+  MeshRelaxer()  = default;
+  ~MeshRelaxer() = default;
+};
+
+#endif   // MESH_RELAXER_HPP