]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
implement 'get_face_support_points' functions for the DG FEs
authorhartmann <hartmann@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 11 Mar 1999 14:31:30 +0000 (14:31 +0000)
committerhartmann <hartmann@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 11 Mar 1999 14:31:30 +0000 (14:31 +0000)
git-svn-id: https://svn.dealii.org/trunk@994 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/fe/fe_lib.dg.h
deal.II/deal.II/source/fe/fe_lib.dg.cc
deal.II/deal.II/source/fe/fe_lib.dg.constant.cc

index 63ca7269b30d55c8603a487df48e51ad3344f984..7b8c787804120ee56cf7a7cc3c1c6a3760189399 100644 (file)
@@ -120,8 +120,6 @@ class FEDGConstant : public FELinearMapping<dim> {
  * weak formulation of your discontinuous Galerkin scheme.
  * @author Ralf Hartmann, 1998
  */
-
-
 template <int dim>
 class FEDGLinear : public FELinear<dim>{
   public:
@@ -130,6 +128,15 @@ class FEDGLinear : public FELinear<dim>{
                                      */
     FEDGLinear();
 
+                                    /**
+                                     * Refer to the base class for detailed
+                                     * information on this function.
+                                     */
+    virtual void get_face_support_points (const DoFHandler<dim>::face_iterator &face,
+                                         const Boundary<dim> &boundary,
+                                         vector<Point<dim> > &support_points) const;
+
+
                                     /**
                                      * This function returns an error since the
                                      * correct use of the restriction
@@ -160,8 +167,6 @@ class FEDGLinear : public FELinear<dim>{
  * weak formulation of your discontinuous Galerkin scheme.
  * @author Ralf Hartmann, 1998
  */
-
-
 template <int dim>
 class FEDGQuadraticSub : public FEQuadraticSub<dim>{
   public:
@@ -169,6 +174,14 @@ class FEDGQuadraticSub : public FEQuadraticSub<dim>{
                                      * Constructor
                                      */
     FEDGQuadraticSub();
+                                
+                                    /**
+                                     * Refer to the base class for detailed
+                                     * information on this function.
+                                     */
+    virtual void get_face_support_points (const DoFHandler<dim>::face_iterator &face,
+                                         const Boundary<dim> &boundary,
+                                         vector<Point<dim> > &support_points) const;
 
                                     /**
                                      * This function returns an error since the
@@ -201,8 +214,6 @@ class FEDGQuadraticSub : public FEQuadraticSub<dim>{
  * weak formulation of your discontinuous Galerkin scheme.
  * @author Ralf Hartmann, 1998
  */
-
-
 template <int dim>
 class FEDGCubicSub : public FECubicSub<dim>{
   public:
@@ -211,6 +222,14 @@ class FEDGCubicSub : public FECubicSub<dim>{
                                      */
     FEDGCubicSub();
 
+                                    /**
+                                     * Refer to the base class for detailed
+                                     * information on this function.
+                                     */
+    virtual void get_face_support_points (const DoFHandler<dim>::face_iterator &face,
+                                         const Boundary<dim> &boundary,
+                                         vector<Point<dim> > &support_points) const;
+
                                     /**
                                      * This function returns an error since the
                                      * correct use of the restriction
@@ -241,8 +260,6 @@ class FEDGCubicSub : public FECubicSub<dim>{
  * weak formulation of your discontinuous Galerkin scheme.
  * @author Ralf Hartmann, 1998
  */
-
-
 template <int dim>
 class FEDGQuarticSub : public FEQuarticSub<dim>{
   public:
@@ -251,6 +268,14 @@ class FEDGQuarticSub : public FEQuarticSub<dim>{
                                      */
     FEDGQuarticSub();
 
+                                    /**
+                                     * Refer to the base class for detailed
+                                     * information on this function.
+                                     */
+    virtual void get_face_support_points (const DoFHandler<dim>::face_iterator &face,
+                                         const Boundary<dim> &boundary,
+                                         vector<Point<dim> > &support_points) const;
+                                    
                                     /**
                                      * This function returns an error since the
                                      * correct use of the restriction
index 826460237c1a40715797ee18f43022f742f9909c..8bea4b7628ccda1d094dc4b96c0cf2b93f1fc30c 100644 (file)
@@ -26,6 +26,16 @@ FEDGQuarticSub<dim>::FEDGQuarticSub():
 
 
 
+template <int dim>
+void
+FEDGLinear<dim>::get_face_support_points (const typename DoFHandler<dim>::face_iterator &,
+                                         const Boundary<dim>  &,
+                                         vector<Point<dim> >  &support_points) const {
+  Assert ((support_points.size() == 0),
+         ExcWrongFieldDimension (support_points.size(),0));
+};
+
+
 template <int dim>
 const FullMatrix<double> & 
 FEDGLinear<dim>::restrict (const unsigned int child) const {
@@ -34,6 +44,17 @@ FEDGLinear<dim>::restrict (const unsigned int child) const {
 };
 
 
+
+template <int dim>
+void
+FEDGQuadraticSub<dim>::get_face_support_points (const typename DoFHandler<dim>::face_iterator &,
+                                               const Boundary<dim>  &,
+                                               vector<Point<dim> >  &support_points) const {
+  Assert ((support_points.size() == 0),
+         ExcWrongFieldDimension (support_points.size(),0));
+};
+
+
 template <int dim>
 const FullMatrix<double> & 
 FEDGQuadraticSub<dim>::restrict (const unsigned int child) const {
@@ -43,6 +64,16 @@ FEDGQuadraticSub<dim>::restrict (const unsigned int child) const {
 
 
 
+template <int dim>
+void
+FEDGCubicSub<dim>::get_face_support_points (const typename DoFHandler<dim>::face_iterator &,
+                                           const Boundary<dim>  &,
+                                           vector<Point<dim> >  &support_points) const {
+  Assert ((support_points.size() == 0),
+         ExcWrongFieldDimension (support_points.size(),0));
+};
+
+
 template <int dim>
 const FullMatrix<double> & 
 FEDGCubicSub<dim>::restrict (const unsigned int child) const {
@@ -52,6 +83,17 @@ FEDGCubicSub<dim>::restrict (const unsigned int child) const {
 
 
 
+
+template <int dim>
+void
+FEDGQuarticSub<dim>::get_face_support_points (const typename DoFHandler<dim>::face_iterator &,
+                                             const Boundary<dim>  &,
+                                             vector<Point<dim> >  &support_points) const {
+  Assert ((support_points.size() == 0),
+         ExcWrongFieldDimension (support_points.size(),0));
+};
+
+
 template <int dim>
 const FullMatrix<double> & 
 FEDGQuarticSub<dim>::restrict (const unsigned int child) const {
index 7e87de1c1e33db6e1ea111419b5887edd7cd4b51..91f3a231ad9bb92c40dc6747dfaeddcc0e175b1c 100644 (file)
@@ -160,21 +160,17 @@ FEDGConstant<dim>::get_support_points (const typename DoFHandler<dim>::cell_iter
 };
 
 
-
 template <int dim>
 void
 FEDGConstant<dim>::get_face_support_points (const typename DoFHandler<dim>::face_iterator &,
-                                       const Boundary<dim>  &,
-                                       vector<Point<dim> >  &support_points) const {
-  Assert (false, ExcNotImplemented());
-
-  Assert ((support_points.size() == dofs_per_face) &&
-         (support_points.size() == GeometryInfo<dim>::vertices_per_face),
-         ExcWrongFieldDimension (support_points.size(),
-                                 GeometryInfo<dim>::vertices_per_face));
+                                           const Boundary<dim>  &,
+                                           vector<Point<dim> >  &support_points) const {
+  Assert ((support_points.size() == 0),
+         ExcWrongFieldDimension (support_points.size(),0));
 };
 
 
+
 template <int dim>
 const FullMatrix<double> & 
 FEDGConstant<dim>::restrict (const unsigned int child) const {

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.