From 71733fecac470cfd1a757a92aaae079921787142 Mon Sep 17 00:00:00 2001 From: wolf Date: Mon, 21 Jun 1999 15:12:36 +0000 Subject: [PATCH] Check in the fix for one bug, before starting to find the next one. git-svn-id: https://svn.dealii.org/trunk@1424 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/grid/tria.cc | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/deal.II/deal.II/source/grid/tria.cc b/deal.II/deal.II/source/grid/tria.cc index 0b789af5e7..984b40bedd 100644 --- a/deal.II/deal.II/source/grid/tria.cc +++ b/deal.II/deal.II/source/grid/tria.cc @@ -6362,7 +6362,7 @@ bool Triangulation::prepare_coarsening_and_refinement () { // and maybe already flag additional // cells in this loop for (cell=last_active(); cell != endc; --cell) - if (!cell->refine_flag_set() == true) + if (cell->refine_flag_set() == false) for (unsigned int vertex=0; vertex::vertices_per_cell; ++vertex) if (vertex_level[cell->vertex_index(vertex)] > @@ -6385,7 +6385,26 @@ bool Triangulation::prepare_coarsening_and_refinement () { ++v) vertex_level[cell->vertex_index(v)] = max (vertex_level[cell->vertex_index(v)], - cell->level()+1); + cell->level()+1); + + // now that we fixed this cell, + // we can safely leave this + // inner loop. however, we check + // the remaining vertices before + // leaving. note that since + // we flagged this cell, + // vertex_level might be up to + // three levels higher than this + // cell + for (unsigned int v=vertex+1; v::vertices_per_cell; + ++v) + Assert (vertex_level[cell->vertex_index(v)] + <= + cell->level()+3, + ExcInternalError()); + + // next cell + break; }; }; -- 2.39.5