From d1ef68c9411bb0d53b7598aa91b4a2e56412b742 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Wed, 10 Oct 2018 15:11:27 +0200
Subject: [PATCH] Implement construction of cell-cell connectivity by nodes

It is just a test and should be plugged and cleaned-up
---
 src/mesh/Connectivity.hpp | 39 ++++++++++++++++++++++++++++-----------
 1 file changed, 28 insertions(+), 11 deletions(-)

diff --git a/src/mesh/Connectivity.hpp b/src/mesh/Connectivity.hpp
index 7c990dc5c..8c1dfb664 100644
--- a/src/mesh/Connectivity.hpp
+++ b/src/mesh/Connectivity.hpp
@@ -550,17 +550,34 @@ class Connectivity final
   CSRGraph cellToCellGraph() const
   {
     std::vector<std::set<int>> cell_cells(this->numberOfCells());
-    const auto& face_to_cell_matrix
-        = this->faceToCellMatrix();
-
-    for (FaceId l=0; l<this->numberOfFaces(); ++l) {
-      const auto& face_to_cell = face_to_cell_matrix[l];
-      if (face_to_cell.size() == 2) {
-        const CellId cell_0 = face_to_cell[0];
-        const CellId cell_1 = face_to_cell[1];
-
-        cell_cells[cell_0].insert(cell_1);
-        cell_cells[cell_1].insert(cell_0);
+    if constexpr (true) {
+      const auto& face_to_cell_matrix
+          = this->faceToCellMatrix();
+
+      for (FaceId l=0; l<this->numberOfFaces(); ++l) {
+        const auto& face_to_cell = face_to_cell_matrix[l];
+        if (face_to_cell.size() > 1) {
+          const CellId cell_0 = face_to_cell[0];
+          const CellId cell_1 = face_to_cell[1];
+
+          cell_cells[cell_0].insert(cell_1);
+          cell_cells[cell_1].insert(cell_0);
+        }
+      }
+    } else {
+      const auto& node_to_cell_matrix
+          = this->nodeToCellMatrix();
+
+      for (NodeId l=0; l<this->numberOfNodes(); ++l) {
+        const auto& node_to_cell = node_to_cell_matrix[l];
+        for (size_t i_cell=0; i_cell<node_to_cell.size(); ++i_cell) {
+          const CellId cell_0 = node_to_cell[i_cell];
+          for (size_t j_cell=0; j_cell<i_cell; ++j_cell) {
+            const CellId cell_1 = node_to_cell[j_cell];
+            cell_cells[cell_0].insert(cell_1);
+            cell_cells[cell_1].insert(cell_0);
+          }
+        }
       }
     }
 
-- 
GitLab