]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Respect face manifolds.
authorLuca Heltai <luca.heltai@sissa.it>
Sat, 5 Mar 2016 15:27:42 +0000 (16:27 +0100)
committerLuca Heltai <luca.heltai@sissa.it>
Wed, 6 Apr 2016 11:00:14 +0000 (13:00 +0200)
source/fe/mapping_manifold.cc

index a047b3af4f2dd4a489785b795955f38f9c549192..b71f22269b8e46fa7e82e9b7da988645019a9e7e 100644 (file)
@@ -353,22 +353,26 @@ namespace internal
   {
     /**
      * Some specialization for face Manifolds. In one dimension, there
-     * are no Manifolds associated to faces.
+     * are no Manifolds associated to faces. The mapping argument is
+     * only used to help the compiler infer dim and spacedim.
      */
     template<int spacedim>
     const dealii::Manifold<1, spacedim> &
-    get_face_manifold(const typename dealii::Triangulation<1,spacedim>::cell_iterator &cell,
+    get_face_manifold(const MappingManifold<1,spacedim> &,
+                      const typename dealii::Triangulation<1,spacedim>::cell_iterator &cell,
                       const unsigned int &)
     {
       return cell->get_manifold();
     }
 
     /**
-     * Some specialization for face Manifolds.
+     * Some specialization for face Manifolds. The mapping argument is
+     * only used to help the compiler infer dim and spacedim.
      */
     template<int dim, int spacedim>
     const dealii::Manifold<dim,spacedim> &
-    get_face_manifold(const typename dealii::Triangulation<dim,spacedim>::cell_iterator &cell,
+    get_face_manifold(const MappingManifold<dim,spacedim> &,
+                      const typename dealii::Triangulation<dim,spacedim>::cell_iterator &cell,
                       const unsigned int face_no)
     {
       return cell->face(face_no)->get_manifold();
@@ -1257,10 +1261,7 @@ namespace internal
     {
       data.store_vertices(cell);
 
-      // This should really be get_face_manifold(cell, face_no), but
-      // that does not compile... At the moment this class works only
-      // on the cell manifold, and does not respect face manifolds.
-      data.manifold = &cell->get_manifold();
+      data.manifold = &get_face_manifold(mapping, cell, face_no);
 
       maybe_compute_q_points<dim,spacedim> (data_set,
                                             data,

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.