From fa25e2630c512fb79c0a01a8b73cde9a6e259f4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Del=20Pino?= <stephane.delpino44@gmail.com> Date: Tue, 11 Jan 2022 16:55:03 +0100 Subject: [PATCH] Fix dual connectivity in 1d --- src/mesh/Dual1DConnectivityBuilder.cpp | 14 +++++--------- tests/test_Dual1DConnectivityBuilder.cpp | 3 ++- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/mesh/Dual1DConnectivityBuilder.cpp b/src/mesh/Dual1DConnectivityBuilder.cpp index 791837518..39dea9ddb 100644 --- a/src/mesh/Dual1DConnectivityBuilder.cpp +++ b/src/mesh/Dual1DConnectivityBuilder.cpp @@ -56,13 +56,7 @@ Dual1DConnectivityBuilder::_buildConnectivityDescriptor(const Connectivity<1>& p dual_descriptor.cell_number_vector[primal_node_id] = primal_node_number[primal_node_id]; } - dual_descriptor.cell_type_vector.resize(dual_number_of_cells); - - for (NodeId node_id = 0; node_id < primal_connectivity.numberOfNodes(); ++node_id) { - const size_t i_cell = node_id; - - dual_descriptor.cell_type_vector[i_cell] = CellType::Line; - } + dual_descriptor.cell_type_vector = std::vector<CellType>(dual_number_of_cells, CellType::Line); dual_descriptor.cell_to_node_vector.resize(dual_number_of_cells); @@ -81,8 +75,10 @@ Dual1DConnectivityBuilder::_buildConnectivityDescriptor(const Connectivity<1>& p dual_descriptor.cell_to_node_vector[i_dual_cell][1 - i_node_in_cell] = number_of_kept_nodes + primal_node_cell_list[0]; } else { - dual_descriptor.cell_to_node_vector[i_dual_cell][0] = number_of_kept_nodes + primal_node_cell_list[0]; - dual_descriptor.cell_to_node_vector[i_dual_cell][1] = number_of_kept_nodes + primal_node_cell_list[1]; + const auto i0 = primal_node_local_number_in_their_cells(i_node, 0); + + dual_descriptor.cell_to_node_vector[i_dual_cell][0] = number_of_kept_nodes + primal_node_cell_list[1 - i0]; + dual_descriptor.cell_to_node_vector[i_dual_cell][1] = number_of_kept_nodes + primal_node_cell_list[i0]; } } } diff --git a/tests/test_Dual1DConnectivityBuilder.cpp b/tests/test_Dual1DConnectivityBuilder.cpp index c3b4796c0..2b194a92b 100644 --- a/tests/test_Dual1DConnectivityBuilder.cpp +++ b/tests/test_Dual1DConnectivityBuilder.cpp @@ -19,8 +19,9 @@ get_item_ref_ids(const ConnectivityType& connectivity) os << ref_id_list.refId(); ItemValue<size_t, item_type> item_tag{connectivity}; item_tag.fill(0); + auto& list = ref_id_list.list(); for (size_t i_item = 0; i_item < ref_id_list.list().size(); ++i_item) { - item_tag[ref_id_list.list()[i_item]] = 1; + item_tag[list[i_item]] = 1; } ref_id_set[os.str()] = sum(item_tag); -- GitLab