]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Move get_default_linear_mapping() to mapping.h/cc. 11702/head
authorWolfgang Bangerth <bangerth@colostate.edu>
Sat, 6 Feb 2021 17:30:20 +0000 (10:30 -0700)
committerWolfgang Bangerth <bangerth@colostate.edu>
Sat, 6 Feb 2021 17:51:47 +0000 (10:51 -0700)
include/deal.II/fe/mapping.h
include/deal.II/grid/reference_cell.h
source/fe/mapping.cc
source/fe/mapping.inst.in
source/grid/reference_cell.cc
source/grid/reference_cell.inst.in

index f8c4e1de0d6b0ba54809ceacf2c08212bee68837..d74b0680a2fbdc6cb539187db9c7cc4113c39063 100644 (file)
@@ -1285,6 +1285,18 @@ public:
 };
 
 
+/**
+ * Return a default linear mapping that works for the given triangulation.
+ * Internally, this function calls the function above for the reference
+ * cell used by the given triangulation, assuming that the triangulation
+ * uses only a single cell type. If the triangulation uses mixed cell
+ * types, then this function will trigger an exception.
+ */
+template <int dim, int spacedim>
+const Mapping<dim, spacedim> &
+get_default_linear_mapping(const Triangulation<dim, spacedim> &triangulation);
+
+
 DEAL_II_NAMESPACE_CLOSE
 
 #endif
index 0aeba9a6d0744ec2f6a3ae53217461584ee48755..0287f1950595b088ff49c723f84f79dd639f717a 100644 (file)
@@ -29,9 +29,8 @@ DEAL_II_NAMESPACE_OPEN
 // Forward declarations
 #ifndef DOXYGEN
 template <int dim, int spacedim>
-class Triangulation;
-template <int dim, int spacedim>
 class Mapping;
+
 template <int dim>
 class Quadrature;
 #endif
@@ -750,16 +749,6 @@ ReferenceCell::unit_normal_vectors(const unsigned int face_no) const
   return {};
 }
 
-/**
- * Return a default linear mapping that works for the given triangulation.
- * Internally, this function calls the function above for the reference
- * cell used by the given triangulation, assuming that the triangulation
- * uses only a single cell type. If the triangulation uses mixed cell
- * types, then this function will trigger an exception.
- */
-template <int dim, int spacedim>
-const Mapping<dim, spacedim> &
-get_default_linear_mapping(const Triangulation<dim, spacedim> &triangulation);
 
 namespace internal
 {
index 6d1235403d518c2fc82d98477f648da0815fe91d..2776bd8112e075fa47c809dc1ae2a46c0e0f29d2 100644 (file)
@@ -233,7 +233,25 @@ Mapping<dim, spacedim>::InternalDataBase::memory_consumption() const
 }
 
 
-/*------------------------------ InternalData ------------------------------*/
+/* ------------------------------ Global functions ------------------------- */
+
+template <int dim, int spacedim>
+const Mapping<dim, spacedim> &
+get_default_linear_mapping(const Triangulation<dim, spacedim> &triangulation)
+{
+  const auto &reference_cells = triangulation.get_reference_cells();
+  Assert(reference_cells.size() == 1,
+         ExcMessage(
+           "This function can only work for triangulations that "
+           "use only a single cell type -- for example, only triangles "
+           "or only quadrilaterals. For mixed meshes, there is no "
+           "single linear mapping object that can be used for all "
+           "cells of the triangulation. The triangulation you are "
+           "passing to this function uses multiple cell types."));
+
+  return reference_cells.front()
+    .template get_default_linear_mapping<dim, spacedim>();
+}
 
 
 
index 74b10e6a1eb75113d465632dd4a81e2b8c2638b7..2b6a21b5a314fc90fad414d011e943a1c8f03ccf 100644 (file)
@@ -19,5 +19,10 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
   {
 #if deal_II_dimension <= deal_II_space_dimension
     template class Mapping<deal_II_dimension, deal_II_space_dimension>;
+
+    template const Mapping<deal_II_dimension, deal_II_space_dimension>
+      &get_default_linear_mapping(
+        const Triangulation<deal_II_dimension, deal_II_space_dimension>
+          &triangulation);
 #endif
   }
index c96a8fcb87508fc9ff27b312d2efd11c86e0fe2e..cc585cea2d4c6d066cc23389bf4616d5651202a3 100644 (file)
@@ -167,26 +167,6 @@ ReferenceCell::get_default_linear_mapping() const
 
 
 
-template <int dim, int spacedim>
-const Mapping<dim, spacedim> &
-get_default_linear_mapping(const Triangulation<dim, spacedim> &triangulation)
-{
-  const auto &reference_cells = triangulation.get_reference_cells();
-  Assert(reference_cells.size() == 1,
-         ExcMessage(
-           "This function can only work for triangulations that "
-           "use only a single cell type -- for example, only triangles "
-           "or only quadrilaterals. For mixed meshes, there is no "
-           "single linear mapping object that can be used for all "
-           "cells of the triangulation. The triangulation you are "
-           "passing to this function uses multiple cell types."));
-
-  return reference_cells.front()
-    .template get_default_linear_mapping<dim, spacedim>();
-}
-
-
-
 template <int dim>
 Quadrature<dim>
 ReferenceCell::get_gauss_type_quadrature(const unsigned n_points_1D) const
index 4c3defee4ded9f34ec6178fe09ea8bb904591be9..4605e56bf16e80da51747e7bbf2753b2cc98c3fc 100644 (file)
@@ -22,11 +22,6 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
 
     template const Mapping<deal_II_dimension, deal_II_space_dimension>
       &ReferenceCell::get_default_linear_mapping() const;
-
-    template const Mapping<deal_II_dimension, deal_II_space_dimension>
-      &get_default_linear_mapping(
-        const Triangulation<deal_II_dimension, deal_II_space_dimension>
-          &triangulation);
 #endif
   }
 

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.