From: Peter Munch Date: Tue, 11 May 2021 06:49:06 +0000 (+0200) Subject: FEPointEvaluation for float X-Git-Tag: v9.3.0-rc1~94^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F12177%2Fhead;p=dealii.git FEPointEvaluation for float --- diff --git a/include/deal.II/base/derivative_form.h b/include/deal.II/base/derivative_form.h index 950bc01c49..38f95f1e93 100644 --- a/include/deal.II/base/derivative_form.h +++ b/include/deal.II/base/derivative_form.h @@ -424,12 +424,12 @@ DerivativeForm::memory_consumption() * * @relatesalso DerivativeForm */ -template -inline Tensor<1, spacedim, Number> -apply_transformation(const DerivativeForm<1, dim, spacedim, Number> &grad_F, - const Tensor<1, dim, Number> & d_x) +template +inline Tensor<1, spacedim, Number2> +apply_transformation(const DerivativeForm<1, dim, spacedim, Number1> &grad_F, + const Tensor<1, dim, Number2> & d_x) { - Tensor<1, spacedim, Number> dest; + Tensor<1, spacedim, Number2> dest; for (unsigned int i = 0; i < spacedim; ++i) dest[i] = grad_F[i] * d_x; return dest; diff --git a/include/deal.II/base/function_lib.h b/include/deal.II/base/function_lib.h index eaf4c09204..e2205ab576 100644 --- a/include/deal.II/base/function_lib.h +++ b/include/deal.II/base/function_lib.h @@ -1316,8 +1316,8 @@ namespace Functions * * @ingroup functions */ - template - class Monomial : public Function + template + class Monomial : public Function { public: /** @@ -1326,13 +1326,13 @@ namespace Functions * components this object shall represent. All vector components will have * the same value. */ - Monomial(const Tensor<1, dim> &exponents, - const unsigned int n_components = 1); + Monomial(const Tensor<1, dim, Number> &exponents, + const unsigned int n_components = 1); /** * Function value at one point. */ - virtual double + virtual Number value(const Point &p, const unsigned int component = 0) const override; /** @@ -1342,20 +1342,20 @@ namespace Functions * #n_components. */ virtual void - vector_value(const Point &p, Vector &values) const override; + vector_value(const Point &p, Vector &values) const override; /** * Function values at multiple points. */ virtual void value_list(const std::vector> &points, - std::vector & values, + std::vector & values, const unsigned int component = 0) const override; /** * Function gradient at one point. */ - virtual Tensor<1, dim> + virtual Tensor<1, dim, Number> gradient(const Point & p, const unsigned int component = 0) const override; @@ -1363,7 +1363,7 @@ namespace Functions /** * The set of exponents. */ - const Tensor<1, dim> exponents; + const Tensor<1, dim, Number> exponents; }; diff --git a/include/deal.II/fe/fe_point_evaluation.h b/include/deal.II/fe/fe_point_evaluation.h index 53d87bad3d..6f46b73e3a 100644 --- a/include/deal.II/fe/fe_point_evaluation.h +++ b/include/deal.II/fe/fe_point_evaluation.h @@ -42,14 +42,14 @@ namespace internal * Struct to distinguish between the value and gradient types of different * numbers of components used by the FlexibleEvaluator class. */ - template + template struct EvaluatorTypeTraits { - using value_type = Tensor<1, n_components>; - using gradient_type = Tensor<1, n_components, Tensor<1, dim>>; + using value_type = Tensor<1, n_components, Number>; + using gradient_type = Tensor<1, n_components, Tensor<1, dim, Number>>; static void - read_value(const double vector_entry, + read_value(const Number vector_entry, const unsigned int component, value_type & result) { @@ -58,7 +58,7 @@ namespace internal } static void - write_value(double & vector_entry, + write_value(Number & vector_entry, const unsigned int component, const value_type & result) { @@ -68,7 +68,7 @@ namespace internal static void set_gradient( - const Tensor<1, dim, Tensor<1, n_components, VectorizedArray>> + const Tensor<1, dim, Tensor<1, n_components, VectorizedArray>> & value, const unsigned int vector_lane, gradient_type & result) @@ -79,7 +79,7 @@ namespace internal } static void get_gradient( - Tensor<1, dim, Tensor<1, n_components, VectorizedArray>> &value, + Tensor<1, dim, Tensor<1, n_components, VectorizedArray>> &value, const unsigned int vector_lane, const gradient_type &result) { @@ -89,7 +89,7 @@ namespace internal } static void - set_value(const Tensor<1, n_components, VectorizedArray> &value, + set_value(const Tensor<1, n_components, VectorizedArray> &value, const unsigned int vector_lane, value_type & result) { @@ -98,7 +98,7 @@ namespace internal } static void - get_value(Tensor<1, n_components, VectorizedArray> &value, + get_value(Tensor<1, n_components, VectorizedArray> &value, const unsigned int vector_lane, const value_type & result) { @@ -106,30 +106,30 @@ namespace internal value[i][vector_lane] = result[i]; } - template - static Number &access(Tensor<1, n_components, Number> &value, - const unsigned int component) + template + static Number2 &access(Tensor<1, n_components, Number2> &value, + const unsigned int component) { return value[component]; } - template - static const Number & - access(const Tensor<1, n_components, Number> &value, - const unsigned int component) + template + static const Number2 & + access(const Tensor<1, n_components, Number2> &value, + const unsigned int component) { return value[component]; } }; - template - struct EvaluatorTypeTraits + template + struct EvaluatorTypeTraits { - using value_type = double; - using gradient_type = Tensor<1, dim>; + using value_type = Number; + using gradient_type = Tensor<1, dim, Number>; static void - read_value(const double vector_entry, + read_value(const Number vector_entry, const unsigned int, value_type &result) { @@ -137,7 +137,7 @@ namespace internal } static void - write_value(double &vector_entry, + write_value(Number &vector_entry, const unsigned int, const value_type &result) { @@ -145,7 +145,7 @@ namespace internal } static void - set_gradient(const Tensor<1, dim, VectorizedArray> &value, + set_gradient(const Tensor<1, dim, VectorizedArray> &value, const unsigned int vector_lane, gradient_type & result) { @@ -153,7 +153,7 @@ namespace internal result[d] = value[d][vector_lane]; } - static void get_gradient(Tensor<1, dim, VectorizedArray> &value, + static void get_gradient(Tensor<1, dim, VectorizedArray> &value, const unsigned int vector_lane, const gradient_type &result) { @@ -162,7 +162,7 @@ namespace internal } static void - set_value(const VectorizedArray &value, + set_value(const VectorizedArray &value, const unsigned int vector_lane, value_type & result) { @@ -170,36 +170,36 @@ namespace internal } static void - get_value(VectorizedArray &value, + get_value(VectorizedArray &value, const unsigned int vector_lane, const value_type & result) { value[vector_lane] = result; } - template - static Number & - access(Number &value, const unsigned int) + template + static Number2 & + access(Number2 &value, const unsigned int) { return value; } - template - static const Number & - access(const Number &value, const unsigned int) + template + static const Number2 & + access(const Number2 &value, const unsigned int) { return value; } }; - template - struct EvaluatorTypeTraits + template + struct EvaluatorTypeTraits { - using value_type = Tensor<1, dim>; - using gradient_type = Tensor<2, dim>; + using value_type = Tensor<1, dim, Number>; + using gradient_type = Tensor<2, dim, Number>; static void - read_value(const double vector_entry, + read_value(const Number vector_entry, const unsigned int component, value_type & result) { @@ -207,7 +207,7 @@ namespace internal } static void - write_value(double & vector_entry, + write_value(Number & vector_entry, const unsigned int component, const value_type & result) { @@ -216,7 +216,7 @@ namespace internal static void set_gradient( - const Tensor<1, dim, Tensor<1, dim, VectorizedArray>> &value, + const Tensor<1, dim, Tensor<1, dim, VectorizedArray>> &value, const unsigned int vector_lane, gradient_type & result) { @@ -226,7 +226,7 @@ namespace internal } static void get_gradient( - Tensor<1, dim, Tensor<1, dim, VectorizedArray>> &value, + Tensor<1, dim, Tensor<1, dim, VectorizedArray>> &value, const unsigned int vector_lane, const gradient_type & result) { @@ -236,7 +236,7 @@ namespace internal } static void - set_value(const Tensor<1, dim, VectorizedArray> &value, + set_value(const Tensor<1, dim, VectorizedArray> &value, const unsigned int vector_lane, value_type & result) { @@ -244,7 +244,7 @@ namespace internal result[i] = value[i][vector_lane]; } - static void get_value(Tensor<1, dim, VectorizedArray> &value, + static void get_value(Tensor<1, dim, VectorizedArray> &value, const unsigned int vector_lane, const value_type & result) { @@ -252,13 +252,13 @@ namespace internal value[i][vector_lane] = result[i]; } - static double & + static Number & access(value_type &value, const unsigned int component) { return value[component]; } - static const double & + static const Number & access(const value_type &value, const unsigned int component) { return value[component]; @@ -277,14 +277,14 @@ namespace internal } }; - template <> - struct EvaluatorTypeTraits<1, 1> + template + struct EvaluatorTypeTraits<1, 1, Number> { - using value_type = double; - using gradient_type = Tensor<1, 1>; + using value_type = Number; + using gradient_type = Tensor<1, 1, Number>; static void - read_value(const double vector_entry, + read_value(const Number vector_entry, const unsigned int, value_type &result) { @@ -292,7 +292,7 @@ namespace internal } static void - write_value(double &vector_entry, + write_value(Number &vector_entry, const unsigned int, const value_type &result) { @@ -300,14 +300,14 @@ namespace internal } static void - set_gradient(const Tensor<1, 1, VectorizedArray> &value, + set_gradient(const Tensor<1, 1, VectorizedArray> &value, const unsigned int vector_lane, gradient_type & result) { result[0] = value[0][vector_lane]; } - static void get_gradient(Tensor<1, 1, VectorizedArray> &value, + static void get_gradient(Tensor<1, 1, VectorizedArray> &value, const unsigned int vector_lane, const gradient_type &result) { @@ -315,7 +315,7 @@ namespace internal } static void - set_value(const VectorizedArray &value, + set_value(const VectorizedArray &value, const unsigned int vector_lane, value_type & result) { @@ -323,23 +323,23 @@ namespace internal } static void - get_value(VectorizedArray &value, + get_value(VectorizedArray &value, const unsigned int vector_lane, const value_type & result) { value[vector_lane] = result; } - template - static Number & - access(Number &value, const unsigned int) + template + static Number2 & + access(Number2 &value, const unsigned int) { return value; } - template - static const Number & - access(const Number &value, const unsigned int) + template + static const Number2 & + access(const Number2 &value, const unsigned int) { return value; } @@ -369,14 +369,17 @@ namespace internal * by this class is similar (or sometimes even somewhat lower) than using * `FEValues::reinit(cell)` followed by `FEValues::get_function_gradients`. */ -template +template class FEPointEvaluation { public: using value_type = typename internal::FEPointEvaluation:: - EvaluatorTypeTraits::value_type; + EvaluatorTypeTraits::value_type; using gradient_type = typename internal::FEPointEvaluation:: - EvaluatorTypeTraits::gradient_type; + EvaluatorTypeTraits::gradient_type; /** * Constructor. @@ -414,7 +417,7 @@ public: void evaluate(const typename Triangulation::cell_iterator &cell, const ArrayView> & unit_points, - const ArrayView & solution_values, + const ArrayView & solution_values, const EvaluationFlags::EvaluationFlags &evaluation_flags); /** @@ -436,7 +439,7 @@ public: void integrate(const typename Triangulation::cell_iterator &cell, const ArrayView> & unit_points, - const ArrayView & solution_values, + const ArrayView & solution_values, const EvaluationFlags::EvaluationFlags &integration_flags); /** @@ -547,8 +550,8 @@ private: // ----------------------- template and inline function ---------------------- -template -FEPointEvaluation::FEPointEvaluation( +template +FEPointEvaluation::FEPointEvaluation( const Mapping & mapping, const FiniteElement &fe, const unsigned int first_selected_component) @@ -604,12 +607,12 @@ FEPointEvaluation::FEPointEvaluation( -template +template void -FEPointEvaluation::evaluate( +FEPointEvaluation::evaluate( const typename Triangulation::cell_iterator &cell, const ArrayView> & unit_points, - const ArrayView & solution_values, + const ArrayView & solution_values, const EvaluationFlags::EvaluationFlags & evaluation_flag) { if (unit_points.size() == 0) // no evaluation points provided @@ -629,10 +632,11 @@ FEPointEvaluation::evaluate( 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:: - read_value(solution_values[renumber[comp * dofs_per_component + i]], - comp, - solution_renumbered[i]); + internal::FEPointEvaluation:: + EvaluatorTypeTraits::read_value( + solution_values[renumber[comp * dofs_per_component + i]], + comp, + solution_renumbered[i]); if (evaluation_flag & EvaluationFlags::values) values.resize(unit_points.size()); @@ -640,11 +644,11 @@ FEPointEvaluation::evaluate( gradients.resize(unit_points.size()); const std::size_t n_points = unit_points.size(); - const std::size_t n_lanes = VectorizedArray::size(); + const std::size_t n_lanes = VectorizedArray::size(); for (unsigned int i = 0; i < n_points; i += n_lanes) { // convert to vectorized format - Point> vectorized_points; + Point> 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]; @@ -657,13 +661,13 @@ FEPointEvaluation::evaluate( // 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>::set_value(val_and_grad.first, j, values[i + j]); + internal::FEPointEvaluation:: + EvaluatorTypeTraits::set_value( + val_and_grad.first, j, values[i + j]); if (evaluation_flag & EvaluationFlags::gradients) for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j) internal::FEPointEvaluation:: - EvaluatorTypeTraits::set_gradient( + EvaluatorTypeTraits::set_gradient( val_and_grad.second, j, gradients[i + j]); } @@ -702,20 +706,19 @@ FEPointEvaluation::evaluate( std::fill(values.begin(), values.end(), value_type()); for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i) { - const double value = solution_values[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 < unit_points.size(); ++q) internal::FEPointEvaluation:: - EvaluatorTypeTraits::access(values[q], - d) += - fe_values.shape_value(i, q) * value; + EvaluatorTypeTraits::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 < unit_points.size(); ++q) internal::FEPointEvaluation:: - EvaluatorTypeTraits::access(values[q], - d) += + EvaluatorTypeTraits::access( + values[q], d) += fe_values.shape_value_component(i, q, d) * value; } } @@ -726,19 +729,19 @@ FEPointEvaluation::evaluate( std::fill(gradients.begin(), gradients.end(), gradient_type()); for (unsigned int i = 0; i < fe->n_dofs_per_cell(); ++i) { - const double value = solution_values[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 < unit_points.size(); ++q) internal::FEPointEvaluation:: - EvaluatorTypeTraits::access( + EvaluatorTypeTraits::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 < unit_points.size(); ++q) - internal::FEPointEvaluation::EvaluatorTypeTraits< - dim, - n_components>::access(gradients[q], d) += + internal::FEPointEvaluation:: + EvaluatorTypeTraits::access( + gradients[q], d) += fe_values.shape_grad_component(i, q, d) * value; } } @@ -747,12 +750,12 @@ FEPointEvaluation::evaluate( -template +template void -FEPointEvaluation::integrate( +FEPointEvaluation::integrate( const typename Triangulation::cell_iterator &cell, const ArrayView> & unit_points, - const ArrayView & solution_values, + const ArrayView & solution_values, const EvaluationFlags::EvaluationFlags & integration_flags) { if (unit_points.size() == 0) // no evaluation points provided @@ -788,36 +791,36 @@ FEPointEvaluation::integrate( AssertIndexRange(unit_points.size(), gradients.size() + 1); const std::size_t n_points = unit_points.size(); - const std::size_t n_lanes = VectorizedArray::size(); + const std::size_t n_lanes = VectorizedArray::size(); for (unsigned int i = 0; i < n_points; i += n_lanes) { // convert to vectorized format - Point> vectorized_points; + Point> 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]; typename internal::ProductTypeNoPoint>::type + VectorizedArray>::type value; Tensor<1, dim, typename internal::ProductTypeNoPoint< value_type, - VectorizedArray>::type> + VectorizedArray>::type> gradient; // convert back to standard format if (integration_flags & EvaluationFlags::values) for (unsigned int j = 0; j < n_lanes && i + j < n_points; ++j) - internal::FEPointEvaluation::EvaluatorTypeTraits< - dim, - n_components>::get_value(value, j, values[i + j]); + internal::FEPointEvaluation:: + EvaluatorTypeTraits::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) - internal::FEPointEvaluation::EvaluatorTypeTraits< - dim, - n_components>::get_gradient(gradient, j, gradients[i + j]); + internal::FEPointEvaluation:: + EvaluatorTypeTraits::get_gradient( + gradient, j, gradients[i + j]); // compute internal::integrate_tensor_product_value_and_gradient( @@ -831,8 +834,8 @@ FEPointEvaluation::integrate( for (unsigned int comp = 0; comp < n_components; ++comp) for (unsigned int i = 0; i < dofs_per_component; ++i) - internal::FEPointEvaluation::EvaluatorTypeTraits:: - write_value( + internal::FEPointEvaluation:: + EvaluatorTypeTraits::write_value( solution_values[renumber[comp * dofs_per_component + i]], comp, solution_renumbered[i]); @@ -867,16 +870,16 @@ FEPointEvaluation::integrate( for (unsigned int q = 0; q < unit_points.size(); ++q) solution_values[i] += fe_values.shape_value(i, q) * - internal::FEPointEvaluation::EvaluatorTypeTraits< - dim, - n_components>::access(values[q], d); + internal::FEPointEvaluation:: + EvaluatorTypeTraits::access( + values[q], d); else if (nonzero_shape_function_component[i][d]) for (unsigned int q = 0; q < unit_points.size(); ++q) solution_values[i] += fe_values.shape_value_component(i, q, d) * - internal::FEPointEvaluation::EvaluatorTypeTraits< - dim, - n_components>::access(values[q], d); + internal::FEPointEvaluation:: + EvaluatorTypeTraits::access( + values[q], d); } } @@ -891,16 +894,16 @@ FEPointEvaluation::integrate( for (unsigned int q = 0; q < unit_points.size(); ++q) solution_values[i] += fe_values.shape_grad(i, q) * - internal::FEPointEvaluation::EvaluatorTypeTraits< - dim, - n_components>::access(gradients[q], d); + internal::FEPointEvaluation:: + EvaluatorTypeTraits::access( + gradients[q], d); else if (nonzero_shape_function_component[i][d]) for (unsigned int q = 0; q < unit_points.size(); ++q) solution_values[i] += fe_values.shape_grad_component(i, q, d) * - internal::FEPointEvaluation::EvaluatorTypeTraits< - dim, - n_components>::access(gradients[q], d); + internal::FEPointEvaluation:: + EvaluatorTypeTraits::access( + gradients[q], d); } } } @@ -908,10 +911,10 @@ FEPointEvaluation::integrate( -template -inline const typename FEPointEvaluation::value_type - & - FEPointEvaluation::get_value( +template +inline const typename FEPointEvaluation:: + value_type & + FEPointEvaluation::get_value( const unsigned int q_point) const { AssertIndexRange(q_point, values.size()); @@ -920,10 +923,10 @@ inline const typename FEPointEvaluation::value_type -template -inline const typename FEPointEvaluation:: +template +inline const typename FEPointEvaluation:: gradient_type & - FEPointEvaluation::get_gradient( + FEPointEvaluation::get_gradient( const unsigned int q_point) const { AssertIndexRange(q_point, gradients.size()); @@ -932,9 +935,9 @@ inline const typename FEPointEvaluation:: -template +template inline void -FEPointEvaluation::submit_value( +FEPointEvaluation::submit_value( const value_type & value, const unsigned int q_point) { @@ -946,9 +949,9 @@ FEPointEvaluation::submit_value( -template +template inline void -FEPointEvaluation::submit_gradient( +FEPointEvaluation::submit_gradient( const gradient_type &gradient, const unsigned int q_point) { diff --git a/source/base/function_lib.cc b/source/base/function_lib.cc index d843e3a34e..2b94823f34 100644 --- a/source/base/function_lib.cc +++ b/source/base/function_lib.cc @@ -2176,23 +2176,24 @@ namespace Functions - template - Monomial::Monomial(const Tensor<1, dim> &exponents, - const unsigned int n_components) - : Function(n_components) + template + Monomial::Monomial(const Tensor<1, dim, Number> &exponents, + const unsigned int n_components) + : Function(n_components) , exponents(exponents) {} - template - double - Monomial::value(const Point &p, const unsigned int component) const + template + Number + Monomial::value(const Point & p, + const unsigned int component) const { (void)component; AssertIndexRange(component, this->n_components); - double prod = 1; + Number prod = 1; for (unsigned int s = 0; s < dim; ++s) { if (p[s] < 0) @@ -2206,23 +2207,24 @@ namespace Functions - template + template void - Monomial::vector_value(const Point &p, Vector &values) const + Monomial::vector_value(const Point &p, + Vector & values) const { Assert(values.size() == this->n_components, ExcDimensionMismatch(values.size(), this->n_components)); for (unsigned int i = 0; i < values.size(); ++i) - values(i) = Monomial::value(p, i); + values(i) = Monomial::value(p, i); } - template - Tensor<1, dim> - Monomial::gradient(const Point & p, - const unsigned int component) const + template + Tensor<1, dim, Number> + Monomial::gradient(const Point & p, + const unsigned int component) const { (void)component; AssertIndexRange(component, 1); @@ -2258,17 +2260,17 @@ namespace Functions - template + template void - Monomial::value_list(const std::vector> &points, - std::vector & values, - const unsigned int component) const + Monomial::value_list(const std::vector> &points, + std::vector & values, + const unsigned int component) const { Assert(values.size() == points.size(), ExcDimensionMismatch(values.size(), points.size())); for (unsigned int i = 0; i < points.size(); ++i) - values[i] = Monomial::value(points[i], component); + values[i] = Monomial::value(points[i], component); } @@ -2986,6 +2988,9 @@ namespace Functions template class Monomial<1>; template class Monomial<2>; template class Monomial<3>; + template class Monomial<1, float>; + template class Monomial<2, float>; + template class Monomial<3, float>; template class Bessel1<1>; template class Bessel1<2>; template class Bessel1<3>; diff --git a/tests/fe/point_evaluation_01.cc b/tests/fe/point_evaluation_01.cc index af0405c263..c74688fe47 100644 --- a/tests/fe/point_evaluation_01.cc +++ b/tests/fe/point_evaluation_01.cc @@ -39,7 +39,7 @@ -template +template void test(const unsigned int degree) { @@ -59,7 +59,7 @@ test(const unsigned int degree) { Point p; for (unsigned int d = 0; d < dim; ++d) - p[d] = static_cast(i) / 17. + 0.015625 * d; + p[d] = static_cast(i) / 17. + 0.015625 * d; unit_points.push_back(p); } @@ -71,20 +71,20 @@ test(const unsigned int degree) DoFHandler dof_handler(tria); dof_handler.distribute_dofs(fe); - Vector vector(dof_handler.n_dofs()); + Vector vector(dof_handler.n_dofs()); - FEPointEvaluation<1, dim> evaluator(mapping, fe); + FEPointEvaluation<1, dim, dim, Number> evaluator(mapping, fe); - Tensor<1, dim> exponents; + Tensor<1, dim, Number> exponents; exponents[0] = 1.; VectorTools::interpolate(mapping, dof_handler, - Functions::Monomial(exponents), + Functions::Monomial(exponents), vector); - std::vector solution_values(fe.dofs_per_cell); - std::vector function_values(unit_points.size()); - std::vector> function_gradients(unit_points.size()); + std::vector solution_values(fe.dofs_per_cell); + std::vector function_values(unit_points.size()); + std::vector> function_gradients(unit_points.size()); for (const auto &cell : dof_handler.active_cell_iterators()) { @@ -139,4 +139,6 @@ main() test<2>(2); test<2>(6); test<3>(5); + + test<3, float>(5); } diff --git a/tests/fe/point_evaluation_01.output b/tests/fe/point_evaluation_01.output index 0344de7b66..5948ecd398 100644 --- a/tests/fe/point_evaluation_01.output +++ b/tests/fe/point_evaluation_01.output @@ -323,3 +323,100 @@ DEAL::0.1695497377 0.6278029298 0.1863429372: 0.1695497377 error value 0.0000000 DEAL::0.2131627953 0.5663675440 0.2290556314: 0.2131627953 error value 0.000000000 error grad 6.176492620e-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 0.000000000 0.000000000 -0.7500000000 +DEAL::-0.5759520655 -0.5527659841 -0.5759520655: -0.5759518743 error value -2.384185791e-07 error grad 1.739970912e-06 +DEAL::-0.5254898676 -0.5029040719 -0.6187865537: -0.5254896879 error value 5.960464478e-08 error grad 1.343069357e-06 +DEAL::-0.4685426073 -0.4464599093 -0.6616551149: -0.4685424864 error value 0.000000000 error grad 9.548418802e-07 +DEAL::-0.4051542510 -0.3835292107 -0.7012978956: -0.4051542282 error value 8.940696716e-08 error grad 1.049046318e-06 +DEAL::-0.3359932318 -0.3148223149 -0.7343028440: -0.3359932303 error value -5.960464478e-08 error grad 7.156830861e-07 +DEAL::-0.2623766962 -0.2416891159 -0.7575161861: -0.2623766065 error value -8.940696716e-08 error grad 5.973838029e-07 +DEAL::-0.1861925434 -0.1660412603 -0.7684224851: -0.1861924827 error value -4.470348358e-08 error grad 4.059666594e-07 +DEAL::-0.1097387169 -0.09019150189 -0.7654365722: -0.1097386926 error value -2.235174179e-08 error grad 6.156984682e-07 +DEAL::-0.03550798632 -0.01663873419 -0.7480737719: -0.03550796956 error value -1.490116119e-08 error grad 3.683221905e-07 +DEAL::0.03404970570 0.05216906594 -0.7169856075: 0.03404974565 error value -3.725290298e-08 error grad 3.168740079e-07 +DEAL::0.09675558003 0.1140621810 -0.6738655685: 0.09675559402 error value -1.490116119e-08 error grad 5.033887192e-07 +DEAL::0.1508930055 0.1673387801 -0.6212435337: 0.1508930176 error value 1.490116119e-08 error grad 4.111292640e-07 +DEAL::0.1953394317 0.2108952300 -0.5621980946: 0.1953394860 error value -4.470348358e-08 error grad 5.283097835e-07 +DEAL:: +DEAL::-15.49544239 0.2783086896 -0.2824785709 0.001941547263 0.05293603614 0.006514296867 -0.002793600550 -0.004790181760 -7.755895138 2.335669994 -1.262550473 0.7657411098 0.01722191088 -0.01509479061 0.07523416728 -0.001832792652 5.248827934 -2.207770824 1.270765424 -0.7499045730 -0.01301694289 -0.04595639184 0.03338478133 -0.0009578819154 -0.1121441275 0.01297498867 0.02247761376 0.009637538344 0.005332804751 0.01207040716 0.1079383418 0.02118748799 0.1347544342 -0.06336861104 0.04103920609 -0.01368732098 -0.005054849200 -0.02797109261 -0.03518787399 0.02472895384 6.748606205 -0.6164376736 0.2904551327 -0.1492241174 0.2580477297 -0.003374640830 0.08063759655 -0.01604228280 0.02553078532 0.03928947076 0.01313569210 0.008040246554 0.002278828062 0.01334475446 0.1029224321 0.01777629182 -2.820404291 0.2598106265 0.01424081344 -0.06639892608 0.2699505687 1.179385900 0.3161379099 -0.1025709957 -0.5011186600 0.1431450993 -1.355332732 -0.07007806003 0.2998510897 -0.03842615336 -0.07659994811 -0.02792809159 -0.1645623893 0.02233755030 -0.1876895130 -0.01518770773 -0.3096975684 0.7503561974 0.4982005358 -0.01928681880 -0.1174674034 0.4301991463 -2.239012718 -0.4121022820 -0.01946246810 -0.03115624748 -0.3793162704 -0.07726793736 8.569950104 -1.568414688 0.6081715822 -0.3664264381 -2.190173149 -1.073923111 -0.3982132077 0.1774140745 1.086982489 0.3102415800 0.5579579473 -0.05645826086 -0.7000131607 0.0003734720231 -0.2940470576 0.02751408517 0.6204581857 -0.007176592015 -0.08810389787 0.01252762415 0.07978514582 -0.7177191973 -0.1995332241 0.08595196903 -0.07009720057 0.3398901522 0.4432486594 0.2606706321 -0.01782715879 -0.01873236708 -0.4537267983 -0.09408084303 -2.513534307 -0.2709848285 0.001143825590 -0.04893420637 0.7297635674 0.6876475811 0.2255915552 0.03664992005 -0.1672238111 -0.2662464082 0.9339296818 -0.2861707211 0.03932017460 0.1412206143 -0.08145122975 -0.01382823009 -0.5253329277 -0.06497917324 -0.01361023448 -0.02555452287 0.1799340993 0.1446822137 0.2777605057 -0.02016751282 -0.1252739131 -0.1130043417 1.797257423 -0.4657195807 0.008868835866 0.09659458697 0.1834570467 -0.1067303047 -1.735881209 2.277268171 -0.5723213553 0.4600857496 -8.860755920 -2.468793631 -0.7706382275 -0.04998415336 3.307003498 0.6164845228 -2.611025333 0.7490426898 -1.713572145 -0.2737982273 0.1731877774 0.09296272695 8.701126099 7.430457592 -2.529993534 0.8823295236 -6.479109287 2.850932598 7.072813511 -2.211944580 -0.2910014093 -4.643363953 6.732235909 -1.897175550 -0.004616541788 2.143212557 -0.9497081041 -0.03439086303 -2.657071114 -0.06184991449 -1.150406957 0.5357879400 0.6914360523 0.07697850466 4.683320999 -1.690427184 3.747058392 -12.20090389 6.868105412 8.498735428 0.3350919485 0.5117555857 -1.412792444 1.819875836 1.462252259 0.1714663506 -0.1180983633 0.09759100527 -0.4875712991 -0.3850667775 -0.5370506048 0.02405184507 0.3789093196 0.3650027812 -7.551410198 1.679880261 -0.01964658312 -0.2928843200 -1.194007993 0.4010408223 +DEAL::Cell with center 0.7500000000 0.000000000 -4.163336342e-17 +DEAL::0.5879922187 -0.5879922187 -0.5412602679: 0.5879921317 error value 1.192092896e-07 error grad 1.488789394e-06 +DEAL::0.6317656581 -0.5359927398 -0.4904247681: 0.6317654848 error value -5.960464478e-08 error grad 3.385148830e-06 +DEAL::0.6752050943 -0.4774156808 -0.4328300536: 0.6752049327 error value 0.000000000 error grad 6.176010174e-07 +DEAL::0.7149693757 -0.4123477836 -0.3686646352: 0.7149693966 error value -1.192092896e-07 error grad 1.086151087e-06 +DEAL::0.7476112822 -0.3415220448 -0.2987437738: 0.7476111650 error value 2.384185791e-07 error grad 6.730336395e-07 +DEAL::0.7699931685 -0.2663289165 -0.2245218407: 0.7699928880 error value 2.980232239e-07 error grad 6.622721003e-07 +DEAL::0.7796633598 -0.1887262238 -0.1480024603: 0.7796632648 error value 5.960464478e-08 error grad 9.902248621e-07 +DEAL::0.7751382896 -0.1110685560 -0.07156802410: 0.7751381993 error value 0.000000000 error grad 7.130631730e-07 +DEAL::0.7560592058 -0.03588516627 0.002241853775: 0.7560589910 error value 1.192092896e-07 error grad 5.108199730e-07 +DEAL::0.7232127397 0.03436118254 0.07097021235: 0.7232123613 error value 1.192092896e-07 error grad 2.211859737e-06 +DEAL::0.6784217227 0.09750269006 0.1324691326: 0.6784213781 error value 2.384185791e-07 error grad 2.044119583e-06 +DEAL::0.6243263560 0.1518546010 0.1850850191: 0.6243263483 error value -5.960464478e-08 error grad 8.001516676e-07 +DEAL::0.5640861853 0.1963417794 0.2277818661: 0.5640861988 error value 5.960464478e-08 error grad 1.973758799e-06 +DEAL:: +DEAL::-0.4223180115 0.3033272326 -0.5825536251 0.01034617331 0.3000682592 0.01622751541 -0.007329309825 0.01863781735 -16.24939537 4.865996361 -2.723913670 1.575704575 0.1148375273 -0.01397434529 -0.03567454591 -0.03915020451 6.246036530 -2.370342016 1.345056772 -0.8218944669 -0.002712659072 -0.08070982993 -0.06125731021 -0.03641686216 -0.4072016180 0.1446642727 -0.1302408874 0.006766999606 0.001331573585 0.09190199524 -0.07346885651 -0.08542060107 0.2126174867 -0.03000364453 0.006210734602 -0.05230874941 -0.03222705796 0.0007915203460 -0.2289125323 -0.07536898553 12.66255760 -2.474488974 1.422033310 -0.8216686845 0.4484014213 0.04395872727 0.08548288792 -0.05476433784 -0.2901134789 0.1519641876 -0.07693655044 0.007016016170 -0.006941629108 0.04149222001 -0.06177589670 -0.08265007287 -16.93092918 3.500050545 -1.197541714 0.8043493032 1.770234346 1.534394264 0.04097338393 -0.4154732227 -1.882564664 1.293623209 -1.093020320 0.3128968775 1.108837962 -0.4424099922 0.3961532414 0.04072185978 -0.5624755621 -0.03690090030 0.2082623541 0.05064146966 -0.8421360850 1.329626441 -0.4973534644 -0.1638311446 -0.03503515199 1.030528426 -0.7928641438 0.4156441987 0.02542632818 -0.3350193501 0.2752735019 0.3795576096 17.30195808 -2.830399752 0.9058095813 -0.5650417209 -4.201508045 -4.509225845 0.1370564848 0.04839108512 2.108051538 0.3115725815 2.735378265 0.07496395707 -1.208989978 -0.1568193287 -0.2323057055 0.1843278557 1.478545666 0.05153277516 -0.03194724023 0.1246428713 0.07066040486 -2.606332302 -0.3051331937 -0.06603002548 0.2754996419 -0.3969447315 4.421670914 1.008067489 0.04247220233 -0.1606291085 0.2924681902 0.3337481320 -2.102291107 -1.672255993 0.5987293720 -0.3071799576 1.421574116 2.502007008 0.1670357734 -0.0002986343752 0.08616714180 -1.259079576 -0.5267357230 0.1249683276 0.02924941108 0.2319992781 0.3462066054 0.1447236985 -0.6928124428 -0.4960302114 0.1923406720 0.01913074218 0.2895885110 1.526830435 0.4322408736 -0.3189420998 0.1271144897 -1.000649333 -0.7297657728 0.2550565600 0.1264176369 -0.05291861668 1.106789231 0.3460734785 7.776768684 8.183970451 -2.928850174 1.533414245 -21.07143402 -7.814153194 -0.8388378620 0.2047928125 6.829074860 3.191703081 2.052604437 -0.6486720443 -4.118206501 -0.2554620802 -1.257116556 -0.2462868094 14.50973034 24.34759712 -4.632341385 2.439505339 -13.78829288 7.079248905 9.587686539 -4.016359806 2.537223339 -23.48223877 -5.306365013 1.569838881 -0.1686495692 7.667053699 2.165030003 0.6601060629 -3.381370306 -3.550871134 -7.038975716 0.1066832542 -0.4177515209 14.92432213 23.35073662 -3.163424969 2.101907492 -10.48002720 -1.187909961 2.421120644 -0.2038636953 1.620113134 -17.23742294 -1.795290947 1.901717544 1.484047055 -0.7761972547 -0.1681759059 -0.6624102592 -4.749961853 -0.9999374747 1.178946614 -0.4704361260 3.170073748 2.186510801 -0.9958961010 -0.5127907395 0.4492119551 -4.833429813 -1.534623384 +DEAL::Cell with center 0.000000000 -4.163336342e-17 0.7500000000 +DEAL::-0.5879922187 -0.5412602679 0.5879922187: -0.5879921317 error value -1.192092896e-07 error grad 1.970508720e-06 +DEAL::-0.5359927398 -0.4904247681 0.6317656581: -0.5359925628 error value 1.192092896e-07 error grad 1.798287144e-06 +DEAL::-0.4774156808 -0.4328300536 0.6752050943: -0.4774155915 error value -2.980232239e-08 error grad 1.137061759e-06 +DEAL::-0.4123477836 -0.3686646352 0.7149693757: -0.4123477936 error value 0.000000000 error grad 3.218419522e-07 +DEAL::-0.3415220448 -0.2987437738 0.7476112822: -0.3415220082 error value 0.000000000 error grad 5.004416153e-07 +DEAL::-0.2663289165 -0.2245218407 0.7699931685: -0.2663287520 error value -1.788139343e-07 error grad 6.443946745e-07 +DEAL::-0.1887262238 -0.1480024603 0.7796633598: -0.1887261569 error value -2.980232239e-08 error grad 2.537777277e-07 +DEAL::-0.1110685560 -0.07156802410 0.7751382896: -0.1110685244 error value -7.450580597e-09 error grad 3.153926684e-07 +DEAL::-0.03588516627 0.002241853775 0.7560592058: -0.03588514403 error value -1.862645149e-08 error grad 7.612384678e-08 +DEAL::0.03436118254 0.07097021235 0.7232127397: 0.03436122090 error value -4.097819328e-08 error grad 4.471087323e-07 +DEAL::0.09750269006 0.1324691326 0.6784217227: 0.09750270098 error value -7.450580597e-09 error grad 2.437299997e-07 +DEAL::0.1518546010 0.1850850191 0.6243263560: 0.1518546492 error value -1.490116119e-08 error grad 2.916330288e-07 +DEAL::0.1963417794 0.2277818661 0.5640861853: 0.1963418126 error value -2.980232239e-08 error grad 6.574489362e-07 +DEAL:: +DEAL::-14.22774887 0.2758247554 0.3233479857 0.002258591121 -0.4923902452 0.006479232106 0.007673436776 -0.004048907198 9.627193451 -2.691710234 1.498494029 -0.8773621321 0.1279655397 0.04225023091 0.07356622815 -0.005097720772 5.585744381 -2.164580822 1.253407121 -0.7433193922 0.1099531725 -0.01260378677 0.009252681397 -0.002884065034 0.2806684971 -0.03219672665 0.08013089001 -0.02068051137 0.005503505468 0.02306512743 0.1436683238 0.01418968476 0.1365398914 -0.06721771508 0.04142149538 -0.01326448843 0.006057544146 -0.01734942943 -0.06045756489 0.02150109038 -15.47866821 4.190341473 -2.247251272 1.336822152 0.1129730344 -0.06340049952 0.07707715034 -0.01389673259 0.1419172287 -0.08253975958 0.04544159025 -0.01902282611 0.005634107161 0.008671590127 0.06230325252 0.01872661524 3.802969217 -1.849707007 0.6332956553 -0.3887352049 -1.842061639 1.784563303 -0.2503870130 0.2210510373 1.226549983 -0.04101697356 -1.133754134 -0.1190049574 -0.7601581812 0.08751763403 -0.2793232203 0.05139360577 -0.1329008341 -0.3121521771 -0.1517035514 -0.01853225939 0.03981668875 0.6990774870 0.4622235298 -0.02355304174 -0.1192408055 0.4685421884 -2.207587242 -0.2071638107 -0.02477211133 -0.04626213387 -0.5921081305 -0.06458500028 -1.652924418 -0.5230297446 0.5694200993 -0.3687703311 -1.094759464 0.9620045424 -0.4472056627 0.1970382631 0.4464597702 -0.05759212375 1.131391525 -0.08513598144 -0.3066828549 0.1682769656 -0.2719087899 0.01808771864 -0.5435221195 0.08994831890 0.002598016756 -0.02097247168 -0.1145273373 0.09827552736 -0.2322487384 0.06448703259 0.02506091446 0.1543179303 1.755390763 0.2961775362 -0.02442784235 -0.01317997463 -0.2872707248 -0.09701087326 4.853506088 -1.261010051 0.5260115862 -0.3492580354 -1.510834217 -1.223475218 0.5106148720 -0.1256819069 0.4868869483 -0.04233135656 0.4008789062 -0.2891613245 -0.3015204668 0.03534862027 0.02896238491 0.001281990437 0.6151089072 -0.003672339488 -0.02060560696 -0.02652030624 -0.1900802255 -0.7395428419 0.3518919647 -0.04743013531 -0.09060660005 0.02608939074 0.4230799079 -0.6149690747 -0.01712200791 0.05250635743 0.3326753676 -0.07802518457 2.121679068 2.337383270 -0.4897458255 0.3746950328 8.149450302 6.289573669 -2.500187635 0.8941109180 -2.613834858 -0.6445206404 -0.9252414107 0.6674411893 1.505453229 0.3175848424 -0.2207673490 0.08565212786 -10.30178356 -2.326323271 -0.4906401634 -0.1022775844 -4.553508282 4.248086452 6.557427406 -2.070031643 0.1038856506 0.4292281568 3.613144398 -1.828610182 -0.2400125712 -0.2564033568 -0.1848736703 0.01722637005 3.248341084 0.4700540006 -2.876006842 0.5101440549 -1.098704338 -5.770073891 8.370279312 -1.740240574 4.006911278 -11.71563339 5.895265579 8.368196487 -0.02757678740 0.7988924980 -6.864811897 0.9900431633 -1.706443310 -0.04059720039 -0.01223452017 0.1212061048 0.5110735297 2.232782125 -0.9087918997 0.04007372633 0.4185161889 -0.2844356894 -1.422126174 2.547418833 0.05804313719 -0.1888395697 -1.540541053 0.3479112983 +DEAL::Cell with center -0.7500000000 0.000000000 0.000000000 +DEAL::-0.6012515503 -0.5766780283 -0.5531118850: -0.6012513638 error value -1.788139343e-07 error grad 1.887112717e-06 +DEAL::-0.6458946236 -0.5236491363 -0.5006487306: -0.6458944082 error value -2.980232239e-07 error grad 8.393988651e-07 +DEAL::-0.6898189280 -0.4638689601 -0.4413495827: -0.6898186207 error value -2.384185791e-07 error grad 7.578279337e-07 +DEAL::-0.7296048967 -0.3975220470 -0.3754490693: -0.7296048403 error value 1.788139343e-07 error grad 1.163424827e-06 +DEAL::-0.7617762381 -0.3254496235 -0.3038288032: -0.7617760897 error value -2.384185791e-07 error grad 1.165493131e-06 +DEAL::-0.7832188522 -0.2491480826 -0.2280163559: -0.7832185626 error value -3.576278687e-07 error grad 1.036731305e-06 +DEAL::-0.7915521155 -0.1706669598 -0.1500833118: -0.7915519476 error value -5.960464478e-08 error grad 4.658785144e-07 +DEAL::-0.7854001879 -0.09242877894 -0.07246518026: -0.7853999138 error value 5.960464478e-08 error grad 1.308552669e-06 +DEAL::-0.7645345314 -0.01700078778 0.002266559507: -0.7645344734 error value 0.000000000 error grad 6.888347457e-07 +DEAL::-0.7298790026 0.05314854421 0.07164727507: -0.7298784852 error value -4.172325134e-07 error grad 5.983599181e-07 +DEAL::-0.6833856700 0.1158765656 0.1335451305: -0.6833853722 error value -3.576278687e-07 error grad 2.101722885e-06 +DEAL::-0.6278029298 0.1695497377 0.1863429372: -0.6278028488 error value -5.960464478e-08 error grad 1.229632971e-06 +DEAL::-0.5663675440 0.2131627953 0.2290556314: -0.5663675666 error value 0.000000000 error grad 7.290870485e-07 +DEAL:: +DEAL::1.260267258 0.5641642809 -0.2820299268 0.002626161790 -0.2663730979 0.01134317555 -0.02182109281 -0.02018296905 -7.204004288 2.419783354 -1.261455655 0.7688359618 0.3535044789 0.01324732229 0.1324997842 0.003613254987 12.07118988 -4.432329655 2.590243340 -1.519812465 0.1640500277 -0.08860089630 0.1027230620 0.003625789890 -0.3151390553 0.1202294007 -0.007735904306 0.07082657516 0.04791356996 0.01913735084 0.2365168631 0.08705456555 0.3617859185 -0.1625753045 0.1493080705 -0.01895324141 0.006011677906 -0.1034086645 0.09562009573 0.08882799745 -10.48211193 2.364047527 -1.233799458 0.7308308482 0.5965970159 -0.09856647253 0.1475701332 -0.01745858788 -0.4993051589 0.08011872321 -0.04991342872 0.07254077494 0.03707432747 -0.001281046309 0.1581489295 0.09166892618 -26.77163124 4.361666679 -2.375917435 1.344286442 2.950864315 4.371966839 0.4655324221 -0.1893821657 -1.465139270 0.6248174310 -2.799061060 0.08373469859 0.8403727412 -0.3026270866 -0.08659416437 -0.2476501316 -1.133332610 -0.4927067459 -0.1726454645 -0.1309229434 -0.5200872421 2.493411779 0.7518110871 0.05501724780 -0.04697388411 0.7773869634 -3.841802597 -0.6572718024 -0.1685306430 0.008733562194 -1.007800698 -0.3915670812 16.17585754 -1.863848448 1.568704724 -0.9866070151 -5.897593498 -1.416102290 -1.187149048 0.4944255352 2.581286430 0.2796370089 1.177262783 -0.4569587708 -1.629776359 0.2522538900 -0.5228320360 -0.006541545503 0.8906854987 0.5976762176 -0.1154783443 -0.05192538723 -0.2446110696 -1.431594491 -0.7785348296 0.3855760992 -0.09185617417 0.7760829329 0.8549283147 -0.3669818938 -0.1312621236 0.04426624998 -0.7198714018 -0.4007576704 8.590970993 -4.045404434 1.498349905 -0.9747196436 -0.6291618943 -1.781654358 0.8676064014 -0.05588969588 0.6082989573 -0.6307174563 0.8571041226 -0.5083769560 -0.4475800097 0.2856460214 -0.3198925257 -0.05654918775 0.8577738404 -0.3732625842 -0.06233294308 -0.1639171690 0.3882611692 -1.476848841 1.010244846 -0.01109763235 -0.2370296121 -0.4334734082 0.7511008978 -1.026204467 -0.04747521132 0.3745304048 -0.3511634469 -0.3808437884 6.513928890 15.82318401 -5.124201298 3.157251835 -11.33580685 11.09433937 -4.884639263 1.423341990 4.621638298 -0.4843940735 -1.600012898 0.8919351697 -2.426311016 0.5417068601 0.3699146509 0.4880304039 -13.68873978 14.21897984 -4.835170269 1.487906218 -28.00940514 -0.5847373009 20.72099304 -7.271018982 3.017081022 -10.54402828 7.413534164 -3.022710800 -1.761172652 4.377375126 -2.455802679 -0.3527517021 4.414394379 -0.5133761764 -1.775301456 0.4771029949 2.117609501 -12.90157795 10.16017151 -3.017919540 7.051621437 -25.89193344 5.871879578 14.27528191 0.4566228390 2.239732742 -2.539179325 2.973898649 -2.342549324 0.8785856962 0.3179937899 0.6111671925 -1.175442338 4.596784115 -3.224331141 -0.2510226965 0.9492543936 0.9558909535 -2.124761343 4.376264572 0.2800742090 -1.420135856 1.408090711 1.705089331 +DEAL::Cell with center 0.000000000 -0.7500000000 -4.163336342e-17 +DEAL::-0.5879922187 -0.5879922187 -0.5412602679: -0.5879921317 error value -1.192092896e-07 error grad 1.970508720e-06 +DEAL::-0.5359927398 -0.6317656581 -0.4904247681: -0.5359925628 error value 1.192092896e-07 error grad 1.798287144e-06 +DEAL::-0.4774156808 -0.6752050943 -0.4328300536: -0.4774155915 error value -2.980232239e-08 error grad 1.137061759e-06 +DEAL::-0.4123477836 -0.7149693757 -0.3686646352: -0.4123477936 error value 0.000000000 error grad 3.218419522e-07 +DEAL::-0.3415220448 -0.7476112822 -0.2987437738: -0.3415220082 error value 0.000000000 error grad 5.004416153e-07 +DEAL::-0.2663289165 -0.7699931685 -0.2245218407: -0.2663287520 error value -1.788139343e-07 error grad 6.443946745e-07 +DEAL::-0.1887262238 -0.7796633598 -0.1480024603: -0.1887261569 error value -2.980232239e-08 error grad 2.537777277e-07 +DEAL::-0.1110685560 -0.7751382896 -0.07156802410: -0.1110685244 error value -7.450580597e-09 error grad 3.153926684e-07 +DEAL::-0.03588516627 -0.7560592058 0.002241853775: -0.03588514403 error value -1.862645149e-08 error grad 7.612384678e-08 +DEAL::0.03436118254 -0.7232127397 0.07097021235: 0.03436122090 error value -4.097819328e-08 error grad 4.471087323e-07 +DEAL::0.09750269006 -0.6784217227 0.1324691326: 0.09750270098 error value -7.450580597e-09 error grad 2.437299997e-07 +DEAL::0.1518546010 -0.6243263560 0.1850850191: 0.1518546492 error value -1.490116119e-08 error grad 2.916330288e-07 +DEAL::0.1963417794 -0.5640861853 0.2277818661: 0.1963418126 error value -2.980232239e-08 error grad 6.574489362e-07 +DEAL:: +DEAL::-14.22774887 0.2758247554 0.3233479857 0.002258591121 -0.4923902452 0.006479232106 0.007673436776 -0.004048907198 9.627193451 -2.691710234 1.498494029 -0.8773621321 0.1279655397 0.04225023091 0.07356622815 -0.005097720772 5.585744381 -2.164580822 1.253407121 -0.7433193922 0.1099531725 -0.01260378677 0.009252681397 -0.002884065034 0.2806684971 -0.03219672665 0.08013089001 -0.02068051137 0.005503505468 0.02306512743 0.1436683238 0.01418968476 0.1365398914 -0.06721771508 0.04142149538 -0.01326448843 0.006057544146 -0.01734942943 -0.06045756489 0.02150109038 -15.47866821 4.190341473 -2.247251272 1.336822152 0.1129730344 -0.06340049952 0.07707715034 -0.01389673259 0.1419172287 -0.08253975958 0.04544159025 -0.01902282611 0.005634107161 0.008671590127 0.06230325252 0.01872661524 3.802969217 -1.849707007 0.6332956553 -0.3887352049 -1.842061639 1.784563303 -0.2503870130 0.2210510373 1.226549983 -0.04101697356 -1.133754134 -0.1190049574 -0.7601581812 0.08751763403 -0.2793232203 0.05139360577 -0.1329008341 -0.3121521771 -0.1517035514 -0.01853225939 0.03981668875 0.6990774870 0.4622235298 -0.02355304174 -0.1192408055 0.4685421884 -2.207587242 -0.2071638107 -0.02477211133 -0.04626213387 -0.5921081305 -0.06458500028 -1.652924418 -0.5230297446 0.5694200993 -0.3687703311 -1.094759464 0.9620045424 -0.4472056627 0.1970382631 0.4464597702 -0.05759212375 1.131391525 -0.08513598144 -0.3066828549 0.1682769656 -0.2719087899 0.01808771864 -0.5435221195 0.08994831890 0.002598016756 -0.02097247168 -0.1145273373 0.09827552736 -0.2322487384 0.06448703259 0.02506091446 0.1543179303 1.755390763 0.2961775362 -0.02442784235 -0.01317997463 -0.2872707248 -0.09701087326 4.853506088 -1.261010051 0.5260115862 -0.3492580354 -1.510834217 -1.223475218 0.5106148720 -0.1256819069 0.4868869483 -0.04233135656 0.4008789062 -0.2891613245 -0.3015204668 0.03534862027 0.02896238491 0.001281990437 0.6151089072 -0.003672339488 -0.02060560696 -0.02652030624 -0.1900802255 -0.7395428419 0.3518919647 -0.04743013531 -0.09060660005 0.02608939074 0.4230799079 -0.6149690747 -0.01712200791 0.05250635743 0.3326753676 -0.07802518457 2.121679068 2.337383270 -0.4897458255 0.3746950328 8.149450302 6.289573669 -2.500187635 0.8941109180 -2.613834858 -0.6445206404 -0.9252414107 0.6674411893 1.505453229 0.3175848424 -0.2207673490 0.08565212786 -10.30178356 -2.326323271 -0.4906401634 -0.1022775844 -4.553508282 4.248086452 6.557427406 -2.070031643 0.1038856506 0.4292281568 3.613144398 -1.828610182 -0.2400125712 -0.2564033568 -0.1848736703 0.01722637005 3.248341084 0.4700540006 -2.876006842 0.5101440549 -1.098704338 -5.770073891 8.370279312 -1.740240574 4.006911278 -11.71563339 5.895265579 8.368196487 -0.02757678740 0.7988924980 -6.864811897 0.9900431633 -1.706443310 -0.04059720039 -0.01223452017 0.1212061048 0.5110735297 2.232782125 -0.9087918997 0.04007372633 0.4185161889 -0.2844356894 -1.422126174 2.547418833 0.05804313719 -0.1888395697 -1.540541053 0.3479112983 +DEAL::Cell with center 0.000000000 0.7500000000 0.000000000 +DEAL::-0.5766780283 0.6012515503 -0.5531118850: -0.5766779184 error value -1.192092896e-07 error grad 1.292544880e-06 +DEAL::-0.5236491363 0.6458946236 -0.5006487306: -0.5236488581 error value -5.960464478e-08 error grad 2.974639074e-06 +DEAL::-0.4638689601 0.6898189280 -0.4413495827: -0.4638688862 error value -1.192092896e-07 error grad 1.576514023e-06 +DEAL::-0.3975220470 0.7296048967 -0.3754490693: -0.3975220919 error value 2.980232239e-08 error grad 2.515240283e-07 +DEAL::-0.3254496235 0.7617762381 -0.3038288032: -0.3254495859 error value -5.960464478e-08 error grad 4.974722287e-07 +DEAL::-0.2491480826 0.7832188522 -0.2280163559: -0.2491479218 error value -1.192092896e-07 error grad 5.404370427e-07 +DEAL::-0.1706669598 0.7915521155 -0.1500833118: -0.1706669480 error value -2.980232239e-08 error grad 2.044161960e-07 +DEAL::-0.09242877894 0.7854001879 -0.07246518026: -0.09242872894 error value -5.960464478e-08 error grad 2.758063431e-07 +DEAL::-0.01700078778 0.7645345314 0.002266559507: -0.01700077020 error value -2.980232239e-08 error grad 2.389082567e-07 +DEAL::0.05314854421 0.7298790026 0.07164727507: 0.05314858630 error value -1.490116119e-08 error grad 6.759992175e-07 +DEAL::0.1158765656 0.6833856700 0.1335451305: 0.1158765629 error value 7.450580597e-09 error grad 2.989755785e-07 +DEAL::0.1695497377 0.6278029298 0.1863429372: 0.1695497930 error value -4.470348358e-08 error grad 4.367569204e-07 +DEAL::0.2131627953 0.5663675440 0.2290556314: 0.2131628394 error value -1.490116119e-08 error grad 4.223463179e-07 +DEAL:: +DEAL::-13.62434101 0.5178825855 0.07092788070 0.006867631339 -0.4719552398 0.01545562968 0.0001540676458 -0.0001887183753 2.703586102 -0.5710443258 0.3443513215 -0.1924414933 0.2324616164 -0.03550052270 0.02131112106 -0.01680930331 10.71459198 -4.090117455 2.326079369 -1.398071766 0.1790473759 0.003202366643 0.08002419770 -0.01936457120 0.04971134290 0.0008878231165 0.001967728138 0.002526564989 0.01079680212 -0.006328543648 -0.06748064607 0.006622490473 0.3122871816 -0.09511690587 0.09248834848 -0.04345437512 0.002182444325 0.02422303520 0.1327949762 -0.001964735566 -14.64396286 4.004190445 -2.180568695 1.280625343 0.3860600293 -0.1480218768 0.03311750665 -0.04273703694 -0.08619602770 -0.007933901623 0.002372428309 0.0009272717871 0.01014671475 0.006921459921 -0.01569093578 0.001402750029 -6.955353737 0.3518200517 -0.4292257130 0.2305431813 0.1277251691 0.2820614576 0.1781704724 0.01801668666 0.2620730400 -0.2656389773 1.087673187 -0.04278098792 -0.1325736046 0.004930475261 0.03158776462 -0.01631496288 -0.3810899556 -0.2138093859 0.07210822403 -0.03278301656 0.01610870287 -0.01486381516 0.09505479038 -0.01532815956 0.1654914767 -0.4387933612 1.761516571 -0.01149478462 -0.02682679519 0.01788072661 0.3222283125 -0.03092356771 6.611968517 -1.969498277 1.441189408 -0.8427309394 -3.552631855 2.158221722 -0.5223464370 0.2561098933 1.743032694 -0.6306168437 -1.017322659 -0.2971495688 -1.044081450 0.3965651691 -0.04952684790 0.1235420331 -0.09058871865 0.1040911004 -0.004746123683 -0.008899960667 -0.3270231485 0.7738800645 0.1898225397 -0.06171064451 -0.08956568688 0.3432351351 -2.483001947 -0.5569383502 -0.02564778551 -0.02690271847 0.08140199631 0.007079379167 6.636899948 -2.314287901 1.065527558 -0.6306967139 -1.790485263 -0.9765981436 -0.1806871444 0.09261295199 0.7674400210 0.3652373850 0.4510362148 -0.01052452810 -0.4869471192 -0.02285704017 -0.3211436272 0.04640639573 0.6560580730 -0.1932682097 -0.006384706590 -0.02467247657 -0.02914182097 -0.7341765165 -0.02278366871 0.01053783577 -0.005720693152 0.3402568996 0.4704143107 0.3275492489 -0.01395398192 -0.05811086297 -0.6315166354 -0.01494068466 5.469547749 5.400884628 -1.882451892 1.051501274 2.693789482 6.820693970 -0.9934476018 0.5994112492 -0.3554961383 -2.681905985 -0.6898796558 -0.3288702369 0.2625621259 0.9435142279 0.5385839939 0.08717692643 -10.64966202 -3.344609499 0.03057921864 -0.03842161968 -2.319989681 3.483485460 -0.6515755057 0.06214567274 -0.1492089480 7.720964432 3.087631702 -0.04977551103 -0.2782434821 -2.329771996 -1.571546435 0.05880239606 3.191684008 -0.5546978712 4.190329075 -0.5697665215 0.7603561282 -6.762126923 -10.60070610 1.539770722 -3.249000072 9.740856171 2.453309298 -6.559881687 0.1229214519 -0.8379780054 9.866867065 -0.04740010947 -1.821581244 0.5263152719 0.1420908421 0.05023293197 0.04617084563 2.191656351 -0.07397802174 -0.01095001306 -0.07883934677 -0.8329725266 -1.704125643 -1.504090071 0.06263647974 0.1133949310 2.651709795 0.07031597197