From 581f80232fba37b8c2fd2960e6851de97d632fcb Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Mon, 2 Jul 2018 19:22:22 +0200
Subject: [PATCH] Added simple boundary reading

---
 src/mesh/GmshReader.cpp | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/src/mesh/GmshReader.cpp b/src/mesh/GmshReader.cpp
index 2791afe32..c8c2e09e7 100644
--- a/src/mesh/GmshReader.cpp
+++ b/src/mesh/GmshReader.cpp
@@ -824,6 +824,29 @@ GmshReader::__proceedData()
     std::shared_ptr<Connectivity3D> p_connectivity(new Connectivity3D(cell_nb_nodes, cell_nodes));
     Connectivity3D& connectivity = *p_connectivity;
 
+    std::map<unsigned int, std::vector<unsigned int>> ref_faces_map;
+    for (unsigned int f=0; f<__triangles.extent(0); ++f) {
+      const unsigned int face_number
+          = connectivity.getFaceNumber({__triangles[f][0], __triangles[f][1], __triangles[f][2]});
+      const unsigned int& ref = __triangles_ref[f];
+      ref_faces_map[ref].push_back(face_number);
+    }
+    for (unsigned int f=0; f<__quadrangles.extent(0); ++f) {
+      const unsigned int face_number
+          = connectivity.getFaceNumber({__quadrangles[f][0], __quadrangles[f][1],
+                                        __quadrangles[f][2], __quadrangles[f][3]});
+      const unsigned int& ref = __quadrangles_ref[f];
+      ref_faces_map[ref].push_back(face_number);
+    }
+    for (const auto& ref_face_list : ref_faces_map) {
+      Kokkos::View<unsigned int*> face_list("face_list", ref_face_list.second.size());
+      for (size_t j=0; j<ref_face_list.second.size(); ++j) {
+        face_list[j]=ref_face_list.second[j];
+      }
+      const PhysicalRefId& physical_ref_id = m_physical_ref_map.at(ref_face_list.first);
+      connectivity.addRefFaceList(RefFaceList(physical_ref_id.refId(), face_list));
+    }
+
     // for (size_t j=0; j<nb_cells; ++j) {
     //   std::cout << std::setw(5) << j << ": ";
     //   for (size_t r=0; r<cell_nb_nodes[j]; ++r) {
-- 
GitLab