From: Wolfgang Bangerth Date: Mon, 11 May 1998 16:52:32 +0000 (+0000) Subject: Fix trivial problem. X-Git-Tag: v8.0.0~22976 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5cdf0856a036c6cdaec6c34e4daa002e16df3a5a;p=dealii.git Fix trivial problem. git-svn-id: https://svn.dealii.org/trunk@278 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/source/grid/tria.cc b/deal.II/deal.II/source/grid/tria.cc index 87209e962e..0530ca8ceb 100644 --- a/deal.II/deal.II/source/grid/tria.cc +++ b/deal.II/deal.II/source/grid/tria.cc @@ -1741,7 +1741,7 @@ void Triangulation::refine (const dVector &criteria, const unsigned int n_cells = criteria.size(); for (unsigned int index=0; index threshold) + if (criteria(index) >= threshold) cell->set_refine_flag(); }; @@ -1753,15 +1753,18 @@ void Triangulation::refine_fixed_number (const dVector &criteria, // correct number of cells is // checked in #refine# Assert ((fraction>0) && (fraction<=1), ExcInvalidParameterValue()); + + // refine at least one cell + const refine_cells = max(static_cast(fraction*criteria.size()), + 1); - dVector tmp(criteria); + dVector tmp(criteria); nth_element (tmp.begin(), - tmp.begin()+static_cast(fraction*tmp.size()), + tmp.begin()+refine_cells, tmp.end(), greater()); - refine (criteria, *(tmp.begin() + - static_cast(fraction*tmp.size()))); + refine (criteria, *(tmp.begin() + refine_cells)); };