From: Martin Kronbichler Date: Fri, 20 Oct 2017 16:28:24 +0000 (+0200) Subject: Set correct assertion. X-Git-Tag: v9.0.0-rc1~874^2~4 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03e498d187159044c0663b8acd686c20960bc2ed;p=dealii.git Set correct assertion. --- diff --git a/source/dofs/dof_handler.cc b/source/dofs/dof_handler.cc index 5013af979d..48fedcb0a2 100644 --- a/source/dofs/dof_handler.cc +++ b/source/dofs/dof_handler.cc @@ -1136,8 +1136,28 @@ DoFHandler::renumber_dofs (const unsigned int { Assert(mg_levels.size()>0 && levels.size()>0, ExcMessage("You need to distribute active and level DoFs before you can renumber level DoFs.")); - AssertIndexRange(level, levels.size()); - AssertDimension (new_numbers.size(), n_dofs(level)); + AssertIndexRange(level, get_triangulation().n_global_levels()); + AssertDimension (new_numbers.size(), locally_owned_mg_dofs(level).n_elements()); + +#ifdef DEBUG + // assert that the new indices are consecutively numbered if we are working + // on a single processor. this doesn't need to hold in the case of a + // parallel mesh since we map the interval [0...n_dofs(level)) into itself + // but only globally, not on each processor + if (n_locally_owned_dofs() == n_dofs()) + { + std::vector tmp(new_numbers); + std::sort (tmp.begin(), tmp.end()); + std::vector::const_iterator p = tmp.begin(); + types::global_dof_index i = 0; + for (; p!=tmp.end(); ++p, ++i) + Assert (*p == i, ExcNewNumbersNotConsecutive(i)); + } + else + for (types::global_dof_index i=0; irenumber_mg_dofs (level, new_numbers); }