]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Move the get_*mapping() functions into ReferenceCell::Type.
authorWolfgang Bangerth <bangerth@colostate.edu>
Fri, 22 Jan 2021 00:27:59 +0000 (17:27 -0700)
committerWolfgang Bangerth <bangerth@colostate.edu>
Thu, 28 Jan 2021 00:32:00 +0000 (17:32 -0700)
17 files changed:
include/deal.II/fe/fe_interface_values.h
include/deal.II/fe/fe_tools.templates.h
include/deal.II/fe/mapping_q1.h
include/deal.II/grid/grid_tools.h
include/deal.II/grid/grid_tools_cache.h
include/deal.II/grid/reference_cell.h
include/deal.II/numerics/error_estimator.templates.h
include/deal.II/numerics/vector_tools_constraints.h
include/deal.II/numerics/vector_tools_interpolate.templates.h
include/deal.II/particles/generators.h
source/fe/fe_values.cc
source/grid/reference_cell.cc
source/grid/reference_cell.inst.in
source/grid/tria.cc
source/grid/tria_accessor.cc
source/meshworker/scratch_data.cc
source/numerics/derivative_approximation.cc

index eb2bb05eb845c5f2651a46e08ca7ba0a38e8029f..d565602eee45bc9956c2ad392b10293dbdc039cd 100644 (file)
@@ -526,26 +526,26 @@ FEInterfaceValues<dim, spacedim>::FEInterfaceValues(
   const UpdateFlags                   update_flags)
   : n_quadrature_points(quadrature.size())
   , internal_fe_face_values(
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        fe.reference_cell_type()),
+      fe.reference_cell_type()
+        .template get_default_linear_mapping<dim, spacedim>(),
       fe,
       quadrature,
       update_flags)
   , internal_fe_subface_values(
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        fe.reference_cell_type()),
+      fe.reference_cell_type()
+        .template get_default_linear_mapping<dim, spacedim>(),
       fe,
       quadrature,
       update_flags)
   , internal_fe_face_values_neighbor(
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        fe.reference_cell_type()),
+      fe.reference_cell_type()
+        .template get_default_linear_mapping<dim, spacedim>(),
       fe,
       quadrature,
       update_flags)
   , internal_fe_subface_values_neighbor(
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        fe.reference_cell_type()),
+      fe.reference_cell_type()
+        .template get_default_linear_mapping<dim, spacedim>(),
       fe,
       quadrature,
       update_flags)
index 88c8c3049ac4474ed7dfd69579adeba94f62ab5c..4e3edf8a9274d875a8ccfa8f4807e0ac7f49c04f 100644 (file)
@@ -1608,8 +1608,7 @@ namespace FETools
     ReferenceCell::make_triangulation(reference_cell_type, tr);
 
     const auto &mapping =
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        reference_cell_type);
+      reference_cell_type.template get_default_linear_mapping<dim, spacedim>();
 
     // Choose a Gauss quadrature rule that is exact up to degree 2n-1
     const unsigned int degree =
@@ -1822,8 +1821,8 @@ namespace FETools
         const unsigned int degree = fe.degree;
 
         const auto &mapping =
-          ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-            reference_cell_type);
+          reference_cell_type
+            .template get_default_linear_mapping<dim, spacedim>();
         const auto &q_fine =
           ReferenceCell::get_gauss_type_quadrature<dim>(reference_cell_type,
                                                         degree + 1);
@@ -2291,8 +2290,8 @@ namespace FETools
                 q_points_coarse[q](j) = q_points_fine[q](j);
             Quadrature<dim> q_coarse(q_points_coarse, fine.get_JxW_values());
             FEValues<dim, spacedim> coarse(
-              ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-                coarse_cell->reference_cell_type()),
+              coarse_cell->reference_cell_type()
+                .template get_default_linear_mapping<dim, spacedim>(),
               fe,
               q_coarse,
               update_values);
index 266cc7739a145e329b95786c644f6b8aa11b7c22..d5f65cb854bf600051ca8cf4f3028c6c207fb3d0 100644 (file)
@@ -83,7 +83,9 @@ public:
  *
  * @note The use of this object should be avoided since it is only applicable
  *   in cases where a mesh consists exclusively of quadrilaterals or hexahedra.
- *   Use ReferenceCell::get_default_linear_mapping() instead.
+ *   Use
+ * `ReferenceCell::Type::get_hypercube<dim>().get_default_linear_mapping()`
+ *   instead.
  */
 template <int dim, int spacedim = dim>
 struct StaticMappingQ1
index 17661eeb38a5d50c186edd15617c779117418c42..8985886aac81d02ed6a4229fd1248552ec3fe4c9 100644 (file)
@@ -176,8 +176,8 @@ namespace GridTools
   double
   volume(const Triangulation<dim, spacedim> &tria,
          const Mapping<dim, spacedim> &      mapping =
-           ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-             ReferenceCell::Type::get_hypercube<dim>()));
+           ReferenceCell::Type::get_hypercube<dim>()
+             .template get_default_linear_mapping<dim, spacedim>());
 
   /**
    * Return an approximation of the diameter of the smallest active cell of a
@@ -194,8 +194,8 @@ namespace GridTools
   minimal_cell_diameter(
     const Triangulation<dim, spacedim> &triangulation,
     const Mapping<dim, spacedim> &      mapping =
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        ReferenceCell::Type::get_hypercube<dim>()));
+      ReferenceCell::Type::get_hypercube<dim>()
+        .template get_default_linear_mapping<dim, spacedim>());
 
   /**
    * Return an approximation of the diameter of the largest active cell of a
@@ -212,8 +212,8 @@ namespace GridTools
   maximal_cell_diameter(
     const Triangulation<dim, spacedim> &triangulation,
     const Mapping<dim, spacedim> &      mapping =
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        ReferenceCell::Type::get_hypercube<dim>()));
+      ReferenceCell::Type::get_hypercube<dim>()
+        .template get_default_linear_mapping<dim, spacedim>());
 
   /**
    * Given a list of vertices (typically obtained using
@@ -1044,8 +1044,8 @@ namespace GridTools
   extract_used_vertices(
     const Triangulation<dim, spacedim> &container,
     const Mapping<dim, spacedim> &      mapping =
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        ReferenceCell::Type::get_hypercube<dim>()));
+      ReferenceCell::Type::get_hypercube<dim>()
+        .template get_default_linear_mapping<dim, spacedim>());
 
   /**
    * Find and return the index of the closest vertex to a given point in the
@@ -1872,8 +1872,8 @@ namespace GridTools
     const typename Triangulation<dim, spacedim>::active_cell_iterator &cell,
     const Point<spacedim> &                                            position,
     const Mapping<dim, spacedim> &                                     mapping =
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        ReferenceCell::Type::get_hypercube<dim>()));
+      ReferenceCell::Type::get_hypercube<dim>()
+        .template get_default_linear_mapping<dim, spacedim>());
 
   /**
    * Compute a globally unique index for each vertex and hanging node
index 99112c91f14eb28b9e5d198f9edd716615f03e95..a5b48a8371ab9f45baae1148ed485a902264a5cc 100644 (file)
@@ -76,8 +76,8 @@ namespace GridTools
      */
     Cache(const Triangulation<dim, spacedim> &tria,
           const Mapping<dim, spacedim> &      mapping =
-            ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-              ReferenceCell::Type::get_hypercube<dim>()));
+            ReferenceCell::Type::get_hypercube<dim>()
+              .template get_default_linear_mapping<dim, spacedim>());
 
     /**
      * Destructor.
index 7bf0fadc60d6ed17311f114ba1bac834e9713a84..9c969b6cd4e55a9ef6bd8fd0bb63b5de0f9e9b85 100644 (file)
@@ -173,6 +173,34 @@ namespace ReferenceCell
     permute_according_orientation(const std::array<T, N> &vertices,
                                   const unsigned int      orientation) const;
 
+    /**
+     * Return a default mapping of degree @p degree matching the current
+     * reference cell. If this reference cell is a hypercube, then the returned
+     * mapping is a MappingQGeneric; otherwise, it is an object of type
+     * MappingFE initialized with Simplex::FE_P (if the reference cell is a
+     * triangle or tetrahedron), with Simplex::FE_PyramidP (if the reference
+     * cell is a pyramid), or with Simplex::FE_WedgeP (if the reference cell is
+     * a wedge).
+     */
+    template <int dim, int spacedim>
+    std::unique_ptr<Mapping<dim, spacedim>>
+    get_default_mapping(const unsigned int degree) const;
+
+    /**
+     * Return a default linear mapping matching the current reference cell.
+     * If this reference cell is a hypercube, then the returned mapping
+     * is a MappingQ1; otherwise, it is an object of type MappingFE
+     * initialized with Simplex::FE_P (if the reference cell is a triangle or
+     * tetrahedron), with Simplex::FE_PyramidP (if the reference cell is a
+     * pyramid), or with Simplex::FE_WedgeP (if the reference cell is a wedge).
+     * In other words, the term "linear" in the name of the function has to be
+     * understood as $d$-linear (i.e., bilinear or trilinear) for some of the
+     * coordinate directions.
+     */
+    template <int dim, int spacedim>
+    const Mapping<dim, spacedim> &
+    get_default_linear_mapping() const;
+
     /**
      * Return a text representation of the reference cell represented by the
      * current object.
@@ -693,33 +721,6 @@ namespace ReferenceCell
   make_triangulation(const Type &                  reference_cell,
                      Triangulation<dim, spacedim> &tria);
 
-  /**
-   * Return a default mapping of degree @ degree matching the given reference
-   * cell. If this reference cell is a hypercube, then the returned mapping is a
-   * MappingQGeneric; otherwise, it is an object of type MappingFE initialized
-   * with Simplex::FE_P (if the reference cell is a triangle and tetrahedron),
-   * with Simplex::FE_PyramidP (if the reference cell is a pyramid), or with
-   * Simplex::FE_WedgeP (if the reference cell is a wedge).
-   */
-  template <int dim, int spacedim>
-  std::unique_ptr<Mapping<dim, spacedim>>
-  get_default_mapping(const Type &reference_cell, const unsigned int degree);
-
-  /**
-   * Return a default linear mapping matching the given reference cell.
-   * If this reference cell is a hypercube, then the returned mapping
-   * is a MappingQ1; otherwise, it is an object of type MappingFE
-   * initialized with Simplex::FE_P (if the reference cell is a triangle and
-   * tetrahedron), with Simplex::FE_PyramidP (if the reference cell is a
-   * pyramid), or with Simplex::FE_WedgeP (if the reference cell is a wedge). In
-   * other words, the term "linear" in the name of the function has to be
-   * understood as $d$-linear (i.e., bilinear or trilinear) for some of the
-   * coordinate directions.
-   */
-  template <int dim, int spacedim>
-  const Mapping<dim, spacedim> &
-  get_default_linear_mapping(const Type &reference_cell);
-
   /**
    * Return a default linear mapping that works for the given triangulation.
    * Internally, this function calls the function above for the reference
index 9bf3177bbae30aefbbd2b60569707223c5a12255..05aa1373ef4e65d467c86c04549bc28edcea0798 100644 (file)
@@ -1055,7 +1055,7 @@ KellyErrorEstimator<dim, spacedim>::estimate(
   const types::material_id  material_id,
   const Strategy            strategy)
 {
-  estimate(ReferenceCell::get_default_linear_mapping<dim, spacedim>(
+  estimate(ReferenceCell::get_default_linear_mapping(
              dof_handler.get_triangulation()),
            dof_handler,
            quadrature,
@@ -1126,7 +1126,7 @@ KellyErrorEstimator<dim, spacedim>::estimate(
   const types::material_id  material_id,
   const Strategy            strategy)
 {
-  estimate(ReferenceCell::get_default_linear_mapping<dim, spacedim>(
+  estimate(ReferenceCell::get_default_linear_mapping(
              dof_handler.get_triangulation()),
            dof_handler,
            quadrature,
@@ -1372,7 +1372,7 @@ KellyErrorEstimator<dim, spacedim>::estimate(
   const types::material_id                material_id,
   const Strategy                          strategy)
 {
-  estimate(ReferenceCell::get_default_linear_mapping<dim, spacedim>(
+  estimate(ReferenceCell::get_default_linear_mapping(
              dof_handler.get_triangulation()),
            dof_handler,
            quadrature,
@@ -1407,7 +1407,7 @@ KellyErrorEstimator<dim, spacedim>::estimate(
   const types::material_id                material_id,
   const Strategy                          strategy)
 {
-  estimate(ReferenceCell::get_default_linear_mapping<dim, spacedim>(
+  estimate(ReferenceCell::get_default_linear_mapping(
              dof_handler.get_triangulation()),
            dof_handler,
            quadrature,
index 3d53a53a4b7ddac853f0aed0d6552c9429705fc0..b4e5c5a61ff1f4b2bcdbd7b5ee44fd42b84a59fb 100644 (file)
@@ -280,8 +280,8 @@ namespace VectorTools
       &                           function_map,
     AffineConstraints<double> &   constraints,
     const Mapping<dim, spacedim> &mapping =
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        ReferenceCell::Type::get_hypercube<dim>()));
+      ReferenceCell::Type::get_hypercube<dim>()
+        .template get_default_linear_mapping<dim, spacedim>());
 
   /**
    * This function does the same as the
@@ -303,8 +303,8 @@ namespace VectorTools
     const std::set<types::boundary_id> &boundary_ids,
     AffineConstraints<double> &         constraints,
     const Mapping<dim, spacedim> &      mapping =
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        ReferenceCell::Type::get_hypercube<dim>()));
+      ReferenceCell::Type::get_hypercube<dim>()
+        .template get_default_linear_mapping<dim, spacedim>());
 
   /**
    * Compute the constraints that correspond to boundary conditions of the
@@ -332,8 +332,8 @@ namespace VectorTools
       &                           function_map,
     AffineConstraints<double> &   constraints,
     const Mapping<dim, spacedim> &mapping =
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        ReferenceCell::Type::get_hypercube<dim>()));
+      ReferenceCell::Type::get_hypercube<dim>()
+        .template get_default_linear_mapping<dim, spacedim>());
 
   /**
    * Same as above for homogeneous tangential-flux constraints.
@@ -351,8 +351,8 @@ namespace VectorTools
     const std::set<types::boundary_id> &boundary_ids,
     AffineConstraints<double> &         constraints,
     const Mapping<dim, spacedim> &      mapping =
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        ReferenceCell::Type::get_hypercube<dim>()));
+      ReferenceCell::Type::get_hypercube<dim>()
+        .template get_default_linear_mapping<dim, spacedim>());
 
   //@}
 } // namespace VectorTools
index 80138b7c190156a340f620a618d1d7834a096dd2..429ae5d81b5f70446a36860aa8544f62d143af64 100644 (file)
@@ -653,8 +653,9 @@ namespace VectorTools
       {
         const Quadrature<dim> quad(fe.get_unit_support_points());
 
-        const auto map_q = ReferenceCell::get_default_mapping<dim, spacedim>(
-          fe.reference_cell_type(), fe.degree);
+        const auto map_q =
+          fe.reference_cell_type().template get_default_mapping<dim, spacedim>(
+            fe.degree);
         FEValues<dim, spacedim>              fe_v(*map_q,
                                      fe,
                                      quad,
index a5dd84ba75490c1ba945d3d6d70026032894a8f0..46ef1118b6590ec118a080b4fe9004a64dba5a4e 100644 (file)
@@ -69,8 +69,8 @@ namespace Particles
       const std::vector<Point<dim>> &     particle_reference_locations,
       ParticleHandler<dim, spacedim> &    particle_handler,
       const Mapping<dim, spacedim> &      mapping =
-        ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-          ReferenceCell::Type::get_hypercube<dim>()));
+        ReferenceCell::Type::get_hypercube<dim>()
+          .template get_default_linear_mapping<dim, spacedim>());
 
     /**
      * A function that generates one particle at a random location in cell @p cell and with
@@ -108,8 +108,8 @@ namespace Particles
       const types::particle_index                                        id,
       std::mt19937 &                random_number_generator,
       const Mapping<dim, spacedim> &mapping =
-        ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-          ReferenceCell::Type::get_hypercube<dim>()));
+        ReferenceCell::Type::get_hypercube<dim>()
+          .template get_default_linear_mapping<dim, spacedim>());
 
     /**
      * A function that generates particles randomly in the domain with a
@@ -164,8 +164,8 @@ namespace Particles
       const types::particle_index         n_particles_to_create,
       ParticleHandler<dim, spacedim> &    particle_handler,
       const Mapping<dim, spacedim> &      mapping =
-        ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-          ReferenceCell::Type::get_hypercube<dim>()),
+        ReferenceCell::Type::get_hypercube<dim>()
+          .template get_default_linear_mapping<dim, spacedim>(),
       const unsigned int random_number_seed = 5432);
 
 
@@ -211,8 +211,8 @@ namespace Particles
         &                             global_bounding_boxes,
       ParticleHandler<dim, spacedim> &particle_handler,
       const Mapping<dim, spacedim> &  mapping =
-        ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-          ReferenceCell::Type::get_hypercube<dim>()),
+        ReferenceCell::Type::get_hypercube<dim>()
+          .template get_default_linear_mapping<dim, spacedim>(),
       const ComponentMask &                   components = ComponentMask(),
       const std::vector<std::vector<double>> &properties = {});
 
@@ -249,16 +249,15 @@ namespace Particles
      */
     template <int dim, int spacedim = dim>
     void
-    quadrature_points(
-      const Triangulation<dim, spacedim> &triangulation,
-      const Quadrature<dim> &             quadrature,
-      const std::vector<std::vector<BoundingBox<spacedim>>>
-        &                             global_bounding_boxes,
-      ParticleHandler<dim, spacedim> &particle_handler,
-      const Mapping<dim, spacedim> &  mapping =
-        ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-          ReferenceCell::Type::get_hypercube<dim>()),
-      const std::vector<std::vector<double>> &properties = {});
+    quadrature_points(const Triangulation<dim, spacedim> &triangulation,
+                      const Quadrature<dim> &             quadrature,
+                      const std::vector<std::vector<BoundingBox<spacedim>>>
+                        &                             global_bounding_boxes,
+                      ParticleHandler<dim, spacedim> &particle_handler,
+                      const Mapping<dim, spacedim> &  mapping =
+                        ReferenceCell::Type::get_hypercube<dim>()
+                          .template get_default_linear_mapping<dim, spacedim>(),
+                      const std::vector<std::vector<double>> &properties = {});
   } // namespace Generators
 } // namespace Particles
 
index 4f5348d568f0d0efe308e4673f25d35060549a8d..d6f1b76beb9b442bc29d45b6e7ea10b729aba2b3 100644 (file)
@@ -4388,8 +4388,8 @@ FEValues<dim, spacedim>::FEValues(const FiniteElement<dim, spacedim> &fe,
       q.size(),
       fe.n_dofs_per_cell(),
       update_default,
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        fe.reference_cell_type()),
+      fe.reference_cell_type()
+        .template get_default_linear_mapping<dim, spacedim>(),
       fe)
   , quadrature(q)
 {
@@ -4714,8 +4714,8 @@ FEFaceValues<dim, spacedim>::FEFaceValues(
   : FEFaceValuesBase<dim, spacedim>(
       fe.n_dofs_per_cell(),
       update_flags,
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        fe.reference_cell_type()),
+      fe.reference_cell_type()
+        .template get_default_linear_mapping<dim, spacedim>(),
       fe,
       quadrature)
 {
@@ -4946,8 +4946,8 @@ FESubfaceValues<dim, spacedim>::FESubfaceValues(
   : FEFaceValuesBase<dim, spacedim>(
       fe.n_dofs_per_cell(),
       update_flags,
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        fe.reference_cell_type()),
+      fe.reference_cell_type()
+        .template get_default_linear_mapping<dim, spacedim>(),
       fe,
       quadrature)
 {
index 7eeebe9f0748de4a278ff90fd643a578de5c55bc..2b6c2a634e91d107f92b08bb7ad17b471e24635f 100644 (file)
@@ -179,19 +179,19 @@ namespace ReferenceCell
 
   template <int dim, int spacedim>
   std::unique_ptr<Mapping<dim, spacedim>>
-  get_default_mapping(const Type &reference_cell, const unsigned int degree)
+  Type::get_default_mapping(const unsigned int degree) const
   {
-    AssertDimension(dim, reference_cell.get_dimension());
+    AssertDimension(dim, get_dimension());
 
-    if (reference_cell == Type::get_hypercube<dim>())
+    if (*this == Type::get_hypercube<dim>())
       return std::make_unique<MappingQGeneric<dim, spacedim>>(degree);
-    else if (reference_cell == Type::Tri || reference_cell == Type::Tet)
+    else if (*this == Type::Tri || *this == Type::Tet)
       return std::make_unique<MappingFE<dim, spacedim>>(
         Simplex::FE_P<dim, spacedim>(degree));
-    else if (reference_cell == Type::Pyramid)
+    else if (*this == Type::Pyramid)
       return std::make_unique<MappingFE<dim, spacedim>>(
         Simplex::FE_PyramidP<dim, spacedim>(degree));
-    else if (reference_cell == Type::Wedge)
+    else if (*this == Type::Wedge)
       return std::make_unique<MappingFE<dim, spacedim>>(
         Simplex::FE_WedgeP<dim, spacedim>(degree));
     else
@@ -203,29 +203,30 @@ namespace ReferenceCell
   }
 
 
+
   template <int dim, int spacedim>
   const Mapping<dim, spacedim> &
-  get_default_linear_mapping(const Type &reference_cell)
+  Type::get_default_linear_mapping() const
   {
-    AssertDimension(dim, reference_cell.get_dimension());
+    AssertDimension(dim, get_dimension());
 
-    if (reference_cell == Type::get_hypercube<dim>())
+    if (*this == Type::get_hypercube<dim>())
       {
         return StaticMappingQ1<dim, spacedim>::mapping;
       }
-    else if (reference_cell == Type::Tri || reference_cell == Type::Tet)
+    else if (*this == Type::Tri || *this == Type::Tet)
       {
         static const MappingFE<dim, spacedim> mapping(
           Simplex::FE_P<dim, spacedim>(1));
         return mapping;
       }
-    else if (reference_cell == Type::Pyramid)
+    else if (*this == Type::Pyramid)
       {
         static const MappingFE<dim, spacedim> mapping(
           Simplex::FE_PyramidP<dim, spacedim>(1));
         return mapping;
       }
-    else if (reference_cell == Type::Wedge)
+    else if (*this == Type::Wedge)
       {
         static const MappingFE<dim, spacedim> mapping(
           Simplex::FE_WedgeP<dim, spacedim>(1));
@@ -255,8 +256,8 @@ namespace ReferenceCell
              "cells of the triangulation. The triangulation you are "
              "passing to this function uses multiple cell types."));
 
-    return get_default_linear_mapping<dim, spacedim>(
-      reference_cell_types.front());
+    return reference_cell_types.front()
+      .template get_default_linear_mapping<dim, spacedim>();
   }
 
 
index e5b8045cdf02cc720b6d558e8408f7eb35ab4441..b232ba517a5a07cab6a37b3b6e50a421c55cf4e6 100644 (file)
@@ -22,10 +22,10 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
 
     template std::unique_ptr<
       Mapping<deal_II_dimension, deal_II_space_dimension>>
-    get_default_mapping(const Type &reference_cell, const unsigned int degree);
+    Type::get_default_mapping(const unsigned int degree) const;
 
     template const Mapping<deal_II_dimension, deal_II_space_dimension>
-      &get_default_linear_mapping(const Type &reference_cell);
+      &Type::get_default_linear_mapping() const;
 
     template const Mapping<deal_II_dimension, deal_II_space_dimension>
       &get_default_linear_mapping(
index 89a6c94cfbf5d9a0acb4c79466acde0d08f0c449..955b9131ab66936b5bf57a643ea79161526a2783 100644 (file)
@@ -9611,9 +9611,9 @@ namespace internal
                         // to check it, transform to the unit cell
                         // with a linear mapping
                         const Point<dim> new_unit =
-                          ReferenceCell::get_default_linear_mapping<dim,
-                                                                    spacedim>(
-                            cell->reference_cell_type())
+                          cell->reference_cell_type()
+                            .template get_default_linear_mapping<dim,
+                                                                 spacedim>()
                             .transform_real_to_unit_cell(cell, new_bound);
 
                         // Now, we have to calculate the distance from
index bf6f98c58fa054eb4c94d5ffc553a811ad6e492f..4a79123df3d5b349857dbe15d89d5b8f3527151f 100644 (file)
@@ -1857,8 +1857,8 @@ CellAccessor<3>::point_inside(const Point<3> &p) const
     {
       const TriaRawIterator<CellAccessor<dim, spacedim>> cell_iterator(*this);
       return (GeometryInfo<dim>::is_inside_unit_cell(
-        ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-          reference_cell_type())
+        reference_cell_type()
+          .template get_default_linear_mapping<dim, spacedim>()
           .transform_real_to_unit_cell(cell_iterator, p)));
     }
   catch (const Mapping<dim, spacedim>::ExcTransformationFailed &)
index 5fbd2d20779f9da7114a68f4bb006f08c5591d5c..99e4138660cafb3da2cce4b8aaba70c9be44e10d 100644 (file)
@@ -74,8 +74,8 @@ namespace MeshWorker
     const UpdateFlags &                 update_flags,
     const Quadrature<dim - 1> &         face_quadrature,
     const UpdateFlags &                 face_update_flags)
-    : ScratchData(ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-                    fe.reference_cell_type()),
+    : ScratchData(fe.reference_cell_type()
+                    .template get_default_linear_mapping<dim, spacedim>(),
                   fe,
                   quadrature,
                   update_flags,
@@ -94,8 +94,8 @@ namespace MeshWorker
     const Quadrature<dim - 1> &         face_quadrature,
     const UpdateFlags &                 face_update_flags,
     const UpdateFlags &                 neighbor_face_update_flags)
-    : ScratchData(ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-                    fe.reference_cell_type()),
+    : ScratchData(fe.reference_cell_type()
+                    .template get_default_linear_mapping<dim, spacedim>(),
                   fe,
                   quadrature,
                   update_flags,
index 0af8face47b59baabb5805f289d0d0065e1b10b0..fb2e29998bfdc15daf8cf088285082b24e1ba795 100644 (file)
@@ -1101,8 +1101,8 @@ namespace DerivativeApproximation
   {
     // just call the respective function with Q1 mapping
     approximate_derivative_tensor(
-      ReferenceCell::get_default_linear_mapping<dim, spacedim>(
-        cell->reference_cell_type()),
+      cell->reference_cell_type()
+        .template get_default_linear_mapping<dim, spacedim>(),
       dof,
       solution,
       cell,

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.