]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Enable vectorization over quadrature points in whole FEPointEvaluation 15013/head
authorMaximilian Bergbauer <maximilian.bergbauer@tum.de>
Wed, 18 Jan 2023 11:55:42 +0000 (12:55 +0100)
committerMaximilian Bergbauer <bergbauer@lnm.mw.tum.de>
Tue, 18 Apr 2023 20:51:56 +0000 (22:51 +0200)
include/deal.II/base/signaling_nan.h
include/deal.II/matrix_free/fe_point_evaluation.h
tests/matrix_free/point_evaluation_22.cc [new file with mode: 0644]
tests/matrix_free/point_evaluation_22.output [new file with mode: 0644]

index bbd8d827f2c07438a8da3c95a87ea6923be0bfc8..d2e001ebb26dd330779d46303d6a7af04ebfcc0e 100644 (file)
@@ -82,6 +82,18 @@ namespace numbers
       };
 
 
+      template <typename T, size_t width>
+      struct NaNInitializer<VectorizedArray<T, width>>
+      {
+        static VectorizedArray<T, width>
+        invalid_element()
+        {
+          return VectorizedArray<T, width>(
+            NaNInitializer<T>::invalid_element());
+        }
+      };
+
+
       /**
        * A specialization of the general NaNInitializer class that provides a
        * function that returns a Tensor<1,dim> value whose components are
index 3b87de8f095bdf989b912e4ab1fa85d089d97b7c..4e07a9a447414ce8a6b1c21dce6f6c6df4b765d1 100644 (file)
@@ -40,6 +40,21 @@ namespace internal
 {
   namespace FEPointEvaluation
   {
+    template <typename Number>
+    struct VectorizedPointsTypeTraits
+    {
+      using value_type                    = VectorizedArray<Number>;
+      static constexpr std::size_t stride = value_type::size();
+    };
+
+    template <typename Number, std::size_t width_>
+    struct VectorizedPointsTypeTraits<VectorizedArray<Number, width_>>
+    {
+      using value_type                    = VectorizedArray<Number, width_>;
+      static constexpr std::size_t stride = 1;
+    };
+
+
     /**
      * Struct to distinguish between the value and gradient types of different
      * numbers of components used by the FlexibleEvaluator class.
@@ -47,8 +62,22 @@ namespace internal
     template <int dim, int n_components, typename Number>
     struct EvaluatorTypeTraits
     {
-      using value_type    = Tensor<1, n_components, Number>;
+      using ScalarNumber =
+        typename internal::VectorizedArrayTrait<Number>::value_type;
+      using VectorizedArrayType =
+        typename internal::FEPointEvaluation::VectorizedPointsTypeTraits<
+          Number>::value_type;
+      using value_type        = Tensor<1, n_components, Number>;
+      using scalar_value_type = Tensor<1, n_components, ScalarNumber>;
+      using vectorized_value_type =
+        Tensor<1, n_components, VectorizedArrayType>;
       using gradient_type = Tensor<1, n_components, Tensor<1, dim, Number>>;
+      using scalar_gradient_type =
+        Tensor<1, n_components, Tensor<1, dim, ScalarNumber>>;
+      using vectorized_gradient_type =
+        Tensor<1, n_components, Tensor<1, dim, VectorizedArrayType>>;
+      using interface_vectorized_gradient_type =
+        Tensor<1, dim, Tensor<1, n_components, VectorizedArrayType>>;
 
       static void
       read_value(const Number       vector_entry,
@@ -69,11 +98,9 @@ namespace internal
       }
 
       static void
-      set_gradient(
-        const Tensor<1, dim, Tensor<1, n_components, VectorizedArray<Number>>>
-          &                value,
-        const unsigned int vector_lane,
-        gradient_type &    result)
+      set_gradient(const interface_vectorized_gradient_type &value,
+                   const unsigned int                        vector_lane,
+                   scalar_gradient_type &                    result)
       {
         for (unsigned int i = 0; i < n_components; ++i)
           for (unsigned int d = 0; d < dim; ++d)
@@ -81,10 +108,19 @@ namespace internal
       }
 
       static void
-      get_gradient(
-        Tensor<1, dim, Tensor<1, n_components, VectorizedArray<Number>>> &value,
-        const unsigned int   vector_lane,
-        const gradient_type &result)
+      set_gradient(const interface_vectorized_gradient_type &value,
+                   const unsigned int,
+                   vectorized_gradient_type &result)
+      {
+        for (unsigned int i = 0; i < n_components; ++i)
+          for (unsigned int d = 0; d < dim; ++d)
+            result[i][d] = value[d][i];
+      }
+
+      static void
+      get_gradient(interface_vectorized_gradient_type &value,
+                   const unsigned int                  vector_lane,
+                   const scalar_gradient_type &        result)
       {
         for (unsigned int i = 0; i < n_components; ++i)
           for (unsigned int d = 0; d < dim; ++d)
@@ -92,45 +128,125 @@ namespace internal
       }
 
       static void
-      set_value(const Tensor<1, n_components, VectorizedArray<Number>> &value,
-                const unsigned int vector_lane,
-                value_type &       result)
+      get_gradient(interface_vectorized_gradient_type &value,
+                   const unsigned int,
+                   const vectorized_gradient_type &result)
+      {
+        for (unsigned int i = 0; i < n_components; ++i)
+          for (unsigned int d = 0; d < dim; ++d)
+            value[d][i] = result[i][d];
+      }
+
+      static void
+      set_zero_gradient(gradient_type &value, const unsigned int vector_lane)
+      {
+        for (unsigned int i = 0; i < n_components; ++i)
+          for (unsigned int d = 0; d < dim; ++d)
+            internal::VectorizedArrayTrait<Number>::get(value[i][d],
+                                                        vector_lane) = 0.;
+      }
+
+      static void
+      set_value(const vectorized_value_type &value,
+                const unsigned int           vector_lane,
+                scalar_value_type &          result)
       {
         for (unsigned int i = 0; i < n_components; ++i)
           result[i] = value[i][vector_lane];
       }
 
       static void
-      get_value(Tensor<1, n_components, VectorizedArray<Number>> &value,
-                const unsigned int                                vector_lane,
-                const value_type &                                result)
+      set_value(const vectorized_value_type &value,
+                const unsigned int,
+                vectorized_value_type &result)
+      {
+        result = value;
+      }
+
+      static void
+      get_value(vectorized_value_type &  value,
+                const unsigned int       vector_lane,
+                const scalar_value_type &result)
       {
         for (unsigned int i = 0; i < n_components; ++i)
           value[i][vector_lane] = result[i];
       }
 
-      template <typename Number2>
-      static Number2 &
-      access(Tensor<1, n_components, Number2> &value,
-             const unsigned int                component)
+      static void
+      get_value(vectorized_value_type &value,
+                const unsigned int,
+                const vectorized_value_type &result)
+      {
+        value = result;
+      }
+
+      static void
+      set_zero_value(value_type &value, const unsigned int vector_lane)
       {
-        return value[component];
+        for (unsigned int i = 0; i < n_components; ++i)
+          internal::VectorizedArrayTrait<Number>::get(value[i], vector_lane) =
+            0.;
       }
 
-      template <typename Number2>
-      static const Number2 &
-      access(const Tensor<1, n_components, Number2> &value,
-             const unsigned int                      component)
+      static void
+      access(value_type &        value,
+             const unsigned int  vector_lane,
+             const unsigned int  component,
+             const ScalarNumber &shape_value)
       {
-        return value[component];
+        internal::VectorizedArrayTrait<Number>::get(value[component],
+                                                    vector_lane) += shape_value;
+      }
+
+      static ScalarNumber
+      access(const value_type & value,
+             const unsigned int vector_lane,
+             const unsigned int component)
+      {
+        return internal::VectorizedArrayTrait<Number>::get(value[component],
+                                                           vector_lane);
+      }
+
+      static void
+      access(gradient_type &                     value,
+             const unsigned int                  vector_lane,
+             const unsigned int                  component,
+             const Tensor<1, dim, ScalarNumber> &shape_gradient)
+      {
+        for (unsigned int d = 0; d < dim; ++d)
+          internal::VectorizedArrayTrait<Number>::get(value[component][d],
+                                                      vector_lane) +=
+            shape_gradient[d];
+      }
+
+      static Tensor<1, dim, ScalarNumber>
+      access(const gradient_type &value,
+             const unsigned int   vector_lane,
+             const unsigned int   component)
+      {
+        Tensor<1, dim, ScalarNumber> result;
+        for (unsigned int d = 0; d < dim; ++d)
+          result[d] =
+            internal::VectorizedArrayTrait<Number>::get(value[component][d],
+                                                        vector_lane);
+        return result;
       }
     };
 
     template <int dim, typename Number>
     struct EvaluatorTypeTraits<dim, 1, Number>
     {
-      using value_type    = Number;
-      using gradient_type = Tensor<1, dim, Number>;
+      using ScalarNumber =
+        typename internal::VectorizedArrayTrait<Number>::value_type;
+      using VectorizedArrayType =
+        typename internal::FEPointEvaluation::VectorizedPointsTypeTraits<
+          Number>::value_type;
+      using value_type               = Number;
+      using scalar_value_type        = ScalarNumber;
+      using vectorized_value_type    = VectorizedArrayType;
+      using gradient_type            = Tensor<1, dim, Number>;
+      using scalar_gradient_type     = Tensor<1, dim, ScalarNumber>;
+      using vectorized_gradient_type = Tensor<1, dim, VectorizedArrayType>;
 
       static void
       read_value(const Number vector_entry,
@@ -149,59 +265,143 @@ namespace internal
       }
 
       static void
-      set_gradient(const Tensor<1, dim, VectorizedArray<Number>> &value,
-                   const unsigned int                             vector_lane,
-                   gradient_type &                                result)
+      set_gradient(const vectorized_gradient_type &value,
+                   const unsigned int              vector_lane,
+                   scalar_gradient_type &          result)
       {
         for (unsigned int d = 0; d < dim; ++d)
           result[d] = value[d][vector_lane];
       }
 
       static void
-      get_gradient(Tensor<1, dim, VectorizedArray<Number>> &value,
-                   const unsigned int                       vector_lane,
-                   const gradient_type &                    result)
+      set_gradient(const vectorized_gradient_type &value,
+                   const unsigned int,
+                   vectorized_gradient_type &result)
+      {
+        result = value;
+      }
+
+      static void
+      get_gradient(vectorized_gradient_type &  value,
+                   const unsigned int          vector_lane,
+                   const scalar_gradient_type &result)
       {
         for (unsigned int d = 0; d < dim; ++d)
           value[d][vector_lane] = result[d];
       }
 
       static void
-      set_value(const VectorizedArray<Number> &value,
-                const unsigned int             vector_lane,
-                value_type &                   result)
+      get_gradient(vectorized_gradient_type &value,
+                   const unsigned int,
+                   const vectorized_gradient_type &result)
+      {
+        value = result;
+      }
+
+      static void
+      set_zero_gradient(gradient_type &value, const unsigned int vector_lane)
+      {
+        for (unsigned int d = 0; d < dim; ++d)
+          internal::VectorizedArrayTrait<Number>::get(value[d], vector_lane) =
+            0.;
+      }
+
+      static void
+      set_value(const vectorized_value_type &value,
+                const unsigned int           vector_lane,
+                scalar_value_type &          result)
       {
         result = value[vector_lane];
       }
 
       static void
-      get_value(VectorizedArray<Number> &value,
+      set_value(const vectorized_value_type &value,
+                const unsigned int,
+                vectorized_value_type &result)
+      {
+        result = value;
+      }
+
+      static void
+      get_value(vectorized_value_type &  value,
                 const unsigned int       vector_lane,
-                const value_type &       result)
+                const scalar_value_type &result)
       {
         value[vector_lane] = result;
       }
 
-      template <typename Number2>
-      static Number2 &
-      access(Number2 &value, const unsigned int)
+      static void
+      get_value(vectorized_value_type &value,
+                const unsigned int,
+                const vectorized_value_type &result)
+      {
+        value = result;
+      }
+
+      static void
+      set_zero_value(value_type &value, const unsigned int vector_lane)
+      {
+        internal::VectorizedArrayTrait<Number>::get(value, vector_lane) = 0.;
+      }
+
+      static void
+      access(value_type &       value,
+             const unsigned int vector_lane,
+             const unsigned int,
+             const ScalarNumber &shape_value)
+      {
+        internal::VectorizedArrayTrait<Number>::get(value, vector_lane) +=
+          shape_value;
+      }
+
+      static ScalarNumber
+      access(const value_type & value,
+             const unsigned int vector_lane,
+             const unsigned int)
       {
-        return value;
+        return internal::VectorizedArrayTrait<Number>::get(value, vector_lane);
       }
 
-      template <typename Number2>
-      static const Number2 &
-      access(const Number2 &value, const unsigned int)
+      static void
+      access(gradient_type &    value,
+             const unsigned int vector_lane,
+             const unsigned int,
+             const scalar_gradient_type &shape_gradient)
       {
-        return value;
+        for (unsigned int d = 0; d < dim; ++d)
+          internal::VectorizedArrayTrait<Number>::get(value[d], vector_lane) +=
+            shape_gradient[d];
+      }
+
+      static scalar_gradient_type
+      access(const gradient_type &value,
+             const unsigned int   vector_lane,
+             const unsigned int)
+      {
+        scalar_gradient_type result;
+        for (unsigned int d = 0; d < dim; ++d)
+          result[d] =
+            internal::VectorizedArrayTrait<Number>::get(value[d], vector_lane);
+        return result;
       }
     };
 
     template <int dim, typename Number>
     struct EvaluatorTypeTraits<dim, dim, Number>
     {
-      using value_type    = Tensor<1, dim, Number>;
-      using gradient_type = Tensor<2, dim, Number>;
+      using ScalarNumber =
+        typename internal::VectorizedArrayTrait<Number>::value_type;
+      using VectorizedArrayType =
+        typename internal::FEPointEvaluation::VectorizedPointsTypeTraits<
+          Number>::value_type;
+      using value_type               = Tensor<1, dim, Number>;
+      using scalar_value_type        = Tensor<1, dim, ScalarNumber>;
+      using vectorized_value_type    = Tensor<1, dim, VectorizedArrayType>;
+      using gradient_type            = Tensor<2, dim, Number>;
+      using scalar_gradient_type     = Tensor<2, dim, ScalarNumber>;
+      using vectorized_gradient_type = Tensor<2, dim, VectorizedArrayType>;
+      using interface_vectorized_gradient_type =
+        Tensor<1, dim, Tensor<1, dim, VectorizedArrayType>>;
 
       static void
       read_value(const Number       vector_entry,
@@ -220,10 +420,9 @@ namespace internal
       }
 
       static void
-      set_gradient(
-        const Tensor<1, dim, Tensor<1, dim, VectorizedArray<Number>>> &value,
-        const unsigned int vector_lane,
-        gradient_type &    result)
+      set_gradient(const interface_vectorized_gradient_type &value,
+                   const unsigned int                        vector_lane,
+                   scalar_gradient_type &                    result)
       {
         for (unsigned int i = 0; i < dim; ++i)
           for (unsigned int d = 0; d < dim; ++d)
@@ -231,10 +430,19 @@ namespace internal
       }
 
       static void
-      get_gradient(
-        Tensor<1, dim, Tensor<1, dim, VectorizedArray<Number>>> &value,
-        const unsigned int                                       vector_lane,
-        const gradient_type &                                    result)
+      set_gradient(const interface_vectorized_gradient_type &value,
+                   const unsigned int,
+                   vectorized_gradient_type &result)
+      {
+        for (unsigned int i = 0; i < dim; ++i)
+          for (unsigned int d = 0; d < dim; ++d)
+            result[i][d] = value[d][i];
+      }
+
+      static void
+      get_gradient(interface_vectorized_gradient_type &value,
+                   const unsigned int                  vector_lane,
+                   const scalar_gradient_type &        result)
       {
         for (unsigned int i = 0; i < dim; ++i)
           for (unsigned int d = 0; d < dim; ++d)
@@ -242,53 +450,125 @@ namespace internal
       }
 
       static void
-      set_value(const Tensor<1, dim, VectorizedArray<Number>> &value,
-                const unsigned int                             vector_lane,
-                value_type &                                   result)
+      get_gradient(interface_vectorized_gradient_type &value,
+                   const unsigned int,
+                   const vectorized_gradient_type &result)
+      {
+        for (unsigned int i = 0; i < dim; ++i)
+          for (unsigned int d = 0; d < dim; ++d)
+            value[d][i] = result[i][d];
+      }
+
+      static void
+      set_zero_gradient(gradient_type &value, const unsigned int vector_lane)
+      {
+        for (unsigned int i = 0; i < dim; ++i)
+          for (unsigned int d = 0; d < dim; ++d)
+            internal::VectorizedArrayTrait<Number>::get(value[i][d],
+                                                        vector_lane) = 0.;
+      }
+
+      static void
+      set_value(const vectorized_value_type &value,
+                const unsigned int           vector_lane,
+                scalar_value_type &          result)
       {
         for (unsigned int i = 0; i < dim; ++i)
           result[i] = value[i][vector_lane];
       }
 
       static void
-      get_value(Tensor<1, dim, VectorizedArray<Number>> &value,
-                const unsigned int                       vector_lane,
-                const value_type &                       result)
+      set_value(const vectorized_value_type &value,
+                const unsigned int,
+                vectorized_value_type &result)
+      {
+        result = value;
+      }
+
+      static void
+      get_value(vectorized_value_type &  value,
+                const unsigned int       vector_lane,
+                const scalar_value_type &result)
       {
         for (unsigned int i = 0; i < dim; ++i)
           value[i][vector_lane] = result[i];
       }
 
-      static Number &
-      access(value_type &value, const unsigned int component)
+      static void
+      get_value(vectorized_value_type &value,
+                const unsigned int,
+                const vectorized_value_type &result)
       {
-        return value[component];
+        value = result;
       }
 
-      static const Number &
-      access(const value_type &value, const unsigned int component)
+      static void
+      set_zero_value(value_type &value, const unsigned int vector_lane)
       {
-        return value[component];
+        for (unsigned int i = 0; i < dim; ++i)
+          internal::VectorizedArrayTrait<Number>::get(value[i], vector_lane) =
+            0.;
       }
 
-      static Tensor<1, dim, Number> &
-      access(gradient_type &value, const unsigned int component)
+      static void
+      access(value_type &        value,
+             const unsigned int  vector_lane,
+             const unsigned int  component,
+             const ScalarNumber &shape_value)
       {
-        return value[component];
+        internal::VectorizedArrayTrait<Number>::get(value[component],
+                                                    vector_lane) += shape_value;
       }
 
-      static const Tensor<1, dim, Number> &
-      access(const gradient_type &value, const unsigned int component)
+      static ScalarNumber
+      access(const value_type & value,
+             const unsigned int vector_lane,
+             const unsigned int component)
       {
-        return value[component];
+        return internal::VectorizedArrayTrait<Number>::get(value[component],
+                                                           vector_lane);
+      }
+
+      static void
+      access(gradient_type &                     value,
+             const unsigned int                  vector_lane,
+             const unsigned int                  component,
+             const Tensor<1, dim, ScalarNumber> &shape_gradient)
+      {
+        for (unsigned int d = 0; d < dim; ++d)
+          internal::VectorizedArrayTrait<Number>::get(value[component][d],
+                                                      vector_lane) +=
+            shape_gradient[d];
+      }
+
+      static Tensor<1, dim, ScalarNumber>
+      access(const gradient_type &value,
+             const unsigned int   vector_lane,
+             const unsigned int   component)
+      {
+        Tensor<1, dim, ScalarNumber> result;
+        for (unsigned int d = 0; d < dim; ++d)
+          result[d] =
+            internal::VectorizedArrayTrait<Number>::get(value[component][d],
+                                                        vector_lane);
+        return result;
       }
     };
 
     template <typename Number>
     struct EvaluatorTypeTraits<1, 1, Number>
     {
-      using value_type    = Number;
-      using gradient_type = Tensor<1, 1, Number>;
+      using ScalarNumber =
+        typename internal::VectorizedArrayTrait<Number>::value_type;
+      using VectorizedArrayType =
+        typename internal::FEPointEvaluation::VectorizedPointsTypeTraits<
+          Number>::value_type;
+      using value_type               = Number;
+      using scalar_value_type        = ScalarNumber;
+      using vectorized_value_type    = VectorizedArrayType;
+      using gradient_type            = Tensor<1, 1, Number>;
+      using scalar_gradient_type     = Tensor<1, 1, ScalarNumber>;
+      using vectorized_gradient_type = Tensor<1, 1, VectorizedArrayType>;
 
       static void
       read_value(const Number vector_entry,
@@ -307,49 +587,118 @@ namespace internal
       }
 
       static void
-      set_gradient(const Tensor<1, 1, VectorizedArray<Number>> &value,
-                   const unsigned int                           vector_lane,
-                   gradient_type &                              result)
+      set_gradient(const vectorized_gradient_type &value,
+                   const unsigned int              vector_lane,
+                   scalar_gradient_type &          result)
       {
         result[0] = value[0][vector_lane];
       }
 
       static void
-      get_gradient(Tensor<1, 1, VectorizedArray<Number>> &value,
-                   const unsigned int                     vector_lane,
-                   const gradient_type &                  result)
+      set_gradient(const vectorized_gradient_type &value,
+                   const unsigned int,
+                   vectorized_gradient_type &result)
+      {
+        result = value;
+      }
+
+      static void
+      get_gradient(vectorized_gradient_type &  value,
+                   const unsigned int          vector_lane,
+                   const scalar_gradient_type &result)
       {
         value[0][vector_lane] = result[0];
       }
 
       static void
-      set_value(const VectorizedArray<Number> &value,
-                const unsigned int             vector_lane,
-                value_type &                   result)
+      get_gradient(vectorized_gradient_type &value,
+                   const unsigned int,
+                   const vectorized_gradient_type &result)
+      {
+        value = result;
+      }
+
+      static void
+      set_zero_gradient(gradient_type &value, const unsigned int vector_lane)
+      {
+        internal::VectorizedArrayTrait<Number>::get(value[0], vector_lane) = 0.;
+      }
+
+      static void
+      set_value(const vectorized_value_type &value,
+                const unsigned int           vector_lane,
+                scalar_value_type &          result)
       {
         result = value[vector_lane];
       }
 
       static void
-      get_value(VectorizedArray<Number> &value,
+      set_value(const vectorized_value_type &value,
+                const unsigned int,
+                vectorized_value_type &result)
+      {
+        result = value;
+      }
+
+      static void
+      get_value(vectorized_value_type &  value,
                 const unsigned int       vector_lane,
-                const value_type &       result)
+                const scalar_value_type &result)
       {
         value[vector_lane] = result;
       }
 
-      template <typename Number2>
-      static Number2 &
-      access(Number2 &value, const unsigned int)
+      static void
+      get_value(vectorized_value_type &value,
+                const unsigned int,
+                const vectorized_value_type &result)
+      {
+        value = result;
+      }
+
+      static void
+      set_zero_value(value_type &value, const unsigned int vector_lane)
+      {
+        internal::VectorizedArrayTrait<Number>::get(value, vector_lane) = 0.;
+      }
+
+      static void
+      access(value_type &       value,
+             const unsigned int vector_lane,
+             const unsigned int,
+             const ScalarNumber &shape_value)
+      {
+        internal::VectorizedArrayTrait<Number>::get(value, vector_lane) +=
+          shape_value;
+      }
+
+      static ScalarNumber
+      access(const value_type & value,
+             const unsigned int vector_lane,
+             const unsigned int)
       {
-        return value;
+        return internal::VectorizedArrayTrait<Number>::get(value, vector_lane);
       }
 
-      template <typename Number2>
-      static const Number2 &
-      access(const Number2 &value, const unsigned int)
+      static void
+      access(gradient_type &    value,
+             const unsigned int vector_lane,
+             const unsigned int,
+             const scalar_gradient_type &shape_gradient)
       {
-        return value;
+        internal::VectorizedArrayTrait<Number>::get(value[0], vector_lane) +=
+          shape_gradient[0];
+      }
+
+      static scalar_gradient_type
+      access(const gradient_type &value,
+             const unsigned int   vector_lane,
+             const unsigned int)
+      {
+        scalar_gradient_type result;
+        result[0] =
+          internal::VectorizedArrayTrait<Number>::get(value[0], vector_lane);
+        return result;
       }
     };
 
@@ -412,10 +761,17 @@ public:
 
   using number_type = Number;
 
-  using value_type = typename internal::FEPointEvaluation::
-    EvaluatorTypeTraits<dim, n_components, Number>::value_type;
-  using gradient_type = typename internal::FEPointEvaluation::
-    EvaluatorTypeTraits<dim, n_components, Number>::gradient_type;
+  using ScalarNumber =
+    typename internal::VectorizedArrayTrait<Number>::value_type;
+  using VectorizedArrayType =
+    typename internal::FEPointEvaluation::VectorizedPointsTypeTraits<
+      Number>::value_type;
+  using ETT = typename internal::FEPointEvaluation::
+    EvaluatorTypeTraits<dim, n_components, Number>;
+  using value_type            = typename ETT::value_type;
+  using scalar_value_type     = typename ETT::scalar_value_type;
+  using vectorized_value_type = typename ETT::vectorized_value_type;
+  using gradient_type         = typename ETT::gradient_type;
 
   /**
    * Constructor.
@@ -523,7 +879,7 @@ public:
    * evaluated at the points.
    */
   void
-  evaluate(const ArrayView<const Number> &         solution_values,
+  evaluate(const ArrayView<const ScalarNumber> &   solution_values,
            const EvaluationFlags::EvaluationFlags &evaluation_flags);
 
   /**
@@ -550,7 +906,7 @@ public:
    *
    */
   void
-  integrate(const ArrayView<Number> &               solution_values,
+  integrate(const ArrayView<ScalarNumber> &         solution_values,
             const EvaluationFlags::EvaluationFlags &integration_flags);
 
   /**
@@ -614,7 +970,7 @@ public:
    * given point index. Prerequisite: This class needs to be constructed with
    * UpdateFlags containing `update_jacobian`.
    */
-  DerivativeForm<1, dim, spacedim>
+  DerivativeForm<1, dim, spacedim, Number>
   jacobian(const unsigned int point_index) const;
 
   /**
@@ -623,7 +979,7 @@ public:
    * constructed with UpdateFlags containing `update_inverse_jacobian` or
    * `update_gradients`.
    */
-  DerivativeForm<1, spacedim, dim>
+  DerivativeForm<1, spacedim, dim, Number>
   inverse_jacobian(const unsigned int point_index) const;
 
   /**
@@ -639,21 +995,21 @@ public:
    * this function needs to be constructed with UpdateFlags containing
    * `update_normal_vectors`.
    */
-  Tensor<1, spacedim>
+  Tensor<1, spacedim, Number>
   normal_vector(const unsigned int point_index) const;
 
   /**
    * Return the position in real coordinates of the given point index among
    * the points passed to reinit().
    */
-  Point<spacedim>
+  Point<spacedim, Number>
   real_point(const unsigned int point_index) const;
 
   /**
    * Return the position in unit/reference coordinates of the given point
    * index, i.e., the respective point passed to the reinit() function.
    */
-  Point<dim>
+  Point<dim, Number>
   unit_point(const unsigned int point_index) const;
 
   /**
@@ -684,11 +1040,44 @@ private:
   void
   do_reinit();
 
+  /**
+   * Fast path of the evaluate function.
+   */
+  void
+  evaluate_fast(const ArrayView<const ScalarNumber> &   solution_values,
+                const EvaluationFlags::EvaluationFlags &evaluation_flags);
+
+  /**
+   * Slow path of the evaluate function using FEValues.
+   */
+  void
+  evaluate_slow(const ArrayView<const ScalarNumber> &   solution_values,
+                const EvaluationFlags::EvaluationFlags &evaluation_flags);
+
+  /**
+   * Fast path of the integrate function.
+   */
+  void
+  integrate_fast(const ArrayView<ScalarNumber> &         solution_values,
+                 const EvaluationFlags::EvaluationFlags &integration_flags);
+
+  /**
+   * Slow path of the integrate function using FEValues.
+   */
+  void
+  integrate_slow(const ArrayView<ScalarNumber> &         solution_values,
+                 const EvaluationFlags::EvaluationFlags &integration_flags);
+
   /**
    * Number of quadrature points of the current cell/face.
    */
   const unsigned int n_q_points;
 
+  /**
+   * Number of active quadrature points of the last quadrature point batch.
+   */
+  const unsigned int n_filled_lanes_last_batch;
+
   /**
    * Pointer to the Mapping object passed to the constructor.
    */
@@ -719,22 +1108,19 @@ private:
   /**
    * Temporary array to store the `solution_values` passed to the evaluate()
    * function in a format compatible with the tensor product evaluators. For
-   * vector-valued setups, this array uses a `Tensor<1, n_components>` type to
-   * collect the unknowns for a particular basis function.
+   * vector-valued setups, this array uses a `Tensor<1, n_components,
+   * ScalarNumber>` type to collect the unknowns for a particular basis
+   * function.
    */
-  std::vector<value_type> solution_renumbered;
+  std::vector<scalar_value_type> solution_renumbered;
 
   /**
    * Temporary array to store a vectorized version of the `solution_values`
    * computed during `integrate()` in a format compatible with the tensor
    * product evaluators. For vector-valued setups, this array uses a
-   * `Tensor<1, n_components, VectorizedArray<Number>>` format.
+   * `Tensor<1, n_components, VectorizedArrayType>` format.
    */
-  AlignedVector<typename internal::FEPointEvaluation::EvaluatorTypeTraits<
-    dim,
-    n_components,
-    VectorizedArray<Number>>::value_type>
-    solution_renumbered_vectorized;
+  AlignedVector<vectorized_value_type> solution_renumbered_vectorized;
 
   /**
    * Temporary array to store the values at the points.
@@ -821,7 +1207,7 @@ private:
    * Vector containing tensor product shape functions evaluated (during
    * reinit()) at the vectorized unit points.
    */
-  AlignedVector<dealii::ndarray<VectorizedArray<Number>, 2, dim>> shapes;
+  AlignedVector<dealii::ndarray<VectorizedArrayType, 2, dim>> shapes;
 };
 
 // ----------------------- template and inline function ----------------------
@@ -834,6 +1220,7 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::FEPointEvaluation(
   const UpdateFlags         update_flags,
   const unsigned int        first_selected_component)
   : n_q_points(numbers::invalid_unsigned_int)
+  , n_filled_lanes_last_batch(numbers::invalid_unsigned_int)
   , mapping(&mapping)
   , fe(&fe)
   , update_flags(update_flags)
@@ -856,6 +1243,7 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::FEPointEvaluation(
   const FiniteElement<dim> &               fe,
   const unsigned int                       first_selected_component)
   : n_q_points(numbers::invalid_unsigned_int)
+  , n_filled_lanes_last_batch(numbers::invalid_unsigned_int)
   , mapping(&mapping_info.get_mapping())
   , fe(&fe)
   , update_flags(mapping_info.get_update_flags())
@@ -875,6 +1263,7 @@ template <int n_components_, int dim, int spacedim, typename Number>
 FEPointEvaluation<n_components_, dim, spacedim, Number>::FEPointEvaluation(
   FEPointEvaluation<n_components_, dim, spacedim, Number> &other) noexcept
   : n_q_points(other.n_q_points)
+  , n_filled_lanes_last_batch(numbers::invalid_unsigned_int)
   , mapping(other.mapping)
   , fe(other.fe)
   , poly(other.poly)
@@ -913,6 +1302,7 @@ template <int n_components_, int dim, int spacedim, typename Number>
 FEPointEvaluation<n_components_, dim, spacedim, Number>::FEPointEvaluation(
   FEPointEvaluation<n_components_, dim, spacedim, Number> &&other) noexcept
   : n_q_points(other.n_q_points)
+  , n_filled_lanes_last_batch(numbers::invalid_unsigned_int)
   , mapping(other.mapping)
   , fe(other.fe)
   , poly(other.poly)
@@ -1095,7 +1485,23 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::do_reinit()
   const auto unit_points =
     mapping_info->get_unit_points(current_cell_index, current_face_number);
 
-  const_cast<unsigned int &>(n_q_points) = unit_points.size();
+  const unsigned int n_q_points_unvectorized = unit_points.size();
+
+  if (std::is_same<ScalarNumber, Number>::value)
+    {
+      const_cast<unsigned int &>(n_q_points) = unit_points.size();
+    }
+  else
+    {
+      const unsigned int n_lanes =
+        internal::VectorizedArrayTrait<VectorizedArrayType>::width;
+      const_cast<unsigned int &>(n_filled_lanes_last_batch) =
+        n_q_points_unvectorized % n_lanes;
+      const_cast<unsigned int &>(n_q_points) =
+        n_q_points_unvectorized / n_lanes;
+      if (n_filled_lanes_last_batch > 0)
+        ++const_cast<unsigned int &>(n_q_points);
+    }
 
   if (update_flags & update_values)
     values.resize(n_q_points, numbers::signaling_nan<value_type>());
@@ -1105,7 +1511,7 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::do_reinit()
   if (!polynomials_are_hat_functions)
     {
       const std::size_t n_points = unit_points.size();
-      const std::size_t n_lanes  = VectorizedArray<Number>::size();
+      const std::size_t n_lanes  = VectorizedArrayType::size();
       const std::size_t n_batches =
         n_points / n_lanes + (n_points % n_lanes > 0 ? 1 : 0);
       const std::size_t n_shapes = poly.size();
@@ -1113,7 +1519,7 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::do_reinit()
       for (unsigned int i = 0, qb = 0; i < n_points; i += n_lanes, ++qb)
         {
           // convert to vectorized format
-          Point<dim, VectorizedArray<Number>> vectorized_points;
+          Point<dim, VectorizedArrayType> vectorized_points;
           for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j)
             for (unsigned int d = 0; d < dim; ++d)
               vectorized_points[d][j] = unit_points[i + j][d];
@@ -1131,11 +1537,215 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::do_reinit()
 
 
 
+template <int n_components, int dim, int spacedim, typename Number>
+inline void
+FEPointEvaluation<n_components, dim, spacedim, Number>::evaluate_fast(
+  const ArrayView<const ScalarNumber> &   solution_values,
+  const EvaluationFlags::EvaluationFlags &evaluation_flags)
+{
+  // fast path with tensor product evaluation
+  if (solution_renumbered.size() != dofs_per_component)
+    solution_renumbered.resize(dofs_per_component);
+  for (unsigned int comp = 0; comp < n_components; ++comp)
+    for (unsigned int i = 0; i < dofs_per_component; ++i)
+      internal::FEPointEvaluation::
+        EvaluatorTypeTraits<dim, n_components, ScalarNumber>::read_value(
+          solution_values[renumber[(component_in_base_element + comp) *
+                                     dofs_per_component +
+                                   i]],
+          comp,
+          solution_renumbered[i]);
+
+  // unit gradients are currently only implemented with the fast tensor
+  // path
+  unit_gradients.resize(n_q_points, numbers::signaling_nan<gradient_type>());
+
+  const auto unit_points =
+    mapping_info->get_unit_points(current_cell_index, current_face_number);
+  const auto &mapping_data =
+    mapping_info->get_mapping_data(current_cell_index, current_face_number);
+
+  const std::size_t n_points = unit_points.size();
+  const std::size_t n_lanes =
+    internal::VectorizedArrayTrait<VectorizedArrayType>::width;
+  const std::size_t stride =
+    internal::FEPointEvaluation::VectorizedPointsTypeTraits<Number>::stride;
+
+  // loop over quadrature batches qb / points q
+  for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
+    {
+      // compute
+      const unsigned int n_shapes     = poly.size();
+      const auto         val_and_grad = [&]() {
+        if (polynomials_are_hat_functions)
+          {
+            // convert quadrature points to vectorized format
+            Point<dim, VectorizedArrayType> vectorized_points;
+            for (unsigned int v = 0; v < n_lanes && q + v < n_points; ++v)
+              for (unsigned int d = 0; d < dim; ++d)
+                vectorized_points[d][v] = unit_points[q + v][d];
+
+            return internal::evaluate_tensor_product_value_and_gradient_linear(
+              poly, solution_renumbered, vectorized_points);
+          }
+        else
+          return internal::evaluate_tensor_product_value_and_gradient_shapes<
+            dim,
+            scalar_value_type,
+            VectorizedArrayType>(make_array_view(shapes.begin() + qb * n_shapes,
+                                                 shapes.begin() +
+                                                   (qb * n_shapes + n_shapes)),
+                                 poly.size(),
+                                 solution_renumbered);
+      }();
+
+      if (evaluation_flags & EvaluationFlags::values)
+        {
+          for (unsigned int v = 0; v < stride && q + v < n_points; ++v)
+            internal::FEPointEvaluation::
+              EvaluatorTypeTraits<dim, n_components, Number>::set_value(
+                val_and_grad.first, v, values[qb * stride + v]);
+        }
+      if (evaluation_flags & EvaluationFlags::gradients)
+        {
+          Assert(update_flags & update_gradients ||
+                   update_flags & update_inverse_jacobians,
+                 ExcNotInitialized());
+          if (std::is_same<Number, ScalarNumber>::value)
+            {
+              // convert back to standard format
+              for (unsigned int v = 0; v < n_lanes && q + v < n_points; ++v)
+                {
+                  internal::FEPointEvaluation::EvaluatorTypeTraits<
+                    dim,
+                    n_components,
+                    Number>::set_gradient(val_and_grad.second,
+                                          v,
+                                          unit_gradients[q + v]);
+                  gradients[q + v] = apply_transformation(
+                    mapping_data.inverse_jacobians[q + v].transpose(),
+                    unit_gradients[q + v]);
+                }
+            }
+          else
+            {
+              // convert to vectorized format
+              DerivativeForm<1, spacedim, dim, Number>
+                vectorized_inverse_transposed_jacobians;
+              for (unsigned int v = 0; v < n_lanes && q + v < n_points; ++v)
+                for (unsigned int d = 0; d < dim; ++d)
+                  for (unsigned int s = 0; s < spacedim; ++s)
+                    internal::VectorizedArrayTrait<Number>::get(
+                      vectorized_inverse_transposed_jacobians[s][d], v) =
+                      mapping_data.inverse_jacobians[q + v].transpose()[s][d];
+
+              internal::FEPointEvaluation::
+                EvaluatorTypeTraits<dim, n_components, Number>::set_gradient(
+                  val_and_grad.second, 0, unit_gradients[qb]);
+              gradients[qb] =
+                apply_transformation(vectorized_inverse_transposed_jacobians,
+                                     unit_gradients[qb]);
+            }
+        }
+    }
+}
+
+
+
+template <int n_components, int dim, int spacedim, typename Number>
+inline void
+FEPointEvaluation<n_components, dim, spacedim, Number>::evaluate_slow(
+  const ArrayView<const ScalarNumber> &   solution_values,
+  const EvaluationFlags::EvaluationFlags &evaluation_flags)
+{
+  // slow path with FEValues
+  Assert(fe_values.get() != nullptr,
+         ExcMessage(
+           "Not initialized. Please call FEPointEvaluation::reinit()!"));
+
+  const std::size_t n_points = fe_values->get_quadrature().size();
+  const std::size_t n_lanes  = internal::VectorizedArrayTrait<Number>::width;
+
+  if (evaluation_flags & EvaluationFlags::values)
+    {
+      values.resize(n_q_points);
+      std::fill(values.begin(), values.end(), value_type());
+      for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i)
+        {
+          const ScalarNumber value = solution_values[i];
+          for (unsigned int d = 0; d < n_components; ++d)
+            if (nonzero_shape_function_component[i][d] &&
+                (fe->is_primitive(i) || fe->is_primitive()))
+              for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
+                for (unsigned int v = 0;
+                     v < (q + n_lanes > n_points ? n_filled_lanes_last_batch :
+                                                   n_lanes);
+                     ++v)
+                  internal::FEPointEvaluation::
+                    EvaluatorTypeTraits<dim, n_components, Number>::access(
+                      values[qb],
+                      v,
+                      d,
+                      fe_values->shape_value(i, q + v) * value);
+            else if (nonzero_shape_function_component[i][d])
+              for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
+                for (unsigned int v = 0;
+                     v < (q + n_lanes > n_points ? n_filled_lanes_last_batch :
+                                                   n_lanes);
+                     ++v)
+                  internal::FEPointEvaluation::
+                    EvaluatorTypeTraits<dim, n_components, Number>::access(
+                      values[qb],
+                      v,
+                      d,
+                      fe_values->shape_value_component(i, q + v, d) * value);
+        }
+    }
+
+  if (evaluation_flags & EvaluationFlags::gradients)
+    {
+      gradients.resize(n_q_points);
+      std::fill(gradients.begin(), gradients.end(), gradient_type());
+      for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i)
+        {
+          const ScalarNumber value = solution_values[i];
+          for (unsigned int d = 0; d < n_components; ++d)
+            if (nonzero_shape_function_component[i][d] &&
+                (fe->is_primitive(i) || fe->is_primitive()))
+              for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
+                for (unsigned int v = 0;
+                     v < (q + n_lanes > n_points ? n_filled_lanes_last_batch :
+                                                   n_lanes);
+                     ++v)
+                  internal::FEPointEvaluation::
+                    EvaluatorTypeTraits<dim, n_components, Number>::access(
+                      gradients[qb],
+                      v,
+                      d,
+                      fe_values->shape_grad(i, q + v) * value);
+            else if (nonzero_shape_function_component[i][d])
+              for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
+                for (unsigned int v = 0;
+                     v < (q + n_lanes > n_points ? n_filled_lanes_last_batch :
+                                                   n_lanes);
+                     ++v)
+                  internal::FEPointEvaluation::
+                    EvaluatorTypeTraits<dim, n_components, Number>::access(
+                      gradients[qb],
+                      v,
+                      d,
+                      fe_values->shape_grad_component(i, q + v, d) * value);
+        }
+    }
+}
+
+
+
 template <int n_components, int dim, int spacedim, typename Number>
 void
 FEPointEvaluation<n_components, dim, spacedim, Number>::evaluate(
-  const ArrayView<const Number> &         solution_values,
-  const EvaluationFlags::EvaluationFlags &evaluation_flag)
+  const ArrayView<const ScalarNumber> &   solution_values,
+  const EvaluationFlags::EvaluationFlags &evaluation_flags)
 {
   if (!is_reinitialized)
     reinit();
@@ -1143,143 +1753,254 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::evaluate(
   if (n_q_points == 0)
     return;
 
+  Assert(!(evaluation_flags & EvaluationFlags::hessians), ExcNotImplemented());
+
+  if (!((evaluation_flags & EvaluationFlags::values) ||
+        (evaluation_flags & EvaluationFlags::gradients))) // no evaluation flags
+    return;
+
   AssertDimension(solution_values.size(), fe->dofs_per_cell);
-  if (((evaluation_flag & EvaluationFlags::values) ||
-       (evaluation_flag & EvaluationFlags::gradients)) &&
-      fast_path)
+  if (fast_path)
+    evaluate_fast(solution_values, evaluation_flags);
+  else
+    evaluate_slow(solution_values, evaluation_flags);
+}
+
+
+
+template <int n_components, int dim, int spacedim, typename Number>
+inline void
+FEPointEvaluation<n_components, dim, spacedim, Number>::integrate_fast(
+  const ArrayView<ScalarNumber> &         solution_values,
+  const EvaluationFlags::EvaluationFlags &integration_flags)
+
+{
+  // fast path with tensor product integration
+  if (solution_renumbered_vectorized.size() != dofs_per_component)
+    solution_renumbered_vectorized.resize(dofs_per_component);
+  // zero content
+  solution_renumbered_vectorized.fill(
+    typename internal::FEPointEvaluation::EvaluatorTypeTraits<
+      dim,
+      n_components,
+      VectorizedArrayType>::value_type());
+
+  const auto unit_points =
+    mapping_info->get_unit_points(current_cell_index, current_face_number);
+  const auto &mapping_data =
+    mapping_info->get_mapping_data(current_cell_index, current_face_number);
+
+  const std::size_t n_points = unit_points.size();
+  const std::size_t n_lanes =
+    internal::VectorizedArrayTrait<VectorizedArrayType>::width;
+  const std::size_t stride =
+    internal::FEPointEvaluation::VectorizedPointsTypeTraits<Number>::stride;
+
+  // loop over quadrature batches qb / points q
+  for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
     {
-      // fast path with tensor product evaluation
-      if (solution_renumbered.size() != dofs_per_component)
-        solution_renumbered.resize(dofs_per_component);
-      for (unsigned int comp = 0; comp < n_components; ++comp)
-        for (unsigned int i = 0; i < dofs_per_component; ++i)
-          internal::FEPointEvaluation::
-            EvaluatorTypeTraits<dim, n_components, Number>::read_value(
-              solution_values[renumber[(component_in_base_element + comp) *
-                                         dofs_per_component +
-                                       i]],
-              comp,
-              solution_renumbered[i]);
-
-      // unit gradients are currently only implemented with the fast tensor
-      // path
-      unit_gradients.resize(n_q_points,
-                            numbers::signaling_nan<gradient_type>());
-
-      const auto unit_points =
-        mapping_info->get_unit_points(current_cell_index, current_face_number);
-      const auto &mapping_data =
-        mapping_info->get_mapping_data(current_cell_index, current_face_number);
+      const bool incomplete_last_batch =
+        (qb == (n_q_points - 1)) && (n_filled_lanes_last_batch > 0);
+
+      typename internal::ProductTypeNoPoint<value_type,
+                                            VectorizedArrayType>::type value =
+        {};
+      Tensor<1,
+             dim,
+             typename internal::ProductTypeNoPoint<value_type,
+                                                   VectorizedArrayType>::type>
+        gradient;
 
-      const std::size_t n_points = unit_points.size();
-      const std::size_t n_lanes  = VectorizedArray<Number>::size();
-      for (unsigned int i = 0, qb = 0; i < n_points; i += n_lanes, ++qb)
+      if (integration_flags & EvaluationFlags::values)
         {
-          // compute
-          const unsigned int n_shapes     = poly.size();
-          const auto         val_and_grad = [&]() {
-            if (polynomials_are_hat_functions)
-              {
-                // convert to vectorized format
-                Point<dim, VectorizedArray<Number>> vectorized_points;
-                for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j)
-                  for (unsigned int d = 0; d < dim; ++d)
-                    vectorized_points[d][j] = unit_points[i + j][d];
-
-                return internal::
-                  evaluate_tensor_product_value_and_gradient_linear(
-                    poly, solution_renumbered, vectorized_points);
-              }
-            else
-              return internal::
-                evaluate_tensor_product_value_and_gradient_shapes<
+          // zero out lanes of incomplete last quadrature point batch
+          if (incomplete_last_batch)
+            {
+              for (unsigned int v = n_filled_lanes_last_batch; v < n_lanes; ++v)
+                internal::FEPointEvaluation::EvaluatorTypeTraits<
                   dim,
-                  value_type,
-                  VectorizedArray<Number>>(
-                  make_array_view(shapes.begin() + qb * n_shapes,
-                                  shapes.begin() + (qb * n_shapes + n_shapes)),
-                  poly.size(),
-                  solution_renumbered);
-          }();
-
-          // convert back to standard format
-          if (evaluation_flag & EvaluationFlags::values)
-            for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j)
-              internal::FEPointEvaluation::
-                EvaluatorTypeTraits<dim, n_components, Number>::set_value(
-                  val_and_grad.first, j, values[i + j]);
-          if (evaluation_flag & EvaluationFlags::gradients)
+                  n_components,
+                  Number>::set_zero_value(values[qb], v);
+            }
+          for (unsigned int v = 0; v < stride && q + v < n_points; ++v)
+            internal::FEPointEvaluation::
+              EvaluatorTypeTraits<dim, n_components, Number>::get_value(
+                value, v, values[qb * stride + v]);
+        }
+      if (integration_flags & EvaluationFlags::gradients)
+        {
+          if (std::is_same<Number, ScalarNumber>::value)
             {
-              Assert(update_flags & update_gradients ||
-                       update_flags & update_inverse_jacobians,
-                     ExcNotInitialized());
-              for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j)
+              for (unsigned int v = 0; v < n_lanes && q + v < n_points; ++v)
                 {
+                  gradients[q + v] =
+                    apply_transformation(mapping_data.inverse_jacobians[q + v],
+                                         gradients[q + v]);
                   internal::FEPointEvaluation::EvaluatorTypeTraits<
                     dim,
                     n_components,
-                    Number>::set_gradient(val_and_grad.second,
-                                          j,
-                                          unit_gradients[i + j]);
-                  gradients[i + j] = apply_transformation(
-                    mapping_data.inverse_jacobians[i + j].transpose(),
-                    unit_gradients[i + j]);
+                    Number>::get_gradient(gradient, v, gradients[q + v]);
+                }
+            }
+          else
+            {
+              // convert to vectorized format
+              DerivativeForm<1, spacedim, dim, Number>
+                vectorized_inverse_jacobians;
+              for (unsigned int v = 0; v < n_lanes && q + v < n_points; ++v)
+                for (unsigned int d = 0; d < dim; ++d)
+                  for (unsigned int s = 0; s < spacedim; ++s)
+                    internal::VectorizedArrayTrait<Number>::get(
+                      vectorized_inverse_jacobians[s][d], v) =
+                      mapping_data.inverse_jacobians[q + v][s][d];
+
+              // zero out lanes of incomplete last quadrature point batch
+              if (incomplete_last_batch)
+                {
+                  for (unsigned int v = n_filled_lanes_last_batch; v < n_lanes;
+                       ++v)
+                    internal::FEPointEvaluation::EvaluatorTypeTraits<
+                      dim,
+                      n_components,
+                      Number>::set_zero_gradient(gradients[qb], v);
                 }
+
+              gradients[qb] = apply_transformation(vectorized_inverse_jacobians,
+                                                   gradients[qb]);
+              internal::FEPointEvaluation::
+                EvaluatorTypeTraits<dim, n_components, Number>::get_gradient(
+                  gradient, 0, gradients[qb]);
             }
         }
+
+      // compute
+      const unsigned int n_shapes = poly.size();
+      if (polynomials_are_hat_functions)
+        {
+          // convert to vectorized format
+          Point<dim, VectorizedArrayType> vectorized_points;
+          for (unsigned int j = 0; j < n_lanes && q + j < n_points; ++j)
+            for (unsigned int d = 0; d < dim; ++d)
+              vectorized_points[d][j] = unit_points[q + j][d];
+
+          internal::integrate_add_tensor_product_value_and_gradient_linear(
+            poly,
+            value,
+            gradient,
+            solution_renumbered_vectorized,
+            vectorized_points);
+        }
+      else
+        internal::integrate_add_tensor_product_value_and_gradient_shapes<
+          dim,
+          VectorizedArrayType,
+          typename internal::ProductTypeNoPoint<value_type,
+                                                VectorizedArrayType>::type>(
+          make_array_view(shapes.begin() + qb * n_shapes,
+                          shapes.begin() + (qb * n_shapes + n_shapes)),
+          n_shapes,
+          value,
+          gradient,
+          solution_renumbered_vectorized);
     }
-  else if ((evaluation_flag & EvaluationFlags::values) ||
-           (evaluation_flag & EvaluationFlags::gradients))
-    {
-      // slow path with FEValues
-      Assert(fe_values.get() != nullptr,
-             ExcMessage(
-               "Not initialized. Please call FEPointEvaluation::reinit()!"));
 
-      if (evaluation_flag & EvaluationFlags::values)
+  // add between the lanes and write into the result
+  std::fill(solution_values.begin(), solution_values.end(), ScalarNumber());
+  for (unsigned int comp = 0; comp < n_components; ++comp)
+    for (unsigned int i = 0; i < dofs_per_component; ++i)
+      {
+        VectorizedArrayType result;
+        internal::FEPointEvaluation::EvaluatorTypeTraits<
+          dim,
+          n_components,
+          VectorizedArrayType>::write_value(result,
+                                            comp,
+                                            solution_renumbered_vectorized[i]);
+        for (unsigned int lane = n_lanes / 2; lane > 0; lane /= 2)
+          for (unsigned int j = 0; j < lane; ++j)
+            result[j] += result[lane + j];
+        solution_values[renumber[comp * dofs_per_component + i]] = result[0];
+      }
+}
+
+
+
+template <int n_components, int dim, int spacedim, typename Number>
+inline void
+FEPointEvaluation<n_components, dim, spacedim, Number>::integrate_slow(
+  const ArrayView<ScalarNumber> &         solution_values,
+  const EvaluationFlags::EvaluationFlags &integration_flags)
+{
+  // slow path with FEValues
+  Assert(fe_values.get() != nullptr,
+         ExcMessage(
+           "Not initialized. Please call FEPointEvaluation::reinit()!"));
+  std::fill(solution_values.begin(), solution_values.end(), 0.0);
+
+  const std::size_t n_points = fe_values->get_quadrature().size();
+  const std::size_t n_lanes  = internal::VectorizedArrayTrait<Number>::width;
+
+  if (integration_flags & EvaluationFlags::values)
+    {
+      AssertIndexRange(n_q_points, values.size() + 1);
+      for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i)
         {
-          values.resize(n_q_points);
-          std::fill(values.begin(), values.end(), value_type());
-          for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i)
-            {
-              const Number value = solution_values[i];
-              for (unsigned int d = 0; d < n_components; ++d)
-                if (nonzero_shape_function_component[i][d] &&
-                    (fe->is_primitive(i) || fe->is_primitive()))
-                  for (unsigned int q = 0; q < n_q_points; ++q)
+          for (unsigned int d = 0; d < n_components; ++d)
+            if (nonzero_shape_function_component[i][d] &&
+                (fe->is_primitive(i) || fe->is_primitive()))
+              for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
+                for (unsigned int v = 0;
+                     v < (q + n_lanes > n_points ? n_filled_lanes_last_batch :
+                                                   n_lanes);
+                     ++v)
+                  solution_values[i] +=
+                    fe_values->shape_value(i, q + v) *
                     internal::FEPointEvaluation::
                       EvaluatorTypeTraits<dim, n_components, Number>::access(
-                        values[q], d) += fe_values->shape_value(i, q) * value;
-                else if (nonzero_shape_function_component[i][d])
-                  for (unsigned int q = 0; q < n_q_points; ++q)
+                        values[qb], v, d);
+            else if (nonzero_shape_function_component[i][d])
+              for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
+                for (unsigned int v = 0;
+                     v < (q + n_lanes > n_points ? n_filled_lanes_last_batch :
+                                                   n_lanes);
+                     ++v)
+                  solution_values[i] +=
+                    fe_values->shape_value_component(i, q + v, d) *
                     internal::FEPointEvaluation::
                       EvaluatorTypeTraits<dim, n_components, Number>::access(
-                        values[q], d) +=
-                      fe_values->shape_value_component(i, q, d) * value;
-            }
+                        values[qb], v, d);
         }
+    }
 
-      if (evaluation_flag & EvaluationFlags::gradients)
+  if (integration_flags & EvaluationFlags::gradients)
+    {
+      AssertIndexRange(n_q_points, gradients.size() + 1);
+      for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i)
         {
-          gradients.resize(n_q_points);
-          std::fill(gradients.begin(), gradients.end(), gradient_type());
-          for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i)
-            {
-              const Number value = solution_values[i];
-              for (unsigned int d = 0; d < n_components; ++d)
-                if (nonzero_shape_function_component[i][d] &&
-                    (fe->is_primitive(i) || fe->is_primitive()))
-                  for (unsigned int q = 0; q < n_q_points; ++q)
+          for (unsigned int d = 0; d < n_components; ++d)
+            if (nonzero_shape_function_component[i][d] &&
+                (fe->is_primitive(i) || fe->is_primitive()))
+              for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
+                for (unsigned int v = 0;
+                     v < (q + n_lanes > n_points ? n_filled_lanes_last_batch :
+                                                   n_lanes);
+                     ++v)
+                  solution_values[i] +=
+                    fe_values->shape_grad(i, q + v) *
                     internal::FEPointEvaluation::
                       EvaluatorTypeTraits<dim, n_components, Number>::access(
-                        gradients[q], d) += fe_values->shape_grad(i, q) * value;
-                else if (nonzero_shape_function_component[i][d])
-                  for (unsigned int q = 0; q < n_q_points; ++q)
+                        gradients[qb], v, d);
+            else if (nonzero_shape_function_component[i][d])
+              for (unsigned int qb = 0, q = 0; q < n_points; ++qb, q += n_lanes)
+                for (unsigned int v = 0;
+                     v < (q + n_lanes > n_points ? n_filled_lanes_last_batch :
+                                                   n_lanes);
+                     ++v)
+                  solution_values[i] +=
+                    fe_values->shape_grad_component(i, q + v, d) *
                     internal::FEPointEvaluation::
                       EvaluatorTypeTraits<dim, n_components, Number>::access(
-                        gradients[q], d) +=
-                      fe_values->shape_grad_component(i, q, d) * value;
-            }
+                        gradients[qb], v, d);
         }
     }
 }
@@ -1289,7 +2010,7 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::evaluate(
 template <int n_components, int dim, int spacedim, typename Number>
 void
 FEPointEvaluation<n_components, dim, spacedim, Number>::integrate(
-  const ArrayView<Number> &               solution_values,
+  const ArrayView<ScalarNumber> &         solution_values,
   const EvaluationFlags::EvaluationFlags &integration_flags)
 {
   if (!is_reinitialized)
@@ -1301,167 +2022,21 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::integrate(
       return;
     }
 
-  AssertDimension(solution_values.size(), fe->dofs_per_cell);
-  if (((integration_flags & EvaluationFlags::values) ||
-       (integration_flags & EvaluationFlags::gradients)) &&
-      fast_path)
-    {
-      // fast path with tensor product integration
+  Assert(!(integration_flags & EvaluationFlags::hessians), ExcNotImplemented());
 
-      if (integration_flags & EvaluationFlags::values)
-        AssertIndexRange(n_q_points, values.size() + 1);
-      if (integration_flags & EvaluationFlags::gradients)
-        AssertIndexRange(n_q_points, gradients.size() + 1);
-
-      if (solution_renumbered_vectorized.size() != dofs_per_component)
-        solution_renumbered_vectorized.resize(dofs_per_component);
-      // zero content
-      solution_renumbered_vectorized.fill(
-        typename internal::FEPointEvaluation::EvaluatorTypeTraits<
-          dim,
-          n_components,
-          VectorizedArray<Number>>::value_type());
-
-      const auto unit_points =
-        mapping_info->get_unit_points(current_cell_index, current_face_number);
-      const auto &mapping_data =
-        mapping_info->get_mapping_data(current_cell_index, current_face_number);
-
-      const std::size_t n_points = unit_points.size();
-      const std::size_t n_lanes  = VectorizedArray<Number>::size();
-      for (unsigned int i = 0, qb = 0; i < n_points; i += n_lanes, ++qb)
-        {
-          typename internal::ProductTypeNoPoint<value_type,
-                                                VectorizedArray<Number>>::type
-            value = {};
-          Tensor<1,
-                 dim,
-                 typename internal::ProductTypeNoPoint<
-                   value_type,
-                   VectorizedArray<Number>>::type>
-            gradient;
-
-          if (integration_flags & EvaluationFlags::values)
-            for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j)
-              internal::FEPointEvaluation::
-                EvaluatorTypeTraits<dim, n_components, Number>::get_value(
-                  value, j, values[i + j]);
-          if (integration_flags & EvaluationFlags::gradients)
-            for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j)
-              {
-                gradients[i + j] =
-                  apply_transformation(mapping_data.inverse_jacobians[i + j],
-                                       gradients[i + j]);
-                internal::FEPointEvaluation::
-                  EvaluatorTypeTraits<dim, n_components, Number>::get_gradient(
-                    gradient, j, gradients[i + j]);
-              }
-
-          // compute
-          const unsigned int n_shapes = poly.size();
-          if (polynomials_are_hat_functions)
-            {
-              // convert to vectorized format
-              Point<dim, VectorizedArray<Number>> vectorized_points;
-              for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j)
-                for (unsigned int d = 0; d < dim; ++d)
-                  vectorized_points[d][j] = unit_points[i + j][d];
-
-              internal::integrate_add_tensor_product_value_and_gradient_linear(
-                poly,
-                value,
-                gradient,
-                solution_renumbered_vectorized,
-                vectorized_points);
-            }
-          else
-            internal::integrate_add_tensor_product_value_and_gradient_shapes<
-              dim,
-              VectorizedArray<Number>,
-              typename internal::
-                ProductTypeNoPoint<value_type, VectorizedArray<Number>>::type>(
-              make_array_view(shapes.begin() + qb * n_shapes,
-                              shapes.begin() + (qb * n_shapes + n_shapes)),
-              n_shapes,
-              value,
-              gradient,
-              solution_renumbered_vectorized);
-        }
-
-      // add between the lanes and write into the result
-      std::fill(solution_values.begin(), solution_values.end(), Number());
-      for (unsigned int comp = 0; comp < n_components; ++comp)
-        for (unsigned int i = 0; i < dofs_per_component; ++i)
-          {
-            VectorizedArray<Number> result;
-            internal::FEPointEvaluation::
-              EvaluatorTypeTraits<dim, n_components, VectorizedArray<Number>>::
-                write_value(result, comp, solution_renumbered_vectorized[i]);
-            for (unsigned int lane = n_lanes / 2; lane > 0; lane /= 2)
-              for (unsigned int j = 0; j < lane; ++j)
-                result[j] += result[lane + j];
-            solution_values[renumber[comp * dofs_per_component + i]] =
-              result[0];
-          }
-    }
-  else if ((integration_flags & EvaluationFlags::values) ||
-           (integration_flags & EvaluationFlags::gradients))
+  if (!((integration_flags & EvaluationFlags::values) ||
+        (integration_flags &
+         EvaluationFlags::gradients))) // no integration flags
     {
-      // slow path with FEValues
-
-      Assert(fe_values.get() != nullptr,
-             ExcMessage(
-               "Not initialized. Please call FEPointEvaluation::reinit()!"));
       std::fill(solution_values.begin(), solution_values.end(), 0.0);
-
-      if (integration_flags & EvaluationFlags::values)
-        {
-          AssertIndexRange(n_q_points, values.size() + 1);
-          for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i)
-            {
-              for (unsigned int d = 0; d < n_components; ++d)
-                if (nonzero_shape_function_component[i][d] &&
-                    (fe->is_primitive(i) || fe->is_primitive()))
-                  for (unsigned int q = 0; q < n_q_points; ++q)
-                    solution_values[i] +=
-                      fe_values->shape_value(i, q) *
-                      internal::FEPointEvaluation::
-                        EvaluatorTypeTraits<dim, n_components, Number>::access(
-                          values[q], d);
-                else if (nonzero_shape_function_component[i][d])
-                  for (unsigned int q = 0; q < n_q_points; ++q)
-                    solution_values[i] +=
-                      fe_values->shape_value_component(i, q, d) *
-                      internal::FEPointEvaluation::
-                        EvaluatorTypeTraits<dim, n_components, Number>::access(
-                          values[q], d);
-            }
-        }
-
-      if (integration_flags & EvaluationFlags::gradients)
-        {
-          AssertIndexRange(n_q_points, gradients.size() + 1);
-          for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i)
-            {
-              for (unsigned int d = 0; d < n_components; ++d)
-                if (nonzero_shape_function_component[i][d] &&
-                    (fe->is_primitive(i) || fe->is_primitive()))
-                  for (unsigned int q = 0; q < n_q_points; ++q)
-                    solution_values[i] +=
-                      fe_values->shape_grad(i, q) *
-                      internal::FEPointEvaluation::
-                        EvaluatorTypeTraits<dim, n_components, Number>::access(
-                          gradients[q], d);
-                else if (nonzero_shape_function_component[i][d])
-                  for (unsigned int q = 0; q < n_q_points; ++q)
-                    solution_values[i] +=
-                      fe_values->shape_grad_component(i, q, d) *
-                      internal::FEPointEvaluation::
-                        EvaluatorTypeTraits<dim, n_components, Number>::access(
-                          gradients[q], d);
-            }
-        }
+      return;
     }
+
+  AssertDimension(solution_values.size(), fe->dofs_per_cell);
+  if (fast_path)
+    integrate_fast(solution_values, integration_flags);
+  else
+    integrate_slow(solution_values, integration_flags);
 }
 
 
@@ -1531,27 +2106,48 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::submit_gradient(
 
 
 template <int n_components, int dim, int spacedim, typename Number>
-inline DerivativeForm<1, dim, spacedim>
+inline DerivativeForm<1, dim, spacedim, Number>
 FEPointEvaluation<n_components, dim, spacedim, Number>::jacobian(
   const unsigned int point_index) const
 {
   const auto &mapping_data =
     mapping_info->get_mapping_data(current_cell_index, current_face_number);
-  AssertIndexRange(point_index, mapping_data.jacobians.size());
-  return mapping_data.jacobians[point_index];
+
+  const unsigned int n_lanes = internal::VectorizedArrayTrait<Number>::width;
+  DerivativeForm<1, dim, spacedim, Number> vectorized_jacobian;
+  for (unsigned int v = 0;
+       v < n_lanes && point_index * n_lanes + v < mapping_data.jacobians.size();
+       ++v)
+    for (unsigned int d = 0; d < dim; ++d)
+      for (unsigned int s = 0; s < spacedim; ++s)
+        internal::VectorizedArrayTrait<Number>::get(vectorized_jacobian[d][s],
+                                                    v) =
+          mapping_data.jacobians[point_index * n_lanes + v][d][s];
+  return vectorized_jacobian;
 }
 
 
 
 template <int n_components, int dim, int spacedim, typename Number>
-inline DerivativeForm<1, spacedim, dim>
+inline DerivativeForm<1, spacedim, dim, Number>
 FEPointEvaluation<n_components, dim, spacedim, Number>::inverse_jacobian(
   const unsigned int point_index) const
 {
   const auto &mapping_data =
     mapping_info->get_mapping_data(current_cell_index, current_face_number);
-  AssertIndexRange(point_index, mapping_data.inverse_jacobians.size());
-  return mapping_data.inverse_jacobians[point_index];
+
+  const unsigned int n_lanes = internal::VectorizedArrayTrait<Number>::width;
+  DerivativeForm<1, dim, spacedim, Number> vectorized_inverse_jacobian;
+  for (unsigned int v = 0;
+       v < n_lanes &&
+       point_index * n_lanes + v < mapping_data.inverse_jacobians.size();
+       ++v)
+    for (unsigned int d = 0; d < dim; ++d)
+      for (unsigned int s = 0; s < spacedim; ++s)
+        internal::VectorizedArrayTrait<Number>::get(
+          vectorized_inverse_jacobian[d][s], v) =
+          mapping_data.inverse_jacobians[point_index * n_lanes + v][d][s];
+  return vectorized_inverse_jacobian;
 }
 
 
@@ -1563,46 +2159,78 @@ FEPointEvaluation<n_components, dim, spacedim, Number>::JxW(
 {
   const auto &mapping_data =
     mapping_info->get_mapping_data(current_cell_index, current_face_number);
-  AssertIndexRange(point_index, mapping_data.JxW_values.size());
-  return mapping_data.JxW_values[point_index];
+
+  const unsigned int n_lanes = internal::VectorizedArrayTrait<Number>::width;
+  Number             vectorized_JxW = 0;
+  for (unsigned int v = 0; v < n_lanes && point_index * n_lanes + v <
+                                            mapping_data.JxW_values.size();
+       ++v)
+    internal::VectorizedArrayTrait<Number>::get(vectorized_JxW, v) =
+      mapping_data.JxW_values[point_index * n_lanes + v];
+  return vectorized_JxW;
 }
 
 
 template <int n_components, int dim, int spacedim, typename Number>
-inline Tensor<1, spacedim>
+inline Tensor<1, spacedim, Number>
 FEPointEvaluation<n_components, dim, spacedim, Number>::normal_vector(
   const unsigned int point_index) const
 {
   const auto &mapping_data =
     mapping_info->get_mapping_data(current_cell_index, current_face_number);
-  AssertIndexRange(point_index, mapping_data.normal_vectors.size());
-  return mapping_data.normal_vectors[point_index];
+
+  const unsigned int n_lanes = internal::VectorizedArrayTrait<Number>::width;
+  Tensor<1, spacedim, Number> vectorized_normal_vectors;
+  for (unsigned int v = 0; v < n_lanes && point_index * n_lanes + v <
+                                            mapping_data.normal_vectors.size();
+       ++v)
+    for (unsigned int s = 0; s < spacedim; ++s)
+      internal::VectorizedArrayTrait<Number>::get(vectorized_normal_vectors[s],
+                                                  v) =
+        mapping_data.normal_vectors[point_index * n_lanes + v][s];
+  return vectorized_normal_vectors;
 }
 
 
 
 template <int n_components, int dim, int spacedim, typename Number>
-inline Point<spacedim>
+inline Point<spacedim, Number>
 FEPointEvaluation<n_components, dim, spacedim, Number>::real_point(
   const unsigned int point_index) const
 {
   const auto &mapping_data =
     mapping_info->get_mapping_data(current_cell_index, current_face_number);
-  AssertIndexRange(point_index, mapping_data.quadrature_points.size());
-  return mapping_data.quadrature_points[point_index];
+
+  const unsigned int n_lanes = internal::VectorizedArrayTrait<Number>::width;
+  Point<spacedim, Number> vectorized_real_point;
+  for (unsigned int v = 0;
+       v < n_lanes &&
+       point_index * n_lanes + v < mapping_data.quadrature_points.size();
+       ++v)
+    for (unsigned int s = 0; s < spacedim; ++s)
+      internal::VectorizedArrayTrait<Number>::get(vectorized_real_point[s], v) =
+        mapping_data.quadrature_points[point_index * n_lanes + v][s];
+  return vectorized_real_point;
 }
 
 
 
 template <int n_components, int dim, int spacedim, typename Number>
-inline Point<dim>
+inline Point<dim, Number>
 FEPointEvaluation<n_components, dim, spacedim, Number>::unit_point(
   const unsigned int point_index) const
 {
-  AssertIndexRange(point_index, n_q_points);
   const auto unit_points =
     mapping_info->get_unit_points(current_cell_index, current_face_number);
-  return unit_points[point_index];
+  const unsigned int n_lanes = internal::VectorizedArrayTrait<Number>::width;
+  Point<spacedim, Number> vectorized_unit_point;
+  for (unsigned int v = 0;
+       v < n_lanes && point_index * n_lanes + v < unit_points.size();
+       ++v)
+    for (unsigned int d = 0; d < dim; ++d)
+      internal::VectorizedArrayTrait<Number>::get(vectorized_unit_point[d], v) =
+        unit_points[point_index * n_lanes + v][d];
+  return vectorized_unit_point;
 }
 
 
diff --git a/tests/matrix_free/point_evaluation_22.cc b/tests/matrix_free/point_evaluation_22.cc
new file mode 100644 (file)
index 0000000..816e7c1
--- /dev/null
@@ -0,0 +1,177 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2020 - 2022 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+
+// check vectorized FEPointEvaluation for scalar FE_Q and MappingQ by comparing
+// to the output of FEValues with the same settings
+
+#include <deal.II/base/function_lib.h>
+#include <deal.II/base/vectorization.h>
+
+#include <deal.II/dofs/dof_handler.h>
+
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_values.h>
+#include <deal.II/fe/mapping_fe.h>
+#include <deal.II/fe/mapping_q.h>
+
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/tria.h>
+
+#include <deal.II/lac/vector.h>
+
+#include <deal.II/matrix_free/fe_point_evaluation.h>
+
+#include <deal.II/numerics/vector_tools.h>
+
+#include <iostream>
+
+#include "../tests.h"
+
+using namespace dealii;
+
+template <int dim,
+          typename Number              = double,
+          typename VectorizedArrayType = VectorizedArray<Number>>
+void
+test(const unsigned int degree, const bool is_mapping_q = true)
+{
+  Triangulation<dim> tria;
+
+  if (dim > 1)
+    GridGenerator::hyper_shell(tria, Point<dim>(), 0.5, 1, 6);
+  else
+    GridGenerator::subdivided_hyper_cube(tria, 2, 0, 1);
+
+  std::unique_ptr<Mapping<dim>> mapping;
+  if (is_mapping_q)
+    mapping = std::make_unique<MappingQ<dim>>(degree);
+  else
+    mapping = std::make_unique<MappingFE<dim>>(FE_Q<dim>(degree));
+
+  deallog << "Mapping of degree " << degree << std::endl;
+
+  std::vector<Point<dim>> unit_points;
+  for (unsigned int i = 0; i < 13; ++i)
+    {
+      Point<dim> p;
+      for (unsigned int d = 0; d < dim; ++d)
+        p[d] = static_cast<Number>(i) / 17. + 0.015625 * d;
+      unit_points.push_back(p);
+    }
+
+  FE_Q<dim>     fe(degree);
+  FEValues<dim> fe_values(*mapping,
+                          fe,
+                          Quadrature<dim>(unit_points),
+                          update_values | update_gradients);
+
+  DoFHandler<dim> dof_handler(tria);
+  dof_handler.distribute_dofs(fe);
+  Vector<Number> vector(dof_handler.n_dofs());
+
+  FEPointEvaluation<1, dim, dim, VectorizedArrayType> evaluator(
+    *mapping, fe, update_values | update_gradients);
+
+  Tensor<1, dim, Number> exponents;
+  exponents[0] = 1.;
+  VectorTools::interpolate(*mapping,
+                           dof_handler,
+                           Functions::Monomial<dim, Number>(exponents),
+                           vector);
+
+  std::vector<Number>                 solution_values(fe.dofs_per_cell);
+  std::vector<Number>                 function_values(unit_points.size());
+  std::vector<Tensor<1, dim, Number>> function_gradients(unit_points.size());
+
+  // For float numbers that are sensitive to roundoff in the numdiff
+  // tolerances (absolute 1e-8), we multiply by 1e-3 to ensure that the test
+  // remains robust
+  const double factor_float = std::is_same<Number, float>::value ? 0.001 : 1.;
+
+  for (const auto &cell : dof_handler.active_cell_iterators())
+    {
+      fe_values.reinit(cell);
+      fe_values.get_function_values(vector, function_values);
+      fe_values.get_function_gradients(vector, function_gradients);
+
+      cell->get_dof_values(vector,
+                           solution_values.begin(),
+                           solution_values.end());
+
+      evaluator.reinit(cell, unit_points);
+      evaluator.evaluate(solution_values,
+                         EvaluationFlags::values | EvaluationFlags::gradients);
+
+      deallog << "Cell with center " << cell->center(true) << std::endl;
+
+      const unsigned int n_points = unit_points.size();
+      const unsigned int n_lanes  = VectorizedArrayType::size();
+      for (unsigned int qb = 0, q = 0; q < n_points; q += n_lanes, ++qb)
+        for (unsigned int v = 0; v < n_lanes && q + v < n_points; ++v)
+          {
+            const auto gradient = evaluator.get_gradient(q / n_lanes);
+
+            Tensor<1, dim, Number> gradient_current_lane;
+            for (unsigned int d = 0; d < dim; ++d)
+              gradient_current_lane[d] = gradient[d][v];
+
+            deallog
+              << mapping->transform_unit_to_real_cell(cell, unit_points[q + v])
+              << ": " << factor_float * evaluator.get_value(q / n_lanes)[v]
+              << " error value "
+              << factor_float * (function_values[q + v] -
+                                 evaluator.get_value(q / n_lanes)[v])
+              << " error grad "
+              << factor_float *
+                   (gradient_current_lane - function_gradients[q + v]).norm()
+              << std::endl;
+          }
+      deallog << std::endl;
+
+      for (const unsigned int i : evaluator.quadrature_point_indices())
+        {
+          evaluator.submit_value(evaluator.get_value(i), i);
+          evaluator.submit_gradient(evaluator.get_gradient(i), i);
+        }
+
+      evaluator.integrate(solution_values,
+                          EvaluationFlags::values | EvaluationFlags::gradients);
+
+      for (const auto i : solution_values)
+        deallog << factor_float * i << ' ';
+      deallog << std::endl;
+    }
+}
+
+
+
+int
+main()
+{
+  initlog();
+  deallog << std::setprecision(10);
+
+  test<1>(3);
+  test<2>(1);
+  test<2>(2);
+  test<2>(6);
+  test<3>(1);
+  test<3, double, VectorizedArray<double, 2>>(5);
+
+  test<3, float, VectorizedArray<float, 4>>(5);
+
+  test<3>(1, false);
+}
diff --git a/tests/matrix_free/point_evaluation_22.output b/tests/matrix_free/point_evaluation_22.output
new file mode 100644 (file)
index 0000000..605e73e
--- /dev/null
@@ -0,0 +1,713 @@
+
+DEAL::Mapping of degree 3
+DEAL::Cell with center 0.2500000000
+DEAL::0.000000000: 0.000000000 error value 0.000000000 error grad 4.440892099e-16
+DEAL::0.02941176471: 0.02941176471 error value 0.000000000 error grad 0.000000000
+DEAL::0.05882352941: 0.05882352941 error value -6.938893904e-18 error grad 2.220446049e-16
+DEAL::0.08823529412: 0.08823529412 error value 0.000000000 error grad 0.000000000
+DEAL::0.1176470588: 0.1176470588 error value 1.387778781e-17 error grad 2.220446049e-16
+DEAL::0.1470588235: 0.1470588235 error value 2.775557562e-17 error grad 3.330669074e-16
+DEAL::0.1764705882: 0.1764705882 error value 0.000000000 error grad 0.000000000
+DEAL::0.2058823529: 0.2058823529 error value -2.775557562e-17 error grad 1.110223025e-16
+DEAL::0.2352941176: 0.2352941176 error value 0.000000000 error grad 1.110223025e-16
+DEAL::0.2647058824: 0.2647058824 error value 0.000000000 error grad 2.220446049e-16
+DEAL::0.2941176471: 0.2941176471 error value 0.000000000 error grad 0.000000000
+DEAL::0.3235294118: 0.3235294118 error value 0.000000000 error grad 0.000000000
+DEAL::0.3529411765: 0.3529411765 error value 0.000000000 error grad 0.000000000
+DEAL::
+DEAL::-40.02339531 1.555249578 8.779994658 31.98226872 
+DEAL::Cell with center 0.7500000000
+DEAL::0.5000000000: 0.5000000000 error value 0.000000000 error grad 5.551115123e-16
+DEAL::0.5294117647: 0.5294117647 error value 0.000000000 error grad 1.332267630e-15
+DEAL::0.5588235294: 0.5588235294 error value 0.000000000 error grad 0.000000000
+DEAL::0.5882352941: 0.5882352941 error value 0.000000000 error grad 2.220446049e-16
+DEAL::0.6176470588: 0.6176470588 error value -1.110223025e-16 error grad 4.440892099e-16
+DEAL::0.6470588235: 0.6470588235 error value -1.110223025e-16 error grad 2.220446049e-16
+DEAL::0.6764705882: 0.6764705882 error value 0.000000000 error grad 6.661338148e-16
+DEAL::0.7058823529: 0.7058823529 error value 0.000000000 error grad 2.220446049e-16
+DEAL::0.7352941176: 0.7352941176 error value 1.110223025e-16 error grad 7.771561172e-16
+DEAL::0.7647058824: 0.7647058824 error value 0.000000000 error grad 2.220446049e-16
+DEAL::0.7941176471: 0.7941176471 error value 1.110223025e-16 error grad 2.220446049e-16
+DEAL::0.8235294118: 0.8235294118 error value -1.110223025e-16 error grad 1.110223025e-16
+DEAL::0.8529411765: 0.8529411765 error value 0.000000000 error grad 0.000000000
+DEAL::
+DEAL::-39.13829456 1.322397960 12.59137926 34.01863499 
+DEAL::Mapping of degree 1
+DEAL::Cell with center 0.6495190528 0.3750000000
+DEAL::0.9921875000 0.000000000: 0.9921875000 error value 0.000000000 error grad 1.717520996e-17
+DEAL::0.9344588019 0.04904636735: 0.9344588019 error value -2.220446049e-16 error grad 1.353018556e-16
+DEAL::0.8784602076 0.09509610700: 0.8784602076 error value -2.220446049e-16 error grad 4.646340395e-17
+DEAL::0.8241917171 0.1381492190: 0.8241917171 error value 0.000000000 error grad 2.524396413e-16
+DEAL::0.7716533304 0.1782057032: 0.7716533304 error value 1.110223025e-16 error grad 1.268808499e-16
+DEAL::0.7208450476 0.2152655598: 0.7208450476 error value 0.000000000 error grad 2.228698022e-16
+DEAL::0.6717668685 0.2493287887: 0.6717668685 error value 0.000000000 error grad 9.136482042e-17
+DEAL::0.6244187933 0.2803953898: 0.6244187933 error value 0.000000000 error grad 2.224027437e-16
+DEAL::0.5788008218 0.3084653633: 0.5788008218 error value -1.110223025e-16 error grad 1.514135915e-16
+DEAL::0.5349129542 0.3335387091: 0.5349129542 error value 0.000000000 error grad 4.909117292e-16
+DEAL::0.4927551903 0.3556154272: 0.4927551903 error value 0.000000000 error grad 2.868544468e-16
+DEAL::0.4523275303 0.3746955176: 0.4523275303 error value -5.551115123e-17 error grad 1.828252816e-16
+DEAL::0.4136299740 0.3907789803: 0.4136299740 error value 0.000000000 error grad 1.136953923e-16
+DEAL::
+DEAL::24.50913568 7.620733168 -12.02051095 -11.21894916 
+DEAL::Cell with center 4.592425497e-17 0.7500000000
+DEAL::0.4960937500 0.8592595803: 0.4960937500 error value 0.000000000 error grad 5.349979303e-17
+DEAL::0.4247540009 0.8337882449: 0.4247540009 error value 0.000000000 error grad 1.155532360e-16
+DEAL::0.3568744593 0.8083169095: 0.3568744593 error value -5.551115123e-17 error grad 2.522293534e-16
+DEAL::0.2924551254 0.7828455741: 0.2924551254 error value -5.551115123e-17 error grad 1.175551728e-16
+DEAL::0.2314959991 0.7573742387: 0.2314959991 error value 0.000000000 error grad 2.448753552e-17
+DEAL::0.1739970804 0.7319029033: 0.1739970804 error value 5.551115123e-17 error grad 3.353971852e-16
+DEAL::0.1199583694 0.7064315679: 0.1199583694 error value 1.387778781e-17 error grad 3.404492269e-18
+DEAL::0.06937986592 0.6809602325: 0.06937986592 error value 0.000000000 error grad 2.228762819e-16
+DEAL::0.02226157007 0.6554888971: 0.02226157007 error value -6.938893904e-18 error grad 5.194919401e-17
+DEAL::-0.02139651817 0.6300175617: -0.02139651817 error value 2.081668171e-17 error grad 8.470400659e-17
+DEAL::-0.06159439879 0.6045462263: -0.06159439879 error value -1.387778781e-17 error grad 4.769192485e-17
+DEAL::-0.09833207180 0.5790748909: -0.09833207180 error value 0.000000000 error grad 1.179176103e-16
+DEAL::-0.1316095372 0.5536035555: -0.1316095372 error value 0.000000000 error grad 1.139658193e-16
+DEAL::
+DEAL::11.34778758 -9.604257571 6.661800352 -6.530992670 
+DEAL::Cell with center -0.6495190528 0.3750000000
+DEAL::-0.4960937500 0.8592595803: -0.4960937500 error value 0.000000000 error grad 8.209979208e-18
+DEAL::-0.5097048010 0.7847418776: -0.5097048010 error value -1.110223025e-16 error grad 1.210226932e-16
+DEAL::-0.5215857483 0.7132208025: -0.5215857483 error value 0.000000000 error grad 3.252856022e-17
+DEAL::-0.5317365917 0.6446963551: -0.5317365917 error value 0.000000000 error grad 2.267810602e-16
+DEAL::-0.5401573313 0.5791685355: -0.5401573313 error value -1.110223025e-16 error grad 1.126420852e-16
+DEAL::-0.5468479671 0.5166373435: -0.5468479671 error value 0.000000000 error grad 2.326908573e-16
+DEAL::-0.5518084991 0.4571027792: -0.5518084991 error value -1.110223025e-16 error grad 4.301837486e-17
+DEAL::-0.5550389273 0.4005648426: -0.5550389273 error value 1.110223025e-16 error grad 5.592867883e-16
+DEAL::-0.5565392517 0.3470235337: -0.5565392517 error value -1.110223025e-16 error grad 2.896715358e-16
+DEAL::-0.5563094723 0.2964788525: -0.5563094723 error value 0.000000000 error grad 2.420101974e-16
+DEAL::-0.5543495891 0.2489307990: -0.5543495891 error value 0.000000000 error grad 2.363180950e-17
+DEAL::-0.5506596021 0.2043793732: -0.5506596021 error value 0.000000000 error grad 1.644061008e-16
+DEAL::-0.5452395112 0.1628245751: -0.5452395112 error value 0.000000000 error grad 2.310589506e-16
+DEAL::
+DEAL::-13.16134810 -17.22499074 18.68231131 4.687956487 
+DEAL::Cell with center -0.6495190528 -0.3750000000
+DEAL::-0.9921875000 1.215079246e-16: -0.9921875000 error value 0.000000000 error grad 4.232146261e-17
+DEAL::-0.9344588019 -0.04904636735: -0.9344588019 error value 1.110223025e-16 error grad 2.706045861e-16
+DEAL::-0.8784602076 -0.09509610700: -0.8784602076 error value 1.110223025e-16 error grad 1.383415291e-16
+DEAL::-0.8241917171 -0.1381492190: -0.8241917171 error value 1.110223025e-16 error grad 2.262405230e-16
+DEAL::-0.7716533304 -0.1782057032: -0.7716533304 error value 0.000000000 error grad 4.454274224e-16
+DEAL::-0.7208450476 -0.2152655598: -0.7208450476 error value 0.000000000 error grad 2.335734989e-16
+DEAL::-0.6717668685 -0.2493287887: -0.6717668685 error value 0.000000000 error grad 7.601245501e-17
+DEAL::-0.6244187933 -0.2803953898: -0.6244187933 error value 0.000000000 error grad 3.431126608e-16
+DEAL::-0.5788008218 -0.3084653633: -0.5788008218 error value -1.110223025e-16 error grad 2.251553344e-16
+DEAL::-0.5349129542 -0.3335387091: -0.5349129542 error value 0.000000000 error grad 4.456941141e-16
+DEAL::-0.4927551903 -0.3556154272: -0.4927551903 error value 5.551115123e-17 error grad 3.543610256e-16
+DEAL::-0.4523275303 -0.3746955176: -0.4523275303 error value 0.000000000 error grad 2.782632090e-16
+DEAL::-0.4136299740 -0.3907789803: -0.4136299740 error value 0.000000000 error grad 2.820727852e-16
+DEAL::
+DEAL::-24.50913568 -7.620733168 12.02051095 11.21894916 
+DEAL::Cell with center -1.377727649e-16 -0.7500000000
+DEAL::-0.4960937500 -0.8592595803: -0.4960937500 error value 0.000000000 error grad 2.224331412e-16
+DEAL::-0.4247540009 -0.8337882449: -0.4247540009 error value 5.551115123e-17 error grad 1.482745806e-16
+DEAL::-0.3568744593 -0.8083169095: -0.3568744593 error value 0.000000000 error grad 1.748026430e-16
+DEAL::-0.2924551254 -0.7828455741: -0.2924551254 error value 5.551115123e-17 error grad 1.966099982e-16
+DEAL::-0.2314959991 -0.7573742387: -0.2314959991 error value -2.775557562e-17 error grad 9.140909195e-17
+DEAL::-0.1739970804 -0.7319029033: -0.1739970804 error value 5.551115123e-17 error grad 3.537841913e-16
+DEAL::-0.1199583694 -0.7064315679: -0.1199583694 error value -1.387778781e-17 error grad 6.897309742e-17
+DEAL::-0.06937986592 -0.6809602325: -0.06937986592 error value 2.775557562e-17 error grad 1.297279922e-16
+DEAL::-0.02226157007 -0.6554888971: -0.02226157007 error value 1.040834086e-17 error grad 2.479976243e-16
+DEAL::0.02139651817 -0.6300175617: 0.02139651817 error value -1.040834086e-17 error grad 1.318725509e-17
+DEAL::0.06159439879 -0.6045462263: 0.06159439879 error value 1.387778781e-17 error grad 2.258695576e-17
+DEAL::0.09833207180 -0.5790748909: 0.09833207180 error value 0.000000000 error grad 2.222166032e-16
+DEAL::0.1316095372 -0.5536035555: 0.1316095372 error value 0.000000000 error grad 1.117042858e-16
+DEAL::
+DEAL::-11.34778758 9.604257571 -6.661800352 6.530992670 
+DEAL::Cell with center 0.6495190528 -0.3750000000
+DEAL::0.4960937500 -0.8592595803: 0.4960937500 error value 0.000000000 error grad 2.306635770e-16
+DEAL::0.5097048010 -0.7847418776: 0.5097048010 error value 1.110223025e-16 error grad 9.697704199e-17
+DEAL::0.5215857483 -0.7132208025: 0.5215857483 error value 0.000000000 error grad 2.013543261e-17
+DEAL::0.5317365917 -0.6446963551: 0.5317365917 error value -1.110223025e-16 error grad 2.619078957e-17
+DEAL::0.5401573313 -0.5791685355: 0.5401573313 error value 0.000000000 error grad 2.224324070e-16
+DEAL::0.5468479671 -0.5166373435: 0.5468479671 error value 0.000000000 error grad 1.128902828e-16
+DEAL::0.5518084991 -0.4571027792: 0.5518084991 error value 0.000000000 error grad 7.216582266e-17
+DEAL::0.5550389273 -0.4005648426: 0.5550389273 error value 0.000000000 error grad 2.230192778e-16
+DEAL::0.5565392517 -0.3470235337: 0.5565392517 error value 0.000000000 error grad 2.274953780e-16
+DEAL::0.5563094723 -0.2964788525: 0.5563094723 error value -1.110223025e-16 error grad 1.823412895e-18
+DEAL::0.5543495891 -0.2489307990: 0.5543495891 error value 0.000000000 error grad 2.332019727e-16
+DEAL::0.5506596021 -0.2043793732: 0.5506596021 error value 0.000000000 error grad 2.227231363e-16
+DEAL::0.5452395112 -0.1628245751: 0.5452395112 error value 0.000000000 error grad 9.620333579e-17
+DEAL::
+DEAL::13.16134810 17.22499074 -18.68231131 -4.687956487 
+DEAL::Mapping of degree 2
+DEAL::Cell with center 0.6495190528 0.3750000000
+DEAL::0.9921875000 0.000000000: 0.9921875000 error value 0.000000000 error grad 1.008052378e-16
+DEAL::0.9591965610 0.06332871922: 0.9591965610 error value -1.110223025e-16 error grad 1.275677115e-15
+DEAL::0.9234265460 0.1210574346: 0.9234265460 error value 0.000000000 error grad 1.002454539e-15
+DEAL::0.8851608469 0.1733497625: 0.8851608469 error value 0.000000000 error grad 6.342423493e-16
+DEAL::0.8446828558 0.2203693193: 0.8446828558 error value 0.000000000 error grad 2.221304186e-16
+DEAL::0.8022759646 0.2622797217: 0.8022759646 error value 1.110223025e-16 error grad 9.050922270e-17
+DEAL::0.7582235654 0.2992445859: 0.7582235654 error value 0.000000000 error grad 1.728136065e-16
+DEAL::0.7128090500 0.3314275284: 0.7128090500 error value 0.000000000 error grad 4.730505670e-16
+DEAL::0.6663158106 0.3589921657: 0.6663158106 error value 0.000000000 error grad 2.222757607e-16
+DEAL::0.6190272391 0.3821021142: 0.6190272391 error value -1.110223025e-16 error grad 1.115607801e-16
+DEAL::0.5712267275 0.4009209903: 0.5712267275 error value 0.000000000 error grad 1.020586701e-16
+DEAL::0.5231976677 0.4156124105: 0.5231976677 error value 1.110223025e-16 error grad 1.787778127e-16
+DEAL::0.4752234518 0.4263399913: 0.4752234518 error value 0.000000000 error grad 4.570970577e-16
+DEAL::
+DEAL::22.66038163 -2.047812934 3.806552274 -2.441049640 -16.90175177 -1.968463869 20.56868852 -10.91201382 -3.031576611 
+DEAL::Cell with center 4.592425497e-17 0.7500000000
+DEAL::0.4960937500 0.8592595803: 0.4960937500 error value 0.000000000 error grad 9.060131163e-17
+DEAL::0.4247540009 0.8623529487: 0.4247540009 error value -1.665334537e-16 error grad 6.833138828e-16
+DEAL::0.3568744593 0.8602395646: 0.3568744593 error value 5.551115123e-17 error grad 2.572423492e-16
+DEAL::0.2924551254 0.8532466611: 0.2924551254 error value -5.551115123e-17 error grad 2.965411823e-16
+DEAL::0.2314959991 0.8417014709: 0.2314959991 error value 0.000000000 error grad 2.535197686e-16
+DEAL::0.1739970804 0.8259312270: 0.1739970804 error value -2.775557562e-17 error grad 2.292958797e-16
+DEAL::0.1199583694 0.8062631623: 0.1199583694 error value 1.387778781e-17 error grad 2.306479477e-16
+DEAL::0.06937986592 0.7830245096: 0.06937986592 error value 0.000000000 error grad 2.247904164e-16
+DEAL::0.02226157007 0.7565425018: 0.02226157007 error value 0.000000000 error grad 1.279500442e-17
+DEAL::-0.02139651817 0.7271443718: -0.02139651817 error value 0.000000000 error grad 4.808368179e-18
+DEAL::-0.06159439879 0.6951573525: -0.06159439879 error value 6.938893904e-18 error grad 8.917832796e-19
+DEAL::-0.09833207180 0.6609086767: -0.09833207180 error value 0.000000000 error grad 3.332391222e-16
+DEAL::-0.1316095372 0.6247255774: -0.1316095372 error value 0.000000000 error grad 7.102221952e-17
+DEAL::
+DEAL::16.83117908 1.444175016 0.2592642444 -1.370258898 5.910177277 -9.218724096 -6.156334811 4.086941435 -9.912081554 
+DEAL::Cell with center -0.6495190528 0.3750000000
+DEAL::-0.4960937500 0.8592595803: -0.4960937500 error value 0.000000000 error grad 8.355678179e-16
+DEAL::-0.5344425601 0.7990242294: -0.5344425601 error value 0.000000000 error grad 5.840308059e-16
+DEAL::-0.5665520866 0.7391821301: -0.5665520866 error value -1.110223025e-16 error grad 6.037715356e-16
+DEAL::-0.5927057215 0.6798968986: -0.5927057215 error value 0.000000000 error grad 3.864147734e-16
+DEAL::-0.6131868567 0.6213321516: -0.6131868567 error value -1.110223025e-16 error grad 4.419369434e-16
+DEAL::-0.6282788842 0.5636515054: -0.6282788842 error value -1.110223025e-16 error grad 2.395421050e-16
+DEAL::-0.6382651960 0.5070185764: -0.6382651960 error value 0.000000000 error grad 3.116634007e-17
+DEAL::-0.6434291841 0.4515969812: -0.6434291841 error value 0.000000000 error grad 6.762720879e-16
+DEAL::-0.6440542406 0.3975503361: -0.6440542406 error value 0.000000000 error grad 1.235594110e-17
+DEAL::-0.6404237573 0.3450422576: -0.6404237573 error value 0.000000000 error grad 2.190209901e-16
+DEAL::-0.6328211262 0.2942363621: -0.6328211262 error value 0.000000000 error grad 2.464104684e-16
+DEAL::-0.6215297395 0.2452962662: -0.6215297395 error value 0.000000000 error grad 5.182068457e-16
+DEAL::-0.6068329890 0.1983855861: -0.6068329890 error value 0.000000000 error grad 8.063120181e-16
+DEAL::
+DEAL::-5.829202551 3.491987950 -3.547288029 1.070790743 22.81192905 -7.250260226 -26.72502333 14.99895525 -6.880504944 
+DEAL::Cell with center -0.6495190528 -0.3750000000
+DEAL::-0.9921875000 1.215079246e-16: -0.9921875000 error value 0.000000000 error grad 5.875455260e-16
+DEAL::-0.9591965610 -0.06332871922: -0.9591965610 error value 0.000000000 error grad 5.911116824e-16
+DEAL::-0.9234265460 -0.1210574346: -0.9234265460 error value -1.110223025e-16 error grad 4.445289417e-16
+DEAL::-0.8851608469 -0.1733497625: -0.8851608469 error value 1.110223025e-16 error grad 7.108391731e-16
+DEAL::-0.8446828558 -0.2203693193: -0.8446828558 error value 0.000000000 error grad 4.472037679e-16
+DEAL::-0.8022759646 -0.2622797217: -0.8022759646 error value 1.110223025e-16 error grad 2.593345431e-16
+DEAL::-0.7582235654 -0.2992445859: -0.7582235654 error value 0.000000000 error grad 9.393569862e-17
+DEAL::-0.7128090500 -0.3314275284: -0.7128090500 error value 0.000000000 error grad 2.270713379e-16
+DEAL::-0.6663158106 -0.3589921657: -0.6663158106 error value 0.000000000 error grad 1.579046071e-16
+DEAL::-0.6190272391 -0.3821021142: -0.6190272391 error value 1.110223025e-16 error grad 1.552402392e-16
+DEAL::-0.5712267275 -0.4009209903: -0.5712267275 error value 0.000000000 error grad 6.313546571e-17
+DEAL::-0.5231976677 -0.4156124105: -0.5231976677 error value 0.000000000 error grad 7.539115984e-17
+DEAL::-0.4752234518 -0.4263399913: -0.4752234518 error value 0.000000000 error grad 2.271765234e-16
+DEAL::
+DEAL::-22.66038163 2.047812934 -3.806552274 2.441049640 16.90175177 1.968463869 -20.56868852 10.91201382 3.031576611 
+DEAL::Cell with center -1.377727649e-16 -0.7500000000
+DEAL::-0.4960937500 -0.8592595803: -0.4960937500 error value 0.000000000 error grad 3.240984474e-16
+DEAL::-0.4247540009 -0.8623529487: -0.4247540009 error value -5.551115123e-17 error grad 5.595327627e-16
+DEAL::-0.3568744593 -0.8602395646: -0.3568744593 error value 0.000000000 error grad 3.994703467e-16
+DEAL::-0.2924551254 -0.8532466611: -0.2924551254 error value -5.551115123e-17 error grad 2.949543908e-16
+DEAL::-0.2314959991 -0.8417014709: -0.2314959991 error value -2.775557562e-17 error grad 3.653411646e-16
+DEAL::-0.1739970804 -0.8259312270: -0.1739970804 error value 0.000000000 error grad 3.429406000e-16
+DEAL::-0.1199583694 -0.8062631623: -0.1199583694 error value 2.775557562e-17 error grad 1.205726884e-16
+DEAL::-0.06937986592 -0.7830245096: -0.06937986592 error value 1.387778781e-17 error grad 3.337677525e-16
+DEAL::-0.02226157007 -0.7565425018: -0.02226157007 error value 0.000000000 error grad 1.739407601e-18
+DEAL::0.02139651817 -0.7271443718: 0.02139651817 error value 3.469446952e-18 error grad 5.896439559e-18
+DEAL::0.06159439879 -0.6951573525: 0.06159439879 error value 0.000000000 error grad 1.948832850e-17
+DEAL::0.09833207180 -0.6609086767: 0.09833207180 error value 0.000000000 error grad 1.195913539e-16
+DEAL::0.1316095372 -0.6247255774: 0.1316095372 error value 2.775557562e-17 error grad 4.273962180e-17
+DEAL::
+DEAL::-16.83117908 -1.444175016 -0.2592642444 1.370258898 -5.910177277 9.218724096 6.156334811 -4.086941435 9.912081554 
+DEAL::Cell with center 0.6495190528 -0.3750000000
+DEAL::0.4960937500 -0.8592595803: 0.4960937500 error value 0.000000000 error grad 3.995796445e-16
+DEAL::0.5344425601 -0.7990242294: 0.5344425601 error value 0.000000000 error grad 3.920245256e-16
+DEAL::0.5665520866 -0.7391821301: 0.5665520866 error value 0.000000000 error grad 2.266872979e-16
+DEAL::0.5927057215 -0.6798968986: 0.5927057215 error value 0.000000000 error grad 2.551410367e-16
+DEAL::0.6131868567 -0.6213321516: 0.6131868567 error value -1.110223025e-16 error grad 6.004383941e-16
+DEAL::0.6282788842 -0.5636515054: 0.6282788842 error value 0.000000000 error grad 4.381548579e-16
+DEAL::0.6382651960 -0.5070185764: 0.6382651960 error value 0.000000000 error grad 3.722516498e-16
+DEAL::0.6434291841 -0.4515969812: 0.6434291841 error value 0.000000000 error grad 5.319556903e-16
+DEAL::0.6440542406 -0.3975503361: 0.6440542406 error value 0.000000000 error grad 1.164097572e-16
+DEAL::0.6404237573 -0.3450422576: 0.6404237573 error value 0.000000000 error grad 4.440906466e-16
+DEAL::0.6328211262 -0.2942363621: 0.6328211262 error value -1.110223025e-16 error grad 7.123852826e-18
+DEAL::0.6215297395 -0.2452962662: 0.6215297395 error value 1.110223025e-16 error grad 4.003955671e-16
+DEAL::0.6068329890 -0.1983855861: 0.6068329890 error value 0.000000000 error grad 4.697731165e-16
+DEAL::
+DEAL::5.829202551 -3.491987950 3.547288029 -1.070790743 -22.81192905 7.250260226 26.72502333 -14.99895525 6.880504944 
+DEAL::Mapping of degree 6
+DEAL::Cell with center 0.6495190528 0.3750000000
+DEAL::0.9921875000 0.000000000: 0.9921875000 error value 0.000000000 error grad 9.748937604e-15
+DEAL::0.9609496573 0.05926936446: 0.9609496573 error value 1.110223025e-16 error grad 2.300605504e-15
+DEAL::0.9262895583 0.1146994816: 0.9262895583 error value 1.110223025e-16 error grad 1.999811282e-15
+DEAL::0.8885607198 0.1661007475: 0.8885607198 error value -1.110223025e-16 error grad 3.472893361e-15
+DEAL::0.8481266485 0.2133123969: 0.8481266485 error value 0.000000000 error grad 3.578933589e-16
+DEAL::0.8053586039 0.2562030323: 0.8053586039 error value 4.440892099e-16 error grad 8.165630742e-16
+DEAL::0.7606333492 0.2946709691: 0.7606333492 error value 0.000000000 error grad 6.421553524e-16
+DEAL::0.7143309018 0.3286444014: 0.7143309018 error value 0.000000000 error grad 1.176181852e-15
+DEAL::0.6668322927 0.3580813945: 0.6668322927 error value 1.110223025e-16 error grad 1.332392056e-15
+DEAL::0.6185173440 0.3829697098: 0.6185173440 error value 1.110223025e-16 error grad 3.593682320e-16
+DEAL::0.5697624746 0.4033264664: 0.5697624746 error value 2.220446049e-16 error grad 8.766256808e-16
+DEAL::0.5209385434 0.4191976473: 0.5209385434 error value 0.000000000 error grad 5.898493767e-16
+DEAL::0.4724087397 0.4306574530: 0.4724087397 error value -5.551115123e-17 error grad 1.434013475e-15
+DEAL::
+DEAL::36.97696271 -0.2641949809 0.7287209463 0.06689920387 -44.80913411 13.28685577 -6.332892997 3.286021770 -1.925928000 0.8267309486 -1.195890987 1.117440283 -0.1284403467 -0.1943711074 10.68000187 -5.787366310 3.026873836 -1.643059812 0.7279107937 -0.9344654956 1.277531241 -1.386920151 1.245751106 -0.2103035060 18.97535874 22.17964961 -9.766452870 5.056581896 -2.284196915 -32.78441891 10.50714109 19.81481064 -8.268313889 3.386158216 11.39877402 -24.86433488 7.361205514 12.38068697 -3.400451010 -4.760303117 7.522455516 -12.84401481 -18.39794998 0.4480096893 2.493017611 -3.497005025 4.028874910 -3.994668694 0.6195493440 
+DEAL::Cell with center 4.592425497e-17 0.7500000000
+DEAL::0.4960937500 0.8592595803: 0.4960937500 error value 0.000000000 error grad 2.509786989e-15
+DEAL::0.4291460533 0.8618414972: 0.4291460533 error value -1.110223025e-16 error grad 1.609728796e-15
+DEAL::0.3638121143 0.8595400296: 0.3638121143 error value 5.551115123e-17 error grad 9.713846976e-16
+DEAL::0.3004328929 0.8525665299: 0.3004328929 error value 0.000000000 error grad 4.740975227e-16
+DEAL::0.2393293696 0.8411554217: 0.2393293696 error value 8.326672685e-17 error grad 1.271164794e-16
+DEAL::0.1808009674 0.8255625263: 0.1808009674 error value -5.551115123e-17 error grad 8.596161463e-17
+DEAL::0.1251241296 0.8060632879: 0.1251241296 error value -2.775557562e-17 error grad 3.462365570e-16
+DEAL::0.07255105048 0.7829509083: 0.07255105048 error value 0.000000000 error grad 2.519533923e-16
+DEAL::0.02330856204 0.7565344028: 0.02330856204 error value -1.387778781e-17 error grad 2.274876042e-16
+DEAL::-0.02240282557 0.7271365875: -0.02240282557 error value 0.000000000 error grad 2.334082473e-16
+DEAL::-0.06440972863 0.6950920104: -0.06440972863 error value 0.000000000 error grad 1.101714424e-16
+DEAL::-0.1025665400 0.6607448360: -0.1025665400 error value 1.387778781e-17 error grad 4.611661796e-16
+DEAL::-0.1367559248 0.6244466961: -0.1367559248 error value 2.775557562e-17 error grad 3.491669812e-16
+DEAL::
+DEAL::30.90826688 0.5890765449 0.1772423202 -0.06028855655 -6.933296866 0.7947801469 0.4016374031 -0.07315018411 -0.4632507691 -0.1911345758 0.7236309510 -1.703855440 1.105890599 0.1672664397 -13.14102145 6.660512716 -4.755606248 3.224144949 -1.586110315 0.07131822675 -0.4496772317 1.555615773 -1.691509504 0.2020256816 -1.228414230 -3.472030479 4.339851346 -3.089552674 0.6077995691 6.406239119 -3.682400034 -13.41237976 7.549153453 -2.146722300 -5.182230202 16.43942409 -5.824582246 -20.47430232 5.246058336 2.582331145 -6.562737508 23.21399678 -12.63750490 -3.394298868 -0.2086826207 1.289506778 -4.744912629 5.327916916 -0.5695703829 
+DEAL::Cell with center -0.6495190528 0.3750000000
+DEAL::-0.4960937500 0.8592595803: -0.4960937500 error value 0.000000000 error grad 2.408360275e-15
+DEAL::-0.5318036039 0.8025721327: -0.5318036039 error value 0.000000000 error grad 1.078237429e-15
+DEAL::-0.5624774440 0.7448405480: -0.5624774440 error value 1.110223025e-16 error grad 1.640782046e-15
+DEAL::-0.5881278268 0.6864657824: -0.5881278268 error value 1.110223025e-16 error grad 2.086143543e-15
+DEAL::-0.6087972789 0.6278430248: -0.6087972789 error value 1.110223025e-16 error grad 7.893724964e-16
+DEAL::-0.6245576365 0.5693594940: -0.6245576365 error value 0.000000000 error grad 1.044650972e-15
+DEAL::-0.6355092196 0.5113923188: -0.6355092196 error value -2.220446049e-16 error grad 8.110665772e-16
+DEAL::-0.6417798513 0.4543065070: -0.6417798513 error value -1.110223025e-16 error grad 4.366094660e-16
+DEAL::-0.6435237306 0.3984530082: -0.6435237306 error value -1.110223025e-16 error grad 1.791439965e-15
+DEAL::-0.6409201696 0.3441668777: -0.6409201696 error value -2.220446049e-16 error grad 5.027755645e-16
+DEAL::-0.6341722033 0.2917655439: -0.6341722033 error value -1.110223025e-16 error grad 8.102280325e-16
+DEAL::-0.6235050834 0.2415471888: -0.6235050834 error value -1.110223025e-16 error grad 6.079944417e-16
+DEAL::-0.6091646645 0.1937892431: -0.6091646645 error value 0.000000000 error grad 1.631525217e-15
+DEAL::
+DEAL::-6.068695825 0.8532715258 -0.5514786261 -0.1271877604 37.87583724 -12.49207562 6.734530400 -3.359171954 1.462677231 -1.017865524 1.919521938 -2.821295723 1.234330946 0.3616375470 -23.82102332 12.44787903 -7.782480084 4.867204761 -2.314021109 1.005783722 -1.727208473 2.942535924 -2.937260611 0.4123291876 -20.20377297 -25.65168009 14.10630422 -8.146134570 2.891996484 39.19065802 -14.18954113 -33.22719040 15.81746734 -5.532880516 -16.58100422 41.30375897 -13.18578776 -32.85498929 8.646509346 7.342634262 -14.08519302 36.05801159 5.760445077 -3.842308558 -2.701700232 4.786511803 -8.773787539 9.322585611 -1.189119727 
+DEAL::Cell with center -0.6495190528 -0.3750000000
+DEAL::-0.9921875000 1.215079246e-16: -0.9921875000 error value 0.000000000 error grad 1.232231767e-14
+DEAL::-0.9609496573 -0.05926936446: -0.9609496573 error value -2.220446049e-16 error grad 2.618139755e-15
+DEAL::-0.9262895583 -0.1146994816: -0.9262895583 error value 1.110223025e-16 error grad 1.565248324e-15
+DEAL::-0.8885607198 -0.1661007475: -0.8885607198 error value 0.000000000 error grad 3.148473078e-16
+DEAL::-0.8481266485 -0.2133123969: -0.8481266485 error value 1.110223025e-16 error grad 4.495116820e-16
+DEAL::-0.8053586039 -0.2562030323: -0.8053586039 error value -2.220446049e-16 error grad 8.913835540e-16
+DEAL::-0.7606333492 -0.2946709691: -0.7606333492 error value 0.000000000 error grad 2.046613067e-15
+DEAL::-0.7143309018 -0.3286444014: -0.7143309018 error value -2.220446049e-16 error grad 6.200566417e-16
+DEAL::-0.6668322927 -0.3580813945: -0.6668322927 error value -1.110223025e-16 error grad 9.674059148e-16
+DEAL::-0.6185173440 -0.3829697098: -0.6185173440 error value -2.220446049e-16 error grad 6.156214675e-16
+DEAL::-0.5697624746 -0.4033264664: -0.5697624746 error value 1.110223025e-16 error grad 7.800847346e-16
+DEAL::-0.5209385434 -0.4191976473: -0.5209385434 error value 1.110223025e-16 error grad 1.555906655e-15
+DEAL::-0.4724087397 -0.4306574530: -0.4724087397 error value 5.551115123e-17 error grad 9.713254362e-16
+DEAL::
+DEAL::-36.97696271 0.2641949809 -0.7287209463 -0.06689920387 44.80913411 -13.28685577 6.332892997 -3.286021770 1.925928000 -0.8267309486 1.195890987 -1.117440283 0.1284403467 0.1943711074 -10.68000187 5.787366310 -3.026873836 1.643059812 -0.7279107937 0.9344654956 -1.277531241 1.386920151 -1.245751106 0.2103035060 -18.97535874 -22.17964961 9.766452870 -5.056581896 2.284196915 32.78441891 -10.50714109 -19.81481064 8.268313889 -3.386158216 -11.39877402 24.86433488 -7.361205514 -12.38068697 3.400451010 4.760303117 -7.522455516 12.84401481 18.39794998 -0.4480096893 -2.493017611 3.497005025 -4.028874910 3.994668694 -0.6195493440 
+DEAL::Cell with center -1.377727649e-16 -0.7500000000
+DEAL::-0.4960937500 -0.8592595803: -0.4960937500 error value 0.000000000 error grad 1.722109227e-15
+DEAL::-0.4291460533 -0.8618414972: -0.4291460533 error value 1.110223025e-16 error grad 2.070104176e-15
+DEAL::-0.3638121143 -0.8595400296: -0.3638121143 error value 0.000000000 error grad 6.882680166e-16
+DEAL::-0.3004328929 -0.8525665299: -0.3004328929 error value -5.551115123e-17 error grad 4.745110219e-16
+DEAL::-0.2393293696 -0.8411554217: -0.2393293696 error value 5.551115123e-17 error grad 7.168858615e-16
+DEAL::-0.1808009674 -0.8255625263: -0.1808009674 error value 8.326672685e-17 error grad 2.271933600e-16
+DEAL::-0.1251241296 -0.8060632879: -0.1251241296 error value 0.000000000 error grad 3.525710730e-16
+DEAL::-0.07255105048 -0.7829509083: -0.07255105048 error value -2.775557562e-17 error grad 4.587838652e-16
+DEAL::-0.02330856204 -0.7565344028: -0.02330856204 error value -3.469446952e-18 error grad 4.452364639e-16
+DEAL::0.02240282557 -0.7271365875: 0.02240282557 error value 0.000000000 error grad 3.414146584e-16
+DEAL::0.06440972863 -0.6950920104: 0.06440972863 error value 2.775557562e-17 error grad 6.142847745e-17
+DEAL::0.1025665400 -0.6607448360: 0.1025665400 error value -2.775557562e-17 error grad 1.113053857e-16
+DEAL::0.1367559248 -0.6244466961: 0.1367559248 error value 0.000000000 error grad 4.143075111e-16
+DEAL::
+DEAL::-30.90826688 -0.5890765449 -0.1772423202 0.06028855655 6.933296866 -0.7947801469 -0.4016374031 0.07315018411 0.4632507691 0.1911345758 -0.7236309510 1.703855440 -1.105890599 -0.1672664397 13.14102145 -6.660512716 4.755606248 -3.224144949 1.586110315 -0.07131822675 0.4496772317 -1.555615773 1.691509504 -0.2020256816 1.228414230 3.472030479 -4.339851346 3.089552674 -0.6077995691 -6.406239119 3.682400034 13.41237976 -7.549153453 2.146722300 5.182230202 -16.43942409 5.824582246 20.47430232 -5.246058336 -2.582331145 6.562737508 -23.21399678 12.63750490 3.394298868 0.2086826207 -1.289506778 4.744912629 -5.327916916 0.5695703829 
+DEAL::Cell with center 0.6495190528 -0.3750000000
+DEAL::0.4960937500 -0.8592595803: 0.4960937500 error value 0.000000000 error grad 5.562095861e-15
+DEAL::0.5318036039 -0.8025721327: 0.5318036039 error value 1.110223025e-16 error grad 8.202614387e-16
+DEAL::0.5624774440 -0.7448405480: 0.5624774440 error value 0.000000000 error grad 1.021101451e-15
+DEAL::0.5881278268 -0.6864657824: 0.5881278268 error value 0.000000000 error grad 1.780128324e-15
+DEAL::0.6087972789 -0.6278430248: 0.6087972789 error value -1.110223025e-16 error grad 4.572784763e-16
+DEAL::0.6245576365 -0.5693594940: 0.6245576365 error value -1.110223025e-16 error grad 1.334473371e-15
+DEAL::0.6355092196 -0.5113923188: 0.6355092196 error value 0.000000000 error grad 1.147038426e-15
+DEAL::0.6417798513 -0.4543065070: 0.6417798513 error value 1.110223025e-16 error grad 2.166164785e-15
+DEAL::0.6435237306 -0.3984530082: 0.6435237306 error value 1.110223025e-16 error grad 8.586722413e-16
+DEAL::0.6409201696 -0.3441668777: 0.6409201696 error value 1.110223025e-16 error grad 1.645472831e-15
+DEAL::0.6341722033 -0.2917655439: 0.6341722033 error value 1.110223025e-16 error grad 1.033396401e-15
+DEAL::0.6235050834 -0.2415471888: 0.6235050834 error value 1.110223025e-16 error grad 4.420042186e-16
+DEAL::0.6091646645 -0.1937892431: 0.6091646645 error value 0.000000000 error grad 1.399790174e-15
+DEAL::
+DEAL::6.068695825 -0.8532715258 0.5514786261 0.1271877604 -37.87583724 12.49207562 -6.734530400 3.359171954 -1.462677231 1.017865524 -1.919521938 2.821295723 -1.234330946 -0.3616375470 23.82102332 -12.44787903 7.782480084 -4.867204761 2.314021109 -1.005783722 1.727208473 -2.942535924 2.937260611 -0.4123291876 20.20377297 25.65168009 -14.10630422 8.146134570 -2.891996484 -39.19065802 14.18954113 33.22719040 -15.81746734 5.532880516 16.58100422 -41.30375897 13.18578776 32.85498929 -8.646509346 -7.342634262 14.08519302 -36.05801159 -5.760445077 3.842308558 2.701700232 -4.786511803 8.773787539 -9.322585611 1.189119727 
+DEAL::Mapping of degree 1
+DEAL::Cell with center -3.778985438e-18 0.000000000 -0.7500000000
+DEAL::-0.5683291712 -0.5505688846 -0.5683291712: -0.5683291712 error value 0.000000000 error grad 3.387603895e-16
+DEAL::-0.4864837773 -0.4692541435 -0.5513482810: -0.4864837773 error value 1.110223025e-16 error grad 2.038199447e-16
+DEAL::-0.4086338870 -0.3919349060 -0.5343673907: -0.4086338870 error value -5.551115123e-17 error grad 1.111994301e-16
+DEAL::-0.3347795003 -0.3186111721 -0.5173865004: -0.3347795003 error value 0.000000000 error grad 2.564333810e-16
+DEAL::-0.2649206171 -0.2492829418 -0.5004056102: -0.2649206171 error value 0.000000000 error grad 1.340629435e-16
+DEAL::-0.1990572376 -0.1839502151 -0.4834247199: -0.1990572376 error value -2.775557562e-17 error grad 5.539540968e-17
+DEAL::-0.1371893617 -0.1226129920 -0.4664438296: -0.1371893617 error value 0.000000000 error grad 1.236518322e-16
+DEAL::-0.07931698930 -0.06527127244 -0.4494629393: -0.07931698930 error value 0.000000000 error grad 1.222102417e-16
+DEAL::-0.02544012053 -0.01192505650 -0.4324820491: -0.02544012053 error value -1.734723476e-17 error grad 5.652565427e-16
+DEAL::0.02444124464 0.03742565585 -0.4155011588: 0.02444124464 error value -6.938893904e-18 error grad 1.131938354e-16
+DEAL::0.07032710621 0.08278086460 -0.3985202685: 0.07032710621 error value 1.387778781e-17 error grad 2.435252603e-16
+DEAL::0.1122174642 0.1241405698 -0.3815393783: 0.1122174642 error value 2.775557562e-17 error grad 2.245245383e-16
+DEAL::0.1501123186 0.1615047713 -0.3645584880: 0.1501123186 error value 0.000000000 error grad 7.759379337e-17
+DEAL::
+DEAL::-7.267317338 5.515167688 -2.829462459 2.618475712 -3.083102087 2.838567644 -3.053054262 3.113672573 
+DEAL::Cell with center 0.7500000000 -2.814297100e-18 -4.163336342e-17
+DEAL::0.5728397202 -0.5728397202 -0.5370372377: 0.5728397202 error value 0.000000000 error grad 1.412777408e-16
+DEAL::0.5558588299 -0.4904636735 -0.4557224966: 0.5558588299 error value -1.110223025e-16 error grad 2.396360924e-16
+DEAL::0.5388779397 -0.4120831303 -0.3784032591: 0.5388779397 error value 1.110223025e-16 error grad 3.536438801e-16
+DEAL::0.5218970494 -0.3376980908 -0.3050795252: 0.5218970494 error value -1.110223025e-16 error grad 2.406610146e-16
+DEAL::0.5049161591 -0.2673085548 -0.2357512949: 0.5049161591 error value -1.110223025e-16 error grad 1.414656285e-16
+DEAL::0.4879352689 -0.2009145225 -0.1704185682: 0.4879352689 error value 0.000000000 error grad 2.232469235e-16
+DEAL::0.4709543786 -0.1385159937 -0.1090813450: 0.4709543786 error value 0.000000000 error grad 7.477258152e-17
+DEAL::0.4539734883 -0.08011296853 -0.05173962551: 0.4539734883 error value -5.551115123e-17 error grad 1.236947720e-16
+DEAL::0.4369925980 -0.02570544694 0.001606590434: 0.4369925980 error value 0.000000000 error grad 2.507284672e-16
+DEAL::0.4200117078 0.02470657105 0.05095730278: 0.4200117078 error value -5.551115123e-17 error grad 4.356047464e-17
+DEAL::0.4030308175 0.07112308544 0.09631251154: 0.4030308175 error value 5.551115123e-17 error grad 5.994555125e-17
+DEAL::0.3860499272 0.1135440962 0.1376722167: 0.3860499272 error value 0.000000000 error grad 2.297165389e-16
+DEAL::0.3690690370 0.1519696035 0.1750364183: 0.3690690370 error value -5.551115123e-17 error grad 3.369467392e-16
+DEAL::
+DEAL::16.77138376 11.05879002 -19.93181929 -6.355857835 12.06412137 9.186716076 -8.048705002 -8.622222171 
+DEAL::Cell with center -2.814297100e-18 -4.163336342e-17 0.7500000000
+DEAL::-0.5728397202 -0.5370372377 0.5728397202: -0.5728397202 error value 0.000000000 error grad 3.998998820e-16
+DEAL::-0.4904636735 -0.4557224966 0.5558588299: -0.4904636735 error value 5.551115123e-17 error grad 4.433984808e-16
+DEAL::-0.4120831303 -0.3784032591 0.5388779397: -0.4120831303 error value 0.000000000 error grad 3.988826093e-16
+DEAL::-0.3376980908 -0.3050795252 0.5218970494: -0.3376980908 error value 1.110223025e-16 error grad 2.751116252e-16
+DEAL::-0.2673085548 -0.2357512949 0.5049161591: -0.2673085548 error value -5.551115123e-17 error grad 1.353859735e-16
+DEAL::-0.2009145225 -0.1704185682 0.4879352689: -0.2009145225 error value -2.775557562e-17 error grad 2.468028950e-16
+DEAL::-0.1385159937 -0.1090813450 0.4709543786: -0.1385159937 error value 2.775557562e-17 error grad 1.466634332e-16
+DEAL::-0.08011296853 -0.05173962551 0.4539734883: -0.08011296853 error value 1.387778781e-17 error grad 4.470743909e-17
+DEAL::-0.02570544694 0.001606590434 0.4369925980: -0.02570544694 error value -2.081668171e-17 error grad 1.445352764e-16
+DEAL::0.02470657105 0.05095730278 0.4200117078: 0.02470657105 error value -3.469446952e-18 error grad 2.451956239e-16
+DEAL::0.07112308544 0.09631251154 0.4030308175: 0.07112308544 error value 0.000000000 error grad 1.232130317e-16
+DEAL::0.1135440962 0.1376722167 0.3860499272: 0.1135440962 error value 2.775557562e-17 error grad 2.537009317e-16
+DEAL::0.1519696035 0.1750364183 0.3690690370: 0.1519696035 error value 0.000000000 error grad 2.847072974e-16
+DEAL::
+DEAL::-7.229081381 5.462304493 -2.804117959 2.591456971 -3.055813720 2.809335564 -3.019515657 3.081132944 
+DEAL::Cell with center -0.7500000000 -1.407148550e-18 0.000000000
+DEAL::-0.5773502692 -0.5593080733 -0.5412658774: -0.5773502692 error value 0.000000000 error grad 1.827874333e-17
+DEAL::-0.5603693789 -0.4769320265 -0.4594204835: -0.5603693789 error value 3.330669074e-16 error grad 2.551140448e-16
+DEAL::-0.5433884886 -0.3985514834 -0.3815705931: -0.5433884886 error value -1.110223025e-16 error grad 2.262651025e-16
+DEAL::-0.5264075984 -0.3241664439 -0.3077162064: -0.5264075984 error value 1.110223025e-16 error grad 4.906473813e-17
+DEAL::-0.5094267081 -0.2537769079 -0.2378573233: -0.5094267081 error value 0.000000000 error grad 2.250892232e-16
+DEAL::-0.4924458178 -0.1873828755 -0.1719939437: -0.4924458178 error value -5.551115123e-17 error grad 2.376607418e-16
+DEAL::-0.4754649276 -0.1249843468 -0.1101260678: -0.4754649276 error value 5.551115123e-17 error grad 2.236938826e-16
+DEAL::-0.4584840373 -0.06658132159 -0.05225369543: -0.4584840373 error value 0.000000000 error grad 1.050830036e-16
+DEAL::-0.4415031470 -0.01217380001 0.001623173335: -0.4415031470 error value -5.551115123e-17 error grad 3.343199600e-16
+DEAL::-0.4245222568 0.03823821798 0.05150453850: -0.4245222568 error value -5.551115123e-17 error grad 8.109411305e-17
+DEAL::-0.4075413665 0.08465473238 0.09739040008: -0.4075413665 error value -5.551115123e-17 error grad 2.373471143e-16
+DEAL::-0.3905604762 0.1270757432 0.1392807581: -0.3905604762 error value 0.000000000 error grad 1.473656671e-16
+DEAL::-0.3735795859 0.1655012504 0.1771756125: -0.3735795859 error value 5.551115123e-17 error grad 4.793036916e-17
+DEAL::
+DEAL::-16.53207299 19.38768445 -11.37053150 6.920789048 -11.87095928 7.759733066 -9.441051728 8.965364888 
+DEAL::Cell with center -1.407148550e-18 -0.7500000000 -4.163336342e-17
+DEAL::-0.5728397202 -0.5728397202 -0.5370372377: -0.5728397202 error value 0.000000000 error grad 3.097640758e-16
+DEAL::-0.4904636735 -0.5558588299 -0.4557224966: -0.4904636735 error value 5.551115123e-17 error grad 2.748520887e-16
+DEAL::-0.4120831303 -0.5388779397 -0.3784032591: -0.4120831303 error value 0.000000000 error grad 3.988826093e-16
+DEAL::-0.3376980908 -0.5218970494 -0.3050795252: -0.3376980908 error value 1.110223025e-16 error grad 2.751116252e-16
+DEAL::-0.2673085548 -0.5049161591 -0.2357512949: -0.2673085548 error value -5.551115123e-17 error grad 1.353859735e-16
+DEAL::-0.2009145225 -0.4879352689 -0.1704185682: -0.2009145225 error value -2.775557562e-17 error grad 2.468028950e-16
+DEAL::-0.1385159937 -0.4709543786 -0.1090813450: -0.1385159937 error value 2.775557562e-17 error grad 1.466634332e-16
+DEAL::-0.08011296853 -0.4539734883 -0.05173962551: -0.08011296853 error value 1.387778781e-17 error grad 4.470743909e-17
+DEAL::-0.02570544694 -0.4369925980 0.001606590434: -0.02570544694 error value -2.081668171e-17 error grad 1.445352764e-16
+DEAL::0.02470657105 -0.4200117078 0.05095730278: 0.02470657105 error value -3.469446952e-18 error grad 2.451956239e-16
+DEAL::0.07112308544 -0.4030308175 0.09631251154: 0.07112308544 error value 0.000000000 error grad 1.232130317e-16
+DEAL::0.1135440962 -0.3860499272 0.1376722167: 0.1135440962 error value 2.775557562e-17 error grad 2.537009317e-16
+DEAL::0.1519696035 -0.3690690370 0.1750364183: 0.1519696035 error value 0.000000000 error grad 1.741923879e-16
+DEAL::
+DEAL::-7.229081381 5.462304493 -2.804117959 2.591456971 -3.055813720 2.809335564 -3.019515657 3.081132944 
+DEAL::Cell with center -1.407148550e-18 0.7500000000 0.000000000
+DEAL::-0.5593080733 0.5773502692 -0.5412658774: -0.5593080733 error value 0.000000000 error grad 2.430865990e-16
+DEAL::-0.4769320265 0.5603693789 -0.4594204835: -0.4769320265 error value 1.110223025e-16 error grad 2.653012714e-16
+DEAL::-0.3985514834 0.5433884886 -0.3815705931: -0.3985514834 error value 0.000000000 error grad 4.823946868e-16
+DEAL::-0.3241664439 0.5264075984 -0.3077162064: -0.3241664439 error value -5.551115123e-17 error grad 2.997637449e-16
+DEAL::-0.2537769079 0.5094267081 -0.2378573233: -0.2537769079 error value -1.110223025e-16 error grad 1.166462751e-16
+DEAL::-0.1873828755 0.4924458178 -0.1719939437: -0.1873828755 error value 0.000000000 error grad 1.344590664e-16
+DEAL::-0.1249843468 0.4754649276 -0.1101260678: -0.1249843468 error value 4.163336342e-17 error grad 2.222790906e-16
+DEAL::-0.06658132159 0.4584840373 -0.05225369543: -0.06658132159 error value 4.163336342e-17 error grad 1.038395617e-16
+DEAL::-0.01217380001 0.4415031470 0.001623173335: -0.01217380001 error value -6.938893904e-18 error grad 8.815885369e-17
+DEAL::0.03823821798 0.4245222568 0.05150453850: 0.03823821798 error value 6.938893904e-18 error grad 4.466821292e-16
+DEAL::0.08465473238 0.4075413665 0.09739040008: 0.08465473238 error value 1.387778781e-17 error grad 3.329318468e-17
+DEAL::0.1270757432 0.3905604762 0.1392807581: 0.1270757432 error value 2.775557562e-17 error grad 2.277060572e-16
+DEAL::0.1655012504 0.3735795859 0.1771756125: 0.1655012504 error value -2.775557562e-17 error grad 2.986826529e-16
+DEAL::
+DEAL::-7.245648737 -2.602728431 5.526559250 2.450707840 -3.097266565 -2.879576568 2.883108870 2.976457006 
+DEAL::Mapping of degree 5
+DEAL::Cell with center -3.778985438e-18 0.000000000 -0.7500000000
+DEAL::-0.5759520655 -0.5527659841 -0.5759520655: -0.5759520655 error value 2.220446049e-16 error grad 5.296339109e-15
+DEAL::-0.5254898676 -0.5029040719 -0.6187865537: -0.5254898676 error value 2.220446049e-16 error grad 2.367865725e-15
+DEAL::-0.4685426073 -0.4464599093 -0.6616551149: -0.4685426073 error value 5.551115123e-17 error grad 1.755960400e-15
+DEAL::-0.4051542510 -0.3835292107 -0.7012978956: -0.4051542510 error value 0.000000000 error grad 2.513441216e-15
+DEAL::-0.3359932318 -0.3148223149 -0.7343028440: -0.3359932318 error value -5.551115123e-17 error grad 7.087909409e-16
+DEAL::-0.2623766962 -0.2416891159 -0.7575161861: -0.2623766962 error value -1.110223025e-16 error grad 1.112642537e-15
+DEAL::-0.1861925434 -0.1660412603 -0.7684224851: -0.1861925434 error value -5.551115123e-17 error grad 5.034457647e-16
+DEAL::-0.1097387169 -0.09019150189 -0.7654365722: -0.1097387169 error value -1.387778781e-17 error grad 1.115316152e-15
+DEAL::-0.03550798632 -0.01663873419 -0.7480737719: -0.03550798632 error value 0.000000000 error grad 1.208956417e-16
+DEAL::0.03404970570 0.05216906594 -0.7169856075: 0.03404970570 error value 6.938893904e-18 error grad 2.052138100e-16
+DEAL::0.09675558003 0.1140621810 -0.6738655685: 0.09675558003 error value -1.387778781e-17 error grad 7.685666137e-16
+DEAL::0.1508930055 0.1673387801 -0.6212435337: 0.1508930055 error value -5.551115123e-17 error grad 2.995405155e-16
+DEAL::0.1953394317 0.2108952300 -0.5621980946: 0.1953394317 error value -2.775557562e-17 error grad 9.116206003e-16
+DEAL::
+DEAL::-15.49548148 0.2783087910 -0.2824795050 0.001941550637 0.05293705864 0.006514304499 -0.002793589770 -0.004790171596 -7.755917456 2.335677666 -1.262554601 0.7657434577 0.01722184429 -0.01509481996 0.07523414842 -0.001832804895 5.248829374 -2.207771828 1.270765888 -0.7499047812 -0.01301697880 -0.04595642064 0.03338478275 -0.0009578941380 -0.1121441125 0.01297492151 0.02247761784 0.009637502930 0.005332779585 0.01207042372 0.1079382669 0.02118744686 0.1347544201 -0.06336863773 0.04103920451 -0.01368734685 -0.005054867835 -0.02797108128 -0.03518793524 0.02472891249 6.748653816 -0.6164476878 0.2904600219 -0.1492269403 0.2580477662 -0.003374658013 0.08063762002 -0.01604231354 0.02553124649 0.03928939553 0.01313573673 0.008040207635 0.002278817107 0.01334475822 0.1029224392 0.01777624053 -2.820392964 0.2598071185 0.01424289998 -0.06640016556 0.2699500615 1.179386400 0.3161374762 -0.1025707980 -0.5011184659 0.1431448429 -1.355332721 -0.07007818080 0.2998510820 -0.03842599621 -0.07659987497 -0.02792795607 -0.1645622090 0.02233767432 -0.1876894831 -0.01518766935 -0.3096974653 0.7503562081 0.4982003822 -0.01928685111 -0.1174675074 0.4301992402 -2.239012831 -0.4121023058 -0.01946237115 -0.03115634295 -0.3793158756 -0.07726772570 8.569949787 -1.568414606 0.6081715012 -0.3664264060 -2.190172971 -1.073923353 -0.3982133167 0.1774141183 1.086982627 0.3102414721 0.5579581725 -0.05645816400 -0.7000133269 0.0003735336958 -0.2940471564 0.02751419192 0.6204581536 -0.007176538816 -0.08810396395 0.01252770149 0.07978527241 -0.7177193841 -0.1995331893 0.08595188244 -0.07009721575 0.3398901155 0.4432486384 0.2606710092 -0.01782711916 -0.01873240199 -0.4537268105 -0.09408063077 -2.513536889 -0.2709839893 0.001143497295 -0.04893401620 0.7297639232 0.6876494011 0.2255913818 0.03664999185 -0.1672239680 -0.2662466788 0.9339297804 -0.2861706798 0.03932028167 0.1412206773 -0.08145121184 -0.01382817839 -0.5253331028 -0.06497901531 -0.01361025996 -0.02555443756 0.1799342550 0.1446832514 0.2777604308 -0.02016758524 -0.1252738774 -0.1130045822 1.797258068 -0.4657192653 0.008868903577 0.09659452220 0.1834573095 -0.1067301351 -1.735874161 2.277265455 -0.5723204599 0.4600852708 -8.860755615 -2.468800358 -0.7706374343 -0.04998451333 3.307002700 0.6164855082 -2.611025744 0.7490425581 -1.713571803 -0.2737985726 0.1731877608 0.09296258243 8.701128611 7.430456266 -2.529992980 0.8823292761 -6.479109385 2.850931301 7.072813108 -2.211944758 -0.2910008602 -4.643366642 6.732235647 -1.897175079 -0.004616678920 2.143213237 -0.9497078987 -0.03439075765 -2.657072138 -0.06184935584 -1.150407628 0.5357882431 0.6914364773 0.07698616415 4.683321820 -1.690427510 3.747058771 -12.20090529 6.868111213 8.498735623 0.3350921626 0.5117554868 -1.412792100 1.819875745 1.462252677 0.1714659866 -0.1180985037 0.09759066584 -0.4875715025 -0.3850699182 -0.5370498339 0.02405223511 0.3789089646 0.3650038767 -7.551413746 1.679878601 -0.01964687739 -0.2928839166 -1.194009718 0.4010399391 
+DEAL::Cell with center 0.7500000000 -2.814297100e-18 -4.163336342e-17
+DEAL::0.5879922187 -0.5879922187 -0.5412602679: 0.5879922187 error value 1.110223025e-16 error grad 1.874538105e-15
+DEAL::0.6317656581 -0.5359927398 -0.4904247681: 0.6317656581 error value 4.440892099e-16 error grad 2.271583160e-15
+DEAL::0.6752050943 -0.4774156808 -0.4328300536: 0.6752050943 error value 0.000000000 error grad 1.892546691e-15
+DEAL::0.7149693757 -0.4123477836 -0.3686646352: 0.7149693757 error value 4.440892099e-16 error grad 1.567770117e-15
+DEAL::0.7476112822 -0.3415220448 -0.2987437738: 0.7476112822 error value 1.110223025e-16 error grad 1.393762652e-15
+DEAL::0.7699931685 -0.2663289165 -0.2245218407: 0.7699931685 error value 1.110223025e-16 error grad 2.032912888e-15
+DEAL::0.7796633598 -0.1887262238 -0.1480024603: 0.7796633598 error value 0.000000000 error grad 9.988187707e-16
+DEAL::0.7751382896 -0.1110685560 -0.07156802410: 0.7751382896 error value -1.110223025e-16 error grad 2.242342099e-15
+DEAL::0.7560592058 -0.03588516627 0.002241853775: 0.7560592058 error value 2.220446049e-16 error grad 1.162114190e-15
+DEAL::0.7232127397 0.03436118254 0.07097021235: 0.7232127397 error value 0.000000000 error grad 1.444679652e-15
+DEAL::0.6784217227 0.09750269006 0.1324691326: 0.6784217227 error value -4.440892099e-16 error grad 8.888881379e-16
+DEAL::0.6243263560 0.1518546010 0.1850850191: 0.6243263560 error value -2.220446049e-16 error grad 9.354568294e-16
+DEAL::0.5640861853 0.1963417794 0.2277818661: 0.5640861853 error value 1.110223025e-16 error grad 1.558117166e-15
+DEAL::
+DEAL::-0.4223337558 0.3033273052 -0.5825526547 0.01034619260 0.3000678336 0.01622753982 -0.007329256842 0.01863785244 -16.24937103 4.865988444 -2.723909856 1.575701980 0.1148374081 -0.01397431126 -0.03567454753 -0.03915027267 6.246037731 -2.370342340 1.345057008 -0.8218945981 -0.002712679376 -0.08070977344 -0.06125729162 -0.03641692692 -0.4072010780 0.1446640608 -0.1302407411 0.006766837119 0.001331515875 0.09190209286 -0.07346895314 -0.08542074621 0.2126175992 -0.03000363675 0.006210814542 -0.05230882785 -0.03222712013 0.0007916525900 -0.2289126818 -0.07536911536 12.66255380 -2.474485677 1.422031594 -0.8216676816 0.4484019945 0.04395868330 0.08548304819 -0.05476442512 -0.2901124121 0.1519639094 -0.07693631726 0.007015846179 -0.006941652290 0.04149231011 -0.06177589114 -0.08265022227 -16.93091793 3.500040765 -1.197536476 0.8043462678 1.770229758 1.534397395 0.04097210726 -0.4154725345 -1.882562075 1.293622912 -1.093019770 0.3128963368 1.108836411 -0.4424094348 0.3961529322 0.04072242729 -0.5624760825 -0.03690123908 0.2082624951 0.05064158268 -0.8421360494 1.329626955 -0.4973534797 -0.1638314919 -0.03503558901 1.030529529 -0.7928641795 0.4156444346 0.02542654159 -0.3350197616 0.2752740041 0.3795582209 17.30198640 -2.830400908 0.9058098551 -0.5650421119 -4.201512452 -4.509222471 0.1370572452 0.04839099042 2.108053768 0.3115725668 2.735381661 0.07496381392 -1.208991139 -0.1568192129 -0.2323061327 0.1843281464 1.478547563 0.05153285769 -0.03194755144 0.1246431170 0.07065993788 -2.606330583 -0.3051322559 -0.06603054076 0.2754997011 -0.3969445648 4.421675458 1.008068298 0.04247230613 -0.1606294254 0.2924683086 0.3337487039 -2.102293438 -1.672255490 0.5987288246 -0.3071796863 1.421574505 2.502007288 0.1670361760 -0.0002987835468 0.08616706985 -1.259079243 -0.5267360105 0.1249683592 0.02924947536 0.2319990438 0.3462067012 0.1447239424 -0.6928124131 -0.4960303481 0.1923404856 0.01913093793 0.2895884896 1.526830582 0.4322414014 -0.3189424887 0.1271144868 -1.000649388 -0.7297664401 0.2550569874 0.1264178755 -0.05291912112 1.106790134 0.3460740495 7.776755330 8.183977319 -2.928852756 1.533415823 -21.07145448 -7.814151326 -0.8388402882 0.2047939047 6.829083703 3.191700696 2.052606000 -0.6486725233 -4.118212476 -0.2554605543 -1.257117152 -0.2462872959 14.50972996 24.34759181 -4.632342276 2.439505378 -13.78829768 7.079250599 9.587691336 -4.016361613 2.537224108 -23.48223092 -5.306366838 1.569839045 -0.1686496940 7.667049122 2.165030173 0.6601073338 -3.381370020 -3.550873763 -7.038985492 0.1066845109 -0.4177534768 14.92432929 23.35076255 -3.163428374 2.101907402 -10.48002558 -1.187912727 2.421120246 -0.2038630493 1.620111021 -17.23744021 -1.795292249 1.901717829 1.484047685 -0.7761969095 -0.1681766792 -0.6624100960 -4.749963039 -0.9999384764 1.178948091 -0.4704363388 3.170073846 2.186512282 -0.9958982126 -0.5127916521 0.4492138976 -4.833434518 -1.534625793 
+DEAL::Cell with center -2.814297100e-18 -4.163336342e-17 0.7500000000
+DEAL::-0.5879922187 -0.5412602679 0.5879922187: -0.5879922187 error value -1.110223025e-16 error grad 1.565567202e-15
+DEAL::-0.5359927398 -0.4904247681 0.6317656581: -0.5359927398 error value -1.110223025e-16 error grad 4.194685275e-15
+DEAL::-0.4774156808 -0.4328300536 0.6752050943: -0.4774156808 error value -5.551115123e-17 error grad 1.162842188e-15
+DEAL::-0.4123477836 -0.3686646352 0.7149693757: -0.4123477836 error value -5.551115123e-17 error grad 1.414974766e-15
+DEAL::-0.3415220448 -0.2987437738 0.7476112822: -0.3415220448 error value -1.665334537e-16 error grad 5.102158837e-16
+DEAL::-0.2663289165 -0.2245218407 0.7699931685: -0.2663289165 error value -5.551115123e-17 error grad 5.582226084e-16
+DEAL::-0.1887262238 -0.1480024603 0.7796633598: -0.1887262238 error value -5.551115123e-17 error grad 1.788314359e-15
+DEAL::-0.1110685560 -0.07156802410 0.7751382896: -0.1110685560 error value -1.387778781e-17 error grad 7.825705851e-16
+DEAL::-0.03588516627 0.002241853775 0.7560592058: -0.03588516627 error value -1.387778781e-17 error grad 4.066814001e-16
+DEAL::0.03436118254 0.07097021235 0.7232127397: 0.03436118254 error value -6.938893904e-18 error grad 6.091816195e-16
+DEAL::0.09750269006 0.1324691326 0.6784217227: 0.09750269006 error value -6.938893904e-17 error grad 4.781480618e-16
+DEAL::0.1518546010 0.1850850191 0.6243263560: 0.1518546010 error value 0.000000000 error grad 1.968311041e-16
+DEAL::0.1963417794 0.2277818661 0.5640861853: 0.1963417794 error value -2.775557562e-17 error grad 8.938311917e-16
+DEAL::
+DEAL::-14.22773572 0.2758248216 0.3233470251 0.002258593743 -0.4923898836 0.006479233947 0.007673405413 -0.004048900302 9.627170437 -2.691702424 1.498489731 -0.8773595554 0.1279656761 0.04225023655 0.07356622361 -0.005097731633 5.585744538 -2.164581526 1.253407572 -0.7433196577 0.1099531797 -0.01260379215 0.009252680767 -0.002884075630 0.2806678375 -0.03219643212 0.08013073348 -0.02068043400 0.005503508274 0.02306514214 0.1436682909 0.01418965267 0.1365397921 -0.06721769009 0.04142148978 -0.01326449452 0.006057540723 -0.01734942542 -0.06045758872 0.02150105957 -15.47866474 4.190338797 -2.247249335 1.336820956 0.1129724940 -0.06340047602 0.07707712475 -0.01389673634 0.1419159969 -0.08253947144 0.04544141577 -0.01902274661 0.005634069144 0.008671599223 0.06230320762 0.01872658377 3.802955058 -1.849696393 0.6332900561 -0.3887317906 -1.842055969 1.784561423 -0.2503857485 0.2210503091 1.226546978 -0.04101568182 -1.133754819 -0.1190044533 -0.7601564400 0.08751686184 -0.2793227493 0.05139340024 -0.1329003274 -0.3121519009 -0.1517036742 -0.01853214606 0.03981662170 0.6990778365 0.4622234695 -0.02355309033 -0.1192407217 0.4685421110 -2.207587028 -0.2071636127 -0.02477211090 -0.04626220360 -0.5921080046 -0.06458486085 -1.652952512 -0.5230285630 0.5694196475 -0.3687699911 -1.094754457 0.9620048241 -0.4472056934 0.1970382183 0.4464572425 -0.05759202805 1.131391592 -0.08513594443 -0.3066813743 0.1682769060 -0.2719086895 0.01808774896 -0.5435242256 0.08994829075 0.002598091303 -0.02097245176 -0.1145270174 0.09827575762 -0.2322489459 0.06448699937 0.02506076423 0.1543179337 1.755390911 0.2961776627 -0.02442773032 -0.01318002344 -0.2872705281 -0.09701074323 4.853511142 -1.261011127 0.5260121926 -0.3492584502 -1.510834566 -1.223475195 0.5106149470 -0.1256819254 0.4868871761 -0.04233145412 0.4008790018 -0.2891612909 -0.3015205279 0.03534862660 0.02896239803 0.001282034478 0.6151091397 -0.003672394594 -0.02060557343 -0.02652030389 -0.1900803421 -0.7395428375 0.3518920381 -0.04743018813 -0.09060655346 0.02608927292 0.4230800862 -0.6149689195 -0.01712199095 0.05250632458 0.3326755048 -0.07802505127 2.121697905 2.337378351 -0.4897435341 0.3746937019 8.149470066 6.289570330 -2.500186463 0.8941103156 -2.613844429 -0.6445190287 -0.9252424465 0.6674415072 1.505458734 0.3175839743 -0.2207670026 0.08565176834 -10.30178622 -2.326324795 -0.4906404539 -0.1022773676 -4.553509572 4.248087367 6.557429751 -2.070032519 0.1038855571 0.4292290765 3.613145172 -1.828609903 -0.2400124607 -0.2564040324 -0.1848736157 0.01722662098 3.248342622 0.4700541441 -2.876006785 0.5101437737 -1.098704675 -5.770074992 8.370279607 -1.740240309 4.006911615 -11.71563463 5.895269164 8.368195559 -0.02757708959 0.7988932722 -6.864812671 0.9900422846 -1.706444378 -0.04059703142 -0.01223465841 0.1212060495 0.5110737577 2.232782288 -0.9087920291 0.04007400433 0.4185159752 -0.2844351676 -1.422126838 2.547418087 0.05804302262 -0.1888393693 -1.540541812 0.3479107112 
+DEAL::Cell with center -0.7500000000 -1.407148550e-18 0.000000000
+DEAL::-0.6012515503 -0.5766780283 -0.5531118850: -0.6012515503 error value 3.330669074e-16 error grad 9.751458571e-15
+DEAL::-0.6458946236 -0.5236491363 -0.5006487306: -0.6458946236 error value 3.330669074e-16 error grad 4.307640683e-15
+DEAL::-0.6898189280 -0.4638689601 -0.4413495827: -0.6898189280 error value -1.110223025e-16 error grad 4.043277104e-15
+DEAL::-0.7296048967 -0.3975220470 -0.3754490693: -0.7296048967 error value -4.440892099e-16 error grad 6.162035182e-16
+DEAL::-0.7617762381 -0.3254496235 -0.3038288032: -0.7617762381 error value 1.110223025e-16 error grad 1.047361113e-15
+DEAL::-0.7832188522 -0.2491480826 -0.2280163559: -0.7832188522 error value -1.110223025e-16 error grad 2.841590741e-15
+DEAL::-0.7915521155 -0.1706669598 -0.1500833118: -0.7915521155 error value -1.110223025e-16 error grad 4.543816489e-16
+DEAL::-0.7854001879 -0.09242877894 -0.07246518026: -0.7854001879 error value 0.000000000 error grad 1.389903243e-15
+DEAL::-0.7645345314 -0.01700078778 0.002266559507: -0.7645345314 error value 1.110223025e-16 error grad 7.287970480e-16
+DEAL::-0.7298790026 0.05314854421 0.07164727507: -0.7298790026 error value -3.330669074e-16 error grad 1.125132447e-15
+DEAL::-0.6833856700 0.1158765656 0.1335451305: -0.6833856700 error value 0.000000000 error grad 1.638629705e-15
+DEAL::-0.6278029298 0.1695497377 0.1863429372: -0.6278029298 error value 3.330669074e-16 error grad 1.877438005e-15
+DEAL::-0.5663675440 0.2131627953 0.2290556314: -0.5663675440 error value -1.110223025e-16 error grad 3.145326536e-15
+DEAL::
+DEAL::1.260272240 0.5641641783 -0.2820300017 0.002626149270 -0.2663730559 0.01134315828 -0.02182110665 -0.02018298984 -7.204005728 2.419783550 -1.261455823 0.7688360647 0.3535045379 0.01324722157 0.1324997913 0.003613291559 12.07119005 -4.432329479 2.590243215 -1.519812347 0.1640500833 -0.08860092584 0.1027229793 0.003625832158 -0.3151390449 0.1202293698 -0.007735894631 0.07082662590 0.04791361271 0.01913724455 0.2365169957 0.08705464331 0.3617859743 -0.1625753209 0.1493080084 -0.01895318589 0.006011719606 -0.1034087052 0.09562004711 0.08882807594 -10.48211045 2.364047133 -1.233799172 0.7308306939 0.5965968776 -0.09856651452 0.1475701024 -0.01745853693 -0.4993051769 0.08011872901 -0.04991347470 0.07254082725 0.03707436327 -0.001281132784 0.1581489620 0.09166901158 -26.77162863 4.361666770 -2.375917508 1.344286547 2.950864149 4.371961991 0.4655325188 -0.1893822334 -1.465139086 0.6248171799 -2.799064020 0.08373479639 0.8403727290 -0.3026270286 -0.08659427811 -0.2476503183 -1.133332463 -0.4927064371 -0.1726454660 -0.1309230727 -0.5200871384 2.493409849 0.7518109220 0.05501755503 -0.04697376955 0.7773864675 -3.841807342 -0.6572720144 -0.1685307951 0.008733944014 -1.007801339 -0.3915674010 16.17585205 -1.863849035 1.568704687 -0.9866071926 -5.897593206 -1.416101617 -1.187149061 0.4944256071 2.581286604 0.2796363015 1.177261996 -0.4569585425 -1.629776330 0.2522540387 -0.5228319785 -0.006541737064 0.8906854195 0.5976761155 -0.1154782085 -0.05192552744 -0.2446109210 -1.431594326 -0.7785347204 0.3855762568 -0.09185595454 0.7760822175 0.8549278768 -0.3669817993 -0.1312622405 0.04426656507 -0.7198716244 -0.4007579844 8.590972719 -4.045403772 1.498350404 -0.9747198397 -0.6291621853 -1.781652888 0.8676054250 -0.05588936063 0.6082991179 -0.6307174704 0.8571033086 -0.5083770516 -0.4475801888 0.2856461396 -0.3198923035 -0.05654933955 0.8577738272 -0.3732625727 -0.06233271615 -0.1639173157 0.3882612332 -1.476848134 1.010243974 -0.01109724433 -0.2370295998 -0.4334730867 0.7510997381 -1.026205059 -0.04747535093 0.3745305597 -0.3511633107 -0.3808441064 6.513922434 15.82317808 -5.124200144 3.157250895 -11.33580635 11.09433375 -4.884635903 1.423340918 4.621637753 -0.4843938470 -1.600010209 0.8919354132 -2.426310526 0.5417062796 0.3699139425 0.4880308371 -13.68873798 14.21897826 -4.835167964 1.487905739 -28.00938484 -0.5847358857 20.72097703 -7.271012538 3.017079860 -10.54402724 7.413526010 -3.022710534 -1.761172308 4.377375077 -2.455800121 -0.3527527829 4.414393180 -0.5133763812 -1.775299382 0.4771027979 2.117610059 -12.90157252 10.16016491 -3.017918066 7.051630185 -25.89194907 5.871874774 14.27529875 0.4566225273 2.239732759 -2.539177906 2.973899776 -2.342549416 0.8785855421 0.3179931406 0.6111677780 -1.175442434 4.596782210 -3.224328729 -0.2510240512 0.9492546414 0.9558893948 -2.124757022 4.376267132 0.2800747478 -1.420136473 1.408090662 1.705090670 
+DEAL::Cell with center -1.407148550e-18 -0.7500000000 -4.163336342e-17
+DEAL::-0.5879922187 -0.5879922187 -0.5412602679: -0.5879922187 error value -1.110223025e-16 error grad 5.187116706e-15
+DEAL::-0.5359927398 -0.6317656581 -0.4904247681: -0.5359927398 error value -2.220446049e-16 error grad 3.123498067e-15
+DEAL::-0.4774156808 -0.6752050943 -0.4328300536: -0.4774156808 error value -5.551115123e-17 error grad 9.161293067e-16
+DEAL::-0.4123477836 -0.7149693757 -0.3686646352: -0.4123477836 error value 1.110223025e-16 error grad 2.061426650e-15
+DEAL::-0.3415220448 -0.7476112822 -0.2987437738: -0.3415220448 error value -2.775557562e-16 error grad 1.030757159e-15
+DEAL::-0.2663289165 -0.7699931685 -0.2245218407: -0.2663289165 error value -1.665334537e-16 error grad 1.372451088e-15
+DEAL::-0.1887262238 -0.7796633598 -0.1480024603: -0.1887262238 error value -5.551115123e-17 error grad 1.356803731e-15
+DEAL::-0.1110685560 -0.7751382896 -0.07156802410: -0.1110685560 error value -6.938893904e-17 error grad 3.478467253e-16
+DEAL::-0.03588516627 -0.7560592058 0.002241853775: -0.03588516627 error value -1.387778781e-17 error grad 5.713192527e-16
+DEAL::0.03436118254 -0.7232127397 0.07097021235: 0.03436118254 error value 0.000000000 error grad 5.682582073e-16
+DEAL::0.09750269006 -0.6784217227 0.1324691326: 0.09750269006 error value -6.938893904e-17 error grad 8.080419151e-17
+DEAL::0.1518546010 -0.6243263560 0.1850850191: 0.1518546010 error value -2.775557562e-17 error grad 5.071593618e-16
+DEAL::0.1963417794 -0.5640861853 0.2277818661: 0.1963417794 error value -2.775557562e-17 error grad 7.144282038e-16
+DEAL::
+DEAL::-14.22773572 0.2758248216 0.3233470251 0.002258593743 -0.4923898836 0.006479233947 0.007673405413 -0.004048900302 9.627170437 -2.691702424 1.498489731 -0.8773595554 0.1279656761 0.04225023655 0.07356622361 -0.005097731633 5.585744538 -2.164581526 1.253407572 -0.7433196577 0.1099531797 -0.01260379215 0.009252680767 -0.002884075630 0.2806678375 -0.03219643212 0.08013073348 -0.02068043400 0.005503508274 0.02306514214 0.1436682909 0.01418965267 0.1365397921 -0.06721769009 0.04142148978 -0.01326449452 0.006057540723 -0.01734942542 -0.06045758872 0.02150105957 -15.47866474 4.190338797 -2.247249335 1.336820956 0.1129724940 -0.06340047602 0.07707712475 -0.01389673634 0.1419159969 -0.08253947144 0.04544141577 -0.01902274661 0.005634069144 0.008671599223 0.06230320762 0.01872658377 3.802955058 -1.849696393 0.6332900561 -0.3887317906 -1.842055969 1.784561423 -0.2503857485 0.2210503091 1.226546978 -0.04101568182 -1.133754819 -0.1190044533 -0.7601564400 0.08751686184 -0.2793227493 0.05139340024 -0.1329003274 -0.3121519009 -0.1517036742 -0.01853214606 0.03981662170 0.6990778365 0.4622234695 -0.02355309033 -0.1192407217 0.4685421110 -2.207587028 -0.2071636127 -0.02477211090 -0.04626220360 -0.5921080046 -0.06458486085 -1.652952512 -0.5230285630 0.5694196475 -0.3687699911 -1.094754457 0.9620048241 -0.4472056934 0.1970382183 0.4464572425 -0.05759202805 1.131391592 -0.08513594443 -0.3066813743 0.1682769060 -0.2719086895 0.01808774896 -0.5435242256 0.08994829075 0.002598091303 -0.02097245176 -0.1145270174 0.09827575762 -0.2322489459 0.06448699937 0.02506076423 0.1543179337 1.755390911 0.2961776627 -0.02442773032 -0.01318002344 -0.2872705281 -0.09701074323 4.853511142 -1.261011127 0.5260121926 -0.3492584502 -1.510834566 -1.223475195 0.5106149470 -0.1256819254 0.4868871761 -0.04233145412 0.4008790018 -0.2891612909 -0.3015205279 0.03534862660 0.02896239803 0.001282034478 0.6151091397 -0.003672394594 -0.02060557343 -0.02652030389 -0.1900803421 -0.7395428375 0.3518920381 -0.04743018813 -0.09060655346 0.02608927292 0.4230800862 -0.6149689195 -0.01712199095 0.05250632458 0.3326755048 -0.07802505127 2.121697905 2.337378351 -0.4897435341 0.3746937019 8.149470066 6.289570330 -2.500186463 0.8941103156 -2.613844429 -0.6445190287 -0.9252424465 0.6674415072 1.505458734 0.3175839743 -0.2207670026 0.08565176834 -10.30178622 -2.326324795 -0.4906404539 -0.1022773676 -4.553509572 4.248087367 6.557429751 -2.070032519 0.1038855571 0.4292290765 3.613145172 -1.828609903 -0.2400124607 -0.2564040324 -0.1848736157 0.01722662098 3.248342622 0.4700541441 -2.876006785 0.5101437737 -1.098704675 -5.770074992 8.370279607 -1.740240309 4.006911615 -11.71563463 5.895269164 8.368195559 -0.02757708959 0.7988932722 -6.864812671 0.9900422846 -1.706444378 -0.04059703142 -0.01223465841 0.1212060495 0.5110737577 2.232782288 -0.9087920291 0.04007400433 0.4185159752 -0.2844351676 -1.422126838 2.547418087 0.05804302262 -0.1888393693 -1.540541812 0.3479107112 
+DEAL::Cell with center -1.407148550e-18 0.7500000000 0.000000000
+DEAL::-0.5766780283 0.6012515503 -0.5531118850: -0.5766780283 error value -2.220446049e-16 error grad 4.825690487e-15
+DEAL::-0.5236491363 0.6458946236 -0.5006487306: -0.5236491363 error value -1.110223025e-16 error grad 5.841636704e-15
+DEAL::-0.4638689601 0.6898189280 -0.4413495827: -0.4638689601 error value 5.551115123e-17 error grad 2.093178189e-15
+DEAL::-0.3975220470 0.7296048967 -0.3754490693: -0.3975220470 error value 5.551115123e-17 error grad 9.927774026e-16
+DEAL::-0.3254496235 0.7617762381 -0.3038288032: -0.3254496235 error value 0.000000000 error grad 4.359880417e-16
+DEAL::-0.2491480826 0.7832188522 -0.2280163559: -0.2491480826 error value 8.326672685e-17 error grad 8.227779652e-16
+DEAL::-0.1706669598 0.7915521155 -0.1500833118: -0.1706669598 error value 0.000000000 error grad 7.636481091e-16
+DEAL::-0.09242877894 0.7854001879 -0.07246518026: -0.09242877894 error value -2.775557562e-17 error grad 4.700049914e-16
+DEAL::-0.01700078778 0.7645345314 0.002266559507: -0.01700078778 error value -3.122502257e-17 error grad 4.462854509e-16
+DEAL::0.05314854421 0.7298790026 0.07164727507: 0.05314854421 error value 1.387778781e-17 error grad 2.443301239e-16
+DEAL::0.1158765656 0.6833856700 0.1335451305: 0.1158765656 error value -1.387778781e-17 error grad 3.485797428e-16
+DEAL::0.1695497377 0.6278029298 0.1863429372: 0.1695497377 error value 0.000000000 error grad 5.719129842e-16
+DEAL::0.2131627953 0.5663675440 0.2290556314: 0.2131627953 error value -2.775557562e-17 error grad 9.797434228e-16
+DEAL::
+DEAL::-13.62433110 0.5178825279 0.07092789491 0.006867631665 -0.4719553235 0.01545563061 0.0001540591983 -0.0001887148601 2.703585503 -0.5710442836 0.3443513004 -0.1924415100 0.2324616165 -0.03550052550 0.02131111286 -0.01680930345 10.71459276 -4.090117473 2.326078776 -1.398071673 0.1790474663 0.003202350270 0.08002420020 -0.01936457550 0.04971108465 0.0008879128189 0.001967668797 0.002526585569 0.01079680272 -0.006328540195 -0.06748069364 0.006622475460 0.3122872695 -0.09511691770 0.09248833409 -0.04345436940 0.002182450809 0.02422303116 0.1327949696 -0.001964751101 -14.64397343 4.004192244 -2.180569509 1.280625615 0.3860598860 -0.1480219016 0.03311747843 -0.04273704146 -0.08619657039 -0.007933811710 0.002372366073 0.0009272921563 0.01014670518 0.006921461724 -0.01569097120 0.001402733039 -6.955377625 0.3518247732 -0.4292281903 0.2305446211 0.1277276221 0.2820607558 0.1781708581 0.01801644509 0.2620718702 -0.2656386605 1.087673383 -0.04278080780 -0.1325729014 0.004930232271 0.03158796714 -0.01631501001 -0.3810904616 -0.2138093115 0.07210823003 -0.03278298605 0.01610871655 -0.01486367329 0.09505468859 -0.01532817141 0.1654915643 -0.4387935381 1.761517430 -0.01149465858 -0.02682678741 0.01788070253 0.3222285183 -0.03092349762 6.611970632 -1.969498867 1.441189911 -0.8427310399 -3.552630714 2.158222457 -0.5223466693 0.2561099470 1.743032357 -0.6306169620 -1.017322945 -0.2971495489 -1.044081102 0.3965652095 -0.04952676476 0.1235420561 -0.09058857252 0.1040909815 -0.004746022965 -0.008899970229 -0.3270230486 0.7738803509 0.1898223797 -0.06171065075 -0.08956572614 0.3432351468 -2.483002378 -0.5569383152 -0.02564775428 -0.02690273037 0.08140212662 0.007079452244 6.636904472 -2.314288178 1.065527793 -0.6306967801 -1.790486189 -0.9765979942 -0.1806871569 0.09261295937 0.7674403610 0.3652372175 0.4510362569 -0.01052447141 -0.4869473146 -0.02285698283 -0.3211436457 0.04640641304 0.6560584771 -0.1932681883 -0.006384693927 -0.02467247096 -0.02914195809 -0.7341765771 -0.02278370462 0.01053781560 -0.005720593200 0.3402567685 0.4704143848 0.3275494444 -0.01395399499 -0.05811086880 -0.6315166308 -0.01494062089 5.469561284 5.400888752 -1.882454386 1.051502567 2.693788692 6.820692642 -0.9934473741 0.5994110890 -0.3554955852 -2.681905043 -0.6898798769 -0.3288703031 0.2625617547 0.9435139165 0.5385841063 0.08717681820 -10.64966654 -3.344611920 0.03057946404 -0.03842163223 -2.319988165 3.483484676 -0.6515746296 0.06214523361 -0.1492095115 7.720965720 3.087632090 -0.04977515894 -0.2782431650 -2.329772604 -1.571546428 0.05880245580 3.191685423 -0.5546973832 4.190330374 -0.5697667533 0.7603557410 -6.762127664 -10.60070832 1.539771461 -3.249001162 9.740858940 2.453311278 -6.559884833 0.1229211448 -0.8379773877 9.866868728 -0.04740060666 -1.821582227 0.5263150662 0.1420907645 0.05023286635 0.04617124171 2.191656206 -0.07397787324 -0.01094990691 -0.07883970133 -0.8329718667 -1.704125970 -1.504090982 0.06263648993 0.1133949488 2.651709720 0.07031566753 
+DEAL::Mapping of degree 5
+DEAL::Cell with center -3.778985438e-18 0.000000000 -0.7500000000
+DEAL::-0.5759520655 -0.5527659841 -0.5759520655: -0.0005759518743 error value -2.384185791e-10 error grad 2.320118710e-09
+DEAL::-0.5254898676 -0.5029040719 -0.6187865537: -0.0005254897475 error value 1.192092896e-10 error grad 1.439483299e-09
+DEAL::-0.4685426073 -0.4464599093 -0.6616551149: -0.0004685424864 error value 0.000000000 error grad 7.522468195e-10
+DEAL::-0.4051542510 -0.3835292107 -0.7012978956: -0.0004051542282 error value 8.940696716e-11 error grad 1.006874527e-09
+DEAL::-0.3359932318 -0.3148223149 -0.7343028440: -0.0003359931707 error value -1.192092896e-10 error grad 8.519685366e-10
+DEAL::-0.2623766962 -0.2416891159 -0.7575161861: -0.0002623765767 error value -1.192092896e-10 error grad 5.984218205e-10
+DEAL::-0.1861925434 -0.1660412603 -0.7684224851: -0.0001861924827 error value -4.470348358e-11 error grad 4.344616684e-10
+DEAL::-0.1097387169 -0.09019150189 -0.7654365722: -0.0001097386852 error value -2.980232239e-11 error grad 3.607560473e-10
+DEAL::-0.03550798632 -0.01663873419 -0.7480737719: -3.550796956e-05 error value -1.490116119e-11 error grad 4.502437889e-11
+DEAL::0.03404970570 0.05216906594 -0.7169856075: 3.404974192e-05 error value -3.352761269e-11 error grad 7.889810405e-11
+DEAL::0.09675558003 0.1140621810 -0.6738655685: 9.675559402e-05 error value -1.490116119e-11 error grad 3.635982466e-10
+DEAL::0.1508930055 0.1673387801 -0.6212435337: 0.0001508930176 error value 1.490116119e-11 error grad 2.776408792e-10
+DEAL::0.1953394317 0.2108952300 -0.5621980946: 0.0001953395009 error value -5.960464478e-11 error grad 4.304479830e-10
+DEAL::
+DEAL::-0.01549541664 0.0002783083320 -0.0002824786603 1.941540511e-06 5.293621123e-05 6.514289882e-06 -2.793609397e-06 -4.790177569e-06 -0.007755898476 0.002335670948 -0.001262550950 0.0007657412291 1.722186804e-05 -1.509476453e-05 7.523413748e-05 -1.832769252e-06 0.005248821259 -0.002207768917 0.001270763993 -0.0007499037385 -1.301698387e-05 -4.595636576e-05 3.338471800e-05 -9.578578174e-07 -0.0001121443659 1.297512278e-05 2.247753181e-05 9.637558833e-06 5.332801491e-06 1.207042485e-05 0.0001079382747 2.118747309e-05 0.0001347542405 -6.336852163e-05 4.103909060e-05 -1.368729584e-05 -5.054853857e-06 -2.797105163e-05 -3.518806025e-05 2.472895011e-05 0.006748606205 -0.0006164392233 0.0002904558182 -0.0001492246091 0.0002580474913 -3.374569118e-06 8.063759655e-05 -1.604227722e-05 2.553045005e-05 3.928956389e-05 1.313569210e-05 8.040261455e-06 2.278831322e-06 1.334472746e-05 0.0001029225439 1.777625643e-05 -0.002820409060 0.0002598133087 1.423913240e-05 -6.639795005e-05 0.0002699524760 0.001179384470 0.0003161383569 -0.0001025712639 -0.0005011197925 0.0001431459785 -0.001355333328 -7.007811964e-05 0.0002998518050 -3.842655569e-05 -7.659961283e-05 -2.792809717e-05 -0.0001645621657 2.233756334e-05 -0.0001876895130 -1.518772822e-05 -0.0003096975088 0.0007503558993 0.0004982004762 -1.928674243e-05 -0.0001174675375 0.0004301995039 -0.002239013433 -0.0004121027887 -1.946243271e-05 -3.115633875e-05 -0.0003793159127 -7.726779580e-05 0.008569942474 -0.001568413258 0.0006081707478 -0.0003664260209 -0.002190170765 -0.001073923826 -0.0003982125223 0.0001774138063 0.001086981297 0.0003102417290 0.0005579575300 -5.645770580e-05 -0.0007000125647 3.733038902e-07 -0.0002940472066 2.751405537e-05 0.0006204578876 -7.176648825e-06 -8.810405433e-05 1.252767257e-05 7.978515327e-05 -0.0007177191973 -0.0001995326877 8.595177531e-05 -7.009709626e-05 0.0003398898542 0.0004432480931 0.0002606716752 -1.782718301e-05 -1.873226278e-05 -0.0004537273645 -9.408076108e-05 -0.002513534069 -0.0002709845304 1.143753529e-06 -4.893413186e-05 0.0007297635078 0.0006876474619 0.0002255915701 3.664983809e-05 -0.0001672240496 -0.0002662462294 0.0009339298010 -0.0002861707509 3.932033479e-05 0.0001412204951 -8.145100623e-05 -1.382832043e-05 -0.0005253329277 -6.497926265e-05 -1.360999793e-05 -2.555452101e-05 0.0001799339354 0.0001446823776 0.0002777601182 -2.016755007e-05 -0.0001252738386 -0.0001130044162 0.001797258973 -0.0004657194614 8.868863806e-06 9.659443796e-05 0.0001834578365 -0.0001067302972 -0.001735890627 0.002277266264 -0.0005723206401 0.0004600853324 -0.008860752106 -0.002468793392 -0.0007706378102 -4.998429120e-05 0.003307001591 0.0006164847016 -0.002611026049 0.0007490428686 -0.001713571072 -0.0002737982869 0.0001731873304 9.296287596e-05 0.008701127052 0.007430456161 -0.002529993057 0.0008823294640 -0.006479105949 0.002850928783 0.007072811127 -0.002211943865 -0.0002910015583 -0.004643364906 0.006732235909 -0.001897175789 -4.616439342e-06 0.002143212795 -0.0009497070313 -3.439131379e-05 -0.002657071114 -6.185129285e-05 -0.001150406241 0.0005357885361 0.0006914342642 7.698217034e-05 0.004683320045 -0.001690428734 0.003747059345 -0.01220090199 0.006868112564 0.008498740196 0.0003350926340 0.0005117536783 -0.001412790060 0.001819878101 0.001462252140 0.0001714666933 -0.0001180996001 9.759093821e-05 -0.0004875705838 -0.0003850675821 -0.0005370481014 2.405203879e-05 0.0003789087832 0.0003650035858 -0.007551420212 0.001679879308 -1.964680105e-05 -0.0002928835750 -0.001194012642 0.0004010404944 
+DEAL::Cell with center 0.7500000000 -2.814297100e-18 -4.163336342e-17
+DEAL::0.5879922187 -0.5879922187 -0.5412602679: 0.0005879920721 error value 1.788139343e-10 error grad 1.752127218e-09
+DEAL::0.6317656581 -0.5359927398 -0.4904247681: 0.0006317654848 error value -5.960464478e-11 error grad 3.517131063e-09
+DEAL::0.6752050943 -0.4774156808 -0.4328300536: 0.0006752049923 error value -5.960464478e-11 error grad 1.212035613e-09
+DEAL::0.7149693757 -0.4123477836 -0.3686646352: 0.0007149693370 error value -5.960464478e-11 error grad 7.591399367e-10
+DEAL::0.7476112822 -0.3415220448 -0.2987437738: 0.0007476112247 error value 1.788139343e-10 error grad 3.543936486e-10
+DEAL::0.7699931685 -0.2663289165 -0.2245218407: 0.0007699929476 error value 2.384185791e-10 error grad 4.154592830e-10
+DEAL::0.7796633598 -0.1887262238 -0.1480024603: 0.0007796633244 error value 0.000000000 error grad 1.030348471e-09
+DEAL::0.7751382896 -0.1110685560 -0.07156802410: 0.0007751380801 error value 1.192092896e-10 error grad 6.525092999e-10
+DEAL::0.7560592058 -0.03588516627 0.002241853775: 0.0007560591102 error value 0.000000000 error grad 1.232614409e-09
+DEAL::0.7232127397 0.03436118254 0.07097021235: 0.0007232123017 error value 1.788139343e-10 error grad 9.381234349e-10
+DEAL::0.6784217227 0.09750269006 0.1324691326: 0.0006784214377 error value 1.788139343e-10 error grad 2.716364406e-09
+DEAL::0.6243263560 0.1518546010 0.1850850191: 0.0006243262291 error value 5.960464478e-11 error grad 5.053738619e-10
+DEAL::0.5640861853 0.1963417794 0.2277818661: 0.0005640862584 error value 0.000000000 error grad 1.444056011e-09
+DEAL::
+DEAL::-0.0004223624170 0.0003033274114 -0.0005825519562 1.034618355e-05 0.0003000672758 1.622753032e-05 -7.329239510e-06 1.863784343e-05 -0.01624935341 0.004865982533 -0.002723906994 0.001575700283 0.0001148374230 -1.397432759e-05 -3.567454964e-05 -3.915026039e-05 0.006246039391 -0.002370343685 0.001345057368 -0.0008218948841 -2.712704241e-06 -8.070987463e-05 -6.125735864e-05 -3.641690686e-05 -0.0004072003961 0.0001446638554 -0.0001302406490 6.766780745e-06 1.331537496e-06 9.190204740e-05 -7.346889377e-05 -8.542073518e-05 0.0002126175761 -3.000373766e-05 6.210749969e-06 -5.230880156e-05 -3.222710639e-05 7.915701717e-07 -0.0002289127111 -7.536909729e-05 0.01266253853 -0.002474480867 0.001422028422 -0.0008216661215 0.0004484018087 4.395857453e-05 8.548290282e-05 -5.476440489e-05 -0.0002901118994 0.0001519636214 -7.693634927e-05 7.015799638e-06 -6.941641681e-06 4.149222746e-05 -6.177604198e-05 -8.265020698e-05 -0.01693089676 0.003500036240 -0.001197534084 0.0008043448925 0.001770224333 0.001534397840 4.097050428e-05 -0.0004154716730 -0.001882558584 0.001293621421 -0.001093020201 0.0003128964901 0.001108834863 -0.0004424089193 0.0003961526453 4.072260484e-05 -0.0005624756813 -3.690111637e-05 0.0002082624733 5.064156651e-05 -0.0008421356082 0.001329626322 -0.0004973538518 -0.0001638312638 -3.503514081e-05 0.001030528426 -0.0007928653955 0.0004156450033 2.542649209e-05 -0.0003350195885 0.0002752737999 0.0003795583248 0.01730197906 -0.002830399990 0.0009058098197 -0.0005650421381 -0.004201510429 -0.004509222507 0.0001370559633 4.839130491e-05 0.002108053446 0.0003115717769 0.002735378265 7.496406883e-05 -0.001208990812 -0.0001568188965 -0.0002323056757 0.0001843280941 0.001478547335 5.153315887e-05 -3.194715083e-05 0.0001246430874 7.066038996e-05 -0.002606331348 -0.0003051335812 -6.603033096e-05 0.0002754998207 -0.0003969452977 0.004421670437 0.001008068562 4.247227311e-05 -0.0001606291831 0.0002924687862 0.0003337487280 -0.002102292538 -0.001672255158 0.0005987290740 -0.0003071797490 0.001421574593 0.002502006769 0.0001670358777 -2.987049520e-07 8.616709709e-05 -0.001259079933 -0.0005267366171 0.0001249683350 2.924956381e-05 0.0002319993377 0.0003462069631 0.0001447239071 -0.0006928124428 -0.0004960300028 0.0001923406869 1.913087070e-05 0.0002895884514 0.001526830316 0.0004322409630 -0.0003189423382 0.0001271145046 -0.001000649810 -0.0007297672033 0.0002550567389 0.0001264178455 -5.291891098e-05 0.001106790423 0.0003460740745 0.007776763916 0.008183971405 -0.002928851366 0.001533414960 -0.02107145119 -0.007814151764 -0.0008388390541 0.0002047934830 0.006829083443 0.003191704273 0.002052607536 -0.0006486724615 -0.004118212223 -0.0002554619312 -0.001257117510 -0.0002462872416 0.01450972939 0.02434758759 -0.004632339001 0.002439504147 -0.01378829288 0.007079258919 0.009587686539 -0.004016359806 0.002537226200 -0.02348223877 -0.005306373119 0.001569839954 -0.0001686506569 0.007667051315 0.002165032864 0.0006601067781 -0.003381371021 -0.003550868988 -0.007038975716 0.0001066831350 -0.0004177518487 0.01492432308 0.02335073853 -0.003163424969 0.002101909637 -0.01048003387 -0.001187904596 0.002421124935 -0.0002038643956 0.001620115519 -0.01723742676 -0.001795294285 0.001901717901 0.001484046698 -0.0007761976123 -0.0001681764871 -0.0006624100208 -0.004749961853 -0.0009999365807 0.001178947687 -0.0004704363346 0.003170074701 0.002186514616 -0.0009958974123 -0.0005127916932 0.0004492135346 -0.004833436012 -0.001534626484 
+DEAL::Cell with center -2.814297100e-18 -4.163336342e-17 0.7500000000
+DEAL::-0.5879922187 -0.5412602679 0.5879922187: -0.0005879920721 error value -1.788139343e-10 error grad 1.188151259e-09
+DEAL::-0.5359927398 -0.4904247681 0.6317656581: -0.0005359925628 error value 1.192092896e-10 error grad 8.518424579e-10
+DEAL::-0.4774156808 -0.4328300536 0.6752050943: -0.0004774155915 error value -2.980232239e-11 error grad 7.072763424e-10
+DEAL::-0.4123477836 -0.3686646352 0.7149693757: -0.0004123477936 error value 0.000000000 error grad 1.995717582e-10
+DEAL::-0.3415220448 -0.2987437738 0.7476112822: -0.0003415219784 error value -2.980232239e-11 error grad 4.607224753e-10
+DEAL::-0.2663289165 -0.2245218407 0.7699931685: -0.0002663288116 error value -1.192092896e-10 error grad 6.797112633e-10
+DEAL::-0.1887262238 -0.1480024603 0.7796633598: -0.0001887261868 error value 0.000000000 error grad 3.075238908e-10
+DEAL::-0.1110685560 -0.07156802410 0.7751382896: -0.0001110685170 error value -1.490116119e-11 error grad 7.906231048e-11
+DEAL::-0.03588516627 0.002241853775 0.7560592058: -3.588515148e-05 error value -1.117587090e-11 error grad 4.204671598e-10
+DEAL::0.03436118254 0.07097021235 0.7232127397: 3.436122090e-05 error value -4.097819328e-11 error grad 2.998966693e-10
+DEAL::0.09750269006 0.1324691326 0.6784217227: 9.750270844e-05 error value -1.490116119e-11 error grad 2.021323269e-10
+DEAL::0.1518546010 0.1850850191 0.6243263560: 0.0001518546343 error value 0.000000000 error grad 3.021933139e-10
+DEAL::0.1963417794 0.2277818661 0.5640861853: 0.0001963418424 error value -5.960464478e-11 error grad 4.881161999e-10
+DEAL::
+DEAL::-0.01422770023 0.0002758244872 0.0003233465552 2.258587629e-06 -0.0004923891425 6.479225121e-06 7.673384622e-06 -4.048905801e-06 0.009627155304 -0.002691698074 0.001498487115 -0.0008773581386 0.0001279655248 4.225021973e-05 7.356625795e-05 -5.097715184e-06 0.005585739613 -0.002164579153 0.001253406048 -0.0007433188558 0.0001099531502 -1.260376535e-05 9.252629243e-06 -2.884049434e-06 0.0002806671858 -3.219626099e-05 8.013068140e-05 -2.068037912e-05 5.503514316e-06 2.306510508e-05 0.0001436683834 1.418967079e-05 0.0001365397722 -6.721764803e-05 4.142142832e-05 -1.326446142e-05 6.057546940e-06 -1.734940708e-05 -6.045767292e-05 2.150109597e-05 -0.01547864532 0.004190333366 -0.002247246504 0.001336819291 0.0001129726768 -6.340041012e-05 7.707709819e-05 -1.389670558e-05 0.0001419156939 -8.253926784e-05 4.544134066e-05 -1.902269013e-05 5.634095054e-06 8.671595715e-06 6.230324507e-05 1.872661337e-05 0.003802940130 -0.001849693775 0.0006332883835 -0.0003887311220 -0.001842050910 0.001784559488 -0.0002503846288 0.0002210497558 0.001226543903 -4.101496935e-05 -0.001133755207 -0.0001190042198 -0.0007601546049 8.751647174e-05 -0.0002793226838 5.139324069e-05 -0.0001329005063 -0.0003121519685 -0.0001517037302 -1.853221841e-05 3.981652856e-05 0.0006990773678 0.0004622238278 -2.355307713e-05 -0.0001192407608 0.0004685420394 -0.002207587242 -0.0002071637213 -2.477215044e-05 -4.626205564e-05 -0.0005921084881 -6.458496302e-05 -0.001652940750 -0.0005230290890 0.0005694194436 -0.0003687699437 -0.001094756842 0.0009620033503 -0.0004472052753 0.0001970380843 0.0004464581013 -5.759175122e-05 0.001131391048 -8.513571322e-05 -0.0003066818714 0.0001682766974 -0.0002719087005 1.808761805e-05 -0.0005435234904 8.994805068e-05 2.598067746e-06 -2.097247913e-05 -0.0001145272478 9.827531874e-05 -0.0002322486937 6.448695064e-05 2.506096289e-05 0.0001543177515 0.001755390406 0.0002961780429 -2.442782186e-05 -1.317996532e-05 -0.0002872707844 -9.701092541e-05 0.004853507996 -0.001261009932 0.0005260115266 -0.0003492580652 -0.001510834217 -0.001223475099 0.0005106148720 -0.0001256818771 0.0004868869781 -4.233114421e-05 0.0004008788466 -0.0002891615033 -0.0003015204966 3.534853458e-05 2.896262147e-05 1.281947829e-06 0.0006151089668 -3.672387451e-06 -2.060548961e-05 -2.652035095e-05 -0.0001900803447 -0.0007395427227 0.0003518916965 -4.743002355e-05 -9.060667455e-05 2.608966455e-05 0.0004230799675 -0.0006149694324 -1.712200232e-05 5.250624567e-05 0.0003326759338 -7.802518457e-05 0.002121675730 0.002337379932 -0.0004897441864 0.0003746942282 0.008149463654 0.006289570808 -0.002500186443 0.0008941105008 -0.002613841534 -0.0006445206404 -0.0009252419472 0.0006674419641 0.001505456924 0.0003175846040 -0.0002207677066 8.565206826e-05 -0.01030178356 -0.002326319695 -0.0004906405210 -0.0001022772044 -0.004553505898 0.004248083115 0.006557426453 -0.002070031166 0.0001038838327 0.0004292276800 0.003613145351 -0.001828611374 -0.0002400117517 -0.0002564028203 -0.0001848726720 1.722642779e-05 0.003248342037 0.0004700535834 -0.002876005411 0.0005101441145 -0.001098704815 -0.005770073414 0.008370275497 -0.001740240574 0.004006911278 -0.01171562958 0.005895267487 0.008368198395 -2.757704258e-05 0.0007988926172 -0.006864812851 0.0009900432229 -0.001706444025 -4.059700668e-05 -1.223507524e-05 0.0001212062836 0.0005110737681 0.002232781887 -0.0009087908268 4.007330537e-05 0.0004185165167 -0.0002844366729 -0.001422126770 0.002547420740 5.804308876e-05 -0.0001888391376 -0.001540543914 0.0003479114175 
+DEAL::Cell with center -0.7500000000 -1.407148550e-18 0.000000000
+DEAL::-0.6012515503 -0.5766780283 -0.5531118850: -0.0006012513638 error value -1.788139343e-10 error grad 1.960241434e-09
+DEAL::-0.6458946236 -0.5236491363 -0.5006487306: -0.0006458944678 error value -2.384185791e-10 error grad 1.363754450e-09
+DEAL::-0.6898189280 -0.4638689601 -0.4413495827: -0.0006898186803 error value -1.788139343e-10 error grad 6.366739171e-10
+DEAL::-0.7296048967 -0.3975220470 -0.3754490693: -0.0007296048403 error value 1.788139343e-10 error grad 1.396540938e-09
+DEAL::-0.7617762381 -0.3254496235 -0.3038288032: -0.0007617760897 error value -2.384185791e-10 error grad 6.429416999e-10
+DEAL::-0.7832188522 -0.2491480826 -0.2280163559: -0.0007832186222 error value -2.980232239e-10 error grad 4.816710089e-10
+DEAL::-0.7915521155 -0.1706669598 -0.1500833118: -0.0007915519476 error value -5.960464478e-11 error grad 5.500234579e-10
+DEAL::-0.7854001879 -0.09242877894 -0.07246518026: -0.0007853999138 error value 5.960464478e-11 error grad 3.841685441e-10
+DEAL::-0.7645345314 -0.01700078778 0.002266559507: -0.0007645344138 error value -5.960464478e-11 error grad 9.237001564e-10
+DEAL::-0.7298790026 0.05314854421 0.07164727507: -0.0007298786044 error value -2.980232239e-10 error grad 6.362841418e-10
+DEAL::-0.6833856700 0.1158765656 0.1335451305: -0.0006833853126 error value -4.172325134e-10 error grad 3.347621259e-09
+DEAL::-0.6278029298 0.1695497377 0.1863429372: -0.0006278027892 error value -1.192092896e-10 error grad 9.746139540e-10
+DEAL::-0.5663675440 0.2131627953 0.2290556314: -0.0005663675666 error value 0.000000000 error grad 1.501763109e-09
+DEAL::
+DEAL::0.001260282874 0.0005641639233 -0.0002820300162 2.626157366e-06 -0.0002663728893 1.134316344e-05 -2.182109840e-05 -2.018296905e-05 -0.007204005718 0.002419783354 -0.001261455774 0.0007688360810 0.0003535044491 1.324730739e-05 0.0001324997991 3.613269888e-06 0.01207118607 -0.004432328701 0.002590242386 -0.001519811988 0.0001640499234 -8.860087395e-05 0.0001027229950 3.625804093e-06 -0.0003151390254 0.0001202294379 -7.735868916e-06 7.082659751e-05 4.791358113e-05 1.913732477e-05 0.0002365168929 8.705458045e-05 0.0003617857993 -0.0001625752598 0.0001493080109 -1.895320602e-05 6.011678837e-06 -0.0001034086347 9.562003613e-05 8.882801980e-05 -0.01048210621 0.002364046335 -0.001233798385 0.0007308303714 0.0005965967774 -9.856639057e-05 0.0001475701183 -1.745856926e-05 -0.0004993049502 8.011884242e-05 -4.991339892e-05 7.254079729e-05 3.707433492e-05 -1.281039789e-06 0.0001581489444 9.166894853e-05 -0.02677161026 0.004361663818 -0.002375916719 0.001344285965 0.002950863361 0.004371961117 0.0004655334651 -0.0001893825382 -0.001465138793 0.0006248178482 -0.002799060345 8.373455703e-05 0.0008403726816 -0.0003026272953 -8.659434319e-05 -0.0002476502210 -0.001133331895 -0.0004927066863 -0.0001726454794 -0.0001309229881 -0.0005200873613 0.002493410110 0.0007518113852 5.501724780e-05 -4.697389156e-05 0.0007773868442 -0.003841801167 -0.0006572719216 -0.0001685307026 8.733682334e-06 -0.001007800817 -0.0003915672004 0.01617584038 -0.001863847733 0.001568703651 -0.0009866065979 -0.005897592545 -0.001416101217 -0.001187148452 0.0004944254756 0.002581286192 0.0002796371579 0.001177262306 -0.0004569585621 -0.001629776120 0.0002522536814 -0.0005228319764 -6.541630719e-06 0.0008906847239 0.0005976758003 -0.0001154785156 -5.192540586e-05 -0.0002446110100 -0.001431593657 -0.0007785339952 0.0003855760098 -9.185603261e-05 0.0007760827541 0.0008549286127 -0.0003669817448 -0.0001312621534 4.426627979e-05 -0.0007198715210 -0.0004007578194 0.008590967178 -0.004045403004 0.001498350143 -0.0009747195840 -0.0006291614175 -0.001781652689 0.0008676060438 -5.588963628e-05 0.0006082984209 -0.0006307170987 0.0008571041822 -0.0005083770752 -0.0004475797415 0.0002856459618 -0.0003198923469 -5.654927343e-05 0.0008577734232 -0.0003732626438 -6.233276799e-05 -0.0001639172286 0.0003882610500 -0.001476847887 0.001010244250 -1.109749824e-05 -0.0002370297909 -0.0004334727526 0.0007511007786 -0.001026204586 -4.747522250e-05 0.0003745303154 -0.0003511632085 -0.0003808439672 0.006513904095 0.01582317448 -0.005124197006 0.003157249451 -0.01133579826 0.01109433365 -0.004884637833 0.001423341751 0.004621635437 -0.0004843950272 -0.001600012660 0.0008919353485 -0.002426309109 0.0005417066813 0.0003699142039 0.0004880305529 -0.01368873501 0.01421897507 -0.004835169792 0.001487906337 -0.02800938225 -0.0005847433805 0.02072098160 -0.007271014214 0.003017077446 -0.01054402161 0.007413534164 -0.003022711992 -0.001761171341 0.004377373219 -0.002455801487 -0.0003527519107 0.004414392471 -0.0005133776665 -0.001775300622 0.0004771030247 0.002117608070 -0.01290156841 0.01016016960 -0.003017919302 0.007051618099 -0.02589191818 0.005871871471 0.01427527809 0.0004566234648 0.002239730835 -0.002539180517 0.002973899603 -0.002342548609 0.0008785858154 0.0003179932833 0.0006111674309 -0.001175441742 0.004596780777 -0.003224329472 -0.0002510232329 0.0009492551088 0.0009558885098 -0.002124760866 0.004376265526 0.0002800743878 -0.001420135736 0.001408090353 0.001705090404 
+DEAL::Cell with center -1.407148550e-18 -0.7500000000 -4.163336342e-17
+DEAL::-0.5879922187 -0.5879922187 -0.5412602679: -0.0005879920721 error value -1.788139343e-10 error grad 1.188151259e-09
+DEAL::-0.5359927398 -0.6317656581 -0.4904247681: -0.0005359925628 error value 1.192092896e-10 error grad 8.518424579e-10
+DEAL::-0.4774156808 -0.6752050943 -0.4328300536: -0.0004774155915 error value -2.980232239e-11 error grad 7.072763424e-10
+DEAL::-0.4123477836 -0.7149693757 -0.3686646352: -0.0004123477936 error value 0.000000000 error grad 1.995717582e-10
+DEAL::-0.3415220448 -0.7476112822 -0.2987437738: -0.0003415219784 error value -2.980232239e-11 error grad 4.607224753e-10
+DEAL::-0.2663289165 -0.7699931685 -0.2245218407: -0.0002663288116 error value -1.192092896e-10 error grad 6.797113201e-10
+DEAL::-0.1887262238 -0.7796633598 -0.1480024603: -0.0001887261868 error value 0.000000000 error grad 3.075238908e-10
+DEAL::-0.1110685560 -0.7751382896 -0.07156802410: -0.0001110685170 error value -1.490116119e-11 error grad 7.906231048e-11
+DEAL::-0.03588516627 -0.7560592058 0.002241853775: -3.588515148e-05 error value -1.117587090e-11 error grad 4.204671598e-10
+DEAL::0.03436118254 -0.7232127397 0.07097021235: 3.436122090e-05 error value -4.097819328e-11 error grad 2.998966693e-10
+DEAL::0.09750269006 -0.6784217227 0.1324691326: 9.750270844e-05 error value -1.490116119e-11 error grad 2.021323269e-10
+DEAL::0.1518546010 -0.6243263560 0.1850850191: 0.0001518546343 error value 0.000000000 error grad 3.021933139e-10
+DEAL::0.1963417794 -0.5640861853 0.2277818661: 0.0001963418424 error value -5.960464478e-11 error grad 4.881161999e-10
+DEAL::
+DEAL::-0.01422770023 0.0002758244872 0.0003233465552 2.258587396e-06 -0.0004923891425 6.479225121e-06 7.673384156e-06 -4.048905801e-06 0.009627155304 -0.002691698074 0.001498487115 -0.0008773580790 0.0001279655397 4.225022346e-05 7.356625795e-05 -5.097714718e-06 0.005585739613 -0.002164579153 0.001253406048 -0.0007433188558 0.0001099531427 -1.260376535e-05 9.252628312e-06 -2.884049434e-06 0.0002806671858 -3.219625726e-05 8.013068140e-05 -2.068037726e-05 5.503513850e-06 2.306510881e-05 0.0001436683834 1.418967079e-05 0.0001365397573 -6.721764058e-05 4.142142460e-05 -1.326446049e-05 6.057546940e-06 -1.734940708e-05 -6.045767292e-05 2.150109597e-05 -0.01547864628 0.004190333366 -0.002247246504 0.001336819291 0.0001129726470 -6.340040267e-05 7.707709819e-05 -1.389670372e-05 0.0001419156790 -8.253926784e-05 4.544133693e-05 -1.902269013e-05 5.634094123e-06 8.671597578e-06 6.230324134e-05 1.872661337e-05 0.003802940369 -0.001849693656 0.0006332883239 -0.0003887311220 -0.001842051029 0.001784559488 -0.0002503845692 0.0002210497111 0.001226543903 -4.101493955e-05 -0.001133755207 -0.0001190042198 -0.0007601546049 8.751647174e-05 -0.0002793226838 5.139323696e-05 -0.0001329005063 -0.0003121519089 -0.0001517037302 -1.853221841e-05 3.981652856e-05 0.0006990773678 0.0004622238278 -2.355307713e-05 -0.0001192407608 0.0004685420692 -0.002207587242 -0.0002071637213 -2.477215230e-05 -4.626205564e-05 -0.0005921084881 -6.458496302e-05 -0.001652941465 -0.0005230289698 0.0005694193244 -0.0003687698841 -0.001094756722 0.0009620033503 -0.0004472052753 0.0001970380694 0.0004464580417 -5.759170651e-05 0.001131391048 -8.513571322e-05 -0.0003066818118 0.0001682766974 -0.0002719087005 1.808761619e-05 -0.0005435234308 8.994804323e-05 2.598064020e-06 -2.097247355e-05 -0.0001145272553 9.827530384e-05 -0.0002322486937 6.448694319e-05 2.506096289e-05 0.0001543177515 0.001755390406 0.0002961780429 -2.442782000e-05 -1.317996532e-05 -0.0002872707844 -9.701092541e-05 0.004853507996 -0.001261009932 0.0005260115266 -0.0003492580652 -0.001510834217 -0.001223475099 0.0005106148720 -0.0001256819069 0.0004868869781 -4.233111441e-05 0.0004008788466 -0.0002891615033 -0.0003015204966 3.534852713e-05 2.896262147e-05 1.281946898e-06 0.0006151090264 -3.672394902e-06 -2.060548961e-05 -2.652035095e-05 -0.0001900803447 -0.0007395427227 0.0003518916965 -4.743002728e-05 -9.060667455e-05 2.608968318e-05 0.0004230799675 -0.0006149694324 -1.712200046e-05 5.250624567e-05 0.0003326759338 -7.802519202e-05 0.002121676922 0.002337379932 -0.0004897442460 0.0003746942282 0.008149463654 0.006289570808 -0.002500186682 0.0008941105008 -0.002613841295 -0.0006445206404 -0.0009252419472 0.0006674419641 0.001505456924 0.0003175846040 -0.0002207676917 8.565205336e-05 -0.01030178452 -0.002326319456 -0.0004906406403 -0.0001022772193 -0.004553506851 0.004248083115 0.006557426929 -0.002070031166 0.0001038837433 0.0004292277396 0.003613145351 -0.001828611374 -0.0002400117815 -0.0002564028502 -0.0001848726869 1.722643524e-05 0.003248342514 0.0004700535536 -0.002876005411 0.0005101440549 -0.001098704815 -0.005770073891 0.008370275497 -0.001740240574 0.004006911278 -0.01171562958 0.005895267963 0.008368198395 -2.757704258e-05 0.0007988926172 -0.006864812851 0.0009900432229 -0.001706444025 -4.059696198e-05 -1.223507524e-05 0.0001212062910 0.0005110737681 0.002232781887 -0.0009087908268 4.007332027e-05 0.0004185165465 -0.0002844366729 -0.001422126770 0.002547420740 5.804307386e-05 -0.0001888391227 -0.001540543914 0.0003479114175 
+DEAL::Cell with center -1.407148550e-18 0.7500000000 0.000000000
+DEAL::-0.5766780283 0.6012515503 -0.5531118850: -0.0005766779780 error value -5.960464478e-11 error grad 1.939806225e-09
+DEAL::-0.5236491363 0.6458946236 -0.5006487306: -0.0005236489177 error value 0.000000000 error grad 3.019678161e-09
+DEAL::-0.4638689601 0.6898189280 -0.4413495827: -0.0004638688564 error value -1.490116119e-10 error grad 1.788013719e-09
+DEAL::-0.3975220470 0.7296048967 -0.3754490693: -0.0003975220621 error value 0.000000000 error grad 5.532346563e-10
+DEAL::-0.3254496235 0.7617762381 -0.3038288032: -0.0003254495859 error value -5.960464478e-11 error grad 3.512572562e-10
+DEAL::-0.2491480826 0.7832188522 -0.2280163559: -0.0002491479516 error value -8.940696716e-11 error grad 5.708542972e-10
+DEAL::-0.1706669598 0.7915521155 -0.1500833118: -0.0001706669033 error value -7.450580597e-11 error grad 2.577968132e-10
+DEAL::-0.09242877894 0.7854001879 -0.07246518026: -9.242874384e-05 error value -4.470348358e-11 error grad 1.686134539e-10
+DEAL::-0.01700078778 0.7645345314 0.002266559507: -1.700077951e-05 error value -2.048909664e-11 error grad 2.856789116e-11
+DEAL::0.05314854421 0.7298790026 0.07164727507: 5.314857885e-05 error value -7.450580597e-12 error grad 4.373425497e-10
+DEAL::0.1158765656 0.6833856700 0.1335451305: 0.0001158765703 error value 0.000000000 error grad 1.942406982e-10
+DEAL::0.1695497377 0.6278029298 0.1863429372: 0.0001695497781 error value -2.980232239e-11 error grad 3.081903799e-10
+DEAL::0.2131627953 0.5663675440 0.2290556314: 0.0002131628543 error value -2.980232239e-11 error grad 4.994562914e-10
+DEAL::
+DEAL::-0.01362431431 0.0005178821683 7.092781365e-05 6.867622025e-06 -0.0004719549119 1.545561664e-05 1.540542580e-07 -1.887250110e-07 0.002703583956 -0.0005710434914 0.0003443506956 -0.0001924411952 0.0002324615121 -3.550048918e-05 2.131107450e-05 -1.680926979e-05 0.01071458530 -0.004090115070 0.002326077461 -0.001398070812 0.0001790472865 3.202378750e-06 8.002419025e-05 -1.936455071e-05 4.971117526e-05 8.879415691e-07 1.967641525e-06 2.526612487e-06 1.079680398e-05 -6.328527350e-06 -6.748069078e-05 6.622530054e-06 0.0003122869134 -9.511683136e-05 9.248830378e-05 -4.345433414e-05 2.182450611e-06 2.422300354e-05 0.0001327950209 -1.964713680e-06 -0.01464396095 0.004004188538 -0.002180567741 0.001280624747 0.0003860597610 -0.0001480217725 3.311746567e-05 -4.273700714e-05 -8.619616926e-05 -7.933776826e-06 2.372387797e-06 9.273136966e-07 1.014672220e-05 6.921455264e-06 -1.569088735e-05 1.402777620e-06 -0.006955347061 0.0003518211842 -0.0004292265177 0.0002305435836 0.0001277261972 0.0002820605040 0.0001781710088 1.801638305e-05 0.0002620721757 -0.0002656383514 0.001087672591 -4.278092086e-05 -0.0001325731277 4.930168390e-06 3.158807755e-05 -1.631511748e-05 -0.0003810894787 -0.0002138093859 7.210828364e-05 -3.278306127e-05 1.610856503e-05 -1.486366615e-05 9.505462646e-05 -1.532810275e-05 0.0001654914320 -0.0004387930930 0.001761516094 -1.149505004e-05 -2.682679705e-05 1.788067073e-05 0.0003222285509 -3.092373163e-05 0.006611960411 -0.001969496489 0.001441188693 -0.0008427303433 -0.003552629948 0.002158221006 -0.0005223461390 0.0002561097145 0.001743031979 -0.0006306162477 -0.001017322779 -0.0002971495390 -0.001044080734 0.0003965648711 -4.952679574e-05 0.0001235419586 -9.058890492e-05 0.0001040909812 -4.746137653e-06 -8.899999782e-06 -0.0003270230889 0.0007738799453 0.0001898225546 -6.171052530e-05 -8.956573904e-05 0.0003432353735 -0.002483001947 -0.0005569385886 -2.564780787e-05 -2.690269984e-05 8.140182495e-05 7.079293951e-06 0.006636897087 -0.002314287186 0.001065527201 -0.0006306964755 -0.001790484309 -0.0009765980244 -0.0001806868166 9.261282533e-05 0.0007674395442 0.0003652372360 0.0004510361552 -1.052435301e-05 -0.0004869468212 -2.285704017e-05 -0.0003211437166 4.640630633e-05 0.0006560578346 -0.0001932682097 -6.384771317e-06 -2.467247844e-05 -2.914188430e-05 -0.0007341763973 -2.278342843e-05 1.053777803e-05 -5.720574409e-06 0.0003402565718 0.0004704145193 0.0003275494576 -1.395403408e-05 -5.811072141e-05 -0.0006315169930 -1.494082250e-05 0.005469530582 0.005400880814 -0.001882449627 0.001051500082 0.002693790913 0.006820692539 -0.0009934481978 0.0005994113684 -0.0003554970622 -0.002681904793 -0.0006898797750 -0.0003288704753 0.0002625626922 0.0009435138702 0.0005385843515 8.717706800e-05 -0.01064965820 -0.003344608307 3.057843447e-05 -3.842121363e-05 -0.002319988012 0.003483480215 -0.0006515734196 6.214516610e-05 -0.0001492093056 0.007720962048 0.003087632179 -4.977491498e-05 -0.0002782432437 -0.002329771280 -0.001571547627 5.880220234e-05 0.003191682816 -0.0005546981692 0.004190329075 -0.0005697663426 0.0007603554726 -0.006762125015 -0.01060070229 0.001539770126 -0.003248999119 0.009740852356 0.002453307867 -0.006559880733 0.0001229216158 -0.0008379780650 0.009866868973 -4.739914834e-05 -0.001821580529 0.0005263152122 0.0001420910805 5.023290962e-05 4.617104679e-05 0.002191655636 -7.397894561e-05 -1.094980165e-05 -7.883987576e-05 -0.0008329711556 -0.001704126835 -0.001504091263 6.263671815e-05 0.0001133942753 0.002651711702 7.031649351e-05 
+DEAL::Mapping of degree 1
+DEAL::Cell with center -3.778985438e-18 0.000000000 -0.7500000000
+DEAL::-0.5683291712 -0.5505688846 -0.5683291712: -0.5683291712 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4864837773 -0.4692541435 -0.5513482810: -0.4864837773 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4086338870 -0.3919349060 -0.5343673907: -0.4086338870 error value 0.000000000 error grad 0.000000000
+DEAL::-0.3347795003 -0.3186111721 -0.5173865004: -0.3347795003 error value 0.000000000 error grad 0.000000000
+DEAL::-0.2649206171 -0.2492829418 -0.5004056102: -0.2649206171 error value 0.000000000 error grad 0.000000000
+DEAL::-0.1990572376 -0.1839502151 -0.4834247199: -0.1990572376 error value 0.000000000 error grad 0.000000000
+DEAL::-0.1371893617 -0.1226129920 -0.4664438296: -0.1371893617 error value 0.000000000 error grad 0.000000000
+DEAL::-0.07931698930 -0.06527127244 -0.4494629393: -0.07931698930 error value 0.000000000 error grad 0.000000000
+DEAL::-0.02544012053 -0.01192505650 -0.4324820491: -0.02544012053 error value 0.000000000 error grad 0.000000000
+DEAL::0.02444124464 0.03742565585 -0.4155011588: 0.02444124464 error value 0.000000000 error grad 0.000000000
+DEAL::0.07032710621 0.08278086460 -0.3985202685: 0.07032710621 error value 0.000000000 error grad 0.000000000
+DEAL::0.1122174642 0.1241405698 -0.3815393783: 0.1122174642 error value 0.000000000 error grad 0.000000000
+DEAL::0.1501123186 0.1615047713 -0.3645584880: 0.1501123186 error value 0.000000000 error grad 0.000000000
+DEAL::
+DEAL::-7.267317338 5.515167688 -2.829462459 2.618475712 -3.083102087 2.838567644 -3.053054262 3.113672573 
+DEAL::Cell with center 0.7500000000 -2.814297100e-18 -4.163336342e-17
+DEAL::0.5728397202 -0.5728397202 -0.5370372377: 0.5728397202 error value 0.000000000 error grad 0.000000000
+DEAL::0.5558588299 -0.4904636735 -0.4557224966: 0.5558588299 error value 0.000000000 error grad 0.000000000
+DEAL::0.5388779397 -0.4120831303 -0.3784032591: 0.5388779397 error value 0.000000000 error grad 0.000000000
+DEAL::0.5218970494 -0.3376980908 -0.3050795252: 0.5218970494 error value 0.000000000 error grad 0.000000000
+DEAL::0.5049161591 -0.2673085548 -0.2357512949: 0.5049161591 error value 0.000000000 error grad 0.000000000
+DEAL::0.4879352689 -0.2009145225 -0.1704185682: 0.4879352689 error value 0.000000000 error grad 0.000000000
+DEAL::0.4709543786 -0.1385159937 -0.1090813450: 0.4709543786 error value 0.000000000 error grad 0.000000000
+DEAL::0.4539734883 -0.08011296853 -0.05173962551: 0.4539734883 error value 0.000000000 error grad 0.000000000
+DEAL::0.4369925980 -0.02570544694 0.001606590434: 0.4369925980 error value 0.000000000 error grad 0.000000000
+DEAL::0.4200117078 0.02470657105 0.05095730278: 0.4200117078 error value 0.000000000 error grad 0.000000000
+DEAL::0.4030308175 0.07112308544 0.09631251154: 0.4030308175 error value 0.000000000 error grad 0.000000000
+DEAL::0.3860499272 0.1135440962 0.1376722167: 0.3860499272 error value 0.000000000 error grad 0.000000000
+DEAL::0.3690690370 0.1519696035 0.1750364183: 0.3690690370 error value 0.000000000 error grad 0.000000000
+DEAL::
+DEAL::16.77138376 11.05879002 -19.93181929 -6.355857835 12.06412137 9.186716076 -8.048705002 -8.622222171 
+DEAL::Cell with center -2.814297100e-18 -4.163336342e-17 0.7500000000
+DEAL::-0.5728397202 -0.5370372377 0.5728397202: -0.5728397202 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4904636735 -0.4557224966 0.5558588299: -0.4904636735 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4120831303 -0.3784032591 0.5388779397: -0.4120831303 error value 0.000000000 error grad 0.000000000
+DEAL::-0.3376980908 -0.3050795252 0.5218970494: -0.3376980908 error value 0.000000000 error grad 0.000000000
+DEAL::-0.2673085548 -0.2357512949 0.5049161591: -0.2673085548 error value 0.000000000 error grad 0.000000000
+DEAL::-0.2009145225 -0.1704185682 0.4879352689: -0.2009145225 error value 0.000000000 error grad 0.000000000
+DEAL::-0.1385159937 -0.1090813450 0.4709543786: -0.1385159937 error value 0.000000000 error grad 0.000000000
+DEAL::-0.08011296853 -0.05173962551 0.4539734883: -0.08011296853 error value 0.000000000 error grad 0.000000000
+DEAL::-0.02570544694 0.001606590434 0.4369925980: -0.02570544694 error value 0.000000000 error grad 0.000000000
+DEAL::0.02470657105 0.05095730278 0.4200117078: 0.02470657105 error value 0.000000000 error grad 0.000000000
+DEAL::0.07112308544 0.09631251154 0.4030308175: 0.07112308544 error value 0.000000000 error grad 0.000000000
+DEAL::0.1135440962 0.1376722167 0.3860499272: 0.1135440962 error value 0.000000000 error grad 0.000000000
+DEAL::0.1519696035 0.1750364183 0.3690690370: 0.1519696035 error value 0.000000000 error grad 0.000000000
+DEAL::
+DEAL::-7.229081381 5.462304493 -2.804117959 2.591456971 -3.055813720 2.809335564 -3.019515657 3.081132944 
+DEAL::Cell with center -0.7500000000 -1.407148550e-18 0.000000000
+DEAL::-0.5773502692 -0.5593080733 -0.5412658774: -0.5773502692 error value 0.000000000 error grad 0.000000000
+DEAL::-0.5603693789 -0.4769320265 -0.4594204835: -0.5603693789 error value 0.000000000 error grad 0.000000000
+DEAL::-0.5433884886 -0.3985514834 -0.3815705931: -0.5433884886 error value 0.000000000 error grad 0.000000000
+DEAL::-0.5264075984 -0.3241664439 -0.3077162064: -0.5264075984 error value 0.000000000 error grad 0.000000000
+DEAL::-0.5094267081 -0.2537769079 -0.2378573233: -0.5094267081 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4924458178 -0.1873828755 -0.1719939437: -0.4924458178 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4754649276 -0.1249843468 -0.1101260678: -0.4754649276 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4584840373 -0.06658132159 -0.05225369543: -0.4584840373 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4415031470 -0.01217380001 0.001623173335: -0.4415031470 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4245222568 0.03823821798 0.05150453850: -0.4245222568 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4075413665 0.08465473238 0.09739040008: -0.4075413665 error value 0.000000000 error grad 0.000000000
+DEAL::-0.3905604762 0.1270757432 0.1392807581: -0.3905604762 error value 0.000000000 error grad 0.000000000
+DEAL::-0.3735795859 0.1655012504 0.1771756125: -0.3735795859 error value 0.000000000 error grad 0.000000000
+DEAL::
+DEAL::-16.53207299 19.38768445 -11.37053150 6.920789048 -11.87095928 7.759733066 -9.441051728 8.965364888 
+DEAL::Cell with center -1.407148550e-18 -0.7500000000 -4.163336342e-17
+DEAL::-0.5728397202 -0.5728397202 -0.5370372377: -0.5728397202 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4904636735 -0.5558588299 -0.4557224966: -0.4904636735 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4120831303 -0.5388779397 -0.3784032591: -0.4120831303 error value 0.000000000 error grad 0.000000000
+DEAL::-0.3376980908 -0.5218970494 -0.3050795252: -0.3376980908 error value 0.000000000 error grad 0.000000000
+DEAL::-0.2673085548 -0.5049161591 -0.2357512949: -0.2673085548 error value 0.000000000 error grad 0.000000000
+DEAL::-0.2009145225 -0.4879352689 -0.1704185682: -0.2009145225 error value 0.000000000 error grad 0.000000000
+DEAL::-0.1385159937 -0.4709543786 -0.1090813450: -0.1385159937 error value 0.000000000 error grad 0.000000000
+DEAL::-0.08011296853 -0.4539734883 -0.05173962551: -0.08011296853 error value 0.000000000 error grad 0.000000000
+DEAL::-0.02570544694 -0.4369925980 0.001606590434: -0.02570544694 error value 0.000000000 error grad 0.000000000
+DEAL::0.02470657105 -0.4200117078 0.05095730278: 0.02470657105 error value 0.000000000 error grad 0.000000000
+DEAL::0.07112308544 -0.4030308175 0.09631251154: 0.07112308544 error value 0.000000000 error grad 0.000000000
+DEAL::0.1135440962 -0.3860499272 0.1376722167: 0.1135440962 error value 0.000000000 error grad 0.000000000
+DEAL::0.1519696035 -0.3690690370 0.1750364183: 0.1519696035 error value 0.000000000 error grad 0.000000000
+DEAL::
+DEAL::-7.229081381 5.462304493 -2.804117959 2.591456971 -3.055813720 2.809335564 -3.019515657 3.081132944 
+DEAL::Cell with center -1.407148550e-18 0.7500000000 0.000000000
+DEAL::-0.5593080733 0.5773502692 -0.5412658774: -0.5593080733 error value 0.000000000 error grad 0.000000000
+DEAL::-0.4769320265 0.5603693789 -0.4594204835: -0.4769320265 error value 0.000000000 error grad 0.000000000
+DEAL::-0.3985514834 0.5433884886 -0.3815705931: -0.3985514834 error value 0.000000000 error grad 0.000000000
+DEAL::-0.3241664439 0.5264075984 -0.3077162064: -0.3241664439 error value 0.000000000 error grad 0.000000000
+DEAL::-0.2537769079 0.5094267081 -0.2378573233: -0.2537769079 error value 0.000000000 error grad 0.000000000
+DEAL::-0.1873828755 0.4924458178 -0.1719939437: -0.1873828755 error value 0.000000000 error grad 0.000000000
+DEAL::-0.1249843468 0.4754649276 -0.1101260678: -0.1249843468 error value 0.000000000 error grad 0.000000000
+DEAL::-0.06658132159 0.4584840373 -0.05225369543: -0.06658132159 error value 0.000000000 error grad 0.000000000
+DEAL::-0.01217380001 0.4415031470 0.001623173335: -0.01217380001 error value 0.000000000 error grad 0.000000000
+DEAL::0.03823821798 0.4245222568 0.05150453850: 0.03823821798 error value 0.000000000 error grad 0.000000000
+DEAL::0.08465473238 0.4075413665 0.09739040008: 0.08465473238 error value 0.000000000 error grad 0.000000000
+DEAL::0.1270757432 0.3905604762 0.1392807581: 0.1270757432 error value 0.000000000 error grad 0.000000000
+DEAL::0.1655012504 0.3735795859 0.1771756125: 0.1655012504 error value 0.000000000 error grad 0.000000000
+DEAL::
+DEAL::-7.245648737 -2.602728431 5.526559250 2.450707840 -3.097266565 -2.879576568 2.883108870 2.976457006 

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.