#include <deal.II/grid/tria.h>
+#include <deal.II/matrix_free/fe_evaluation.h>
+#include <deal.II/matrix_free/matrix_free.h>
+#include <deal.II/matrix_free/vector_access_internal.h>
+
DEAL_II_NAMESPACE_OPEN
AdditionalData & additional_data,
const unsigned int level = numbers::invalid_unsigned_int);
+ /**
+ * Compute the diagonal of a linear operator (@p diagonal_global), given
+ * @p matrix_free and the local cell integral operation @p local_vmult. The
+ * vector is initialized to the right size in the function.
+ *
+ * The parameters @p dof_no, @p quad_no, and @p first_selected_component are
+ * passed to the constructor of the FEEvaluation that is internally set up.
+ */
+ template <int dim,
+ int fe_degree,
+ int n_q_points_1d,
+ int n_components,
+ typename Number,
+ typename VectorizedArrayType>
+ void
+ compute_diagonal(
+ const MatrixFree<dim, Number, VectorizedArrayType> &matrix_free,
+ LinearAlgebra::distributed::Vector<Number> & diagonal_global,
+ const std::function<void(FEEvaluation<dim,
+ fe_degree,
+ n_q_points_1d,
+ n_components,
+ Number,
+ VectorizedArrayType> &)> &local_vmult,
+ const unsigned int dof_no = 0,
+ const unsigned int quad_no = 0,
+ const unsigned int first_selected_component = 0);
// implementations
additional_data.mapping_update_flags_inner_faces |
additional_data.mapping_update_flags_boundary_faces;
}
-} // namespace MatrixFreeTools
+ namespace internal
+ {
+ template <typename Number>
+ struct LocalCSR
+ {
+ LocalCSR()
+ : row{0}
+ {}
+
+ std::vector<unsigned int> row_lid_to_gid;
+ std::vector<unsigned int> row;
+ std::vector<unsigned int> col;
+ std::vector<Number> val;
+ };
+ } // namespace internal
+
+ template <int dim,
+ int fe_degree,
+ int n_q_points_1d,
+ int n_components,
+ typename Number,
+ typename VectorizedArrayType>
+ void
+ compute_diagonal(
+ const MatrixFree<dim, Number, VectorizedArrayType> &matrix_free,
+ LinearAlgebra::distributed::Vector<Number> & diagonal_global,
+ const std::function<void(FEEvaluation<dim,
+ fe_degree,
+ n_q_points_1d,
+ n_components,
+ Number,
+ VectorizedArrayType> &)> &local_vmult,
+ const unsigned int dof_no,
+ const unsigned int quad_no,
+ const unsigned int first_selected_component)
+ {
+ using VectorType = LinearAlgebra::distributed::Vector<Number>;
+
+ // initialize vector
+ matrix_free.initialize_dof_vector(diagonal_global);
+
+ int dummy;
+
+ matrix_free.template cell_loop<VectorType, int>(
+ [&](const MatrixFree<dim, Number, VectorizedArrayType> &matrix_free,
+ LinearAlgebra::distributed::Vector<Number> & diagonal_global,
+ const int &,
+ const std::pair<unsigned int, unsigned int> &range) mutable {
+ FEEvaluation<dim,
+ fe_degree,
+ n_q_points_1d,
+ n_components,
+ Number,
+ VectorizedArrayType>
+ phi(matrix_free, dof_no, quad_no, first_selected_component);
+
+ const unsigned int n_lanes = VectorizedArrayType::size();
+
+ // local storage: buffer so that we access the global vector once
+ // note: may be larger then dofs_per_cell in the presence of
+ // constraints!
+ std::array<std::vector<Number>, n_lanes> diagonals_local_constrained;
+
+ for (unsigned int cell = range.first; cell < range.second; ++cell)
+ {
+ // STEP 1: get relevant information from FEEvaluation
+ const auto & dof_info = matrix_free.get_dof_info(dof_no);
+ const unsigned int n_fe_components =
+ dof_info.start_components.back();
+ const unsigned int dofs_per_component = phi.dofs_per_component;
+
+ const unsigned int n_lanes_filled =
+ matrix_free.n_active_entries_per_cell_batch(cell);
+
+ std::array<const unsigned int *, n_lanes> dof_indices{};
+ {
+ for (unsigned int v = 0; v < n_lanes_filled; ++v)
+ dof_indices[v] =
+ dof_info.dof_indices.data() +
+ dof_info
+ .row_starts[(cell * n_lanes + v) * n_fe_components +
+ first_selected_component]
+ .first;
+ }
+
+ // STEP 2: setup CSR storage of transposed locally-relevant
+ // constraint matrix
+ std::array<internal::LocalCSR<Number>, n_lanes> c_pools;
+
+ for (unsigned int v = 0; v < n_lanes_filled; ++v)
+ {
+ unsigned int index_indicators, next_index_indicators;
+
+ index_indicators =
+ dof_info
+ .row_starts[(cell * n_lanes + v) * n_fe_components +
+ first_selected_component]
+ .second;
+ next_index_indicators =
+ dof_info
+ .row_starts[(cell * n_lanes + v) * n_fe_components +
+ first_selected_component + 1]
+ .second;
+
+ // STEP 2a: setup locally-relevant constraint matrix in a
+ // coordinate list (COO)
+ std::vector<std::tuple<unsigned int, unsigned int, Number>>
+ locally_relevant_constrains; // (constrained local index,
+ // global index of dof which
+ // constrains, weight)
+
+ if (n_components == 1 || n_fe_components == 1)
+ {
+ AssertDimension(
+ n_components,
+ 1); // TODO: currently no block vector supported
+
+ unsigned int ind_local = 0;
+ for (; index_indicators != next_index_indicators;
+ ++index_indicators, ++ind_local)
+ {
+ const std::pair<unsigned short, unsigned short>
+ indicator =
+ dof_info.constraint_indicator[index_indicators];
+
+ for (unsigned int j = 0; j < indicator.first;
+ ++j, ++ind_local)
+ locally_relevant_constrains.emplace_back(
+ ind_local, dof_indices[v][j], 1.0);
+
+ dof_indices[v] += indicator.first;
+
+ const Number *data_val =
+ matrix_free.constraint_pool_begin(indicator.second);
+ const Number *end_pool =
+ matrix_free.constraint_pool_end(indicator.second);
+
+ for (; data_val != end_pool;
+ ++data_val, ++dof_indices[v])
+ locally_relevant_constrains.emplace_back(
+ ind_local, *dof_indices[v], *data_val);
+ }
+
+ AssertIndexRange(ind_local, dofs_per_component + 1);
+
+ for (; ind_local < dofs_per_component;
+ ++dof_indices[v], ++ind_local)
+ locally_relevant_constrains.emplace_back(ind_local,
+ *dof_indices[v],
+ 1.0);
+ }
+ else
+ {
+ // case with vector-valued finite elements where all
+ // components are included in one single vector. Assumption:
+ // first come all entries to the first component, then all
+ // entries to the second one, and so on. This is ensured by
+ // the way MatrixFree reads out the indices.
+ for (unsigned int comp = 0; comp < n_components; ++comp)
+ {
+ unsigned int ind_local = 0;
+
+ // check whether there is any constraint on the current
+ // cell
+ for (; index_indicators != next_index_indicators;
+ ++index_indicators, ++ind_local)
+ {
+ const std::pair<unsigned short, unsigned short>
+ indicator =
+ dof_info.constraint_indicator[index_indicators];
+
+ // run through values up to next constraint
+ for (unsigned int j = 0; j < indicator.first;
+ ++j, ++ind_local)
+ locally_relevant_constrains.emplace_back(
+ comp * dofs_per_component + ind_local,
+ dof_indices[v][j],
+ 1.0);
+ dof_indices[v] += indicator.first;
+
+ const Number *data_val =
+ matrix_free.constraint_pool_begin(
+ indicator.second);
+ const Number *end_pool =
+ matrix_free.constraint_pool_end(indicator.second);
+
+ for (; data_val != end_pool;
+ ++data_val, ++dof_indices[v])
+ locally_relevant_constrains.emplace_back(
+ comp * dofs_per_component + ind_local,
+ *dof_indices[v],
+ *data_val);
+ }
+
+ AssertIndexRange(ind_local, dofs_per_component + 1);
+
+ // get the dof values past the last constraint
+ for (; ind_local < dofs_per_component;
+ ++dof_indices[v], ++ind_local)
+ locally_relevant_constrains.emplace_back(
+ comp * dofs_per_component + ind_local,
+ *dof_indices[v],
+ 1.0);
+
+ if (comp + 1 < n_components)
+ {
+ next_index_indicators =
+ dof_info
+ .row_starts[(cell * n_lanes + v) *
+ n_fe_components +
+ first_selected_component + comp + 2]
+ .second;
+ }
+ }
+ }
+
+ // STEP 2b: transpose COO
+
+ // presort vector for transposed access
+ std::sort(locally_relevant_constrains.begin(),
+ locally_relevant_constrains.end(),
+ [](const auto &a, const auto &b) {
+ if (std::get<1>(a) < std::get<1>(b))
+ return true;
+ return (std::get<1>(a) == std::get<1>(b)) &&
+ (std::get<0>(a) < std::get<0>(b));
+ });
+
+ // make sure that all entries are unique
+ locally_relevant_constrains.erase(
+ unique(locally_relevant_constrains.begin(),
+ locally_relevant_constrains.end(),
+ [](const auto &a, const auto &b) {
+ return (std::get<1>(a) == std::get<1>(b)) &&
+ (std::get<0>(a) == std::get<0>(b));
+ }),
+ locally_relevant_constrains.end());
+
+ // STEP 2c: translate COO to CRS
+ auto &c_pool = c_pools[v];
+ {
+ if (locally_relevant_constrains.size() > 0)
+ c_pool.row_lid_to_gid.emplace_back(
+ std::get<1>(locally_relevant_constrains.front()));
+ for (const auto &j : locally_relevant_constrains)
+ {
+ if (c_pool.row_lid_to_gid.back() != std::get<1>(j))
+ {
+ c_pool.row_lid_to_gid.push_back(std::get<1>(j));
+ c_pool.row.push_back(c_pool.val.size());
+ }
+
+ c_pool.col.emplace_back(std::get<0>(j));
+ c_pool.val.emplace_back(std::get<2>(j));
+ }
+
+ if (c_pool.val.size() > 0)
+ c_pool.row.push_back(c_pool.val.size());
+ }
+ }
+
+ // STEP 3: compute element matrix A_e, apply
+ // locally-relevant constraints C_e^T * A_e * C_e, and get the
+ // the diagonal entry
+ // (C_e^T * A_e * C_e)(i,i)
+ // or
+ // C_e^T(i,:) * A_e * C_e(:,i).
+ //
+ // Since, we compute the element matrix column-by-column and as a
+ // result never actually have the full element matrix, we actually
+ // perform following steps:
+ // 1) loop over all columns of the element matrix
+ // a) compute column i
+ // b) compute for each j (rows of C_e^T):
+ // (C_e^T(j,:) * A_e(:,i)) * C_e(i,j)
+ // or
+ // (C_e^T(j,:) * A_e(:,i)) * C_e^T(j,i)
+ // This gives a contribution the the j-th entry of the
+ // locally-relevant diagonal and comprises the multiplication
+ // by the locally-relevant constraint matrix from the left and
+ // the right. There is no contribution to the j-th vector
+ // entry if the j-th row of C_e^T is empty or C_e^T(j,i) is
+ // zero.
+
+ // set size locally-relevant diagonal
+ for (unsigned int v = 0; v < n_lanes_filled; ++v)
+ diagonals_local_constrained[v].assign(
+ c_pools[v].row_lid_to_gid.size(), Number(0.0));
+
+ phi.reinit(cell);
+
+ // loop over all columns of element stiffness matrix
+ for (unsigned int i = 0; i < phi.dofs_per_cell; ++i)
+ {
+ // compute i-th column of element stiffness matrix:
+ // this could be simply performed as done at the moment with
+ // matrix-free operator evaluation applied to a ith-basis vector
+
+ for (unsigned int j = 0; j < phi.dofs_per_cell; ++j)
+ phi.begin_dof_values()[j] = static_cast<Number>(i == j);
+
+ local_vmult(phi);
+
+ const auto ith_column = phi.begin_dof_values();
+
+ // apply local constraint matrix from left and from right:
+ // loop over all rows of transposed constrained matrix
+ for (unsigned int v = 0; v < n_lanes_filled; ++v)
+ {
+ const auto &c_pool = c_pools[v];
+
+ for (unsigned int j = 0; j < c_pool.row.size() - 1; ++j)
+ {
+ // check if the result will be zero, so that we can skip
+ // the following computations -> binary search
+ const auto scale_iterator =
+ std::lower_bound(c_pool.col.begin() + c_pool.row[j],
+ c_pool.col.begin() +
+ c_pool.row[j + 1],
+ i);
+
+ // explanation: j-th row of C_e^T is empty (see above)
+ if (scale_iterator ==
+ c_pool.col.begin() + c_pool.row[j + 1])
+ continue;
+
+ // explanation: C_e^T(j,i) is zero (see above)
+ if (*scale_iterator != i)
+ continue;
+
+ // apply constraint matrix from the left
+ Number temp = 0.0;
+ for (unsigned int k = c_pool.row[j];
+ k < c_pool.row[j + 1];
+ ++k)
+ temp += c_pool.val[k] * ith_column[c_pool.col[k]][v];
+
+ // apply constraint matrix from the right
+ diagonals_local_constrained[v][j] +=
+ temp * c_pool.val[std::distance(c_pool.col.begin(),
+ scale_iterator)];
+ }
+ }
+ }
+
+ // STEP 4: assembly results: add into global vector
+ for (unsigned int v = 0; v < n_lanes_filled; ++v)
+ for (unsigned int j = 0; j < c_pools[v].row.size() - 1; ++j)
+ ::dealii::internal::vector_access_add(
+ diagonal_global,
+ c_pools[v].row_lid_to_gid[j],
+ diagonals_local_constrained[v][j]);
+ }
+ },
+ diagonal_global,
+ dummy,
+ false);
+ }
+
+} // namespace MatrixFreeTools
DEAL_II_NAMESPACE_CLOSE
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2019 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.
+//
+// ---------------------------------------------------------------------
+
+
+// Test MatrixFreeTools::compute_diagonal() for a Laplace operator
+
+#include "compute_diagonal_util.h"
+
+template <int dim,
+ int fe_degree,
+ int n_points = fe_degree + 1,
+ int n_components = 1,
+ typename Number = double,
+ typename VectorizedArrayType = VectorizedArray<Number>>
+void
+test()
+{
+ parallel::distributed::Triangulation<dim> tria(MPI_COMM_WORLD);
+
+ GridGenerator::hyper_cube(tria, -numbers::PI / 2, numbers::PI / 2);
+
+ tria.refine_global();
+ for (auto &cell : tria.active_cell_iterators())
+ if (cell->active() && cell->is_locally_owned() && cell->center()[0] < 0.0)
+ cell->set_refine_flag();
+ tria.execute_coarsening_and_refinement();
+
+ const FE_Q<dim> fe_q(fe_degree);
+ const FESystem<dim> fe(fe_q, n_components);
+
+ // setup dof-handlers
+ DoFHandler<dim> dof_handler(tria);
+ dof_handler.distribute_dofs(fe);
+
+ AffineConstraints<Number> constraint;
+ DoFTools::make_hanging_node_constraints(dof_handler, constraint);
+
+ VectorTools::interpolate_boundary_values(
+ dof_handler, 0, Functions::ZeroFunction<dim>(n_components), constraint);
+
+ constraint.close();
+
+ typename MatrixFree<dim, Number, VectorizedArrayType>::AdditionalData
+ additional_data;
+ additional_data.mapping_update_flags = update_values | update_gradients;
+
+ MappingQ<dim> mapping(1);
+ QGauss<1> quad(fe_degree + 1);
+
+ MatrixFree<dim, Number, VectorizedArrayType> matrix_free;
+ matrix_free.reinit(mapping, dof_handler, constraint, quad, additional_data);
+
+
+ Test<dim, fe_degree, n_points, n_components, Number, VectorizedArrayType>
+ test(matrix_free,
+ [](FEEvaluation<dim,
+ fe_degree,
+ n_points,
+ n_components,
+ Number,
+ VectorizedArrayType> &phi) {
+ phi.evaluate(false, true);
+ for (unsigned int q = 0; q < phi.n_q_points; ++q)
+ phi.submit_gradient(phi.get_gradient(q), q);
+ phi.integrate(false, true);
+ });
+
+ test.do_test();
+}
+
+int
+main(int argc, char **argv)
+{
+ Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
+ MPILogInitAll all;
+
+ test<2, 1, 2, 1>(); // scalar
+ test<2, 1, 2, 2>(); // vector
+}
--- /dev/null
+
+Process #0
+Local range: [0, 18), global size: 18
+Vector data:
+0.000e+00 0.000e+00 3.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 0.000e+00 0.000e+00 2.667e+00 0.000e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:0::5.50757
+Process #0
+Local range: [0, 18), global size: 18
+Vector data:
+0.000e+00 0.000e+00 3.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 0.000e+00 0.000e+00 2.667e+00 0.000e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:0::5.50757
+Process #0
+Local range: [0, 36), global size: 36
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 0.000e+00 3.000e+00 3.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:0::7.78888
+Process #0
+Local range: [0, 36), global size: 36
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 0.000e+00 3.000e+00 3.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:0::7.78888
--- /dev/null
+
+Process #0
+Local range: [0, 9), global size: 18
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 3.000e+00
+DEAL:0::5.50757
+Process #0
+Local range: [0, 9), global size: 18
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 3.000e+00
+DEAL:0::5.50757
+Process #0
+Local range: [0, 18), global size: 36
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 3.000e+00 3.000e+00
+DEAL:0::7.78888
+Process #0
+Local range: [0, 18), global size: 36
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 3.000e+00 3.000e+00
+DEAL:0::7.78888
+
+Process #1
+Local range: [9, 11), global size: 18
+Vector data:
+0.000e+00 0.000e+00
+DEAL:1::5.50757
+Process #1
+Local range: [9, 11), global size: 18
+Vector data:
+0.000e+00 0.000e+00
+DEAL:1::5.50757
+Process #1
+Local range: [18, 22), global size: 36
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:1::7.78888
+Process #1
+Local range: [18, 22), global size: 36
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:1::7.78888
+
+
+Process #2
+Local range: [11, 18), global size: 18
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:2::5.50757
+Process #2
+Local range: [11, 18), global size: 18
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:2::5.50757
+Process #2
+Local range: [22, 36), global size: 36
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:2::7.78888
+Process #2
+Local range: [22, 36), global size: 36
+Vector data:
+0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.667e+00 2.667e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00
+DEAL:2::7.78888
+
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2019 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// Test MatrixFreeTools::compute_diagonal() for a vector Laplace operator
+// and compute_no_normal_flux_constraints.
+
+#include "compute_diagonal_util.h"
+
+template <int dim>
+class BoundaryValues : public Function<dim>
+{
+public:
+ BoundaryValues()
+ : Function<dim>(dim)
+ {}
+ virtual void
+ vector_value(const Point<dim> &p, Vector<double> &value) const;
+};
+template <int dim>
+void
+BoundaryValues<dim>::vector_value(const Point<dim> &p,
+ Vector<double> & values) const
+{
+ (void)p;
+ for (unsigned int i = 0; i < values.size(); ++i)
+ values(i) = 0.0;
+ return;
+}
+
+using namespace dealii;
+
+template <int dim,
+ int fe_degree,
+ int n_points = fe_degree + 1,
+ int n_components = dim,
+ typename Number = double,
+ typename VectorizedArrayType = VectorizedArray<Number>>
+void
+test()
+{
+ Triangulation<dim> tria;
+
+ GridGenerator::hyper_shell(tria, Point<dim>(), 1, 2, 0, true);
+
+ tria.refine_global(0);
+
+
+ const FE_Q<dim> fe_q(fe_degree);
+ const FESystem<dim> fe(fe_q, n_components);
+
+ // setup dof-handlers
+ DoFHandler<dim> dof_handler(tria);
+ dof_handler.distribute_dofs(fe);
+
+ AffineConstraints<Number> constraints;
+ IndexSet locally_relevant_dofs;
+ DoFTools::extract_locally_relevant_dofs(dof_handler, locally_relevant_dofs);
+
+ constraints.reinit(locally_relevant_dofs);
+
+ DoFTools::make_hanging_node_constraints(dof_handler, constraints);
+
+ std::set<unsigned int> dirichlet_boundary = {0};
+ std::set<unsigned int> tangential_boundary = {1};
+
+ BoundaryValues<dim> boundary;
+ for (auto bid : dirichlet_boundary)
+ VectorTools::interpolate_boundary_values(dof_handler,
+ bid,
+ boundary,
+ constraints);
+
+ VectorTools::compute_no_normal_flux_constraints(dof_handler,
+ /* first_vector_component= */
+ 0,
+ tangential_boundary,
+ constraints);
+ constraints.close();
+
+ typename MatrixFree<dim, Number, VectorizedArrayType>::AdditionalData
+ additional_data;
+ additional_data.mapping_update_flags = update_values | update_gradients;
+
+ MappingQ<dim> mapping(1);
+ QGauss<1> quad(fe_degree + 1);
+
+ MatrixFree<dim, Number, VectorizedArrayType> matrix_free;
+ matrix_free.reinit(mapping, dof_handler, constraints, quad, additional_data);
+
+
+ Test<dim, fe_degree, n_points, n_components, Number, VectorizedArrayType>
+ test(matrix_free,
+ [](FEEvaluation<dim,
+ fe_degree,
+ n_points,
+ n_components,
+ Number,
+ VectorizedArrayType> &phi) {
+ phi.evaluate(false, true, false);
+ for (unsigned int q = 0; q < phi.n_q_points; ++q)
+ {
+ phi.submit_symmetric_gradient(2.0 *
+ phi.get_symmetric_gradient(q),
+ q);
+ }
+ phi.integrate(false, true);
+ });
+
+ test.do_test();
+}
+
+int
+main(int argc, char **argv)
+{
+ Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
+ MPILogInitAll all;
+
+ test<2, 1>();
+}
--- /dev/null
+
+Process #0
+Local range: [0, 40), global size: 40
+Vector data:
+0.000e+00 1.449e+00 0.000e+00 2.214e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.602e+00 0.000e+00 0.000e+00 0.000e+00 1.602e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.214e+00 0.000e+00 0.000e+00 0.000e+00 1.449e+00 0.000e+00 0.000e+00 0.000e+00 2.214e+00 0.000e+00 0.000e+00 1.602e+00 0.000e+00 0.000e+00 0.000e+00 1.602e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.214e+00 0.000e+00 0.000e+00
+DEAL:0::5.83842
+Process #0
+Local range: [0, 40), global size: 40
+Vector data:
+0.000e+00 1.449e+00 0.000e+00 2.214e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.602e+00 0.000e+00 0.000e+00 0.000e+00 1.602e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.214e+00 0.000e+00 0.000e+00 0.000e+00 1.449e+00 0.000e+00 0.000e+00 0.000e+00 2.214e+00 0.000e+00 0.000e+00 1.602e+00 0.000e+00 0.000e+00 0.000e+00 1.602e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.214e+00 0.000e+00 0.000e+00
+DEAL:0::5.83842
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2019 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// Test MatrixFreeTools::compute_diagonal() for scalar and vector Laplace
+// operator with variable coefficients.
+
+#include "compute_diagonal_util.h"
+
+template <int dim,
+ int fe_degree,
+ int n_points = fe_degree + 1,
+ int n_components = 1,
+ typename Number = double,
+ typename VectorizedArrayType = VectorizedArray<Number>>
+void
+test()
+{
+ parallel::distributed::Triangulation<dim> tria(MPI_COMM_WORLD);
+
+ GridGenerator::hyper_ball(tria);
+ tria.refine_global(1);
+
+ const FE_Q<dim> fe_q(fe_degree);
+ const FESystem<dim> fe(fe_q, n_components);
+
+ // setup dof-handlers
+ DoFHandler<dim> dof_handler(tria);
+ dof_handler.distribute_dofs(fe);
+
+ AffineConstraints<Number> constraint;
+ DoFTools::make_hanging_node_constraints(dof_handler, constraint);
+
+ VectorTools::interpolate_boundary_values(
+ dof_handler, 0, Functions::ZeroFunction<dim>(n_components), constraint);
+
+ constraint.close();
+
+ typename MatrixFree<dim, Number, VectorizedArrayType>::AdditionalData
+ additional_data;
+ additional_data.mapping_update_flags =
+ update_values | update_gradients | update_quadrature_points;
+
+ MappingQ<dim> mapping(1);
+ QGauss<1> quad(fe_degree + 1);
+
+ MatrixFree<dim, Number, VectorizedArrayType> matrix_free;
+ matrix_free.reinit(mapping, dof_handler, constraint, quad, additional_data);
+
+
+ Test<dim, fe_degree, n_points, n_components, Number, VectorizedArrayType>
+ test(matrix_free,
+ [](FEEvaluation<dim,
+ fe_degree,
+ n_points,
+ n_components,
+ Number,
+ VectorizedArrayType> &phi) {
+ phi.evaluate(false, true);
+ for (unsigned int q = 0; q < phi.n_q_points; ++q)
+ {
+ auto quadrature_point = phi.quadrature_point(q);
+ VectorizedArrayType coefficient;
+
+ for (unsigned int v = 0;
+ v < VectorizedArrayType::n_array_elements;
+ v++)
+ {
+ Point<dim, Number> point;
+ for (unsigned int d = 0; d < dim; d++)
+ point[d] = quadrature_point[d][v];
+ coefficient[v] = (point.square() < 0.5 * 0.5) ? 20 : 1;
+ }
+
+ phi.submit_gradient(coefficient * phi.get_gradient(q), q);
+ }
+ phi.integrate(false, true);
+ });
+
+ test.do_test();
+}
+
+int
+main(int argc, char **argv)
+{
+ Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
+ MPILogInitAll all;
+
+ test<2, 1, 2, 1>(); // scalar
+ test<2, 2, 3, 1>(); // scalar
+ test<2, 3, 4, 1>(); // scalar
+ test<3, 1, 2, 1>(); // vector
+ test<3, 2, 3, 1>(); // vector
+ test<3, 3, 4, 1>(); // vector
+}
--- /dev/null
+
+Process #0
+Local range: [0, 25), global size: 25
+Vector data:
+0.000e+00 0.000e+00 1.062e+01 1.130e+01 0.000e+00 1.062e+01 4.198e+01 4.393e+01 4.198e+01 0.000e+00 1.130e+01 4.393e+01 0.000e+00 1.062e+01 4.198e+01 5.333e+01 4.393e+01 4.393e+01 4.198e+01 0.000e+00 1.130e+01 0.000e+00 1.062e+01 0.000e+00 1.130e+01
+DEAL:0::136.294
+Process #0
+Local range: [0, 25), global size: 25
+Vector data:
+0.000e+00 0.000e+00 1.062e+01 1.130e+01 0.000e+00 1.062e+01 4.198e+01 4.393e+01 4.198e+01 0.000e+00 1.130e+01 4.393e+01 0.000e+00 1.062e+01 4.198e+01 5.333e+01 4.393e+01 4.393e+01 4.198e+01 0.000e+00 1.130e+01 0.000e+00 1.062e+01 0.000e+00 1.130e+01
+DEAL:0::136.294
+Process #0
+Local range: [0, 89), global size: 89
+Vector data:
+0.000e+00 0.000e+00 3.596e+00 6.108e+00 4.475e+00 4.209e+00 0.000e+00 1.218e+01 7.596e+00 0.000e+00 3.596e+00 4.475e+00 0.000e+00 1.218e+01 7.596e+00 5.329e+01 4.904e+01 2.420e+01 5.270e+01 7.718e+01 6.373e+01 5.329e+01 2.420e+01 7.718e+01 6.373e+01 0.000e+00 6.108e+00 0.000e+00 1.218e+01 4.209e+00 7.596e+00 4.904e+01 7.718e+01 5.270e+01 6.373e+01 0.000e+00 3.596e+00 0.000e+00 1.218e+01 4.475e+00 7.596e+00 5.329e+01 7.718e+01 2.420e+01 6.373e+01 4.978e+01 7.822e+01 7.822e+01 1.138e+02 4.904e+01 7.718e+01 7.822e+01 1.138e+02 4.904e+01 7.822e+01 7.718e+01 1.138e+02 5.329e+01 7.718e+01 7.718e+01 1.138e+02 0.000e+00 6.108e+00 4.209e+00 0.000e+00 1.218e+01 7.596e+00 0.000e+00 3.596e+00 4.475e+00 0.000e+00 1.218e+01 7.596e+00 5.270e+01 6.373e+01 2.420e+01 6.373e+01 0.000e+00 6.108e+00 0.000e+00 1.218e+01 4.209e+00 7.596e+00 5.270e+01 6.373e+01 0.000e+00 1.218e+01 7.596e+00 6.373e+01
+DEAL:0::441.936
+Process #0
+Local range: [0, 89), global size: 89
+Vector data:
+0.000e+00 0.000e+00 3.596e+00 6.108e+00 4.475e+00 4.209e+00 0.000e+00 1.218e+01 7.596e+00 0.000e+00 3.596e+00 4.475e+00 0.000e+00 1.218e+01 7.596e+00 5.329e+01 4.904e+01 2.420e+01 5.270e+01 7.718e+01 6.373e+01 5.329e+01 2.420e+01 7.718e+01 6.373e+01 0.000e+00 6.108e+00 0.000e+00 1.218e+01 4.209e+00 7.596e+00 4.904e+01 7.718e+01 5.270e+01 6.373e+01 0.000e+00 3.596e+00 0.000e+00 1.218e+01 4.475e+00 7.596e+00 5.329e+01 7.718e+01 2.420e+01 6.373e+01 4.978e+01 7.822e+01 7.822e+01 1.138e+02 4.904e+01 7.718e+01 7.822e+01 1.138e+02 4.904e+01 7.822e+01 7.718e+01 1.138e+02 5.329e+01 7.718e+01 7.718e+01 1.138e+02 0.000e+00 6.108e+00 4.209e+00 0.000e+00 1.218e+01 7.596e+00 0.000e+00 3.596e+00 4.475e+00 0.000e+00 1.218e+01 7.596e+00 5.270e+01 6.373e+01 2.420e+01 6.373e+01 0.000e+00 6.108e+00 0.000e+00 1.218e+01 4.209e+00 7.596e+00 5.270e+01 6.373e+01 0.000e+00 1.218e+01 7.596e+00 6.373e+01
+DEAL:0::441.936
+Process #0
+Local range: [0, 193), global size: 193
+Vector data:
+0.000e+00 0.000e+00 3.713e+00 3.388e+00 4.398e+00 4.192e+00 4.203e+00 4.008e+00 0.000e+00 0.000e+00 8.188e+00 7.415e+00 8.589e+00 8.167e+00 7.729e+00 7.297e+00 0.000e+00 3.713e+00 4.398e+00 4.192e+00 0.000e+00 0.000e+00 7.415e+00 8.188e+00 8.167e+00 8.589e+00 7.297e+00 7.729e+00 5.994e+01 4.889e+01 1.254e+01 7.532e+01 1.280e+01 7.442e+01 8.862e+01 8.316e+01 3.344e+01 2.920e+01 1.075e+02 9.766e+01 5.994e+01 1.254e+01 7.532e+01 8.316e+01 8.862e+01 2.920e+01 3.344e+01 9.766e+01 1.075e+02 0.000e+00 3.388e+00 0.000e+00 0.000e+00 8.188e+00 7.415e+00 4.203e+00 4.008e+00 8.589e+00 7.729e+00 8.167e+00 7.297e+00 4.889e+01 8.862e+01 8.316e+01 1.280e+01 7.442e+01 3.344e+01 1.075e+02 2.920e+01 9.766e+01 0.000e+00 3.713e+00 0.000e+00 0.000e+00 7.415e+00 8.188e+00 4.398e+00 4.192e+00 8.167e+00 7.297e+00 8.589e+00 7.729e+00 5.994e+01 8.316e+01 8.862e+01 1.254e+01 7.532e+01 2.920e+01 9.766e+01 3.344e+01 1.075e+02 4.952e+01 8.571e+01 8.571e+01 8.571e+01 8.571e+01 1.190e+02 1.190e+02 1.190e+02 1.190e+02 4.889e+01 8.862e+01 8.316e+01 8.571e+01 8.571e+01 1.190e+02 1.190e+02 1.190e+02 1.190e+02 4.889e+01 8.571e+01 8.571e+01 8.862e+01 8.316e+01 1.190e+02 1.190e+02 1.190e+02 1.190e+02 5.994e+01 8.316e+01 8.862e+01 8.316e+01 8.862e+01 1.190e+02 1.190e+02 1.190e+02 1.190e+02 0.000e+00 3.388e+00 4.203e+00 4.008e+00 0.000e+00 0.000e+00 8.188e+00 7.415e+00 8.589e+00 8.167e+00 7.729e+00 7.297e+00 0.000e+00 3.713e+00 4.398e+00 4.192e+00 0.000e+00 0.000e+00 7.415e+00 8.188e+00 8.167e+00 8.589e+00 7.297e+00 7.729e+00 1.280e+01 7.442e+01 3.344e+01 2.920e+01 1.075e+02 9.766e+01 1.254e+01 7.532e+01 2.920e+01 3.344e+01 9.766e+01 1.075e+02 0.000e+00 3.388e+00 0.000e+00 0.000e+00 8.188e+00 7.415e+00 4.203e+00 4.008e+00 8.589e+00 7.729e+00 8.167e+00 7.297e+00 1.280e+01 7.442e+01 3.344e+01 1.075e+02 2.920e+01 9.766e+01 0.000e+00 0.000e+00 7.415e+00 8.188e+00 8.167e+00 7.297e+00 8.589e+00 7.729e+00 2.920e+01 9.766e+01 3.344e+01 1.075e+02
+DEAL:0::814.965
+Process #0
+Local range: [0, 193), global size: 193
+Vector data:
+0.000e+00 0.000e+00 3.713e+00 3.388e+00 4.398e+00 4.192e+00 4.203e+00 4.008e+00 0.000e+00 0.000e+00 8.188e+00 7.415e+00 8.589e+00 8.167e+00 7.729e+00 7.297e+00 0.000e+00 3.713e+00 4.398e+00 4.192e+00 0.000e+00 0.000e+00 7.415e+00 8.188e+00 8.167e+00 8.589e+00 7.297e+00 7.729e+00 5.994e+01 4.889e+01 1.254e+01 7.532e+01 1.280e+01 7.442e+01 8.862e+01 8.316e+01 3.344e+01 2.920e+01 1.075e+02 9.766e+01 5.994e+01 1.254e+01 7.532e+01 8.316e+01 8.862e+01 2.920e+01 3.344e+01 9.766e+01 1.075e+02 0.000e+00 3.388e+00 0.000e+00 0.000e+00 8.188e+00 7.415e+00 4.203e+00 4.008e+00 8.589e+00 7.729e+00 8.167e+00 7.297e+00 4.889e+01 8.862e+01 8.316e+01 1.280e+01 7.442e+01 3.344e+01 1.075e+02 2.920e+01 9.766e+01 0.000e+00 3.713e+00 0.000e+00 0.000e+00 7.415e+00 8.188e+00 4.398e+00 4.192e+00 8.167e+00 7.297e+00 8.589e+00 7.729e+00 5.994e+01 8.316e+01 8.862e+01 1.254e+01 7.532e+01 2.920e+01 9.766e+01 3.344e+01 1.075e+02 4.952e+01 8.571e+01 8.571e+01 8.571e+01 8.571e+01 1.190e+02 1.190e+02 1.190e+02 1.190e+02 4.889e+01 8.862e+01 8.316e+01 8.571e+01 8.571e+01 1.190e+02 1.190e+02 1.190e+02 1.190e+02 4.889e+01 8.571e+01 8.571e+01 8.862e+01 8.316e+01 1.190e+02 1.190e+02 1.190e+02 1.190e+02 5.994e+01 8.316e+01 8.862e+01 8.316e+01 8.862e+01 1.190e+02 1.190e+02 1.190e+02 1.190e+02 0.000e+00 3.388e+00 4.203e+00 4.008e+00 0.000e+00 0.000e+00 8.188e+00 7.415e+00 8.589e+00 8.167e+00 7.729e+00 7.297e+00 0.000e+00 3.713e+00 4.398e+00 4.192e+00 0.000e+00 0.000e+00 7.415e+00 8.188e+00 8.167e+00 8.589e+00 7.297e+00 7.729e+00 1.280e+01 7.442e+01 3.344e+01 2.920e+01 1.075e+02 9.766e+01 1.254e+01 7.532e+01 2.920e+01 3.344e+01 9.766e+01 1.075e+02 0.000e+00 3.388e+00 0.000e+00 0.000e+00 8.188e+00 7.415e+00 4.203e+00 4.008e+00 8.589e+00 7.729e+00 8.167e+00 7.297e+00 1.280e+01 7.442e+01 3.344e+01 1.075e+02 2.920e+01 9.766e+01 0.000e+00 0.000e+00 7.415e+00 8.188e+00 8.167e+00 7.297e+00 8.589e+00 7.729e+00 2.920e+01 9.766e+01 3.344e+01 1.075e+02
+DEAL:0::814.965
+Process #0
+Local range: [0, 79), global size: 79
+Vector data:
+9.034e+00 9.932e+00 9.932e+00 1.399e+01 9.932e+00 1.399e+01 1.399e+01 1.127e+01 9.034e+00 9.932e+00 9.932e+00 1.399e+01 9.034e+00 9.932e+00 9.932e+00 1.399e+01 9.034e+00 9.932e+00 9.034e+00 9.932e+00 9.932e+00 1.399e+01 9.034e+00 9.932e+00 9.034e+00 9.932e+00 9.034e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 3.895e+00 6.465e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 1.773e+00 0.000e+00 0.000e+00 3.895e+00 6.465e+00 0.000e+00 3.895e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 1.773e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 0.000e+00 3.895e+00 6.465e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 3.895e+00 0.000e+00 6.465e+00 0.000e+00 3.895e+00 0.000e+00 6.465e+00 0.000e+00 6.465e+00
+DEAL:0::59.9730
+Process #0
+Local range: [0, 79), global size: 79
+Vector data:
+9.034e+00 9.932e+00 9.932e+00 1.399e+01 9.932e+00 1.399e+01 1.399e+01 1.127e+01 9.034e+00 9.932e+00 9.932e+00 1.399e+01 9.034e+00 9.932e+00 9.932e+00 1.399e+01 9.034e+00 9.932e+00 9.034e+00 9.932e+00 9.932e+00 1.399e+01 9.034e+00 9.932e+00 9.034e+00 9.932e+00 9.034e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 3.895e+00 6.465e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 1.773e+00 0.000e+00 0.000e+00 3.895e+00 6.465e+00 0.000e+00 3.895e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 1.773e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 0.000e+00 3.895e+00 6.465e+00 0.000e+00 0.000e+00 1.773e+00 3.895e+00 0.000e+00 3.895e+00 0.000e+00 6.465e+00 0.000e+00 3.895e+00 0.000e+00 6.465e+00 0.000e+00 6.465e+00
+DEAL:0::59.9730
+Process #0
+Local range: [0, 517), global size: 517
+Vector data:
+4.738e+00 4.681e+00 4.681e+00 5.014e+00 4.681e+00 5.014e+00 5.014e+00 4.208e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 8.110e+00 7.213e+00 8.110e+00 7.213e+00 8.217e+00 8.110e+00 8.110e+00 7.213e+00 1.302e+01 1.202e+01 1.302e+01 1.202e+01 1.302e+01 1.202e+01 1.924e+01 4.738e+00 4.681e+00 4.681e+00 5.014e+00 8.217e+00 8.217e+00 8.110e+00 8.110e+00 8.110e+00 7.213e+00 8.217e+00 8.110e+00 1.302e+01 1.302e+01 1.202e+01 1.302e+01 1.202e+01 1.924e+01 4.738e+00 4.681e+00 4.681e+00 5.014e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 7.213e+00 8.110e+00 8.217e+00 8.110e+00 1.302e+01 1.202e+01 1.302e+01 1.302e+01 1.202e+01 1.924e+01 4.738e+00 4.681e+00 8.217e+00 8.217e+00 8.110e+00 8.110e+00 8.217e+00 1.302e+01 1.302e+01 1.302e+01 1.202e+01 1.924e+01 4.738e+00 4.681e+00 4.681e+00 5.014e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 8.110e+00 7.213e+00 1.302e+01 1.202e+01 1.302e+01 1.202e+01 1.302e+01 1.924e+01 4.738e+00 4.681e+00 8.217e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 1.302e+01 1.302e+01 1.202e+01 1.302e+01 1.924e+01 4.738e+00 4.681e+00 8.217e+00 8.110e+00 8.217e+00 8.217e+00 8.110e+00 1.302e+01 1.202e+01 1.302e+01 1.302e+01 1.924e+01 4.738e+00 8.217e+00 8.217e+00 8.217e+00 1.302e+01 1.302e+01 1.302e+01 1.924e+01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.789e-01 6.846e-01 6.846e-01 7.172e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.267e+00 1.322e+00 7.197e-01 8.387e-01 8.387e-01 9.188e-01 1.409e+00 1.575e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 2.610e+00 0.000e+00 0.000e+00 5.789e-01 6.846e-01 0.000e+00 0.000e+00 0.000e+00 1.267e+00 1.267e+00 1.322e+00 7.197e-01 8.387e-01 1.409e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 2.610e+00 0.000e+00 0.000e+00 5.789e-01 6.846e-01 0.000e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.267e+00 7.197e-01 8.387e-01 1.409e+00 1.575e+00 1.409e+00 0.000e+00 2.430e+00 2.610e+00 0.000e+00 5.789e-01 0.000e+00 0.000e+00 1.267e+00 1.267e+00 7.197e-01 1.409e+00 1.409e+00 0.000e+00 2.430e+00 2.610e+00 7.901e+00 8.137e+00 8.137e+00 9.473e+00 1.303e+01 1.521e+01 1.303e+01 1.521e+01 2.375e+01 7.901e+00 8.137e+00 1.303e+01 1.303e+01 1.521e+01 2.375e+01 7.901e+00 8.137e+00 1.303e+01 1.521e+01 1.303e+01 2.375e+01 7.901e+00 1.303e+01 1.303e+01 2.375e+01 0.000e+00 0.000e+00 6.846e-01 7.172e-01 8.387e-01 9.188e-01 0.000e+00 1.322e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 0.000e+00 6.846e-01 8.387e-01 0.000e+00 1.322e+00 0.000e+00 1.267e+00 1.409e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 8.137e+00 9.473e+00 1.303e+01 1.521e+01 1.521e+01 2.375e+01 8.137e+00 1.303e+01 1.521e+01 2.375e+01 0.000e+00 0.000e+00 5.789e-01 6.846e-01 7.197e-01 8.387e-01 0.000e+00 1.267e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 0.000e+00 5.789e-01 7.197e-01 0.000e+00 1.267e+00 0.000e+00 1.267e+00 1.409e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 7.901e+00 8.137e+00 1.303e+01 1.521e+01 1.303e+01 2.375e+01 7.901e+00 1.303e+01 1.303e+01 2.375e+01 0.000e+00 0.000e+00 5.789e-01 6.846e-01 0.000e+00 0.000e+00 6.846e-01 7.172e-01 7.197e-01 8.387e-01 0.000e+00 1.267e+00 8.387e-01 9.188e-01 0.000e+00 1.322e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 2.610e+00 0.000e+00 1.267e+00 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 2.610e+00 7.901e+00 8.137e+00 8.137e+00 9.473e+00 1.303e+01 1.521e+01 1.303e+01 1.521e+01 2.375e+01 1.303e+01 1.521e+01 2.375e+01 0.000e+00 0.000e+00 5.789e-01 6.846e-01 7.197e-01 8.387e-01 0.000e+00 1.267e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 0.000e+00 1.267e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 7.901e+00 8.137e+00 1.303e+01 1.521e+01 1.303e+01 2.375e+01 1.303e+01 2.375e+01 0.000e+00 6.846e-01 0.000e+00 7.172e-01 0.000e+00 1.322e+00 8.387e-01 9.188e-01 0.000e+00 1.267e+00 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 1.575e+00 2.610e+00 8.137e+00 9.473e+00 1.303e+01 1.521e+01 1.521e+01 2.375e+01 0.000e+00 6.846e-01 0.000e+00 1.322e+00 8.387e-01 0.000e+00 1.267e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 2.610e+00 8.137e+00 1.303e+01 1.521e+01 2.375e+01 0.000e+00 1.267e+00 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 2.610e+00 1.303e+01 1.521e+01 2.375e+01 0.000e+00 1.267e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 1.303e+01 2.375e+01 0.000e+00 7.172e-01 9.188e-01 0.000e+00 1.322e+00 0.000e+00 1.322e+00 1.575e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 9.473e+00 1.521e+01 1.521e+01 2.375e+01 1.521e+01 2.375e+01 0.000e+00 1.322e+00 1.575e+00 0.000e+00 2.430e+00 2.610e+00 0.000e+00 2.430e+00 2.610e+00 1.521e+01 2.375e+01 2.375e+01 0.000e+00 7.172e-01 0.000e+00 1.322e+00 9.188e-01 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.575e+00 1.575e+00 2.610e+00 9.473e+00 1.521e+01 1.521e+01 2.375e+01 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 1.521e+01 2.375e+01 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 1.521e+01 2.375e+01 0.000e+00 2.430e+00 2.610e+00 2.375e+01
+DEAL:0::195.948
+Process #0
+Local range: [0, 517), global size: 517
+Vector data:
+4.738e+00 4.681e+00 4.681e+00 5.014e+00 4.681e+00 5.014e+00 5.014e+00 4.208e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 8.110e+00 7.213e+00 8.110e+00 7.213e+00 8.217e+00 8.110e+00 8.110e+00 7.213e+00 1.302e+01 1.202e+01 1.302e+01 1.202e+01 1.302e+01 1.202e+01 1.924e+01 4.738e+00 4.681e+00 4.681e+00 5.014e+00 8.217e+00 8.217e+00 8.110e+00 8.110e+00 8.110e+00 7.213e+00 8.217e+00 8.110e+00 1.302e+01 1.302e+01 1.202e+01 1.302e+01 1.202e+01 1.924e+01 4.738e+00 4.681e+00 4.681e+00 5.014e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 7.213e+00 8.110e+00 8.217e+00 8.110e+00 1.302e+01 1.202e+01 1.302e+01 1.302e+01 1.202e+01 1.924e+01 4.738e+00 4.681e+00 8.217e+00 8.217e+00 8.110e+00 8.110e+00 8.217e+00 1.302e+01 1.302e+01 1.302e+01 1.202e+01 1.924e+01 4.738e+00 4.681e+00 4.681e+00 5.014e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 8.110e+00 7.213e+00 1.302e+01 1.202e+01 1.302e+01 1.202e+01 1.302e+01 1.924e+01 4.738e+00 4.681e+00 8.217e+00 8.217e+00 8.110e+00 8.217e+00 8.110e+00 1.302e+01 1.302e+01 1.202e+01 1.302e+01 1.924e+01 4.738e+00 4.681e+00 8.217e+00 8.110e+00 8.217e+00 8.217e+00 8.110e+00 1.302e+01 1.202e+01 1.302e+01 1.302e+01 1.924e+01 4.738e+00 8.217e+00 8.217e+00 8.217e+00 1.302e+01 1.302e+01 1.302e+01 1.924e+01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.789e-01 6.846e-01 6.846e-01 7.172e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.267e+00 1.322e+00 7.197e-01 8.387e-01 8.387e-01 9.188e-01 1.409e+00 1.575e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 2.610e+00 0.000e+00 0.000e+00 5.789e-01 6.846e-01 0.000e+00 0.000e+00 0.000e+00 1.267e+00 1.267e+00 1.322e+00 7.197e-01 8.387e-01 1.409e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 2.610e+00 0.000e+00 0.000e+00 5.789e-01 6.846e-01 0.000e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.267e+00 7.197e-01 8.387e-01 1.409e+00 1.575e+00 1.409e+00 0.000e+00 2.430e+00 2.610e+00 0.000e+00 5.789e-01 0.000e+00 0.000e+00 1.267e+00 1.267e+00 7.197e-01 1.409e+00 1.409e+00 0.000e+00 2.430e+00 2.610e+00 7.901e+00 8.137e+00 8.137e+00 9.473e+00 1.303e+01 1.521e+01 1.303e+01 1.521e+01 2.375e+01 7.901e+00 8.137e+00 1.303e+01 1.303e+01 1.521e+01 2.375e+01 7.901e+00 8.137e+00 1.303e+01 1.521e+01 1.303e+01 2.375e+01 7.901e+00 1.303e+01 1.303e+01 2.375e+01 0.000e+00 0.000e+00 6.846e-01 7.172e-01 8.387e-01 9.188e-01 0.000e+00 1.322e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 0.000e+00 6.846e-01 8.387e-01 0.000e+00 1.322e+00 0.000e+00 1.267e+00 1.409e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 8.137e+00 9.473e+00 1.303e+01 1.521e+01 1.521e+01 2.375e+01 8.137e+00 1.303e+01 1.521e+01 2.375e+01 0.000e+00 0.000e+00 5.789e-01 6.846e-01 7.197e-01 8.387e-01 0.000e+00 1.267e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 0.000e+00 5.789e-01 7.197e-01 0.000e+00 1.267e+00 0.000e+00 1.267e+00 1.409e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 7.901e+00 8.137e+00 1.303e+01 1.521e+01 1.303e+01 2.375e+01 7.901e+00 1.303e+01 1.303e+01 2.375e+01 0.000e+00 0.000e+00 5.789e-01 6.846e-01 0.000e+00 0.000e+00 6.846e-01 7.172e-01 7.197e-01 8.387e-01 0.000e+00 1.267e+00 8.387e-01 9.188e-01 0.000e+00 1.322e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 2.610e+00 0.000e+00 1.267e+00 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 2.610e+00 7.901e+00 8.137e+00 8.137e+00 9.473e+00 1.303e+01 1.521e+01 1.303e+01 1.521e+01 2.375e+01 1.303e+01 1.521e+01 2.375e+01 0.000e+00 0.000e+00 5.789e-01 6.846e-01 7.197e-01 8.387e-01 0.000e+00 1.267e+00 0.000e+00 0.000e+00 1.267e+00 1.322e+00 1.409e+00 1.575e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 0.000e+00 1.267e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 7.901e+00 8.137e+00 1.303e+01 1.521e+01 1.303e+01 2.375e+01 1.303e+01 2.375e+01 0.000e+00 6.846e-01 0.000e+00 7.172e-01 0.000e+00 1.322e+00 8.387e-01 9.188e-01 0.000e+00 1.267e+00 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 1.575e+00 2.610e+00 8.137e+00 9.473e+00 1.303e+01 1.521e+01 1.521e+01 2.375e+01 0.000e+00 6.846e-01 0.000e+00 1.322e+00 8.387e-01 0.000e+00 1.267e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 2.610e+00 8.137e+00 1.303e+01 1.521e+01 2.375e+01 0.000e+00 1.267e+00 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.409e+00 1.575e+00 2.610e+00 1.303e+01 1.521e+01 2.375e+01 0.000e+00 1.267e+00 0.000e+00 2.430e+00 1.409e+00 2.610e+00 1.303e+01 2.375e+01 0.000e+00 7.172e-01 9.188e-01 0.000e+00 1.322e+00 0.000e+00 1.322e+00 1.575e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 9.473e+00 1.521e+01 1.521e+01 2.375e+01 1.521e+01 2.375e+01 0.000e+00 1.322e+00 1.575e+00 0.000e+00 2.430e+00 2.610e+00 0.000e+00 2.430e+00 2.610e+00 1.521e+01 2.375e+01 2.375e+01 0.000e+00 7.172e-01 0.000e+00 1.322e+00 9.188e-01 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.575e+00 1.575e+00 2.610e+00 9.473e+00 1.521e+01 1.521e+01 2.375e+01 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 1.521e+01 2.375e+01 0.000e+00 1.322e+00 0.000e+00 2.430e+00 1.575e+00 2.610e+00 1.521e+01 2.375e+01 0.000e+00 2.430e+00 2.610e+00 2.375e+01
+DEAL:0::195.948
+Process #0
+Local range: [0, 1651), global size: 1651
+Vector data:
+2.656e+00 2.581e+00 2.581e+00 2.698e+00 2.581e+00 2.698e+00 2.698e+00 2.243e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 4.908e+00 5.006e+00 4.457e+00 4.457e+00 4.908e+00 5.006e+00 4.457e+00 4.457e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 4.908e+00 5.006e+00 4.457e+00 4.457e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 2.581e+00 2.698e+00 5.405e+00 5.382e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 4.908e+00 5.006e+00 5.006e+00 4.908e+00 4.457e+00 4.457e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 2.581e+00 2.698e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.405e+00 5.382e+00 5.006e+00 4.908e+00 4.457e+00 4.457e+00 4.908e+00 5.006e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 5.382e+00 5.405e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.006e+00 4.908e+00 5.405e+00 5.382e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 2.581e+00 2.698e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.006e+00 4.908e+00 4.457e+00 4.457e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 5.405e+00 5.382e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.405e+00 5.382e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 5.382e+00 5.405e+00 5.382e+00 5.405e+00 5.382e+00 5.405e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.219e-01 2.563e-01 2.563e-01 3.785e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.337e-01 5.294e-01 7.525e-01 7.764e-01 5.337e-01 5.294e-01 7.525e-01 7.764e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 5.124e-01 4.459e-01 5.666e-01 4.891e-01 9.758e-01 9.869e-01 8.404e-01 8.382e-01 1.105e+00 1.135e+00 9.273e-01 9.462e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 1.955e+00 2.024e+00 2.024e+00 2.111e+00 1.588e+00 1.617e+00 1.617e+00 1.666e+00 0.000e+00 0.000e+00 2.219e-01 2.563e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.337e-01 5.294e-01 5.294e-01 5.337e-01 7.764e-01 7.525e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 9.758e-01 9.869e-01 8.404e-01 8.382e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 2.024e+00 1.955e+00 2.111e+00 2.024e+00 1.617e+00 1.588e+00 1.666e+00 1.617e+00 0.000e+00 0.000e+00 2.219e-01 2.563e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 7.764e-01 7.525e-01 5.337e-01 5.294e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 9.869e-01 9.758e-01 8.382e-01 8.404e-01 1.135e+00 1.105e+00 9.462e-01 9.273e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 2.024e+00 2.111e+00 1.955e+00 2.024e+00 1.617e+00 1.666e+00 1.588e+00 1.617e+00 0.000e+00 2.219e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 5.294e-01 5.337e-01 4.549e-01 4.165e-01 9.869e-01 9.758e-01 8.382e-01 8.404e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 2.111e+00 2.024e+00 2.024e+00 1.955e+00 1.666e+00 1.617e+00 1.617e+00 1.588e+00 5.564e-01 6.321e+00 1.030e+00 6.104e+00 1.030e+00 6.104e+00 5.850e+00 7.429e+00 2.051e+00 2.158e+00 1.103e+01 1.101e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 2.051e+00 1.103e+01 2.158e+00 1.101e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.242e+00 1.085e+01 1.085e+01 1.575e+01 1.983e+01 1.952e+01 1.952e+01 1.961e+01 5.564e-01 6.321e+00 1.030e+00 6.104e+00 2.051e+00 2.158e+00 1.103e+01 1.101e+01 2.158e+00 1.101e+01 2.051e+00 1.103e+01 1.039e+01 1.294e+01 7.963e+00 1.239e+01 1.085e+01 7.242e+00 1.575e+01 1.085e+01 1.952e+01 1.983e+01 1.961e+01 1.952e+01 5.564e-01 6.321e+00 1.030e+00 6.104e+00 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 2.051e+00 1.103e+01 2.158e+00 1.101e+01 1.085e+01 1.575e+01 7.242e+00 1.085e+01 1.952e+01 1.961e+01 1.983e+01 1.952e+01 5.564e-01 6.321e+00 2.158e+00 2.051e+00 1.101e+01 1.103e+01 2.158e+00 1.101e+01 2.051e+00 1.103e+01 1.575e+01 1.085e+01 1.085e+01 7.242e+00 1.961e+01 1.952e+01 1.952e+01 1.983e+01 0.000e+00 0.000e+00 2.563e-01 3.785e-01 5.124e-01 4.459e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.337e-01 5.294e-01 7.525e-01 7.764e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.955e+00 2.024e+00 1.588e+00 1.617e+00 2.024e+00 2.111e+00 1.617e+00 1.666e+00 0.000e+00 2.563e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.955e+00 1.617e+00 1.588e+00 2.111e+00 2.024e+00 1.666e+00 1.617e+00 1.030e+00 6.104e+00 5.850e+00 7.429e+00 2.051e+00 1.103e+01 2.158e+00 1.101e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 1.030e+00 6.104e+00 2.051e+00 1.103e+01 2.158e+00 1.101e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 0.000e+00 0.000e+00 2.219e-01 2.563e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 7.764e-01 7.525e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 2.024e+00 2.111e+00 1.617e+00 1.666e+00 1.955e+00 2.024e+00 1.588e+00 1.617e+00 0.000e+00 2.219e-01 4.549e-01 4.165e-01 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 5.294e-01 5.337e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 2.111e+00 2.024e+00 1.666e+00 1.617e+00 2.024e+00 1.955e+00 1.617e+00 1.588e+00 5.564e-01 6.321e+00 1.030e+00 6.104e+00 2.158e+00 1.101e+01 2.051e+00 1.103e+01 1.039e+01 1.294e+01 7.963e+00 1.239e+01 2.051e+00 2.158e+00 1.103e+01 1.101e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 5.564e-01 6.321e+00 2.158e+00 1.101e+01 2.051e+00 1.103e+01 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 0.000e+00 0.000e+00 2.219e-01 2.563e-01 0.000e+00 0.000e+00 2.563e-01 3.785e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 5.124e-01 4.459e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.337e-01 5.294e-01 7.525e-01 7.764e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.955e+00 2.024e+00 1.588e+00 1.617e+00 2.024e+00 2.111e+00 1.617e+00 1.666e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.955e+00 1.617e+00 1.588e+00 2.111e+00 2.024e+00 1.666e+00 1.617e+00 5.564e-01 6.321e+00 1.030e+00 6.104e+00 1.030e+00 6.104e+00 5.850e+00 7.429e+00 2.051e+00 1.103e+01 2.158e+00 1.101e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 2.051e+00 2.158e+00 1.103e+01 1.101e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 0.000e+00 0.000e+00 2.219e-01 2.563e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 7.764e-01 7.525e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 2.024e+00 2.111e+00 1.617e+00 1.666e+00 1.955e+00 2.024e+00 1.588e+00 1.617e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 2.111e+00 2.024e+00 1.666e+00 1.617e+00 2.024e+00 1.955e+00 1.617e+00 1.588e+00 5.564e-01 6.321e+00 1.030e+00 6.104e+00 2.158e+00 1.101e+01 2.051e+00 1.103e+01 1.039e+01 1.294e+01 7.963e+00 1.239e+01 2.051e+00 2.158e+00 1.103e+01 1.101e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 0.000e+00 2.563e-01 0.000e+00 3.785e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 5.124e-01 4.459e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 1.955e+00 1.588e+00 2.024e+00 1.617e+00 2.024e+00 1.617e+00 2.111e+00 1.666e+00 1.030e+00 6.104e+00 5.850e+00 7.429e+00 2.051e+00 2.158e+00 1.103e+01 1.101e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.242e+00 1.983e+01 1.085e+01 1.952e+01 1.085e+01 1.952e+01 1.575e+01 1.961e+01 0.000e+00 2.563e-01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 2.024e+00 1.617e+00 1.955e+00 1.588e+00 2.111e+00 1.666e+00 2.024e+00 1.617e+00 1.030e+00 6.104e+00 2.051e+00 2.158e+00 1.103e+01 1.101e+01 1.039e+01 1.294e+01 7.963e+00 1.239e+01 1.085e+01 1.952e+01 7.242e+00 1.983e+01 1.575e+01 1.961e+01 1.085e+01 1.952e+01 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.617e+00 2.111e+00 1.666e+00 1.955e+00 1.588e+00 2.024e+00 1.617e+00 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 1.952e+01 1.575e+01 1.961e+01 7.242e+00 1.983e+01 1.085e+01 1.952e+01 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 2.111e+00 1.666e+00 2.024e+00 1.617e+00 2.024e+00 1.617e+00 1.955e+00 1.588e+00 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.575e+01 1.961e+01 1.085e+01 1.952e+01 1.085e+01 1.952e+01 7.242e+00 1.983e+01 0.000e+00 3.785e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.955e+00 2.024e+00 1.588e+00 1.617e+00 2.024e+00 2.111e+00 1.617e+00 1.666e+00 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.955e+00 1.617e+00 1.588e+00 2.111e+00 2.024e+00 1.666e+00 1.617e+00 5.850e+00 7.429e+00 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 2.024e+00 2.111e+00 1.617e+00 1.666e+00 1.955e+00 2.024e+00 1.588e+00 1.617e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 2.111e+00 2.024e+00 1.666e+00 1.617e+00 2.024e+00 1.955e+00 1.617e+00 1.588e+00 1.039e+01 1.294e+01 7.963e+00 1.239e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 0.000e+00 3.785e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 1.955e+00 1.588e+00 2.024e+00 1.617e+00 2.024e+00 1.617e+00 2.111e+00 1.666e+00 5.850e+00 7.429e+00 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.242e+00 1.983e+01 1.085e+01 1.952e+01 1.085e+01 1.952e+01 1.575e+01 1.961e+01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 1.135e+00 9.462e-01 1.105e+00 9.273e-01 2.024e+00 1.617e+00 1.955e+00 1.588e+00 2.111e+00 1.666e+00 2.024e+00 1.617e+00 1.039e+01 1.294e+01 7.963e+00 1.239e+01 1.085e+01 1.952e+01 7.242e+00 1.983e+01 1.575e+01 1.961e+01 1.085e+01 1.952e+01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.617e+00 2.111e+00 1.666e+00 1.955e+00 1.588e+00 2.024e+00 1.617e+00 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 1.952e+01 1.575e+01 1.961e+01 7.242e+00 1.983e+01 1.085e+01 1.952e+01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 2.111e+00 1.666e+00 2.024e+00 1.617e+00 2.024e+00 1.617e+00 1.955e+00 1.588e+00 1.575e+01 1.961e+01 1.085e+01 1.952e+01 1.085e+01 1.952e+01 7.242e+00 1.983e+01
+DEAL:0::308.790
+Process #0
+Local range: [0, 1651), global size: 1651
+Vector data:
+2.656e+00 2.581e+00 2.581e+00 2.698e+00 2.581e+00 2.698e+00 2.698e+00 2.243e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 4.908e+00 5.006e+00 4.457e+00 4.457e+00 4.908e+00 5.006e+00 4.457e+00 4.457e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 4.908e+00 5.006e+00 4.457e+00 4.457e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 2.581e+00 2.698e+00 5.405e+00 5.382e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 4.908e+00 5.006e+00 5.006e+00 4.908e+00 4.457e+00 4.457e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 2.581e+00 2.698e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.405e+00 5.382e+00 5.006e+00 4.908e+00 4.457e+00 4.457e+00 4.908e+00 5.006e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 5.382e+00 5.405e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.006e+00 4.908e+00 5.405e+00 5.382e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 2.581e+00 2.698e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 5.405e+00 5.382e+00 4.908e+00 5.006e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.006e+00 4.908e+00 4.457e+00 4.457e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.932e+00 8.732e+00 8.732e+00 8.600e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 5.405e+00 5.382e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 2.581e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 5.405e+00 5.382e+00 5.382e+00 5.405e+00 5.006e+00 4.908e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.266e+00 8.266e+00 8.266e+00 8.266e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.732e+00 8.600e+00 8.932e+00 8.732e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 2.656e+00 5.382e+00 5.405e+00 5.382e+00 5.405e+00 5.382e+00 5.405e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 8.600e+00 8.732e+00 8.732e+00 8.932e+00 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 1.348e+01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 2.219e-01 2.563e-01 2.563e-01 3.785e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.337e-01 5.294e-01 7.525e-01 7.764e-01 5.337e-01 5.294e-01 7.525e-01 7.764e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 5.124e-01 4.459e-01 5.666e-01 4.891e-01 9.758e-01 9.869e-01 8.404e-01 8.382e-01 1.105e+00 1.135e+00 9.273e-01 9.462e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 1.955e+00 2.024e+00 2.024e+00 2.111e+00 1.588e+00 1.617e+00 1.617e+00 1.666e+00 0.000e+00 0.000e+00 2.219e-01 2.563e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.337e-01 5.294e-01 5.294e-01 5.337e-01 7.764e-01 7.525e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 9.758e-01 9.869e-01 8.404e-01 8.382e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 2.024e+00 1.955e+00 2.111e+00 2.024e+00 1.617e+00 1.588e+00 1.666e+00 1.617e+00 0.000e+00 0.000e+00 2.219e-01 2.563e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 7.764e-01 7.525e-01 5.337e-01 5.294e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 9.869e-01 9.758e-01 8.382e-01 8.404e-01 1.135e+00 1.105e+00 9.462e-01 9.273e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 2.024e+00 2.111e+00 1.955e+00 2.024e+00 1.617e+00 1.666e+00 1.588e+00 1.617e+00 0.000e+00 2.219e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 5.294e-01 5.337e-01 4.549e-01 4.165e-01 9.869e-01 9.758e-01 8.382e-01 8.404e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 2.111e+00 2.024e+00 2.024e+00 1.955e+00 1.666e+00 1.617e+00 1.617e+00 1.588e+00 5.564e-01 6.321e+00 1.030e+00 6.104e+00 1.030e+00 6.104e+00 5.850e+00 7.429e+00 2.051e+00 2.158e+00 1.103e+01 1.101e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 2.051e+00 1.103e+01 2.158e+00 1.101e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.242e+00 1.085e+01 1.085e+01 1.575e+01 1.983e+01 1.952e+01 1.952e+01 1.961e+01 5.564e-01 6.321e+00 1.030e+00 6.104e+00 2.051e+00 2.158e+00 1.103e+01 1.101e+01 2.158e+00 1.101e+01 2.051e+00 1.103e+01 1.039e+01 1.294e+01 7.963e+00 1.239e+01 1.085e+01 7.242e+00 1.575e+01 1.085e+01 1.952e+01 1.983e+01 1.961e+01 1.952e+01 5.564e-01 6.321e+00 1.030e+00 6.104e+00 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 2.051e+00 1.103e+01 2.158e+00 1.101e+01 1.085e+01 1.575e+01 7.242e+00 1.085e+01 1.952e+01 1.961e+01 1.983e+01 1.952e+01 5.564e-01 6.321e+00 2.158e+00 2.051e+00 1.101e+01 1.103e+01 2.158e+00 1.101e+01 2.051e+00 1.103e+01 1.575e+01 1.085e+01 1.085e+01 7.242e+00 1.961e+01 1.952e+01 1.952e+01 1.983e+01 0.000e+00 0.000e+00 2.563e-01 3.785e-01 5.124e-01 4.459e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.337e-01 5.294e-01 7.525e-01 7.764e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.955e+00 2.024e+00 1.588e+00 1.617e+00 2.024e+00 2.111e+00 1.617e+00 1.666e+00 0.000e+00 2.563e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.955e+00 1.617e+00 1.588e+00 2.111e+00 2.024e+00 1.666e+00 1.617e+00 1.030e+00 6.104e+00 5.850e+00 7.429e+00 2.051e+00 1.103e+01 2.158e+00 1.101e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 1.030e+00 6.104e+00 2.051e+00 1.103e+01 2.158e+00 1.101e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 0.000e+00 0.000e+00 2.219e-01 2.563e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 7.764e-01 7.525e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 2.024e+00 2.111e+00 1.617e+00 1.666e+00 1.955e+00 2.024e+00 1.588e+00 1.617e+00 0.000e+00 2.219e-01 4.549e-01 4.165e-01 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 5.294e-01 5.337e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 2.111e+00 2.024e+00 1.666e+00 1.617e+00 2.024e+00 1.955e+00 1.617e+00 1.588e+00 5.564e-01 6.321e+00 1.030e+00 6.104e+00 2.158e+00 1.101e+01 2.051e+00 1.103e+01 1.039e+01 1.294e+01 7.963e+00 1.239e+01 2.051e+00 2.158e+00 1.103e+01 1.101e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 5.564e-01 6.321e+00 2.158e+00 1.101e+01 2.051e+00 1.103e+01 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 0.000e+00 0.000e+00 2.219e-01 2.563e-01 0.000e+00 0.000e+00 2.563e-01 3.785e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 5.124e-01 4.459e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.337e-01 5.294e-01 7.525e-01 7.764e-01 9.758e-01 8.404e-01 9.869e-01 8.382e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.955e+00 2.024e+00 1.588e+00 1.617e+00 2.024e+00 2.111e+00 1.617e+00 1.666e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.955e+00 1.617e+00 1.588e+00 2.111e+00 2.024e+00 1.666e+00 1.617e+00 5.564e-01 6.321e+00 1.030e+00 6.104e+00 1.030e+00 6.104e+00 5.850e+00 7.429e+00 2.051e+00 1.103e+01 2.158e+00 1.101e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 2.051e+00 2.158e+00 1.103e+01 1.101e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 0.000e+00 0.000e+00 2.219e-01 2.563e-01 4.549e-01 4.165e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 7.764e-01 7.525e-01 9.869e-01 8.382e-01 9.758e-01 8.404e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 2.024e+00 2.111e+00 1.617e+00 1.666e+00 1.955e+00 2.024e+00 1.588e+00 1.617e+00 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 2.111e+00 2.024e+00 1.666e+00 1.617e+00 2.024e+00 1.955e+00 1.617e+00 1.588e+00 5.564e-01 6.321e+00 1.030e+00 6.104e+00 2.158e+00 1.101e+01 2.051e+00 1.103e+01 1.039e+01 1.294e+01 7.963e+00 1.239e+01 2.051e+00 2.158e+00 1.103e+01 1.101e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 0.000e+00 2.563e-01 0.000e+00 3.785e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 5.124e-01 4.459e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 1.955e+00 1.588e+00 2.024e+00 1.617e+00 2.024e+00 1.617e+00 2.111e+00 1.666e+00 1.030e+00 6.104e+00 5.850e+00 7.429e+00 2.051e+00 2.158e+00 1.103e+01 1.101e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.242e+00 1.983e+01 1.085e+01 1.952e+01 1.085e+01 1.952e+01 1.575e+01 1.961e+01 0.000e+00 2.563e-01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 5.124e-01 4.459e-01 0.000e+00 0.000e+00 5.337e-01 5.294e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 9.758e-01 9.869e-01 8.404e-01 8.382e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 2.024e+00 1.617e+00 1.955e+00 1.588e+00 2.111e+00 1.666e+00 2.024e+00 1.617e+00 1.030e+00 6.104e+00 2.051e+00 2.158e+00 1.103e+01 1.101e+01 1.039e+01 1.294e+01 7.963e+00 1.239e+01 1.085e+01 1.952e+01 7.242e+00 1.983e+01 1.575e+01 1.961e+01 1.085e+01 1.952e+01 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.617e+00 2.111e+00 1.666e+00 1.955e+00 1.588e+00 2.024e+00 1.617e+00 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 1.952e+01 1.575e+01 1.961e+01 7.242e+00 1.983e+01 1.085e+01 1.952e+01 0.000e+00 0.000e+00 5.294e-01 5.337e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 9.869e-01 9.758e-01 8.382e-01 8.404e-01 2.111e+00 1.666e+00 2.024e+00 1.617e+00 2.024e+00 1.617e+00 1.955e+00 1.588e+00 2.158e+00 2.051e+00 1.101e+01 1.103e+01 1.575e+01 1.961e+01 1.085e+01 1.952e+01 1.085e+01 1.952e+01 7.242e+00 1.983e+01 0.000e+00 3.785e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.955e+00 2.024e+00 1.588e+00 1.617e+00 2.024e+00 2.111e+00 1.617e+00 1.666e+00 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.955e+00 1.617e+00 1.588e+00 2.111e+00 2.024e+00 1.666e+00 1.617e+00 5.850e+00 7.429e+00 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 1.135e+00 9.462e-01 1.105e+00 9.273e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 2.024e+00 2.111e+00 1.617e+00 1.666e+00 1.955e+00 2.024e+00 1.588e+00 1.617e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 2.111e+00 2.024e+00 1.666e+00 1.617e+00 2.024e+00 1.955e+00 1.617e+00 1.588e+00 1.039e+01 1.294e+01 7.963e+00 1.239e+01 1.085e+01 1.575e+01 1.952e+01 1.961e+01 7.242e+00 1.085e+01 1.983e+01 1.952e+01 1.575e+01 1.085e+01 1.961e+01 1.952e+01 1.085e+01 7.242e+00 1.952e+01 1.983e+01 0.000e+00 3.785e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 5.666e-01 4.891e-01 0.000e+00 0.000e+00 7.525e-01 7.764e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.495e+00 1.506e+00 1.506e+00 1.536e+00 1.105e+00 1.135e+00 9.273e-01 9.462e-01 1.105e+00 9.273e-01 1.135e+00 9.462e-01 1.955e+00 1.588e+00 2.024e+00 1.617e+00 2.024e+00 1.617e+00 2.111e+00 1.666e+00 5.850e+00 7.429e+00 7.963e+00 1.039e+01 1.239e+01 1.294e+01 7.963e+00 1.239e+01 1.039e+01 1.294e+01 7.242e+00 1.983e+01 1.085e+01 1.952e+01 1.085e+01 1.952e+01 1.575e+01 1.961e+01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.495e+00 1.536e+00 1.506e+00 1.135e+00 9.462e-01 1.105e+00 9.273e-01 2.024e+00 1.617e+00 1.955e+00 1.588e+00 2.111e+00 1.666e+00 2.024e+00 1.617e+00 1.039e+01 1.294e+01 7.963e+00 1.239e+01 1.085e+01 1.952e+01 7.242e+00 1.983e+01 1.575e+01 1.961e+01 1.085e+01 1.952e+01 0.000e+00 0.000e+00 7.764e-01 7.525e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.506e+00 1.536e+00 1.495e+00 1.506e+00 1.135e+00 1.105e+00 9.462e-01 9.273e-01 2.024e+00 1.617e+00 2.111e+00 1.666e+00 1.955e+00 1.588e+00 2.024e+00 1.617e+00 1.039e+01 7.963e+00 1.294e+01 1.239e+01 1.085e+01 1.952e+01 1.575e+01 1.961e+01 7.242e+00 1.983e+01 1.085e+01 1.952e+01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.536e+00 1.506e+00 1.506e+00 1.495e+00 2.111e+00 1.666e+00 2.024e+00 1.617e+00 2.024e+00 1.617e+00 1.955e+00 1.588e+00 1.575e+01 1.961e+01 1.085e+01 1.952e+01 1.085e+01 1.952e+01 7.242e+00 1.983e+01
+DEAL:0::308.790
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2019 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.
+//
+// ---------------------------------------------------------------------
+
+#include <deal.II/base/logstream.h>
+#include <deal.II/base/mpi.h>
+#include <deal.II/base/quadrature_lib.h>
+
+#include <deal.II/distributed/tria.h>
+
+#include <deal.II/dofs/dof_handler.h>
+
+#include <deal.II/fe/fe_dgq.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/fe/fe_tools.h>
+#include <deal.II/fe/mapping_q.h>
+
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/grid_out.h>
+
+#include <deal.II/matrix_free/fe_evaluation.h>
+#include <deal.II/matrix_free/matrix_free.h>
+#include <deal.II/matrix_free/tools.h>
+#include <deal.II/matrix_free/vector_access_internal.h>
+
+#include <deal.II/multigrid/mg_constrained_dofs.h>
+
+#include <deal.II/numerics/vector_tools.h>
+
+#include "../tests.h"
+
+using namespace dealii;
+
+
+template <int dim,
+ int fe_degree,
+ int n_points,
+ int n_components,
+ typename Number,
+ typename VectorizedArrayType>
+class Test
+{
+ using VectorType = LinearAlgebra::distributed::Vector<Number>;
+
+public:
+ Test(const MatrixFree<dim, Number, VectorizedArrayType> matrix_free,
+ const std::function<void(FEEvaluation<dim,
+ fe_degree,
+ n_points,
+ n_components,
+ Number,
+ VectorizedArrayType> &)>
+ &cell_operation)
+ : matrix_free(matrix_free)
+ , cell_operation(cell_operation)
+ {}
+
+ void
+ do_test()
+ {
+ // compute diagonal with the new function
+ {
+ VectorType diagonal_global;
+ MatrixFreeTools::compute_diagonal<dim,
+ fe_degree,
+ n_points,
+ n_components,
+ Number,
+ VectorizedArrayType>(
+ matrix_free, diagonal_global, [&](auto &phi) {
+ this->cell_operation(phi);
+ });
+
+ diagonal_global.print(deallog.get_file_stream());
+ deallog << diagonal_global.l2_norm() << std::endl;
+ }
+
+ // compute diagonal globally
+ {
+ VectorType src, dst, temp;
+
+ matrix_free.initialize_dof_vector(src);
+ matrix_free.initialize_dof_vector(dst);
+ matrix_free.initialize_dof_vector(temp);
+
+ for (unsigned int i = 0; i < src.size(); i++)
+ {
+ if (src.get_partitioner()->in_local_range(i))
+ src[i] = 1.0;
+
+ matrix_free.cell_loop(&Test::cell_operation_range, this, temp, src);
+
+ if (src.get_partitioner()->in_local_range(i))
+ {
+ dst[i] = temp[i];
+ src[i] = 0.0;
+ }
+ temp = 0.0;
+ }
+
+ dst.print(deallog.get_file_stream());
+ deallog << dst.l2_norm() << std::endl;
+ }
+ }
+
+ void
+ cell_operation_range(const MatrixFree<dim, Number, VectorizedArrayType> &data,
+ VectorType & dst,
+ const VectorType & src,
+ const std::pair<unsigned int, unsigned int> &pair) const
+ {
+ FEEvaluation<dim,
+ fe_degree,
+ n_points,
+ n_components,
+ Number,
+ VectorizedArrayType>
+ phi(data);
+ for (auto cell = pair.first; cell < pair.second; cell++)
+ {
+ phi.reinit(cell);
+ phi.read_dof_values(src);
+ this->cell_operation(phi);
+ phi.distribute_local_to_global(dst);
+ }
+ }
+
+ const MatrixFree<dim, Number, VectorizedArrayType> matrix_free;
+ const std::function<void(FEEvaluation<dim,
+ fe_degree,
+ n_points,
+ n_components,
+ Number,
+ VectorizedArrayType> &)>
+ &cell_operation;
+};