From 09c0f98e51c67202621db417489aea258dada8b3 Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Tue, 17 Oct 2023 23:45:30 +0200 Subject: [PATCH] Fix connectivity id checking --- src/mesh/Connectivity.cpp | 4 +--- src/mesh/ConnectivityDispatcher.cpp | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/mesh/Connectivity.cpp b/src/mesh/Connectivity.cpp index c55ccd899..bd1e0d85b 100644 --- a/src/mesh/Connectivity.cpp +++ b/src/mesh/Connectivity.cpp @@ -9,9 +9,7 @@ template <size_t Dimension> Connectivity<Dimension>::Connectivity() : m_id{GlobalVariableManager::instance().getAndIncrementConnectivityId()} -{ - Assert(parallel::allReduceMin(m_id) == m_id, "Parallel connectivity with different ids"); -} +{} template <size_t Dimension> void diff --git a/src/mesh/ConnectivityDispatcher.cpp b/src/mesh/ConnectivityDispatcher.cpp index 797ac6cff..dde1f930d 100644 --- a/src/mesh/ConnectivityDispatcher.cpp +++ b/src/mesh/ConnectivityDispatcher.cpp @@ -685,6 +685,13 @@ template <int Dimension> ConnectivityDispatcher<Dimension>::ConnectivityDispatcher(const ConnectivityType& connectivity) : m_connectivity(connectivity) { + { + Array connectivity_id_list = parallel::allGather(connectivity.id()); + if (min(connectivity_id_list) != max(connectivity_id_list)) { + throw UnexpectedError("connectivity ids diverged in parallel"); + } + } + this->_buildNewOwner<ItemType::cell>(); if constexpr (Dimension > 1) { this->_buildNewOwner<ItemType::face>(); @@ -745,6 +752,13 @@ ConnectivityDispatcher<Dimension>::ConnectivityDispatcher(const ConnectivityType this->_buildItemReferenceList<ItemType::node>(); m_dispatched_connectivity = ConnectivityType::build(m_new_descriptor); + + { + Array connectivity_id_list = parallel::allGather(m_dispatched_connectivity->id()); + if (min(connectivity_id_list) != max(connectivity_id_list)) { + throw UnexpectedError("connectivity ids diverged in parallel"); + } + } } template ConnectivityDispatcher<1>::ConnectivityDispatcher(const ConnectivityType&); -- GitLab