From: wolf Date: Wed, 24 Sep 2003 13:48:59 +0000 (+0000) Subject: Relax and clarify rules for repeated boundary objects. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db357aef6d5f6571863453aa056e0340fe42a587;p=dealii-svn.git Relax and clarify rules for repeated boundary objects. git-svn-id: https://svn.dealii.org/trunk@8013 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 726ebfeef7..bc021f8daf 100644 --- a/deal.II/deal.II/source/grid/tria.cc +++ b/deal.II/deal.II/source/grid/tria.cc @@ -1504,10 +1504,20 @@ void Triangulation<3>::create_triangulation (const std::vector > &v, // Assert that only exterior // lines are given a boundary // indicator - AssertThrow (line->boundary_indicator() == 0, + AssertThrow (line->at_boundary(), ExcInteriorLineCantBeBoundary()); - - line -> set_boundary_indicator (boundary_line->material_id); + + // and make sure that we don't + // attempt to reset the + // boundary indicator to a + // different than the + // previously set value + if (line->boundary_indicator() != 0) + AssertThrow (line->boundary_indicator() == + boundary_line->material_id, + ExcMessage ("Duplicate boundary lines are only allowed " + "if they carry the same boundary indicator.")); + line->set_boundary_indicator (boundary_line->material_id); }; @@ -1618,8 +1628,19 @@ void Triangulation<3>::create_triangulation (const std::vector > &v, // check whether this face is // really an exterior one - AssertThrow(quad->boundary_indicator()==0, + AssertThrow(quad->at_boundary(), ExcInteriorQuadCantBeBoundary()); + + // and make sure that we don't + // attempt to reset the + // boundary indicator to a + // different than the + // previously set value + if (quad->boundary_indicator() != 0) + AssertThrow (quad->boundary_indicator() == + boundary_quad->material_id, + ExcMessage ("Duplicate boundary quads are only allowed " + "if they carry the same boundary indicator.")); quad->set_boundary_indicator (boundary_quad->material_id); };