diff --git a/src/mesh/Dual1DConnectivityBuilder.cpp b/src/mesh/Dual1DConnectivityBuilder.cpp index 791837518c520fc8ca902ca7da6904e6714bf960..39dea9ddb6ee6c3c6f26660600765e1d9e779b60 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 c3b4796c0d479682f591b815b936e7d1024006ca..2b194a92baa821d6da4bac1e6277aaea6c1ddb1b 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);