]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Let the FE classes use FE::InternalDataBase instead of Mapping::InternalDataBase. 1300/head
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Fri, 7 Aug 2015 14:13:54 +0000 (09:13 -0500)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Fri, 7 Aug 2015 14:13:54 +0000 (09:13 -0500)
For historical reasons, FiniteElement::InternalDataBase is derived from
Mapping::InternalDataBase, but all of the finite element classes need to
use the former. However, we currently pass around pointers to the latter.
There is no good reason for doing so other than 'we can'. Fix this: store
and pass around pointers to FiniteElement::InternalDataBase.

19 files changed:
include/deal.II/fe/fe.h
include/deal.II/fe/fe_dgp_nonparametric.h
include/deal.II/fe/fe_face.h
include/deal.II/fe/fe_nothing.h
include/deal.II/fe/fe_poly.h
include/deal.II/fe/fe_poly.templates.h
include/deal.II/fe/fe_poly_face.h
include/deal.II/fe/fe_poly_face.templates.h
include/deal.II/fe/fe_poly_tensor.h
include/deal.II/fe/fe_system.h
include/deal.II/fe/fe_values.h
source/fe/fe.cc
source/fe/fe_dgp_nonparametric.cc
source/fe/fe_face.cc
source/fe/fe_nothing.cc
source/fe/fe_poly.cc
source/fe/fe_poly_tensor.cc
source/fe/fe_system.cc
source/fe/fe_values.cc

index aa810683d318161e5d0e3b0745fe70cc469ee80e..261185d988627b6d97135ef0ce4284c16f7285ee 100644 (file)
@@ -2023,7 +2023,7 @@ protected:
    * then has to assume ownership (which includes destruction when it is no
    * more needed).
    */
-  virtual typename Mapping<dim,spacedim>::InternalDataBase *
+  virtual InternalDataBase *
   get_data (const UpdateFlags      flags,
             const Mapping<dim,spacedim>    &mapping,
             const Quadrature<dim> &quadrature) const = 0;
@@ -2034,7 +2034,7 @@ protected:
    * the caller of this function then has to assume ownership (which includes
    * destruction when it is no more needed).
    */
-  virtual typename Mapping<dim,spacedim>::InternalDataBase *
+  virtual InternalDataBase *
   get_face_data (const UpdateFlags        flags,
                  const Mapping<dim,spacedim>      &mapping,
                  const Quadrature<dim-1> &quadrature) const;
@@ -2045,7 +2045,7 @@ protected:
    * object of which the caller of this function then has to assume ownership
    * (which includes destruction when it is no more needed).
    */
-  virtual typename Mapping<dim,spacedim>::InternalDataBase *
+  virtual InternalDataBase *
   get_subface_data (const UpdateFlags        flags,
                     const Mapping<dim,spacedim>      &mapping,
                     const Quadrature<dim-1> &quadrature) const;
@@ -2056,7 +2056,7 @@ protected:
                   const typename Triangulation<dim,spacedim>::cell_iterator           &cell,
                   const Quadrature<dim>                                               &quadrature,
                   const typename Mapping<dim,spacedim>::InternalDataBase              &mapping_internal,
-                  const typename Mapping<dim,spacedim>::InternalDataBase              &fe_internal,
+                  const InternalDataBase                                              &fe_internal,
                   const dealii::internal::FEValues::MappingRelatedData<dim, spacedim> &mapping_data,
                   dealii::internal::FEValues::FiniteElementRelatedData<dim, spacedim> &output_data,
                   const CellSimilarity::Similarity                                     cell_similarity) const = 0;
@@ -2068,7 +2068,7 @@ protected:
                        const unsigned int                                                   face_no,
                        const Quadrature<dim-1>                                             &quadrature,
                        const typename Mapping<dim,spacedim>::InternalDataBase              &mapping_internal,
-                       const typename Mapping<dim,spacedim>::InternalDataBase              &fe_internal,
+                       const InternalDataBase                                              &fe_internal,
                        const dealii::internal::FEValues::MappingRelatedData<dim, spacedim> &mapping_data,
                        dealii::internal::FEValues::FiniteElementRelatedData<dim, spacedim> &output_data) const = 0;
 
@@ -2080,7 +2080,7 @@ protected:
                           const unsigned int                                                   sub_no,
                           const Quadrature<dim-1>                                             &quadrature,
                           const typename Mapping<dim,spacedim>::InternalDataBase              &mapping_internal,
-                          const typename Mapping<dim,spacedim>::InternalDataBase              &fe_internal,
+                          const InternalDataBase                                              &fe_internal,
                           const dealii::internal::FEValues::MappingRelatedData<dim, spacedim> &mapping_data,
                           dealii::internal::FEValues::FiniteElementRelatedData<dim, spacedim> &output_data) const = 0;
 
index 079fb9006408c48874170d7d5548ed26f82ed387..ce173c0743a1ba1859567d43483c4833d0659557 100644 (file)
@@ -524,7 +524,7 @@ protected:
    * cell.
    */
   virtual
-  typename Mapping<dim,spacedim>::InternalDataBase *
+  typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_data (const UpdateFlags,
             const Mapping<dim,spacedim> &mapping,
             const Quadrature<dim> &quadrature) const;
@@ -535,7 +535,7 @@ protected:
                   const typename Triangulation<dim,spacedim>::cell_iterator &cell,
                   const Quadrature<dim>                                     &quadrature,
                   const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                  const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                  const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                   const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                   internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                   const CellSimilarity::Similarity                           cell_similarity) const;
@@ -547,7 +547,7 @@ protected:
                        const unsigned int                                         face_no,
                        const Quadrature<dim-1>                                   &quadrature,
                        const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                       const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                       const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                        const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                        internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
@@ -559,7 +559,7 @@ protected:
                           const unsigned int                                         sub_no,
                           const Quadrature<dim-1>                                   &quadrature,
                           const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                          const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                          const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                           const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                           internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
index 1daa1dc895b956b17173d9b6e88b0861b4c69850..a4a54fcab43f3d7a550f9b2d491d18e7f166ed39 100644 (file)
@@ -228,17 +228,17 @@ public:
 
 protected:
   virtual
-  typename Mapping<1,spacedim>::InternalDataBase *
+  typename FiniteElement<1,spacedim>::InternalDataBase *
   get_data (const UpdateFlags,
             const Mapping<1,spacedim> &mapping,
             const Quadrature<1> &quadrature) const;
 
-  typename Mapping<1,spacedim>::InternalDataBase *
+  typename FiniteElement<1,spacedim>::InternalDataBase *
   get_face_data (const UpdateFlags,
                  const Mapping<1,spacedim> &mapping,
                  const Quadrature<0> &quadrature) const;
 
-  typename Mapping<1,spacedim>::InternalDataBase *
+  typename FiniteElement<1,spacedim>::InternalDataBase *
   get_subface_data (const UpdateFlags,
                     const Mapping<1,spacedim> &mapping,
                     const Quadrature<0> &quadrature) const;
@@ -249,7 +249,7 @@ protected:
                   const typename Triangulation<1,spacedim>::cell_iterator &cell,
                   const Quadrature<1>                                     &quadrature,
                   const typename Mapping<1,spacedim>::InternalDataBase    &mapping_internal,
-                  const typename Mapping<1,spacedim>::InternalDataBase    &fe_internal,
+                  const typename FiniteElement<1,spacedim>::InternalDataBase    &fe_internal,
                   const internal::FEValues::MappingRelatedData<1,spacedim> &mapping_data,
                   internal::FEValues::FiniteElementRelatedData<1,spacedim> &output_data,
                   const CellSimilarity::Similarity                          cell_similarity) const;
@@ -261,7 +261,7 @@ protected:
                        const unsigned int                                         face_no,
                        const Quadrature<0>                                   &quadrature,
                        const typename Mapping<1,spacedim>::InternalDataBase    &mapping_internal,
-                       const typename Mapping<1,spacedim>::InternalDataBase    &fe_internal,
+                       const typename FiniteElement<1,spacedim>::InternalDataBase    &fe_internal,
                        const internal::FEValues::MappingRelatedData<1,spacedim> &mapping_data,
                        internal::FEValues::FiniteElementRelatedData<1,spacedim> &output_data) const;
 
@@ -273,7 +273,7 @@ protected:
                           const unsigned int                                         sub_no,
                           const Quadrature<0>                                   &quadrature,
                           const typename Mapping<1,spacedim>::InternalDataBase    &mapping_internal,
-                          const typename Mapping<1,spacedim>::InternalDataBase    &fe_internal,
+                          const typename FiniteElement<1,spacedim>::InternalDataBase    &fe_internal,
                           const internal::FEValues::MappingRelatedData<1,spacedim> &mapping_data,
                           internal::FEValues::FiniteElementRelatedData<1,spacedim> &output_data) const;
 
index d41fc6a4cdf5e718faedc211371a7ddafb8b36a1..91b8212547ab4a7729984d16b7ea64b85b6752e9 100644 (file)
@@ -153,7 +153,7 @@ public:
                   const typename Triangulation<dim,spacedim>::cell_iterator &cell,
                   const Quadrature<dim>                                     &quadrature,
                   const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                  const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                  const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                   const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                   internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                   const CellSimilarity::Similarity                           cell_similarity) const;
@@ -165,7 +165,7 @@ public:
                        const unsigned int                                         face_no,
                        const Quadrature<dim-1>                                   &quadrature,
                        const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                       const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                       const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                        const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                        internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
@@ -177,7 +177,7 @@ public:
                           const unsigned int                                         sub_no,
                           const Quadrature<dim-1>                                   &quadrature,
                           const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                          const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                          const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                           const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                           internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
@@ -191,7 +191,7 @@ public:
    * no meaningful data exists for this element.
    */
   virtual
-  typename Mapping<dim,spacedim>::InternalDataBase *
+  typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_data (const UpdateFlags     update_flags,
             const Mapping<dim,spacedim>     &mapping,
             const Quadrature<dim> &quadrature) const;
index 22365a0d40e06b7cbc511a8f0d0a6e6b2787161f..cbbb80b7aedef1bd96afa360785e93a402ab2b30 100644 (file)
@@ -163,7 +163,7 @@ public:
 protected:
 
   virtual
-  typename Mapping<dim,spacedim>::InternalDataBase *
+  typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_data (const UpdateFlags,
             const Mapping<dim,spacedim> &mapping,
             const Quadrature<dim> &quadrature) const;
@@ -174,7 +174,7 @@ protected:
                   const typename Triangulation<dim,spacedim>::cell_iterator &cell,
                   const Quadrature<dim>                                     &quadrature,
                   const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                  const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                  const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                   const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                   internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                   const CellSimilarity::Similarity                           cell_similarity) const;
@@ -186,7 +186,7 @@ protected:
                        const unsigned int                                         face_no,
                        const Quadrature<dim-1>                                   &quadrature,
                        const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                       const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                       const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                        const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                        internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
@@ -198,7 +198,7 @@ protected:
                           const unsigned int                                         sub_no,
                           const Quadrature<dim-1>                                   &quadrature,
                           const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                          const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                          const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                           const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                           internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
index 932b40f086be3c062eb5ffbeb84e21d373d31d25..cb751ef28d93d0fa203da1a312656fa6b8076dfc 100644 (file)
@@ -164,7 +164,7 @@ FE_Poly<POLY,dim,spacedim>::update_each (const UpdateFlags flags) const
 //---------------------------------------------------------------------------
 
 template <class POLY, int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FE_Poly<POLY,dim,spacedim>::get_data (const UpdateFlags      update_flags,
                                       const Mapping<dim,spacedim>    &mapping,
                                       const Quadrature<dim> &quadrature) const
@@ -252,7 +252,7 @@ fill_fe_values (const Mapping<dim,spacedim>                      &mapping,
                 const typename Triangulation<dim,spacedim>::cell_iterator &cell,
                 const Quadrature<dim>                            &quadrature,
                 const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
-                const typename Mapping<dim,spacedim>::InternalDataBase &fedata,
+                const typename FiniteElement<dim,spacedim>::InternalDataBase &fedata,
                 const internal::FEValues::MappingRelatedData<dim,spacedim> &,
                 internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                 const CellSimilarity::Similarity                  cell_similarity) const
@@ -294,7 +294,7 @@ fill_fe_face_values (const Mapping<dim,spacedim>                   &mapping,
                      const unsigned int                    face,
                      const Quadrature<dim-1>              &quadrature,
                      const typename Mapping<dim,spacedim>::InternalDataBase       &mapping_internal,
-                     const typename Mapping<dim,spacedim>::InternalDataBase       &fedata,
+                     const typename FiniteElement<dim,spacedim>::InternalDataBase       &fedata,
                      const internal::FEValues::MappingRelatedData<dim,spacedim> &,
                      internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
@@ -346,7 +346,7 @@ fill_fe_subface_values (const Mapping<dim,spacedim>                   &mapping,
                         const unsigned int                    subface,
                         const Quadrature<dim-1>              &quadrature,
                         const typename Mapping<dim,spacedim>::InternalDataBase       &mapping_internal,
-                        const typename Mapping<dim,spacedim>::InternalDataBase       &fedata,
+                        const typename FiniteElement<dim,spacedim>::InternalDataBase       &fedata,
                         const internal::FEValues::MappingRelatedData<dim,spacedim> &,
                         internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
index 0a9070da96022d00bab015765b2655f90f44b0e7..444616626ccfdbe1a7fa9b002cc12b6045578f9f 100644 (file)
@@ -141,17 +141,17 @@ public:
 protected:
 
   virtual
-  typename Mapping<dim,spacedim>::InternalDataBase *
+  typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_data (const UpdateFlags,
             const Mapping<dim,spacedim> &mapping,
             const Quadrature<dim> &quadrature) const;
 
-  typename Mapping<dim,spacedim>::InternalDataBase *
+  typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_face_data (const UpdateFlags,
                  const Mapping<dim,spacedim> &mapping,
                  const Quadrature<dim-1>& quadrature) const;
 
-  typename Mapping<dim,spacedim>::InternalDataBase *
+  typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_subface_data (const UpdateFlags,
                     const Mapping<dim,spacedim> &mapping,
                     const Quadrature<dim-1>& quadrature) const;
@@ -162,7 +162,7 @@ protected:
                   const typename Triangulation<dim,spacedim>::cell_iterator &cell,
                   const Quadrature<dim>                                     &quadrature,
                   const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                  const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                  const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                   const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                   internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                   const CellSimilarity::Similarity                           cell_similarity) const;
@@ -174,7 +174,7 @@ protected:
                        const unsigned int                                         face_no,
                        const Quadrature<dim-1>                                   &quadrature,
                        const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                       const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                       const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                        const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                        internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
@@ -186,7 +186,7 @@ protected:
                           const unsigned int                                         sub_no,
                           const Quadrature<dim-1>                                   &quadrature,
                           const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                          const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                          const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                           const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                           internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
index 8b21146eb10278362d945ed7f9e3e4ab6d843711..ca0a4037b7225148cd8de55163f505de3ec93a71 100644 (file)
@@ -84,7 +84,7 @@ FE_PolyFace<POLY,dim,spacedim>::update_each (const UpdateFlags flags) const
 //---------------------------------------------------------------------------
 
 template <class POLY, int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FE_PolyFace<POLY,dim,spacedim>::get_data (
   const UpdateFlags,
   const Mapping<dim,spacedim> &,
@@ -96,7 +96,7 @@ FE_PolyFace<POLY,dim,spacedim>::get_data (
 
 
 template <class POLY, int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FE_PolyFace<POLY,dim,spacedim>::get_face_data (
   const UpdateFlags update_flags,
   const Mapping<dim,spacedim> &,
@@ -152,7 +152,7 @@ FE_PolyFace<POLY,dim,spacedim>::get_face_data (
 
 
 template <class POLY, int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FE_PolyFace<POLY,dim,spacedim>::get_subface_data (
   const UpdateFlags flags,
   const Mapping<dim,spacedim> &mapping,
@@ -176,7 +176,7 @@ fill_fe_values (const Mapping<dim,spacedim> &,
                 const typename Triangulation<dim,spacedim>::cell_iterator &,
                 const Quadrature<dim> &,
                 const typename Mapping<dim,spacedim>::InternalDataBase &,
-                const typename Mapping<dim,spacedim>::InternalDataBase &,
+                const typename FiniteElement<dim,spacedim>::InternalDataBase &,
                 const internal::FEValues::MappingRelatedData<dim,spacedim> &,
                 internal::FEValues::FiniteElementRelatedData<dim,spacedim> &,
                 const CellSimilarity::Similarity ) const
@@ -195,7 +195,7 @@ fill_fe_face_values (const Mapping<dim,spacedim> &,
                      const unsigned int face,
                      const Quadrature<dim-1>& quadrature,
                      const typename Mapping<dim,spacedim>::InternalDataBase &,
-                     const typename Mapping<dim,spacedim>::InternalDataBase &fedata,
+                     const typename FiniteElement<dim,spacedim>::InternalDataBase &fedata,
                      const internal::FEValues::MappingRelatedData<dim,spacedim> &,
                      internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
@@ -262,7 +262,7 @@ fill_fe_subface_values (const Mapping<dim,spacedim> &,
                         const unsigned int subface,
                         const Quadrature<dim-1>& quadrature,
                         const typename Mapping<dim,spacedim>::InternalDataBase &,
-                        const typename Mapping<dim,spacedim>::InternalDataBase &fedata,
+                        const typename FiniteElement<dim,spacedim>::InternalDataBase &fedata,
                         const internal::FEValues::MappingRelatedData<dim,spacedim> &,
                         internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
index eeb4043a6af1e2022da7e9ea98b1860c109c8e87..8793dbfe0151d27208f3c4b804da38107befa70d 100644 (file)
@@ -176,7 +176,7 @@ protected:
   MappingType mapping_type;
 
   virtual
-  typename Mapping<dim,spacedim>::InternalDataBase *
+  typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_data (const UpdateFlags,
             const Mapping<dim,spacedim> &mapping,
             const Quadrature<dim> &quadrature) const;
@@ -187,7 +187,7 @@ protected:
                   const typename Triangulation<dim,spacedim>::cell_iterator &cell,
                   const Quadrature<dim>                                     &quadrature,
                   const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                  const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                  const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                   const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                   internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                   const CellSimilarity::Similarity                           cell_similarity) const;
@@ -199,7 +199,7 @@ protected:
                        const unsigned int                                         face_no,
                        const Quadrature<dim-1>                                   &quadrature,
                        const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                       const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                       const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                        const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                        internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
@@ -211,7 +211,7 @@ protected:
                           const unsigned int                                         sub_no,
                           const Quadrature<dim-1>                                   &quadrature,
                           const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                          const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                          const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                           const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                           internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
index ae960cd3969dee61a252e57af0752fbdcce70971..5daa5fb99e61167a35fba677c4c106f888cb3fde 100644 (file)
@@ -798,17 +798,17 @@ protected:
    */
   virtual FiniteElement<dim,spacedim> *clone() const;
 
-  virtual typename Mapping<dim,spacedim>::InternalDataBase *
+  virtual typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_data (const UpdateFlags      update_flags,
             const Mapping<dim,spacedim>    &mapping,
             const Quadrature<dim> &quadrature) const;
 
-  virtual typename Mapping<dim,spacedim>::InternalDataBase *
+  virtual typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_face_data (const UpdateFlags      update_flags,
                  const Mapping<dim,spacedim>    &mapping,
                  const Quadrature<dim-1> &quadrature) const;
 
-  virtual typename Mapping<dim,spacedim>::InternalDataBase *
+  virtual typename FiniteElement<dim,spacedim>::InternalDataBase *
   get_subface_data (const UpdateFlags      update_flags,
                     const Mapping<dim,spacedim>    &mapping,
                     const Quadrature<dim-1> &quadrature) const;
@@ -819,7 +819,7 @@ protected:
                   const typename Triangulation<dim,spacedim>::cell_iterator &cell,
                   const Quadrature<dim>                                     &quadrature,
                   const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                  const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                  const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                   const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                   internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                   const CellSimilarity::Similarity                           cell_similarity) const;
@@ -831,7 +831,7 @@ protected:
                        const unsigned int                                         face_no,
                        const Quadrature<dim-1>                                   &quadrature,
                        const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                       const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                       const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                        const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                        internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
@@ -843,7 +843,7 @@ protected:
                           const unsigned int                                         sub_no,
                           const Quadrature<dim-1>                                   &quadrature,
                           const typename Mapping<dim,spacedim>::InternalDataBase    &mapping_internal,
-                          const typename Mapping<dim,spacedim>::InternalDataBase    &fe_internal,
+                          const typename FiniteElement<dim,spacedim>::InternalDataBase    &fe_internal,
                           const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                           internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
@@ -865,7 +865,7 @@ protected:
                      const Quadrature<dim_1>                          &quadrature,
                      const CellSimilarity::Similarity                   cell_similarity,
                      const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
-                     const typename Mapping<dim,spacedim>::InternalDataBase &fe_data,
+                     const typename FiniteElement<dim,spacedim>::InternalDataBase &fe_data,
                      const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                      internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
 
@@ -1039,7 +1039,7 @@ private:
                          const std::pair<unsigned int,unsigned int>        face_sub_no,
                          const Quadrature<dim_1>                          &quadrature,
                          const std::pair<const typename Mapping<dim,spacedim>::InternalDataBase *,
-                         const typename Mapping<dim,spacedim>::InternalDataBase *> mapping_and_fe_internal,
+                         const typename FiniteElement<dim,spacedim>::InternalDataBase *> mapping_and_fe_internal,
                          const unsigned int                                base_element,
                          const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                          internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const;
index 7051dc78d422a222a00bba980af36b8a1a2ce55d..62d0f27bcf30555a068bc5b6e7d00eecb60b0a5c 100644 (file)
@@ -2339,7 +2339,7 @@ protected:
   /**
    * Internal data of finite element.
    */
-  SmartPointer<typename Mapping<dim,spacedim>::InternalDataBase,FEValuesBase<dim,spacedim> > fe_data;
+  SmartPointer<typename FiniteElement<dim,spacedim>::InternalDataBase,FEValuesBase<dim,spacedim> > fe_data;
 
   /**
    * Original update flags handed to the constructor of FEValues.
index 8288a5dad6f27da0eb70d0dab370b5ba86d9946b..4b70c85f04c07b2d3ed68c19f02a873a3c56ea64 100644 (file)
@@ -1418,7 +1418,7 @@ FiniteElement<dim,spacedim>::compute_n_nonzero_components (
 /*------------------------------- FiniteElement ----------------------*/
 
 template <int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FiniteElement<dim,spacedim>::get_face_data (const UpdateFlags       flags,
                                             const Mapping<dim,spacedim>      &mapping,
                                             const Quadrature<dim-1> &quadrature) const
@@ -1430,7 +1430,7 @@ FiniteElement<dim,spacedim>::get_face_data (const UpdateFlags       flags,
 
 
 template <int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FiniteElement<dim,spacedim>::get_subface_data (const UpdateFlags        flags,
                                                const Mapping<dim,spacedim>      &mapping,
                                                const Quadrature<dim-1> &quadrature) const
index cfe74c284a38e02b501f8d92b6e59ff104431b05..2be6b7024ec3714eb4e2c63832bea725918ca878 100644 (file)
@@ -247,7 +247,7 @@ FE_DGPNonparametric<dim,spacedim>::update_each (const UpdateFlags flags) const
 //---------------------------------------------------------------------------
 
 template <int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FE_DGPNonparametric<dim,spacedim>::get_data (
   const UpdateFlags      update_flags,
   const Mapping<dim,spacedim> &,
@@ -282,7 +282,7 @@ fill_fe_values (const Mapping<dim,spacedim> &,
                 const typename Triangulation<dim,spacedim>::cell_iterator &,
                 const Quadrature<dim> &,
                 const typename Mapping<dim,spacedim>::InternalDataBase &,
-                const typename Mapping<dim,spacedim>::InternalDataBase &fe_data,
+                const typename FiniteElement<dim,spacedim>::InternalDataBase &fe_data,
                 const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                 internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                 const CellSimilarity::Similarity /*cell_similarity*/) const
@@ -323,7 +323,7 @@ fill_fe_face_values (const Mapping<dim,spacedim> &,
                      const unsigned int,
                      const Quadrature<dim-1>&,
                      const typename Mapping<dim,spacedim>::InternalDataBase &,
-                     const typename Mapping<dim,spacedim>::InternalDataBase       &fe_data,
+                     const typename FiniteElement<dim,spacedim>::InternalDataBase       &fe_data,
                      const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                      internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
@@ -364,7 +364,7 @@ fill_fe_subface_values (const Mapping<dim,spacedim> &,
                         const unsigned int,
                         const Quadrature<dim-1>&,
                         const typename Mapping<dim,spacedim>::InternalDataBase &,
-                        const typename Mapping<dim,spacedim>::InternalDataBase       &fe_data,
+                        const typename FiniteElement<dim,spacedim>::InternalDataBase       &fe_data,
                         const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                         internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
index d3a63e71df642772293f1dd9f213bf4b6fd8e0bb..68418bfc68b61cd4fb11835f3554487c09cb29f9 100644 (file)
@@ -460,26 +460,26 @@ FE_FaceQ<1,spacedim>::update_each (const UpdateFlags flags) const
 
 
 template <int spacedim>
-typename Mapping<1,spacedim>::InternalDataBase *
+typename FiniteElement<1,spacedim>::InternalDataBase *
 FE_FaceQ<1,spacedim>::get_data (
   const UpdateFlags,
   const Mapping<1,spacedim> &,
   const Quadrature<1> &) const
 {
-  return new typename Mapping<1,spacedim>::InternalDataBase;
+  return new typename FiniteElement<1,spacedim>::InternalDataBase;
 }
 
 
 template <int spacedim>
-typename Mapping<1,spacedim>::InternalDataBase *
+typename FiniteElement<1,spacedim>::InternalDataBase *
 FE_FaceQ<1,spacedim>::get_face_data (
   const UpdateFlags update_flags,
   const Mapping<1,spacedim> &,
   const Quadrature<0> &quadrature) const
 {
   // generate a new data object and initialize some fields
-  typename Mapping<1,spacedim>::InternalDataBase *data =
-    new typename Mapping<1,spacedim>::InternalDataBase;
+  typename FiniteElement<1,spacedim>::InternalDataBase *data =
+    new typename FiniteElement<1,spacedim>::InternalDataBase;
 
   // check what needs to be initialized only once and what on every
   // cell/face/subface we visit
@@ -504,7 +504,7 @@ FE_FaceQ<1,spacedim>::get_face_data (
 
 
 template <int spacedim>
-typename Mapping<1,spacedim>::InternalDataBase *
+typename FiniteElement<1,spacedim>::InternalDataBase *
 FE_FaceQ<1,spacedim>::get_subface_data (
   const UpdateFlags flags,
   const Mapping<1,spacedim> &mapping,
@@ -522,7 +522,7 @@ fill_fe_values(const Mapping<1,spacedim> &,
                const typename Triangulation<1,spacedim>::cell_iterator &,
                const Quadrature<1> &,
                const typename Mapping<1,spacedim>::InternalDataBase &,
-               const typename Mapping<1,spacedim>::InternalDataBase &,
+               const typename FiniteElement<1,spacedim>::InternalDataBase &,
                const internal::FEValues::MappingRelatedData<1,spacedim> &,
                internal::FEValues::FiniteElementRelatedData<1,spacedim> &,
                const CellSimilarity::Similarity ) const
@@ -540,7 +540,7 @@ fill_fe_face_values (const Mapping<1,spacedim> &,
                      const unsigned int face,
                      const Quadrature<0> &,
                      const typename Mapping<1,spacedim>::InternalDataBase &,
-                     const typename Mapping<1,spacedim>::InternalDataBase &fedata,
+                     const typename FiniteElement<1,spacedim>::InternalDataBase &fedata,
                      const internal::FEValues::MappingRelatedData<1,spacedim> &,
                      internal::FEValues::FiniteElementRelatedData<1,spacedim> &output_data) const
 {
@@ -565,7 +565,7 @@ fill_fe_subface_values (const Mapping<1,spacedim> &,
                         const unsigned int ,
                         const Quadrature<0> &,
                         const typename Mapping<1,spacedim>::InternalDataBase &,
-                        const typename Mapping<1,spacedim>::InternalDataBase &,
+                        const typename FiniteElement<1,spacedim>::InternalDataBase &,
                         const internal::FEValues::MappingRelatedData<1,spacedim> &,
                         internal::FEValues::FiniteElementRelatedData<1,spacedim> &) const
 {
index 08a4b7cdd29c6503045b80b7e03e2a4bb90c5864..fb3ea4497c7294fbe344d431b02ba9170dee6f4d 100644 (file)
@@ -99,7 +99,7 @@ FE_Nothing<dim,spacedim>::shape_value (const unsigned int /*i*/,
 
 
 template <int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FE_Nothing<dim,spacedim>::get_data (const UpdateFlags  /*flags*/,
                                     const Mapping<dim,spacedim> & /*mapping*/,
                                     const Quadrature<dim> & /*quadrature*/) const
@@ -107,7 +107,7 @@ FE_Nothing<dim,spacedim>::get_data (const UpdateFlags  /*flags*/,
   // Create a default data object.  Normally we would then
   // need to resize things to hold the appropriate numbers
   // of dofs, but in this case all data fields are empty.
-  typename Mapping<dim,spacedim>::InternalDataBase *data
+  typename FiniteElement<dim,spacedim>::InternalDataBase *data
     = new typename FiniteElement<dim,spacedim>::InternalDataBase();
   return data;
 }
@@ -121,7 +121,7 @@ fill_fe_values (const Mapping<dim,spacedim> & /*mapping*/,
                 const typename Triangulation<dim,spacedim>::cell_iterator & /*cell*/,
                 const Quadrature<dim> & /*quadrature*/,
                 const typename Mapping<dim,spacedim>::InternalDataBase & /*mapping_data*/,
-                const typename Mapping<dim,spacedim>::InternalDataBase & /*fedata*/,
+                const typename FiniteElement<dim,spacedim>::InternalDataBase & /*fedata*/,
                 const internal::FEValues::MappingRelatedData<dim,spacedim> &/*mapping_data*/,
                 internal::FEValues::FiniteElementRelatedData<dim,spacedim> &/*output_data*/,
                 const CellSimilarity::Similarity  /*cell_similarity*/) const
@@ -139,7 +139,7 @@ fill_fe_face_values (const Mapping<dim,spacedim> & /*mapping*/,
                      const unsigned int /*face*/,
                      const Quadrature<dim-1> & /*quadrature*/,
                      const typename Mapping<dim,spacedim>::InternalDataBase & /*mapping_data*/,
-                     const typename Mapping<dim,spacedim>::InternalDataBase & /*fedata*/,
+                     const typename FiniteElement<dim,spacedim>::InternalDataBase & /*fedata*/,
                      const internal::FEValues::MappingRelatedData<dim,spacedim> &/*mapping_data*/,
                      internal::FEValues::FiniteElementRelatedData<dim,spacedim> &/*output_data*/) const
 {
@@ -155,7 +155,7 @@ fill_fe_subface_values (const Mapping<dim,spacedim> & /*mapping*/,
                         const unsigned int /*subface*/,
                         const Quadrature<dim-1> & /*quadrature*/,
                         const typename Mapping<dim,spacedim>::InternalDataBase & /*mapping_data*/,
-                        const typename Mapping<dim,spacedim>::InternalDataBase & /*fedata*/,
+                        const typename FiniteElement<dim,spacedim>::InternalDataBase & /*fedata*/,
                         const internal::FEValues::MappingRelatedData<dim,spacedim> &/*mapping_data*/,
                         internal::FEValues::FiniteElementRelatedData<dim,spacedim> &/*output_data*/) const
 {
index b36b543f743eeca45cd4bd046092e07f6c5995a7..adbc06393012d19bb823dcd57f0ed4511d79f1ff 100644 (file)
@@ -34,7 +34,7 @@ fill_fe_values (const Mapping<1,2>                        &mapping,
                 const Triangulation<1,2>::cell_iterator   &cell,
                 const Quadrature<1>                       &quadrature,
                 const Mapping<1,2>::InternalDataBase            &mapping_internal,
-                const Mapping<1,2>::InternalDataBase            &fedata,
+                const FiniteElement<1,2>::InternalDataBase            &fedata,
                 const internal::FEValues::MappingRelatedData<1,2> &,
                 internal::FEValues::FiniteElementRelatedData<1,2> &output_data,
                 const CellSimilarity::Similarity           cell_similarity) const
@@ -75,7 +75,7 @@ fill_fe_values (const Mapping<2,3>                      &mapping,
                 const Triangulation<2,3>::cell_iterator &cell,
                 const Quadrature<2>                     &quadrature,
                 const Mapping<2,3>::InternalDataBase          &mapping_internal,
-                const Mapping<2,3>::InternalDataBase          &fedata,
+                const FiniteElement<2,3>::InternalDataBase          &fedata,
                 const internal::FEValues::MappingRelatedData<2,3> &,
                 internal::FEValues::FiniteElementRelatedData<2,3> &output_data,
                 const CellSimilarity::Similarity         cell_similarity) const
@@ -114,7 +114,7 @@ fill_fe_values (const Mapping<1,2>                      &mapping,
                 const Triangulation<1,2>::cell_iterator &cell,
                 const Quadrature<1>                     &quadrature,
                 const Mapping<1,2>::InternalDataBase          &mapping_internal,
-                const Mapping<1,2>::InternalDataBase          &fedata,
+                const FiniteElement<1,2>::InternalDataBase          &fedata,
                 const internal::FEValues::MappingRelatedData<1,2> &,
                 internal::FEValues::FiniteElementRelatedData<1,2> &output_data,
                 const CellSimilarity::Similarity         cell_similarity) const
@@ -155,7 +155,7 @@ fill_fe_values (const Mapping<2,3>                      &mapping,
                 const Triangulation<2,3>::cell_iterator &cell,
                 const Quadrature<2>                     &quadrature,
                 const Mapping<2,3>::InternalDataBase          &mapping_internal,
-                const Mapping<2,3>::InternalDataBase          &fedata,
+                const FiniteElement<2,3>::InternalDataBase          &fedata,
                 const internal::FEValues::MappingRelatedData<2,3> &,
                 internal::FEValues::FiniteElementRelatedData<2,3> &output_data,
                 const CellSimilarity::Similarity         cell_similarity) const
index efebdd71f8f60f49b05380a2cfdf5086c4579dc4..5b50d5c30f3336300b6354c613359dd5bc792716 100644 (file)
@@ -279,7 +279,7 @@ FE_PolyTensor<POLY,dim,spacedim>::shape_grad_grad_component (const unsigned int
 //---------------------------------------------------------------------------
 
 template <class POLY, int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FE_PolyTensor<POLY,dim,spacedim>::get_data (
   const UpdateFlags      update_flags,
   const Mapping<dim,spacedim>    &mapping,
@@ -394,7 +394,7 @@ fill_fe_values (const Mapping<dim,spacedim>                      &mapping,
                 const typename Triangulation<dim,spacedim>::cell_iterator &cell,
                 const Quadrature<dim>                            &quadrature,
                 const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
-                const typename Mapping<dim,spacedim>::InternalDataBase &fedata,
+                const typename FiniteElement<dim,spacedim>::InternalDataBase &fedata,
                 const internal::FEValues::MappingRelatedData<dim,spacedim> &,
                 internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                 const CellSimilarity::Similarity                  cell_similarity) const
@@ -617,7 +617,7 @@ fill_fe_face_values (const Mapping<dim,spacedim>                   &mapping,
                      const unsigned int                    face,
                      const Quadrature<dim-1>              &quadrature,
                      const typename Mapping<dim,spacedim>::InternalDataBase       &mapping_internal,
-                     const typename Mapping<dim,spacedim>::InternalDataBase       &fedata,
+                     const typename FiniteElement<dim,spacedim>::InternalDataBase       &fedata,
                      const internal::FEValues::MappingRelatedData<dim,spacedim> &,
                      internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
@@ -824,7 +824,7 @@ fill_fe_subface_values (const Mapping<dim,spacedim>                   &mapping,
                         const unsigned int                    subface,
                         const Quadrature<dim-1>              &quadrature,
                         const typename Mapping<dim,spacedim>::InternalDataBase       &mapping_internal,
-                        const typename Mapping<dim,spacedim>::InternalDataBase       &fedata,
+                        const typename FiniteElement<dim,spacedim>::InternalDataBase       &fedata,
                         const internal::FEValues::MappingRelatedData<dim,spacedim> &,
                         internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
index cce57e3367b115af1293fe0fa512c9b263c37faa..cebb90160002dc950446487fcf10cef8ecd38b6c 100644 (file)
@@ -810,7 +810,7 @@ FESystem<dim,spacedim>::update_each (const UpdateFlags flags) const
 
 
 template <int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FESystem<dim,spacedim>::get_data (const UpdateFlags      flags_,
                                   const Mapping<dim,spacedim>    &mapping,
                                   const Quadrature<dim> &quadrature) const
@@ -841,13 +841,8 @@ FESystem<dim,spacedim>::get_data (const UpdateFlags      flags_,
   // the base elements and store them
   for (unsigned int base_no=0; base_no<this->n_base_elements(); ++base_no)
     {
-      typename Mapping<dim,spacedim>::InternalDataBase *base_fe_data_base =
-        base_element(base_no).get_data(sub_flags, mapping, quadrature);
-
       typename FiniteElement<dim,spacedim>::InternalDataBase *base_fe_data =
-        dynamic_cast<typename FiniteElement<dim,spacedim>::InternalDataBase *>
-        (base_fe_data_base);
-      Assert (base_fe_data != 0, ExcInternalError());
+        base_element(base_no).get_data(sub_flags, mapping, quadrature);
 
       data->set_fe_data(base_no, base_fe_data);
 
@@ -868,7 +863,7 @@ FESystem<dim,spacedim>::get_data (const UpdateFlags      flags_,
 // that get_face_data of the base elements is called.
 
 template <int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FESystem<dim,spacedim>::get_face_data (
   const UpdateFlags      flags_,
   const Mapping<dim,spacedim>    &mapping,
@@ -891,13 +886,8 @@ FESystem<dim,spacedim>::get_face_data (
 
   for (unsigned int base_no=0; base_no<this->n_base_elements(); ++base_no)
     {
-      typename Mapping<dim,spacedim>::InternalDataBase *base_fe_data_base =
-        base_element(base_no).get_face_data(sub_flags, mapping, quadrature);
-
       typename FiniteElement<dim,spacedim>::InternalDataBase *base_fe_data =
-        dynamic_cast<typename FiniteElement<dim,spacedim>::InternalDataBase *>
-        (base_fe_data_base);
-      Assert (base_fe_data != 0, ExcInternalError());
+        base_element(base_no).get_face_data(sub_flags, mapping, quadrature);
 
       data->set_fe_data(base_no, base_fe_data);
 
@@ -917,7 +907,7 @@ FESystem<dim,spacedim>::get_face_data (
 // that get_subface_data of the base elements is called.
 
 template <int dim, int spacedim>
-typename Mapping<dim,spacedim>::InternalDataBase *
+typename FiniteElement<dim,spacedim>::InternalDataBase *
 FESystem<dim,spacedim>::get_subface_data (
   const UpdateFlags      flags_,
   const Mapping<dim,spacedim>    &mapping,
@@ -940,13 +930,8 @@ FESystem<dim,spacedim>::get_subface_data (
 
   for (unsigned int base_no=0; base_no<this->n_base_elements(); ++base_no)
     {
-      typename Mapping<dim,spacedim>::InternalDataBase *base_fe_data_base =
-        base_element(base_no).get_subface_data(sub_flags, mapping, quadrature);
-
       typename FiniteElement<dim,spacedim>::InternalDataBase *base_fe_data =
-        dynamic_cast<typename FiniteElement<dim,spacedim>::InternalDataBase *>
-        (base_fe_data_base);
-      Assert (base_fe_data != 0, ExcInternalError());
+        base_element(base_no).get_subface_data(sub_flags, mapping, quadrature);
 
       data->set_fe_data(base_no, base_fe_data);
 
@@ -969,7 +954,7 @@ fill_fe_values (const Mapping<dim,spacedim>                      &mapping,
                 const typename Triangulation<dim,spacedim>::cell_iterator &cell,
                 const Quadrature<dim>                            &quadrature,
                 const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
-                const typename Mapping<dim,spacedim>::InternalDataBase &fe_data,
+                const typename FiniteElement<dim,spacedim>::InternalDataBase &fe_data,
                 const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                 internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data,
                 const CellSimilarity::Similarity                  cell_similarity) const
@@ -989,7 +974,7 @@ fill_fe_face_values (const Mapping<dim,spacedim>                   &mapping,
                      const unsigned int                    face_no,
                      const Quadrature<dim-1>              &quadrature,
                      const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
-                     const typename Mapping<dim,spacedim>::InternalDataBase &fe_data,
+                     const typename FiniteElement<dim,spacedim>::InternalDataBase &fe_data,
                      const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                      internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
@@ -1010,7 +995,7 @@ fill_fe_subface_values (const Mapping<dim,spacedim>                      &mappin
                         const unsigned int                                sub_no,
                         const Quadrature<dim-1>                          &quadrature,
                         const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
-                        const typename Mapping<dim,spacedim>::InternalDataBase &fe_data,
+                        const typename FiniteElement<dim,spacedim>::InternalDataBase &fe_data,
                         const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                         internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
@@ -1031,7 +1016,7 @@ compute_fill_one_base (const Mapping<dim,spacedim>                      &mapping
                        const std::pair<unsigned int, unsigned int>       face_sub_no,
                        const Quadrature<dim_1>                          &quadrature,
                        const std::pair<const typename Mapping<dim,spacedim>::InternalDataBase *,
-                       const typename Mapping<dim,spacedim>::InternalDataBase *> mapping_and_fe_internal,
+                       const typename FiniteElement<dim,spacedim>::InternalDataBase *> mapping_and_fe_internal,
                        const unsigned int                                base_no,
                        const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
                        internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
@@ -1173,7 +1158,7 @@ compute_fill (const Mapping<dim,spacedim>                      &mapping,
               const Quadrature<dim_1>                          &quadrature,
               const CellSimilarity::Similarity                   cell_similarity,
               const typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
-              const typename Mapping<dim,spacedim>::InternalDataBase &fedata,
+              const typename FiniteElement<dim,spacedim>::InternalDataBase &fedata,
               const internal::FEValues::MappingRelatedData<dim,spacedim> &mapping_data,
               internal::FEValues::FiniteElementRelatedData<dim,spacedim> &output_data) const
 {
@@ -1203,7 +1188,7 @@ compute_fill (const Mapping<dim,spacedim>                      &mapping,
           for (unsigned int base_no=0; base_no<this->n_base_elements(); ++base_no)
             {
               // Pointer needed to get the update flags of the base element
-              typename Mapping<dim,spacedim>::InternalDataBase &
+              typename FiniteElement<dim,spacedim>::InternalDataBase &
               base_fe_data = fe_data.get_fe_data(base_no);
 
               // compute update flags ...
index de1051e3b40108ccabefcf099f3857772e2ef81a..40548fbae9a02ea58689a8b7a5630e030df38234 100644 (file)
@@ -2184,7 +2184,7 @@ FEValuesBase<dim,spacedim>::~FEValuesBase ()
   // have assumed ownership
   if (fe_data != 0)
     {
-      typename Mapping<dim,spacedim>::InternalDataBase *tmp1=fe_data;
+      typename FiniteElement<dim,spacedim>::InternalDataBase *tmp1=fe_data;
       fe_data=0;
       delete tmp1;
     }

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.