From f0b5a23a4a203a000833a9b9ba840ed757709568 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Mon, 16 Apr 2018 10:26:00 +0200
Subject: [PATCH] Added faces to 1d connectivity

---
 experimental/Connectivity1D.hpp | 44 ++++++++++++++++++++++++++++++---
 experimental/Mesh.hpp           |  5 ++++
 2 files changed, 46 insertions(+), 3 deletions(-)

diff --git a/experimental/Connectivity1D.hpp b/experimental/Connectivity1D.hpp
index ddfd4d7aa..952b7d9a2 100644
--- a/experimental/Connectivity1D.hpp
+++ b/experimental/Connectivity1D.hpp
@@ -10,13 +10,21 @@ public:
   static constexpr size_t dimension = 1;
 
 private:
-  const size_t m_number_of_cells;
-  const size_t m_number_of_nodes;
+  const size_t  m_number_of_cells;
+  const size_t& m_number_of_faces;
+  const size_t  m_number_of_nodes;
 
   Kokkos::View<unsigned int*[2]> m_cell_nodes;
+  const Kokkos::View<unsigned int*[2]>& m_cell_faces;
+
   Kokkos::View<unsigned short*> m_node_nb_cells;
+  const Kokkos::View<unsigned short*>& m_face_nb_cells;
+
   Kokkos::View<unsigned int*[2]> m_node_cells;
+  const Kokkos::View<unsigned int*[2]>& m_face_cells;
+
   Kokkos::View<unsigned short*[2]> m_node_cell_local_node;
+  const Kokkos::View<unsigned short*[2]>& m_face_cell_local_face;
 
 public:
   const size_t& numberOfNodes() const
@@ -24,6 +32,11 @@ public:
     return m_number_of_nodes;
   }
 
+  const size_t& numberOfFaces() const
+  {
+    return m_number_of_faces;
+  }
+
   const size_t& numberOfCells() const
   {
     return m_number_of_cells;
@@ -34,30 +47,55 @@ public:
     return m_cell_nodes;
   }
 
+  const Kokkos::View<const unsigned int*[2]> cellFaces() const
+  {
+    return m_cell_faces;
+  }
+
   const Kokkos::View<const unsigned short*> nodeNbCells() const
   {
     return m_node_nb_cells;
   }
 
+  const Kokkos::View<const unsigned short*> faceNbCells() const
+  {
+    return m_face_nb_cells;
+  }
+
   const Kokkos::View<const unsigned int*[2]> nodeCells() const
   {
     return m_node_cells;
   }
 
+  const Kokkos::View<const unsigned int*[2]> faceCells() const
+  {
+    return m_face_cells;
+  }
+
   const Kokkos::View<const unsigned short*[2]> nodeCellLocalNode() const
   {
     return m_node_cell_local_node;
   }
 
+  const Kokkos::View<const unsigned short*[2]> faceCellLocalFace() const
+  {
+    return m_face_cell_local_face;
+  }
+
   Connectivity1D(const Connectivity1D&) = delete;
   
   Connectivity1D(const size_t& number_of_cells)
     : m_number_of_cells (number_of_cells),
+      m_number_of_faces (m_number_of_nodes),
       m_number_of_nodes (number_of_cells+1),
       m_cell_nodes ("cell_nodes", m_number_of_cells),
+      m_cell_faces (m_cell_nodes),
       m_node_nb_cells ("node_nb_cells",m_number_of_nodes),
+      m_face_nb_cells (m_node_nb_cells),
       m_node_cells ("node_cells", m_number_of_nodes),
-      m_node_cell_local_node ("node_cell_local_node", m_number_of_nodes)
+      m_face_cells (m_node_cells),
+      m_node_cell_local_node ("node_cell_local_node", m_number_of_nodes),
+      m_face_cell_local_face (m_node_cell_local_node)
   {
     assert(number_of_cells>0);
 
diff --git a/experimental/Mesh.hpp b/experimental/Mesh.hpp
index 3914fb896..98cd0af12 100644
--- a/experimental/Mesh.hpp
+++ b/experimental/Mesh.hpp
@@ -28,6 +28,11 @@ public:
     return m_connectivity.numberOfNodes();
   }
 
+  const size_t& numberOfFaces() const
+  {
+    return m_connectivity.numberOfFaces();
+  }
+
   const size_t& numberOfCells() const
   {
     return m_connectivity.numberOfCells();
-- 
GitLab