From 36a048d1827f4c55802e5ae1c6e91140a11c301e Mon Sep 17 00:00:00 2001 From: Luca Heltai Date: Sat, 5 Mar 2016 16:27:42 +0100 Subject: [PATCH] Respect face manifolds. --- source/fe/mapping_manifold.cc | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/source/fe/mapping_manifold.cc b/source/fe/mapping_manifold.cc index a047b3af4f..b71f22269b 100644 --- a/source/fe/mapping_manifold.cc +++ b/source/fe/mapping_manifold.cc @@ -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 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 const dealii::Manifold & - get_face_manifold(const typename dealii::Triangulation::cell_iterator &cell, + get_face_manifold(const MappingManifold &, + const typename dealii::Triangulation::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 (data_set, data, -- 2.39.5