From 786e3a7186d226a86829a0f3e9dbe51c3335519c Mon Sep 17 00:00:00 2001 From: hartmann Date: Thu, 11 Mar 1999 14:31:30 +0000 Subject: [PATCH] implement 'get_face_support_points' functions for the DG FEs git-svn-id: https://svn.dealii.org/trunk@994 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/fe/fe_lib.dg.h | 41 ++++++++++++++---- deal.II/deal.II/source/fe/fe_lib.dg.cc | 42 +++++++++++++++++++ .../deal.II/source/fe/fe_lib.dg.constant.cc | 14 +++---- 3 files changed, 80 insertions(+), 17 deletions(-) diff --git a/deal.II/deal.II/include/fe/fe_lib.dg.h b/deal.II/deal.II/include/fe/fe_lib.dg.h index 63ca7269b3..7b8c787804 100644 --- a/deal.II/deal.II/include/fe/fe_lib.dg.h +++ b/deal.II/deal.II/include/fe/fe_lib.dg.h @@ -120,8 +120,6 @@ class FEDGConstant : public FELinearMapping { * weak formulation of your discontinuous Galerkin scheme. * @author Ralf Hartmann, 1998 */ - - template class FEDGLinear : public FELinear{ public: @@ -130,6 +128,15 @@ class FEDGLinear : public FELinear{ */ FEDGLinear(); + /** + * Refer to the base class for detailed + * information on this function. + */ + virtual void get_face_support_points (const DoFHandler::face_iterator &face, + const Boundary &boundary, + vector > &support_points) const; + + /** * This function returns an error since the * correct use of the restriction @@ -160,8 +167,6 @@ class FEDGLinear : public FELinear{ * weak formulation of your discontinuous Galerkin scheme. * @author Ralf Hartmann, 1998 */ - - template class FEDGQuadraticSub : public FEQuadraticSub{ public: @@ -169,6 +174,14 @@ class FEDGQuadraticSub : public FEQuadraticSub{ * Constructor */ FEDGQuadraticSub(); + + /** + * Refer to the base class for detailed + * information on this function. + */ + virtual void get_face_support_points (const DoFHandler::face_iterator &face, + const Boundary &boundary, + vector > &support_points) const; /** * This function returns an error since the @@ -201,8 +214,6 @@ class FEDGQuadraticSub : public FEQuadraticSub{ * weak formulation of your discontinuous Galerkin scheme. * @author Ralf Hartmann, 1998 */ - - template class FEDGCubicSub : public FECubicSub{ public: @@ -211,6 +222,14 @@ class FEDGCubicSub : public FECubicSub{ */ FEDGCubicSub(); + /** + * Refer to the base class for detailed + * information on this function. + */ + virtual void get_face_support_points (const DoFHandler::face_iterator &face, + const Boundary &boundary, + vector > &support_points) const; + /** * This function returns an error since the * correct use of the restriction @@ -241,8 +260,6 @@ class FEDGCubicSub : public FECubicSub{ * weak formulation of your discontinuous Galerkin scheme. * @author Ralf Hartmann, 1998 */ - - template class FEDGQuarticSub : public FEQuarticSub{ public: @@ -251,6 +268,14 @@ class FEDGQuarticSub : public FEQuarticSub{ */ FEDGQuarticSub(); + /** + * Refer to the base class for detailed + * information on this function. + */ + virtual void get_face_support_points (const DoFHandler::face_iterator &face, + const Boundary &boundary, + vector > &support_points) const; + /** * This function returns an error since the * correct use of the restriction diff --git a/deal.II/deal.II/source/fe/fe_lib.dg.cc b/deal.II/deal.II/source/fe/fe_lib.dg.cc index 826460237c..8bea4b7628 100644 --- a/deal.II/deal.II/source/fe/fe_lib.dg.cc +++ b/deal.II/deal.II/source/fe/fe_lib.dg.cc @@ -26,6 +26,16 @@ FEDGQuarticSub::FEDGQuarticSub(): +template +void +FEDGLinear::get_face_support_points (const typename DoFHandler::face_iterator &, + const Boundary &, + vector > &support_points) const { + Assert ((support_points.size() == 0), + ExcWrongFieldDimension (support_points.size(),0)); +}; + + template const FullMatrix & FEDGLinear::restrict (const unsigned int child) const { @@ -34,6 +44,17 @@ FEDGLinear::restrict (const unsigned int child) const { }; + +template +void +FEDGQuadraticSub::get_face_support_points (const typename DoFHandler::face_iterator &, + const Boundary &, + vector > &support_points) const { + Assert ((support_points.size() == 0), + ExcWrongFieldDimension (support_points.size(),0)); +}; + + template const FullMatrix & FEDGQuadraticSub::restrict (const unsigned int child) const { @@ -43,6 +64,16 @@ FEDGQuadraticSub::restrict (const unsigned int child) const { +template +void +FEDGCubicSub::get_face_support_points (const typename DoFHandler::face_iterator &, + const Boundary &, + vector > &support_points) const { + Assert ((support_points.size() == 0), + ExcWrongFieldDimension (support_points.size(),0)); +}; + + template const FullMatrix & FEDGCubicSub::restrict (const unsigned int child) const { @@ -52,6 +83,17 @@ FEDGCubicSub::restrict (const unsigned int child) const { + +template +void +FEDGQuarticSub::get_face_support_points (const typename DoFHandler::face_iterator &, + const Boundary &, + vector > &support_points) const { + Assert ((support_points.size() == 0), + ExcWrongFieldDimension (support_points.size(),0)); +}; + + template const FullMatrix & FEDGQuarticSub::restrict (const unsigned int child) const { diff --git a/deal.II/deal.II/source/fe/fe_lib.dg.constant.cc b/deal.II/deal.II/source/fe/fe_lib.dg.constant.cc index 7e87de1c1e..91f3a231ad 100644 --- a/deal.II/deal.II/source/fe/fe_lib.dg.constant.cc +++ b/deal.II/deal.II/source/fe/fe_lib.dg.constant.cc @@ -160,21 +160,17 @@ FEDGConstant::get_support_points (const typename DoFHandler::cell_iter }; - template void FEDGConstant::get_face_support_points (const typename DoFHandler::face_iterator &, - const Boundary &, - vector > &support_points) const { - Assert (false, ExcNotImplemented()); - - Assert ((support_points.size() == dofs_per_face) && - (support_points.size() == GeometryInfo::vertices_per_face), - ExcWrongFieldDimension (support_points.size(), - GeometryInfo::vertices_per_face)); + const Boundary &, + vector > &support_points) const { + Assert ((support_points.size() == 0), + ExcWrongFieldDimension (support_points.size(),0)); }; + template const FullMatrix & FEDGConstant::restrict (const unsigned int child) const { -- 2.39.5