From 5e5ae0db88fc76bd058d24e21149ee49976511b4 Mon Sep 17 00:00:00 2001 From: Peter Munch Date: Fri, 12 Nov 2021 09:14:40 +0100 Subject: [PATCH] Improve assert message in DictionaryPayLoad --- .../base/mpi_compute_index_owner_internal.h | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/include/deal.II/base/mpi_compute_index_owner_internal.h b/include/deal.II/base/mpi_compute_index_owner_internal.h index 45682a7489..2a5496d9bd 100644 --- a/include/deal.II/base/mpi_compute_index_owner_internal.h +++ b/include/deal.II/base/mpi_compute_index_owner_internal.h @@ -64,7 +64,9 @@ namespace Utilities , actually_owning_ranks(actually_owning_ranks) , local_range(local_range) , actually_owning_rank_list(actually_owning_rank_list) - {} + { + Assert(local_range.first < local_range.second, ExcInternalError()); + } /** * Implementation of @@ -114,15 +116,19 @@ namespace Utilities for (types::global_dof_index i = interval.first; i < interval.second; i++) - Assert(actually_owning_ranks[i - local_range.first] == - numbers::invalid_unsigned_int, - ExcInternalError()); - Assert(interval.first >= local_range.first && - interval.first < local_range.second, - ExcInternalError()); - Assert(interval.second > local_range.first && - interval.second <= local_range.second, - ExcInternalError()); + Assert( + actually_owning_ranks[i - local_range.first] == + numbers::invalid_unsigned_int, + ExcMessage( + "Multiple processes seem to own the same global index. " + "A possible reason is that the sets of locally owned " + "indices are not distinct.")); + Assert(interval.first < interval.second, ExcInternalError()); + Assert( + local_range.first <= interval.first && + interval.second <= local_range.second, + ExcMessage( + "The specified interval is not handled by the current process.")); #endif std::fill(actually_owning_ranks.data() + interval.first - local_range.first, -- 2.39.5