From 111ad07be9b871aef4fa46690b767e40ee4338f7 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Mon, 2 Jul 2018 15:17:08 +0200
Subject: [PATCH] Few clean-up in Face subclass

---
 src/mesh/Connectivity3D.hpp | 45 +++++++++++++++++++++++++------------
 1 file changed, 31 insertions(+), 14 deletions(-)

diff --git a/src/mesh/Connectivity3D.hpp b/src/mesh/Connectivity3D.hpp
index 8abc9b7b0..0afaecbf8 100644
--- a/src/mesh/Connectivity3D.hpp
+++ b/src/mesh/Connectivity3D.hpp
@@ -53,9 +53,24 @@ private:
   size_t m_max_nb_face_per_cell;
   size_t m_max_nb_node_per_face;
 
-  struct Face
+  class Face
   {
-    bool reversed = false;
+   private:
+    std::vector<unsigned int> m_node_id_list;
+    bool m_reversed;
+
+   public:
+    KOKKOS_INLINE_FUNCTION
+    const bool& reversed() const
+    {
+      return m_reversed;
+    }
+
+    KOKKOS_INLINE_FUNCTION
+    const std::vector<unsigned int>& nodeIdList() const
+    {
+      return m_node_id_list;
+    }
 
     KOKKOS_INLINE_FUNCTION
     std::vector<unsigned int> _sort(const std::vector<unsigned int>& node_list)
@@ -68,7 +83,7 @@ private:
         for (size_t i=0; i<node_list.size(); ++i) {
           const size_t reverse_shift = node_list.size()-shift;
           rotated_node_list[(reverse_shift+node_list.size()-i)%node_list.size()] = node_list[i];
-          reversed = true;
+          m_reversed = true;
         }
       } else {
         for (size_t i=0; i<node_list.size(); ++i) {
@@ -79,8 +94,6 @@ private:
       return rotated_node_list;
     }
 
-    std::vector<unsigned int> m_node_id_list;
-
     KOKKOS_INLINE_FUNCTION
     bool operator<(const Face& f) const
     {
@@ -106,11 +119,15 @@ private:
 
     KOKKOS_INLINE_FUNCTION
     Face(const std::vector<unsigned int>& given_node_id_list)
-        : m_node_id_list(_sort(given_node_id_list))
+        : m_node_id_list(_sort(given_node_id_list)),
+          m_reversed(false)
     {
       ;
     }
 
+    KOKKOS_INLINE_FUNCTION
+    Face() = delete;
+
     KOKKOS_INLINE_FUNCTION
     ~Face() = default;
   };
@@ -136,42 +153,42 @@ private:
                    m_cell_nodes(j,1),
                    m_cell_nodes(j,2),
                    m_cell_nodes(j,3)});
-          face_cells_map[f0].push_back(std::make_tuple(j, 0, f0.reversed));
+          face_cells_map[f0].push_back(std::make_tuple(j, 0, f0.reversed()));
 
           // face 1
           Face f1({m_cell_nodes(j,4),
                    m_cell_nodes(j,7),
                    m_cell_nodes(j,6),
                    m_cell_nodes(j,5)});
-          face_cells_map[f1].push_back(std::make_tuple(j, 1, f1.reversed));
+          face_cells_map[f1].push_back(std::make_tuple(j, 1, f1.reversed()));
 
           // face 2
           Face f2({m_cell_nodes(j,0),
                    m_cell_nodes(j,3),
                    m_cell_nodes(j,7),
                    m_cell_nodes(j,4)});
-          face_cells_map[f2].push_back(std::make_tuple(j, 2, f2.reversed));
+          face_cells_map[f2].push_back(std::make_tuple(j, 2, f2.reversed()));
 
           // face 3
           Face f3({m_cell_nodes(j,1),
                    m_cell_nodes(j,5),
                    m_cell_nodes(j,6),
                    m_cell_nodes(j,2)});
-          face_cells_map[f3].push_back(std::make_tuple(j, 3, f3.reversed));
+          face_cells_map[f3].push_back(std::make_tuple(j, 3, f3.reversed()));
 
           // face 4
           Face f4({m_cell_nodes(j,0),
                    m_cell_nodes(j,4),
                    m_cell_nodes(j,5),
                    m_cell_nodes(j,1)});
-          face_cells_map[f4].push_back(std::make_tuple(j, 4, f4.reversed));
+          face_cells_map[f4].push_back(std::make_tuple(j, 4, f4.reversed()));
 
           // face 5
           Face f5({m_cell_nodes(j,3),
                    m_cell_nodes(j,2),
                    m_cell_nodes(j,6),
                    m_cell_nodes(j,7)});
-          face_cells_map[f5].push_back(std::make_tuple(j, 5, f5.reversed));
+          face_cells_map[f5].push_back(std::make_tuple(j, 5, f5.reversed()));
 
           cell_nb_faces[j] = 6;
           break;
@@ -202,8 +219,8 @@ private:
       int l=0;
       for (const auto& face_cells_vector : face_cells_map) {
         const Face& face = face_cells_vector.first;
-        for(size_t r=0; r<face.m_node_id_list.size(); ++r) {
-          face_nodes(l,r) = face.m_node_id_list[r];
+        for(size_t r=0; r<face.nodeIdList().size(); ++r) {
+          face_nodes(l,r) = face.nodeIdList()[r];
         }
         ++l;
       }
-- 
GitLab