From 4ae247d51e25ab75edc64521b41c1621bc793801 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Del=20Pino?= <stephane.delpino44@gmail.com>
Date: Mon, 28 Mar 2022 18:30:05 +0200
Subject: [PATCH] Displace NamedBoundaryDescriptor and
 NumberedBoundaryDescriptor

NamedBoundaryDescriptor and NumberedBoundaryDescriptor are now placed
in the mesh directory and their pugs counterpart to the MeshModule
---
 src/language/modules/MeshModule.cpp           | 23 +++++++++++++++++++
 src/language/modules/MeshModule.hpp           |  6 ++++-
 src/language/modules/SchemeModule.cpp         | 22 ------------------
 src/language/modules/SchemeModule.hpp         |  5 ----
 .../NamedBoundaryDescriptor.hpp               |  0
 .../NumberedBoundaryDescriptor.hpp            |  0
 6 files changed, 28 insertions(+), 28 deletions(-)
 rename src/{scheme => mesh}/NamedBoundaryDescriptor.hpp (100%)
 rename src/{scheme => mesh}/NumberedBoundaryDescriptor.hpp (100%)

diff --git a/src/language/modules/MeshModule.cpp b/src/language/modules/MeshModule.cpp
index 153c1be11..d93927e17 100644
--- a/src/language/modules/MeshModule.cpp
+++ b/src/language/modules/MeshModule.cpp
@@ -10,9 +10,12 @@
 #include <mesh/Connectivity.hpp>
 #include <mesh/DualMeshManager.hpp>
 #include <mesh/GmshReader.hpp>
+#include <mesh/IBoundaryDescriptor.hpp>
 #include <mesh/Mesh.hpp>
 #include <mesh/MeshRelaxer.hpp>
 #include <mesh/MeshTransformer.hpp>
+#include <mesh/NamedBoundaryDescriptor.hpp>
+#include <mesh/NumberedBoundaryDescriptor.hpp>
 #include <utils/Exceptions.hpp>
 
 #include <Kokkos_Core.hpp>
@@ -31,6 +34,26 @@ MeshModule::MeshModule()
 
                               ));
 
+  this->_addBuiltinFunction("boundaryName",
+                            std::make_shared<
+                              BuiltinFunctionEmbedder<std::shared_ptr<const IBoundaryDescriptor>(const std::string&)>>(
+
+                              [](const std::string& boundary_name) -> std::shared_ptr<const IBoundaryDescriptor> {
+                                return std::make_shared<NamedBoundaryDescriptor>(boundary_name);
+                              }
+
+                              ));
+
+  this->_addBuiltinFunction("boundaryTag",
+                            std::make_shared<
+                              BuiltinFunctionEmbedder<std::shared_ptr<const IBoundaryDescriptor>(int64_t)>>(
+
+                              [](int64_t boundary_tag) -> std::shared_ptr<const IBoundaryDescriptor> {
+                                return std::make_shared<NumberedBoundaryDescriptor>(boundary_tag);
+                              }
+
+                              ));
+
   this->_addBuiltinFunction("transform",
                             std::make_shared<BuiltinFunctionEmbedder<
                               std::shared_ptr<const IMesh>(std::shared_ptr<const IMesh>, const FunctionSymbolId&)>>(
diff --git a/src/language/modules/MeshModule.hpp b/src/language/modules/MeshModule.hpp
index 3ef6f2856..f6ab9c850 100644
--- a/src/language/modules/MeshModule.hpp
+++ b/src/language/modules/MeshModule.hpp
@@ -6,11 +6,15 @@
 #include <utils/PugsMacros.hpp>
 
 class IMesh;
-
 template <>
 inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const IMesh>> =
   ASTNodeDataType::build<ASTNodeDataType::type_id_t>("mesh");
 
+class IBoundaryDescriptor;
+template <>
+inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const IBoundaryDescriptor>> =
+  ASTNodeDataType::build<ASTNodeDataType::type_id_t>("boundary");
+
 class MeshModule : public BuiltinModule
 {
  public:
diff --git a/src/language/modules/SchemeModule.cpp b/src/language/modules/SchemeModule.cpp
index f80201c7e..ec5329bc9 100644
--- a/src/language/modules/SchemeModule.cpp
+++ b/src/language/modules/SchemeModule.cpp
@@ -33,9 +33,7 @@
 #include <scheme/IBoundaryConditionDescriptor.hpp>
 #include <scheme/IDiscreteFunction.hpp>
 #include <scheme/IDiscreteFunctionDescriptor.hpp>
-#include <scheme/NamedBoundaryDescriptor.hpp>
 #include <scheme/NeumannBoundaryConditionDescriptor.hpp>
-#include <scheme/NumberedBoundaryDescriptor.hpp>
 #include <scheme/SymmetryBoundaryConditionDescriptor.hpp>
 #include <utils/Socket.hpp>
 
@@ -191,26 +189,6 @@ SchemeModule::SchemeModule()
 
                               ));
 
-  this->_addBuiltinFunction("boundaryName",
-                            std::make_shared<
-                              BuiltinFunctionEmbedder<std::shared_ptr<const IBoundaryDescriptor>(const std::string&)>>(
-
-                              [](const std::string& boundary_name) -> std::shared_ptr<const IBoundaryDescriptor> {
-                                return std::make_shared<NamedBoundaryDescriptor>(boundary_name);
-                              }
-
-                              ));
-
-  this->_addBuiltinFunction("boundaryTag",
-                            std::make_shared<
-                              BuiltinFunctionEmbedder<std::shared_ptr<const IBoundaryDescriptor>(int64_t)>>(
-
-                              [](int64_t boundary_tag) -> std::shared_ptr<const IBoundaryDescriptor> {
-                                return std::make_shared<NumberedBoundaryDescriptor>(boundary_tag);
-                              }
-
-                              ));
-
   this
     ->_addBuiltinFunction("fixed",
                           std::make_shared<BuiltinFunctionEmbedder<std::shared_ptr<const IBoundaryConditionDescriptor>(
diff --git a/src/language/modules/SchemeModule.hpp b/src/language/modules/SchemeModule.hpp
index 52fc163ee..6c1f0324a 100644
--- a/src/language/modules/SchemeModule.hpp
+++ b/src/language/modules/SchemeModule.hpp
@@ -5,11 +5,6 @@
 #include <language/utils/ASTNodeDataTypeTraits.hpp>
 #include <utils/PugsMacros.hpp>
 
-class IBoundaryDescriptor;
-template <>
-inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const IBoundaryDescriptor>> =
-  ASTNodeDataType::build<ASTNodeDataType::type_id_t>("boundary");
-
 class IBoundaryConditionDescriptor;
 template <>
 inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const IBoundaryConditionDescriptor>> =
diff --git a/src/scheme/NamedBoundaryDescriptor.hpp b/src/mesh/NamedBoundaryDescriptor.hpp
similarity index 100%
rename from src/scheme/NamedBoundaryDescriptor.hpp
rename to src/mesh/NamedBoundaryDescriptor.hpp
diff --git a/src/scheme/NumberedBoundaryDescriptor.hpp b/src/mesh/NumberedBoundaryDescriptor.hpp
similarity index 100%
rename from src/scheme/NumberedBoundaryDescriptor.hpp
rename to src/mesh/NumberedBoundaryDescriptor.hpp
-- 
GitLab