From 220cbccf67b5aec43201ce5729c9cb275ba3ad30 Mon Sep 17 00:00:00 2001
From: Peter Munch <peterrmuench@gmail.com>
Date: Thu, 9 Jul 2020 20:37:20 +0200
Subject: [PATCH] Implement FEInterfaceValues::get_mapping() and ::get_fe

---
 examples/step-12/step-12.cc              | 10 ++++----
 include/deal.II/fe/fe_interface_values.h | 30 ++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/examples/step-12/step-12.cc b/examples/step-12/step-12.cc
index fcec1e2c1f..bb0c680f1d 100644
--- a/examples/step-12/step-12.cc
+++ b/examples/step-12/step-12.cc
@@ -166,12 +166,10 @@ namespace Step12
                   scratch_data.fe_values.get_fe(),
                   scratch_data.fe_values.get_quadrature(),
                   scratch_data.fe_values.get_update_flags())
-      , fe_interface_values(
-          scratch_data.fe_values
-            .get_mapping(), // TODO: implement for fe_interface_values
-          scratch_data.fe_values.get_fe(),
-          scratch_data.fe_interface_values.get_quadrature(),
-          scratch_data.fe_interface_values.get_update_flags())
+      , fe_interface_values(scratch_data.fe_interface_values.get_mapping(),
+                            scratch_data.fe_interface_values.get_fe(),
+                            scratch_data.fe_interface_values.get_quadrature(),
+                            scratch_data.fe_interface_values.get_update_flags())
     {}
 
     FEValues<dim>          fe_values;
diff --git a/include/deal.II/fe/fe_interface_values.h b/include/deal.II/fe/fe_interface_values.h
index 7412b0a608..3d1a2b8c98 100644
--- a/include/deal.II/fe/fe_interface_values.h
+++ b/include/deal.II/fe/fe_interface_values.h
@@ -142,6 +142,18 @@ public:
   const FEFaceValuesBase<dim, spacedim> &
   get_fe_face_values(const unsigned int cell_index) const;
 
+  /**
+   * Constant reference to the selected mapping object.
+   */
+  const Mapping<dim, spacedim> &
+  get_mapping() const;
+
+  /**
+   * Constant reference to the selected finite element object.
+   */
+  const FiniteElement<dim, spacedim> &
+  get_fe() const;
+
   /**
    * Return a reference to the quadrature object in use.
    */
@@ -644,6 +656,24 @@ FEInterfaceValues<dim, spacedim>::get_normal_vectors() const
 
 
 
+template <int dim, int spacedim>
+const Mapping<dim, spacedim> &
+FEInterfaceValues<dim, spacedim>::get_mapping() const
+{
+  return internal_fe_face_values.get_mapping();
+}
+
+
+
+template <int dim, int spacedim>
+const FiniteElement<dim, spacedim> &
+FEInterfaceValues<dim, spacedim>::get_fe() const
+{
+  return internal_fe_face_values.get_fe();
+}
+
+
+
 template <int dim, int spacedim>
 const Quadrature<dim - 1> &
 FEInterfaceValues<dim, spacedim>::get_quadrature() const
-- 
2.39.5