From: hartmann Date: Tue, 5 Jul 2005 17:58:13 +0000 (+0000) Subject: Check in create_triangulation that all cells have positive volume. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4fb04cd486c9f7bcd621630f8bfe97c5336216db;p=dealii-svn.git Check in create_triangulation that all cells have positive volume. git-svn-id: https://svn.dealii.org/trunk@11061 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 3e39e4d301..ec9c7c22be 100644 --- a/deal.II/deal.II/source/grid/tria.cc +++ b/deal.II/deal.II/source/grid/tria.cc @@ -1183,7 +1183,13 @@ Triangulation<3>::create_triangulation (const std::vector > &v, if (quad->at_boundary()) for (unsigned int l=0; l<4; ++l) quad->line(l)->set_boundary_indicator (0); - + + // Check that all cells have + // positive volume + Triangulation::active_cell_iterator cell=tria->begin_active(), + endc=tria->end(); + for (unsigned int c=0; cell!=endc; ++cell, ++c) + AssertThrow(cell->measure()>0, ExcCellNegativeMeasure(c)); /////////////////////////////////////// // now set boundary indicators @@ -1249,7 +1255,6 @@ Triangulation<3>::create_triangulation (const std::vector > &v, line->set_boundary_indicator (boundary_line->material_id); } - // now go on with boundary faces std::vector >::const_iterator boundary_quad = subcelldata.boundary_quads.begin();