Skip to content
Snippets Groups Projects
Commit 09c0f98e authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Fix connectivity id checking

parent 59cbaaa5
No related branches found
No related tags found
1 merge request!176Add HDF5 support
...@@ -9,9 +9,7 @@ ...@@ -9,9 +9,7 @@
template <size_t Dimension> template <size_t Dimension>
Connectivity<Dimension>::Connectivity() : m_id{GlobalVariableManager::instance().getAndIncrementConnectivityId()} Connectivity<Dimension>::Connectivity() : m_id{GlobalVariableManager::instance().getAndIncrementConnectivityId()}
{ {}
Assert(parallel::allReduceMin(m_id) == m_id, "Parallel connectivity with different ids");
}
template <size_t Dimension> template <size_t Dimension>
void void
......
...@@ -685,6 +685,13 @@ template <int Dimension> ...@@ -685,6 +685,13 @@ template <int Dimension>
ConnectivityDispatcher<Dimension>::ConnectivityDispatcher(const ConnectivityType& connectivity) ConnectivityDispatcher<Dimension>::ConnectivityDispatcher(const ConnectivityType& connectivity)
: m_connectivity(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>(); this->_buildNewOwner<ItemType::cell>();
if constexpr (Dimension > 1) { if constexpr (Dimension > 1) {
this->_buildNewOwner<ItemType::face>(); this->_buildNewOwner<ItemType::face>();
...@@ -745,6 +752,13 @@ ConnectivityDispatcher<Dimension>::ConnectivityDispatcher(const ConnectivityType ...@@ -745,6 +752,13 @@ ConnectivityDispatcher<Dimension>::ConnectivityDispatcher(const ConnectivityType
this->_buildItemReferenceList<ItemType::node>(); this->_buildItemReferenceList<ItemType::node>();
m_dispatched_connectivity = ConnectivityType::build(m_new_descriptor); 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&); template ConnectivityDispatcher<1>::ConnectivityDispatcher(const ConnectivityType&);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment