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