From: Markus Buerg Date: Tue, 22 Feb 2011 15:20:21 +0000 (+0000) Subject: Exclude FESystem from checks. X-Git-Tag: v8.0.0~4286 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=91bb44f9cca3b0bb5fb89da1490d09f9a2001a59;p=dealii.git Exclude FESystem from checks. git-svn-id: https://svn.dealii.org/trunk@23416 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/include/deal.II/numerics/vectors.templates.h b/deal.II/include/deal.II/numerics/vectors.templates.h index 5ba6cd452f..bf3e78eb84 100644 --- a/deal.II/include/deal.II/numerics/vectors.templates.h +++ b/deal.II/include/deal.II/numerics/vectors.templates.h @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -3404,13 +3405,19 @@ project_boundary_values_curl_conforming (const hp::DoFHandler& dof_handler, for (unsigned int face = 0; face < GeometryInfo::faces_per_cell; ++face) if (cell->face (face)->boundary_indicator () == boundary_component) { - // this is only + // This is only // implemented, if the // FE is a Nedelec - // element - typedef FiniteElement FEL; - AssertThrow (dynamic_cast *> (&cell->get_fe ()) != 0, - typename FEL::ExcInterpolationNotImplemented ()); + // element. If the FE is + // a FESystem we cannot + // check this. + if (dynamic_cast*> (&cell->get_fe ()) == 0) + { + typedef FiniteElement FEL; + + AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, + typename FEL::ExcInterpolationNotImplemented ()); + } const unsigned int dofs_per_face = cell->get_fe ().dofs_per_face; @@ -3476,13 +3483,19 @@ project_boundary_values_curl_conforming (const hp::DoFHandler& dof_handler, for (unsigned int face = 0; face < GeometryInfo::faces_per_cell; ++face) if (cell->face (face)->boundary_indicator () == boundary_component) { - // this is only + // This is only // implemented, if the // FE is a Nedelec - // element - typedef FiniteElement FEL; - AssertThrow (dynamic_cast *> (&cell->get_fe ()) != 0, - typename FEL::ExcInterpolationNotImplemented ()); + // element. If the FE is + // a FESystem we cannot + // check this. + if (dynamic_cast*> (&cell->get_fe ()) == 0) + { + typedef FiniteElement FEL; + + AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, + typename FEL::ExcInterpolationNotImplemented ()); + } const unsigned int superdegree = cell->get_fe ().degree; const unsigned int degree = superdegree - 1; @@ -3798,14 +3811,20 @@ VectorTools::project_boundary_values_div_conforming (const DoFHandler& dof_ for (unsigned int face = 0; face < GeometryInfo::faces_per_cell; ++face) if (cell->face (face)->boundary_indicator () == boundary_component) { - // this is only + // This is only // implemented, if the // FE is a Raviart-Thomas - // element - typedef FiniteElement FEL; + // element. If the FE is + // a FESystem we cannot + // check this. + if (dynamic_cast*> (&cell->get_fe ()) == 0) + { + typedef FiniteElement FEL; + + AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, + typename FEL::ExcInterpolationNotImplemented ()); + } - AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, - typename FEL::ExcInterpolationNotImplemented ()); fe_values.reinit (cell, face + cell->active_fe_index () * GeometryInfo::faces_per_cell); @@ -3856,14 +3875,20 @@ VectorTools::project_boundary_values_div_conforming (const DoFHandler& dof_ for (unsigned int face = 0; face < GeometryInfo::faces_per_cell; ++face) if (cell->face (face)->boundary_indicator () == boundary_component) { - // this is only + // This is only // implemented, if the // FE is a Raviart-Thomas - // element - typedef FiniteElement FEL; + // element. If the FE is + // a FESystem we cannot + // check this. + if (dynamic_cast*> (&cell->get_fe ()) == 0) + { + typedef FiniteElement FEL; + + AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, + typename FEL::ExcInterpolationNotImplemented ()); + } - AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, - typename FEL::ExcInterpolationNotImplemented ()); fe_values.reinit (cell, face + cell->active_fe_index () * GeometryInfo::faces_per_cell); @@ -3939,14 +3964,20 @@ VectorTools::project_boundary_values_div_conforming (const hp::DoFHandler& for (unsigned int face = 0; face < GeometryInfo::faces_per_cell; ++face) if (cell->face (face)->boundary_indicator () == boundary_component) { - // this is only + // This is only // implemented, if the // FE is a Raviart-Thomas - // element - typedef FiniteElement FEL; + // element. If the FE is + // a FESystem we cannot + // check this. + if (dynamic_cast*> (&cell->get_fe ()) == 0) + { + typedef FiniteElement FEL; + + AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, + typename FEL::ExcInterpolationNotImplemented ()); + } - AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, - typename FEL::ExcInterpolationNotImplemented ()); fe_values.reinit (cell, face + cell->active_fe_index () * GeometryInfo::faces_per_cell); @@ -3980,14 +4011,20 @@ VectorTools::project_boundary_values_div_conforming (const hp::DoFHandler& for (unsigned int face = 0; face < GeometryInfo::faces_per_cell; ++face) if (cell->face (face)->boundary_indicator () == boundary_component) { - // this is only + // This is only // implemented, if the // FE is a Raviart-Thomas - // element - typedef FiniteElement FEL; + // element. If the FE is + // a FESystem we cannot + // check this. + if (dynamic_cast*> (&cell->get_fe ()) == 0) + { + typedef FiniteElement FEL; + + AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, + typename FEL::ExcInterpolationNotImplemented ()); + } - AssertThrow (dynamic_cast*> (&cell->get_fe ()) != 0, - typename FEL::ExcInterpolationNotImplemented ()); fe_values.reinit (cell, face + cell->active_fe_index () * GeometryInfo::faces_per_cell);