]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Correct previously introduced bug.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Thu, 2 Apr 1998 16:44:28 +0000 (16:44 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Thu, 2 Apr 1998 16:44:28 +0000 (16:44 +0000)
git-svn-id: https://svn.dealii.org/trunk@126 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/source/grid/tria.cc

index 49c87f7449941be72495b66f35d3bb866a4675b1..8501106000c12e55a4e201651dc4bceb024a1f41 100644 (file)
@@ -1116,8 +1116,8 @@ typename TriaDimensionInfo<dim>::raw_line_iterator
 Triangulation<dim>::begin_raw_line (unsigned int level) const {
   Assert (level<levels.size(),
          ExcInvalidLevel(level));
-  Assert (levels[level]->lines.lines.size() != 0,
-         ExcEmptyLevel (level));
+  if (levels[level]->lines.lines.size() == 0)
+    return end_line ();
   
   return raw_line_iterator ((Triangulation<dim>*)this,
                            level,
@@ -1140,8 +1140,10 @@ typename TriaDimensionInfo<dim>::raw_quad_iterator
 Triangulation<dim>::begin_raw_quad (unsigned int level) const {
   Assert (level<levels.size(),
          ExcInvalidLevel(level));
-  Assert (levels[level]->quads.quads.size() != 0,
-         ExcEmptyLevel (level));
+  
+  if (levels[level]->quads.quads.size() == 0)
+    return end_quad();
+  
   return raw_quad_iterator ((Triangulation<dim>*)this,
                            level,
                            0);
@@ -1217,7 +1219,7 @@ template <int dim>
 typename TriaDimensionInfo<dim>::active_quad_iterator
 Triangulation<dim>::begin_active_quad (unsigned int level) const {
                                   // level is checked in begin_raw
-  quad_iterator i = begin(level);
+  quad_iterator i = begin_quad (level);
   if (i.state() != valid)
     return i;
   while (i->has_children())
@@ -1511,6 +1513,11 @@ unsigned int Triangulation<dim>::n_lines () const {
 
 template <int dim>
 unsigned int Triangulation<dim>::n_lines (const unsigned int level) const {
+  if (levels[level]->lines.lines.size() == 0)
+    return 0;
+
+                                  // only evaluate begin_/end_line if there
+                                  // are lines.
   line_iterator line = begin_line (level),
                endc = (level == levels.size()-1 ?
                        line_iterator(end_line()) :
@@ -1535,6 +1542,11 @@ unsigned int Triangulation<dim>::n_active_lines () const {
 
 template <int dim>
 unsigned int Triangulation<dim>::n_active_lines (const unsigned int level) const {
+  if (levels[level]->lines.lines.size() == 0)
+    return 0;
+
+                                  // only evaluate begin_/end_line if there
+                                  // are lines.
   active_line_iterator line = begin_active_line (level),
                       endc = (level == levels.size()-1 ?
                               active_line_iterator(end_line()) :
@@ -1566,6 +1578,11 @@ unsigned int Triangulation<1>::n_quads (const unsigned int) const {
 
 template <int dim>
 unsigned int Triangulation<dim>::n_quads (const unsigned int level) const {
+  if (levels[level]->quads.quads.size() == 0)
+    return 0;
+
+                                  // only evaluate begin_/end_quad if there
+                                  // are quads.
   quad_iterator quad = begin_quad (level),
                endc = (level == levels.size()-1 ?
                        quad_iterator(end_quad()) :
@@ -1597,6 +1614,11 @@ unsigned int Triangulation<1>::n_active_quads (const unsigned int) const {
 
 template <int dim>
 unsigned int Triangulation<dim>::n_active_quads (const unsigned int level) const {
+  if (levels[level]->quads.quads.size() == 0)
+    return 0;
+
+                                  // only evaluate begin_/end_quad if there
+                                  // are quads.
   active_quad_iterator quad = begin_active_quad (level),
                       endc = (level == levels.size()-1 ?
                               active_quad_iterator(end_quad()) :

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.