diff --git a/src/mesh/Connectivity.cpp b/src/mesh/Connectivity.cpp index c55ccd89970668f495602769dd7b17c4241a9a34..bd1e0d85b6f94d1d2d00326857853f4da75eacfe 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 797ac6cff42c5a1077686f28515793f990b6218a..dde1f930d26d31faa21d06bf2b8d94568ccb93f1 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&);