From 3af305f75074218c9e540d96c4886a639d84db98 Mon Sep 17 00:00:00 2001 From: hartmann Date: Fri, 30 Jun 2006 12:55:54 +0000 Subject: [PATCH] Make sure level() is not called for lines and quads being part of faces. git-svn-id: https://svn.dealii.org/trunk@13320 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/source/dofs/dof_handler.cc | 24 ++++++++++++++----- deal.II/deal.II/source/dofs/hp_dof_handler.cc | 24 ++++++++++++++----- .../source/multigrid/mg_dof_handler.cc | 24 ++++++++++++++----- 3 files changed, 54 insertions(+), 18 deletions(-) diff --git a/deal.II/deal.II/source/dofs/dof_handler.cc b/deal.II/deal.II/source/dofs/dof_handler.cc index cee8d45d0d..9512d259ef 100644 --- a/deal.II/deal.II/source/dofs/dof_handler.cc +++ b/deal.II/deal.II/source/dofs/dof_handler.cc @@ -904,8 +904,10 @@ template typename DoFHandler::raw_line_iterator DoFHandler::begin_raw_line (const unsigned int level) const { + Assert (dim==1 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return raw_line_iterator (tria, - tria->begin_raw_line(level)->level(), + dim==1 ? tria->begin_raw_line(level)->level() : 0, tria->begin_raw_line(level)->index(), this); } @@ -915,8 +917,10 @@ template typename DoFHandler::line_iterator DoFHandler::begin_line (const unsigned int level) const { + Assert (dim==1 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return line_iterator (tria, - tria->begin_line(level)->level(), + dim==1 ? tria->begin_line(level)->level() : 0, tria->begin_line(level)->index(), this); } @@ -926,8 +930,10 @@ template typename DoFHandler::active_line_iterator DoFHandler::begin_active_line (const unsigned int level) const { + Assert (dim==1 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return active_line_iterator (tria, - tria->begin_active_line(level)->level(), + dim==1 ? tria->begin_active_line(level)->level() : 0, tria->begin_active_line(level)->index(), this); } @@ -937,8 +943,10 @@ template typename DoFHandler::raw_quad_iterator DoFHandler::begin_raw_quad (const unsigned int level) const { + Assert (dim==2 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return raw_quad_iterator (tria, - tria->begin_raw_quad(level)->level(), + dim==2 ? tria->begin_raw_quad(level)->level() : 0, tria->begin_raw_quad(level)->index(), this); } @@ -948,8 +956,10 @@ template typename DoFHandler::quad_iterator DoFHandler::begin_quad (const unsigned int level) const { + Assert (dim==2 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return quad_iterator (tria, - tria->begin_quad(level)->level(), + dim==2 ? tria->begin_quad(level)->level() : 0, tria->begin_quad(level)->index(), this); } @@ -959,8 +969,10 @@ template typename DoFHandler::active_quad_iterator DoFHandler::begin_active_quad (const unsigned int level) const { + Assert (dim==2 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return active_quad_iterator (tria, - tria->begin_active_quad(level)->level(), + dim==2 ? tria->begin_active_quad(level)->level() : 0, tria->begin_active_quad(level)->index(), this); } diff --git a/deal.II/deal.II/source/dofs/hp_dof_handler.cc b/deal.II/deal.II/source/dofs/hp_dof_handler.cc index 6aac25bf7f..07ad1952e8 100644 --- a/deal.II/deal.II/source/dofs/hp_dof_handler.cc +++ b/deal.II/deal.II/source/dofs/hp_dof_handler.cc @@ -901,8 +901,10 @@ namespace hp typename DoFHandler::raw_line_iterator DoFHandler::begin_raw_line (const unsigned int level) const { + Assert (dim==1 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return raw_line_iterator (tria, - tria->begin_raw_line(level)->level(), + dim==1 ? tria->begin_raw_line(level)->level() : 0, tria->begin_raw_line(level)->index(), this); } @@ -912,8 +914,10 @@ namespace hp typename DoFHandler::line_iterator DoFHandler::begin_line (const unsigned int level) const { + Assert (dim==1 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return line_iterator (tria, - tria->begin_line(level)->level(), + dim==1 ? tria->begin_line(level)->level() : 0, tria->begin_line(level)->index(), this); } @@ -923,8 +927,10 @@ namespace hp typename DoFHandler::active_line_iterator DoFHandler::begin_active_line (const unsigned int level) const { + Assert (dim==1 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return active_line_iterator (tria, - tria->begin_active_line(level)->level(), + dim==1 ? tria->begin_active_line(level)->level() : 0, tria->begin_active_line(level)->index(), this); } @@ -934,8 +940,10 @@ namespace hp typename DoFHandler::raw_quad_iterator DoFHandler::begin_raw_quad (const unsigned int level) const { + Assert (dim==2 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return raw_quad_iterator (tria, - tria->begin_raw_quad(level)->level(), + dim==2 ? tria->begin_raw_quad(level)->level() : 0, tria->begin_raw_quad(level)->index(), this); } @@ -945,8 +953,10 @@ namespace hp typename DoFHandler::quad_iterator DoFHandler::begin_quad (const unsigned int level) const { + Assert (dim==2 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return quad_iterator (tria, - tria->begin_quad(level)->level(), + dim==2 ? tria->begin_quad(level)->level() : 0, tria->begin_quad(level)->index(), this); } @@ -956,8 +966,10 @@ namespace hp typename DoFHandler::active_quad_iterator DoFHandler::begin_active_quad (const unsigned int level) const { + Assert (dim==2 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return active_quad_iterator (tria, - tria->begin_active_quad(level)->level(), + dim==2 ? tria->begin_active_quad(level)->level() : 0, tria->begin_active_quad(level)->index(), this); } diff --git a/deal.II/deal.II/source/multigrid/mg_dof_handler.cc b/deal.II/deal.II/source/multigrid/mg_dof_handler.cc index d538bda48e..bbd5a8b1c2 100644 --- a/deal.II/deal.II/source/multigrid/mg_dof_handler.cc +++ b/deal.II/deal.II/source/multigrid/mg_dof_handler.cc @@ -956,8 +956,10 @@ template typename MGDoFHandler::raw_line_iterator MGDoFHandler::begin_raw_line (const unsigned int level) const { + Assert (dim==1 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return raw_line_iterator (this->tria, - this->tria->begin_raw_line(level)->level(), + dim==1 ? this->tria->begin_raw_line(level)->level() : 0, this->tria->begin_raw_line(level)->index(), this); } @@ -967,8 +969,10 @@ template typename MGDoFHandler::line_iterator MGDoFHandler::begin_line (const unsigned int level) const { + Assert (dim==1 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return line_iterator (this->tria, - this->tria->begin_line(level)->level(), + dim==1 ? this->tria->begin_line(level)->level() : 0, this->tria->begin_line(level)->index(), this); } @@ -978,8 +982,10 @@ template typename MGDoFHandler::active_line_iterator MGDoFHandler::begin_active_line (const unsigned int level) const { + Assert (dim==1 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return active_line_iterator (this->tria, - this->tria->begin_active_line(level)->level(), + dim==1 ? this->tria->begin_active_line(level)->level() : 0, this->tria->begin_active_line(level)->index(), this); } @@ -989,8 +995,10 @@ template typename MGDoFHandler::raw_quad_iterator MGDoFHandler::begin_raw_quad (const unsigned int level) const { + Assert (dim==2 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return raw_quad_iterator (this->tria, - this->tria->begin_raw_quad(level)->level(), + dim==2 ? this->tria->begin_raw_quad(level)->level() : 0, this->tria->begin_raw_quad(level)->index(), this); } @@ -1000,8 +1008,10 @@ template typename MGDoFHandler::quad_iterator MGDoFHandler::begin_quad (const unsigned int level) const { + Assert (dim==2 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return quad_iterator (this->tria, - this->tria->begin_quad(level)->level(), + dim==2 ? this->tria->begin_quad(level)->level() : 0, this->tria->begin_quad(level)->index(), this); } @@ -1011,8 +1021,10 @@ template typename MGDoFHandler::active_quad_iterator MGDoFHandler::begin_active_quad (const unsigned int level) const { + Assert (dim==2 || level == 0, + typename Triangulation::ExcFacesHaveNoLevel()); return active_quad_iterator (this->tria, - this->tria->begin_active_quad(level)->level(), + dim==2 ? this->tria->begin_active_quad(level)->level() : 0, this->tria->begin_active_quad(level)->index(), this); } -- 2.39.5