From 4fb04cd486c9f7bcd621630f8bfe97c5336216db Mon Sep 17 00:00:00 2001 From: hartmann Date: Tue, 5 Jul 2005 17:58:13 +0000 Subject: [PATCH] Check in create_triangulation that all cells have positive volume. git-svn-id: https://svn.dealii.org/trunk@11061 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/grid/tria.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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(); -- 2.39.5