]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add new version of MGTransferGlobalCoarseningTools::create_geometric_coarsening_seque... 12356/head
authorPeter Munch <peterrmuench@gmail.com>
Sun, 30 May 2021 10:17:09 +0000 (12:17 +0200)
committerPeter Munch <peterrmuench@gmail.com>
Tue, 1 Jun 2021 16:58:36 +0000 (18:58 +0200)
Conflicts:
include/deal.II/multigrid/mg_transfer_global_coarsening.templates.h

include/deal.II/multigrid/mg_transfer_global_coarsening.h
include/deal.II/multigrid/mg_transfer_global_coarsening.templates.h
source/multigrid/mg_transfer_global_coarsening.inst.in
tests/fullydistributed_grids/repartitioning_03.cc [new file with mode: 0644]
tests/fullydistributed_grids/repartitioning_03.mpirun=5.output [new file with mode: 0644]

index 1926c57b4b184cb79db1b3528164df59a2247dcd..e8df694e2c37844d95e0d57436c35b74c89f4a33 100644 (file)
@@ -33,6 +33,12 @@ namespace internal
 {
   class MGTwoLevelTransferImplementation;
 }
+
+namespace RepartitioningPolicyTools
+{
+  template <int dim, int spacedim>
+  class Base;
+}
 #endif
 
 
@@ -102,6 +108,22 @@ namespace MGTransferGlobalCoarseningTools
   create_geometric_coarsening_sequence(
     const Triangulation<dim, spacedim> &tria);
 
+  /**
+   * Similar to the above function but also taking a @p policy for
+   * repartitioning the triangulations on the coarser levels.
+   *
+   * @note For convenience, a reference to the input triangulation is stored in
+   *   the last entry of the return vector.
+   * @note The type of the returned triangulations is
+   *   parallel::fullydistributed::Triangulation.
+   * @note Currently, only implemented for parallel::distributed::Triangulation.
+   */
+  template <int dim, int spacedim>
+  std::vector<std::shared_ptr<const Triangulation<dim, spacedim>>>
+  create_geometric_coarsening_sequence(
+    const Triangulation<dim, spacedim> &                  tria,
+    const RepartitioningPolicyTools::Base<dim, spacedim> &policy);
+
 } // namespace MGTransferGlobalCoarseningTools
 
 
index a09e4cd4df7d7f5313dffdba4d481cd45f9c8864..085c988b25b8c23c8090187988760010ddcbe4bd 100644 (file)
@@ -23,6 +23,7 @@
 #include <deal.II/base/mpi_consensus_algorithms.h>
 
 #include <deal.II/distributed/fully_distributed_tria.h>
+#include <deal.II/distributed/repartitioning_policy_tools.h>
 #include <deal.II/distributed/shared_tria.h>
 #include <deal.II/distributed/tria.h>
 
@@ -32,6 +33,7 @@
 #include <deal.II/fe/fe_tools.h>
 
 #include <deal.II/grid/grid_tools.h>
+#include <deal.II/grid/tria_description.h>
 
 #include <deal.II/hp/dof_handler.h>
 
@@ -2311,6 +2313,83 @@ namespace MGTransferGlobalCoarseningTools
 
     return coarse_grid_triangulations;
   }
+
+
+
+  template <int dim, int spacedim>
+  std::vector<std::shared_ptr<const Triangulation<dim, spacedim>>>
+  create_geometric_coarsening_sequence(
+    const Triangulation<dim, spacedim> &                  fine_triangulation_in,
+    const RepartitioningPolicyTools::Base<dim, spacedim> &policy)
+  {
+    std::vector<std::shared_ptr<const Triangulation<dim, spacedim>>>
+      coarse_grid_triangulations(fine_triangulation_in.n_global_levels());
+
+    coarse_grid_triangulations.back().reset(&fine_triangulation_in, [](auto *) {
+      // empty deleter, since fine_triangulation_in is an external field and its
+      // destructor is called somewhere else
+    });
+
+    // for a single level nothing has to be done
+    if (fine_triangulation_in.n_global_levels() == 1)
+      return coarse_grid_triangulations;
+
+#ifndef DEAL_II_WITH_P4EST
+    Assert(false, ExcNotImplemented());
+    (void)policy;
+#else
+    const auto fine_triangulation =
+      dynamic_cast<const parallel::distributed::Triangulation<dim, spacedim> *>(
+        &fine_triangulation_in);
+
+    Assert(fine_triangulation, ExcNotImplemented());
+
+    const auto comm = fine_triangulation->get_communicator();
+
+    parallel::distributed::Triangulation<dim, spacedim> temp_triangulation(
+      comm, fine_triangulation->get_mesh_smoothing());
+
+    temp_triangulation.copy_triangulation(*fine_triangulation);
+
+    const unsigned int max_level = fine_triangulation->n_global_levels() - 1;
+
+    // create coarse meshes
+    for (unsigned int l = max_level; l > 0; --l)
+      {
+        // coarsen mesh
+        temp_triangulation.coarsen_global();
+
+        // perform partition
+        const auto partition = policy.partition(temp_triangulation);
+        partition.update_ghost_values();
+
+        // create triangulation description
+        const auto construction_data =
+          partition.size() == 0 ?
+            TriangulationDescription::Utilities::
+              create_description_from_triangulation(temp_triangulation, comm) :
+            TriangulationDescription::Utilities::
+              create_description_from_triangulation(temp_triangulation,
+                                                    partition);
+
+        // create new triangulation
+        const auto level_triangulation = std::make_shared<
+          parallel::fullydistributed::Triangulation<dim, spacedim>>(comm);
+
+        for (const auto i : fine_triangulation->get_manifold_ids())
+          if (i != numbers::flat_manifold_id)
+            level_triangulation->set_manifold(
+              i, fine_triangulation->get_manifold(i));
+
+        level_triangulation->create_triangulation(construction_data);
+
+        // save mesh
+        coarse_grid_triangulations[l - 1] = level_triangulation;
+      }
+#endif
+
+    return coarse_grid_triangulations;
+  }
 } // namespace MGTransferGlobalCoarseningTools
 
 
index 5ab8d98daf1fad4f3659674beef33c7b5b2529a4..45edf3be5071dd395816bbd79b789396670d69b9 100644 (file)
@@ -29,5 +29,13 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
     MGTransferGlobalCoarseningTools::create_geometric_coarsening_sequence(
       const Triangulation<deal_II_dimension, deal_II_space_dimension>
         &fine_triangulation_in);
+
+    template std::vector<std::shared_ptr<
+      const Triangulation<deal_II_dimension, deal_II_space_dimension>>>
+    MGTransferGlobalCoarseningTools::create_geometric_coarsening_sequence(
+      const Triangulation<deal_II_dimension, deal_II_space_dimension>
+        &fine_triangulation_in,
+      const RepartitioningPolicyTools::Base<deal_II_dimension,
+                                            deal_II_space_dimension> &policy);
 #endif
   }
diff --git a/tests/fullydistributed_grids/repartitioning_03.cc b/tests/fullydistributed_grids/repartitioning_03.cc
new file mode 100644 (file)
index 0000000..765de0a
--- /dev/null
@@ -0,0 +1,136 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2021 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 MGTransferGlobalCoarseningTools::create_geometric_coarsening_sequence
+// with RepartitioningPolicyTools.
+
+
+#include <deal.II/base/mpi_consensus_algorithms.h>
+
+#include <deal.II/distributed/fully_distributed_tria.h>
+#include <deal.II/distributed/repartitioning_policy_tools.h>
+#include <deal.II/distributed/tria.h>
+
+#include <deal.II/fe/fe_q.h>
+
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/grid_out.h>
+#include <deal.II/grid/grid_tools.h>
+#include <deal.II/grid/tria_description.h>
+
+#include <deal.II/lac/la_parallel_vector.h>
+
+#include <deal.II/multigrid/mg_transfer_global_coarsening.h>
+
+#include <deal.II/numerics/data_out.h>
+
+#include "tests.h"
+
+using namespace dealii;
+
+template <int dim, int spacedim>
+void
+create_triangulation(Triangulation<dim, spacedim> &tria)
+{
+  const unsigned int n_ref_global = 3;
+  const unsigned int n_ref_local  = 3;
+  GridGenerator::hyper_cube(tria, -1.0, +1.0);
+  tria.refine_global(n_ref_global);
+
+  for (unsigned int i = 0; i < n_ref_local; ++i)
+    {
+      for (auto cell : tria.active_cell_iterators())
+        if (cell->is_locally_owned())
+          {
+            bool flag = true;
+            for (unsigned int d = 0; d < dim; d++)
+              if (cell->center()[d] > 0.0)
+                flag = false;
+            if (flag)
+              cell->set_refine_flag();
+          }
+      tria.execute_coarsening_and_refinement();
+    }
+}
+
+template <int dim, int spacedim>
+void
+output_grid(
+  const std::vector<std::shared_ptr<const Triangulation<dim, spacedim>>> &trias,
+  const std::string &                                                     label)
+{
+  deallog.push(label);
+  const auto comm    = trias.front()->get_communicator();
+  const auto my_rank = Utilities::MPI::this_mpi_process(comm);
+
+  for (unsigned int i = 0; i < trias.size(); ++i)
+    {
+      const auto &tria = *trias[i];
+
+      FE_Q<dim>       fe(2);
+      DoFHandler<dim> dof_handler(tria);
+      dof_handler.distribute_dofs(fe);
+
+      // print statistics
+      print_statistics(tria);
+      print_statistics(dof_handler);
+
+      if (false)
+        {
+          Vector<double> ranks(tria.n_active_cells());
+          ranks = my_rank;
+
+          DataOut<dim> data_out;
+          data_out.attach_triangulation(tria);
+          data_out.add_data_vector(ranks, "ranks");
+          data_out.build_patches();
+
+          data_out.write_vtu_with_pvtu_record("./", label, i, comm, 2, 0);
+        }
+    }
+  deallog.pop();
+}
+
+int
+main(int argc, char **argv)
+{
+  Utilities::MPI::MPI_InitFinalize mpi(argc, argv, 1);
+  MPILogInitAll                    all;
+
+  const unsigned int dim  = 2;
+  const MPI_Comm     comm = MPI_COMM_WORLD;
+
+  parallel::distributed::Triangulation<dim> tria(comm);
+  create_triangulation(tria);
+
+  const auto test = [&](const auto &policy, const std::string &label) {
+    const auto trias =
+      MGTransferGlobalCoarseningTools::create_geometric_coarsening_sequence(
+        tria, policy);
+    output_grid(trias, label);
+  };
+
+  // default policy (simply copy p:d:T)
+  test(RepartitioningPolicyTools::DefaultPolicy<dim>(), "grid_policy_default");
+
+  // first-child policy
+  test(RepartitioningPolicyTools::FirstChildPolicy<dim>(tria),
+       "grid_policy_first");
+
+  // first-child policy
+  test(RepartitioningPolicyTools::MinimalGranularityPolicy<dim>(4),
+       "grid_policy_minimal");
+}
diff --git a/tests/fullydistributed_grids/repartitioning_03.mpirun=5.output b/tests/fullydistributed_grids/repartitioning_03.mpirun=5.output
new file mode 100644 (file)
index 0000000..469b3b3
--- /dev/null
@@ -0,0 +1,744 @@
+
+DEAL:0:grid_policy_default::n_levels:                  1
+DEAL:0:grid_policy_default::n_cells:                   1
+DEAL:0:grid_policy_default::n_active_cells:            1
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_dofs:                             9
+DEAL:0:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_levels:                  1
+DEAL:0:grid_policy_default::n_cells:                   1
+DEAL:0:grid_policy_default::n_active_cells:            1
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_dofs:                             25
+DEAL:0:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_levels:                  1
+DEAL:0:grid_policy_default::n_cells:                   1
+DEAL:0:grid_policy_default::n_active_cells:            1
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_dofs:                             43
+DEAL:0:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_levels:                  4
+DEAL:0:grid_policy_default::n_cells:                   33
+DEAL:0:grid_policy_default::n_active_cells:            25
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_dofs:                             141
+DEAL:0:grid_policy_default::n_locally_owned_dofs:               25
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_levels:                  5
+DEAL:0:grid_policy_default::n_cells:                   81
+DEAL:0:grid_policy_default::n_active_cells:            61
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_dofs:                             423
+DEAL:0:grid_policy_default::n_locally_owned_dofs:               101
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_levels:                  6
+DEAL:0:grid_policy_default::n_cells:                   169
+DEAL:0:grid_policy_default::n_active_cells:            127
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_dofs:                             1353
+DEAL:0:grid_policy_default::n_locally_owned_dofs:               289
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_levels:                  7
+DEAL:0:grid_policy_default::n_cells:                   465
+DEAL:0:grid_policy_default::n_active_cells:            349
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_default::n_dofs:                             4813
+DEAL:0:grid_policy_default::n_locally_owned_dofs:               993
+DEAL:0:grid_policy_default::
+DEAL:0:grid_policy_first::n_levels:                  1
+DEAL:0:grid_policy_first::n_cells:                   1
+DEAL:0:grid_policy_first::n_active_cells:            1
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_dofs:                             9
+DEAL:0:grid_policy_first::n_locally_owned_dofs:               9
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_levels:                  2
+DEAL:0:grid_policy_first::n_cells:                   5
+DEAL:0:grid_policy_first::n_active_cells:            4
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_dofs:                             25
+DEAL:0:grid_policy_first::n_locally_owned_dofs:               9
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_levels:                  3
+DEAL:0:grid_policy_first::n_cells:                   9
+DEAL:0:grid_policy_first::n_active_cells:            7
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_dofs:                             43
+DEAL:0:grid_policy_first::n_locally_owned_dofs:               9
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_levels:                  4
+DEAL:0:grid_policy_first::n_cells:                   33
+DEAL:0:grid_policy_first::n_active_cells:            25
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_dofs:                             141
+DEAL:0:grid_policy_first::n_locally_owned_dofs:               25
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_levels:                  5
+DEAL:0:grid_policy_first::n_cells:                   65
+DEAL:0:grid_policy_first::n_active_cells:            49
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_dofs:                             423
+DEAL:0:grid_policy_first::n_locally_owned_dofs:               77
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_levels:                  6
+DEAL:0:grid_policy_first::n_cells:                   161
+DEAL:0:grid_policy_first::n_active_cells:            121
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_dofs:                             1353
+DEAL:0:grid_policy_first::n_locally_owned_dofs:               265
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_levels:                  7
+DEAL:0:grid_policy_first::n_cells:                   465
+DEAL:0:grid_policy_first::n_active_cells:            349
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_first::n_dofs:                             4813
+DEAL:0:grid_policy_first::n_locally_owned_dofs:               993
+DEAL:0:grid_policy_first::
+DEAL:0:grid_policy_minimal::n_levels:                  1
+DEAL:0:grid_policy_minimal::n_cells:                   1
+DEAL:0:grid_policy_minimal::n_active_cells:            1
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_dofs:                             9
+DEAL:0:grid_policy_minimal::n_locally_owned_dofs:               9
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_levels:                  2
+DEAL:0:grid_policy_minimal::n_cells:                   5
+DEAL:0:grid_policy_minimal::n_active_cells:            4
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_dofs:                             25
+DEAL:0:grid_policy_minimal::n_locally_owned_dofs:               25
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_levels:                  3
+DEAL:0:grid_policy_minimal::n_cells:                   9
+DEAL:0:grid_policy_minimal::n_active_cells:            7
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_dofs:                             43
+DEAL:0:grid_policy_minimal::n_locally_owned_dofs:               43
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_levels:                  4
+DEAL:0:grid_policy_minimal::n_cells:                   33
+DEAL:0:grid_policy_minimal::n_active_cells:            25
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_dofs:                             141
+DEAL:0:grid_policy_minimal::n_locally_owned_dofs:               25
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_levels:                  5
+DEAL:0:grid_policy_minimal::n_cells:                   81
+DEAL:0:grid_policy_minimal::n_active_cells:            61
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_dofs:                             423
+DEAL:0:grid_policy_minimal::n_locally_owned_dofs:               101
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_levels:                  6
+DEAL:0:grid_policy_minimal::n_cells:                   169
+DEAL:0:grid_policy_minimal::n_active_cells:            127
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_dofs:                             1353
+DEAL:0:grid_policy_minimal::n_locally_owned_dofs:               289
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_levels:                  7
+DEAL:0:grid_policy_minimal::n_cells:                   465
+DEAL:0:grid_policy_minimal::n_active_cells:            349
+DEAL:0:grid_policy_minimal::
+DEAL:0:grid_policy_minimal::n_dofs:                             4813
+DEAL:0:grid_policy_minimal::n_locally_owned_dofs:               993
+DEAL:0:grid_policy_minimal::
+
+DEAL:1:grid_policy_default::n_levels:                  1
+DEAL:1:grid_policy_default::n_cells:                   1
+DEAL:1:grid_policy_default::n_active_cells:            1
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_dofs:                             9
+DEAL:1:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_levels:                  2
+DEAL:1:grid_policy_default::n_cells:                   5
+DEAL:1:grid_policy_default::n_active_cells:            4
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_dofs:                             25
+DEAL:1:grid_policy_default::n_locally_owned_dofs:               25
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_levels:                  1
+DEAL:1:grid_policy_default::n_cells:                   1
+DEAL:1:grid_policy_default::n_active_cells:            1
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_dofs:                             43
+DEAL:1:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_levels:                  4
+DEAL:1:grid_policy_default::n_cells:                   33
+DEAL:1:grid_policy_default::n_active_cells:            25
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_dofs:                             141
+DEAL:1:grid_policy_default::n_locally_owned_dofs:               40
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_levels:                  5
+DEAL:1:grid_policy_default::n_cells:                   101
+DEAL:1:grid_policy_default::n_active_cells:            76
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_dofs:                             423
+DEAL:1:grid_policy_default::n_locally_owned_dofs:               72
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_levels:                  6
+DEAL:1:grid_policy_default::n_cells:                   193
+DEAL:1:grid_policy_default::n_active_cells:            145
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_dofs:                             1353
+DEAL:1:grid_policy_default::n_locally_owned_dofs:               256
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_levels:                  7
+DEAL:1:grid_policy_default::n_cells:                   577
+DEAL:1:grid_policy_default::n_active_cells:            433
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_default::n_dofs:                             4813
+DEAL:1:grid_policy_default::n_locally_owned_dofs:               944
+DEAL:1:grid_policy_default::
+DEAL:1:grid_policy_first::n_levels:                  1
+DEAL:1:grid_policy_first::n_cells:                   1
+DEAL:1:grid_policy_first::n_active_cells:            1
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_dofs:                             9
+DEAL:1:grid_policy_first::n_locally_owned_dofs:               0
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_levels:                  1
+DEAL:1:grid_policy_first::n_cells:                   1
+DEAL:1:grid_policy_first::n_active_cells:            1
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_dofs:                             25
+DEAL:1:grid_policy_first::n_locally_owned_dofs:               0
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_levels:                  3
+DEAL:1:grid_policy_first::n_cells:                   9
+DEAL:1:grid_policy_first::n_active_cells:            7
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_dofs:                             43
+DEAL:1:grid_policy_first::n_locally_owned_dofs:               6
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_levels:                  4
+DEAL:1:grid_policy_first::n_cells:                   33
+DEAL:1:grid_policy_first::n_active_cells:            25
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_dofs:                             141
+DEAL:1:grid_policy_first::n_locally_owned_dofs:               20
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_levels:                  5
+DEAL:1:grid_policy_first::n_cells:                   81
+DEAL:1:grid_policy_first::n_active_cells:            61
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_dofs:                             423
+DEAL:1:grid_policy_first::n_locally_owned_dofs:               64
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_levels:                  6
+DEAL:1:grid_policy_first::n_cells:                   209
+DEAL:1:grid_policy_first::n_active_cells:            157
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_dofs:                             1353
+DEAL:1:grid_policy_first::n_locally_owned_dofs:               244
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_levels:                  7
+DEAL:1:grid_policy_first::n_cells:                   577
+DEAL:1:grid_policy_first::n_active_cells:            433
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_first::n_dofs:                             4813
+DEAL:1:grid_policy_first::n_locally_owned_dofs:               944
+DEAL:1:grid_policy_first::
+DEAL:1:grid_policy_minimal::n_levels:                  1
+DEAL:1:grid_policy_minimal::n_cells:                   1
+DEAL:1:grid_policy_minimal::n_active_cells:            1
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_dofs:                             9
+DEAL:1:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_levels:                  1
+DEAL:1:grid_policy_minimal::n_cells:                   1
+DEAL:1:grid_policy_minimal::n_active_cells:            1
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_dofs:                             25
+DEAL:1:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_levels:                  1
+DEAL:1:grid_policy_minimal::n_cells:                   1
+DEAL:1:grid_policy_minimal::n_active_cells:            1
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_dofs:                             43
+DEAL:1:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_levels:                  4
+DEAL:1:grid_policy_minimal::n_cells:                   33
+DEAL:1:grid_policy_minimal::n_active_cells:            25
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_dofs:                             141
+DEAL:1:grid_policy_minimal::n_locally_owned_dofs:               40
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_levels:                  5
+DEAL:1:grid_policy_minimal::n_cells:                   101
+DEAL:1:grid_policy_minimal::n_active_cells:            76
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_dofs:                             423
+DEAL:1:grid_policy_minimal::n_locally_owned_dofs:               72
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_levels:                  6
+DEAL:1:grid_policy_minimal::n_cells:                   193
+DEAL:1:grid_policy_minimal::n_active_cells:            145
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_dofs:                             1353
+DEAL:1:grid_policy_minimal::n_locally_owned_dofs:               256
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_levels:                  7
+DEAL:1:grid_policy_minimal::n_cells:                   577
+DEAL:1:grid_policy_minimal::n_active_cells:            433
+DEAL:1:grid_policy_minimal::
+DEAL:1:grid_policy_minimal::n_dofs:                             4813
+DEAL:1:grid_policy_minimal::n_locally_owned_dofs:               944
+DEAL:1:grid_policy_minimal::
+
+
+DEAL:2:grid_policy_default::n_levels:                  1
+DEAL:2:grid_policy_default::n_cells:                   1
+DEAL:2:grid_policy_default::n_active_cells:            1
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_dofs:                             9
+DEAL:2:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_levels:                  1
+DEAL:2:grid_policy_default::n_cells:                   1
+DEAL:2:grid_policy_default::n_active_cells:            1
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_dofs:                             25
+DEAL:2:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_levels:                  3
+DEAL:2:grid_policy_default::n_cells:                   9
+DEAL:2:grid_policy_default::n_active_cells:            7
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_dofs:                             43
+DEAL:2:grid_policy_default::n_locally_owned_dofs:               25
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_levels:                  4
+DEAL:2:grid_policy_default::n_cells:                   37
+DEAL:2:grid_policy_default::n_active_cells:            28
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_dofs:                             141
+DEAL:2:grid_policy_default::n_locally_owned_dofs:               16
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_levels:                  5
+DEAL:2:grid_policy_default::n_cells:                   101
+DEAL:2:grid_policy_default::n_active_cells:            76
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_dofs:                             423
+DEAL:2:grid_policy_default::n_locally_owned_dofs:               84
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_levels:                  6
+DEAL:2:grid_policy_default::n_cells:                   245
+DEAL:2:grid_policy_default::n_active_cells:            184
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_dofs:                             1353
+DEAL:2:grid_policy_default::n_locally_owned_dofs:               272
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_levels:                  7
+DEAL:2:grid_policy_default::n_cells:                   665
+DEAL:2:grid_policy_default::n_active_cells:            499
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_default::n_dofs:                             4813
+DEAL:2:grid_policy_default::n_locally_owned_dofs:               960
+DEAL:2:grid_policy_default::
+DEAL:2:grid_policy_first::n_levels:                  1
+DEAL:2:grid_policy_first::n_cells:                   1
+DEAL:2:grid_policy_first::n_active_cells:            1
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_dofs:                             9
+DEAL:2:grid_policy_first::n_locally_owned_dofs:               0
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_levels:                  1
+DEAL:2:grid_policy_first::n_cells:                   1
+DEAL:2:grid_policy_first::n_active_cells:            1
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_dofs:                             25
+DEAL:2:grid_policy_first::n_locally_owned_dofs:               0
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_levels:                  3
+DEAL:2:grid_policy_first::n_cells:                   9
+DEAL:2:grid_policy_first::n_active_cells:            7
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_dofs:                             43
+DEAL:2:grid_policy_first::n_locally_owned_dofs:               6
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_levels:                  4
+DEAL:2:grid_policy_first::n_cells:                   33
+DEAL:2:grid_policy_first::n_active_cells:            25
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_dofs:                             141
+DEAL:2:grid_policy_first::n_locally_owned_dofs:               16
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_levels:                  5
+DEAL:2:grid_policy_first::n_cells:                   101
+DEAL:2:grid_policy_first::n_active_cells:            76
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_dofs:                             423
+DEAL:2:grid_policy_first::n_locally_owned_dofs:               68
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_levels:                  6
+DEAL:2:grid_policy_first::n_cells:                   261
+DEAL:2:grid_policy_first::n_active_cells:            196
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_dofs:                             1353
+DEAL:2:grid_policy_first::n_locally_owned_dofs:               248
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_levels:                  7
+DEAL:2:grid_policy_first::n_cells:                   665
+DEAL:2:grid_policy_first::n_active_cells:            499
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_first::n_dofs:                             4813
+DEAL:2:grid_policy_first::n_locally_owned_dofs:               960
+DEAL:2:grid_policy_first::
+DEAL:2:grid_policy_minimal::n_levels:                  1
+DEAL:2:grid_policy_minimal::n_cells:                   1
+DEAL:2:grid_policy_minimal::n_active_cells:            1
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_dofs:                             9
+DEAL:2:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_levels:                  1
+DEAL:2:grid_policy_minimal::n_cells:                   1
+DEAL:2:grid_policy_minimal::n_active_cells:            1
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_dofs:                             25
+DEAL:2:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_levels:                  1
+DEAL:2:grid_policy_minimal::n_cells:                   1
+DEAL:2:grid_policy_minimal::n_active_cells:            1
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_dofs:                             43
+DEAL:2:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_levels:                  4
+DEAL:2:grid_policy_minimal::n_cells:                   37
+DEAL:2:grid_policy_minimal::n_active_cells:            28
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_dofs:                             141
+DEAL:2:grid_policy_minimal::n_locally_owned_dofs:               16
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_levels:                  5
+DEAL:2:grid_policy_minimal::n_cells:                   101
+DEAL:2:grid_policy_minimal::n_active_cells:            76
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_dofs:                             423
+DEAL:2:grid_policy_minimal::n_locally_owned_dofs:               84
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_levels:                  6
+DEAL:2:grid_policy_minimal::n_cells:                   245
+DEAL:2:grid_policy_minimal::n_active_cells:            184
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_dofs:                             1353
+DEAL:2:grid_policy_minimal::n_locally_owned_dofs:               272
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_levels:                  7
+DEAL:2:grid_policy_minimal::n_cells:                   665
+DEAL:2:grid_policy_minimal::n_active_cells:            499
+DEAL:2:grid_policy_minimal::
+DEAL:2:grid_policy_minimal::n_dofs:                             4813
+DEAL:2:grid_policy_minimal::n_locally_owned_dofs:               960
+DEAL:2:grid_policy_minimal::
+
+
+DEAL:3:grid_policy_default::n_levels:                  1
+DEAL:3:grid_policy_default::n_cells:                   1
+DEAL:3:grid_policy_default::n_active_cells:            1
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_dofs:                             9
+DEAL:3:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_levels:                  1
+DEAL:3:grid_policy_default::n_cells:                   1
+DEAL:3:grid_policy_default::n_active_cells:            1
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_dofs:                             25
+DEAL:3:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_levels:                  3
+DEAL:3:grid_policy_default::n_cells:                   9
+DEAL:3:grid_policy_default::n_active_cells:            7
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_dofs:                             43
+DEAL:3:grid_policy_default::n_locally_owned_dofs:               7
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_levels:                  4
+DEAL:3:grid_policy_default::n_cells:                   33
+DEAL:3:grid_policy_default::n_active_cells:            25
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_dofs:                             141
+DEAL:3:grid_policy_default::n_locally_owned_dofs:               44
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_levels:                  5
+DEAL:3:grid_policy_default::n_cells:                   89
+DEAL:3:grid_policy_default::n_active_cells:            67
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_dofs:                             423
+DEAL:3:grid_policy_default::n_locally_owned_dofs:               79
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_levels:                  6
+DEAL:3:grid_policy_default::n_cells:                   229
+DEAL:3:grid_policy_default::n_active_cells:            172
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_dofs:                             1353
+DEAL:3:grid_policy_default::n_locally_owned_dofs:               240
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_levels:                  7
+DEAL:3:grid_policy_default::n_cells:                   657
+DEAL:3:grid_policy_default::n_active_cells:            493
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_default::n_dofs:                             4813
+DEAL:3:grid_policy_default::n_locally_owned_dofs:               912
+DEAL:3:grid_policy_default::
+DEAL:3:grid_policy_first::n_levels:                  1
+DEAL:3:grid_policy_first::n_cells:                   1
+DEAL:3:grid_policy_first::n_active_cells:            1
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_dofs:                             9
+DEAL:3:grid_policy_first::n_locally_owned_dofs:               0
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_levels:                  1
+DEAL:3:grid_policy_first::n_cells:                   1
+DEAL:3:grid_policy_first::n_active_cells:            1
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_dofs:                             25
+DEAL:3:grid_policy_first::n_locally_owned_dofs:               0
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_levels:                  3
+DEAL:3:grid_policy_first::n_cells:                   9
+DEAL:3:grid_policy_first::n_active_cells:            7
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_dofs:                             43
+DEAL:3:grid_policy_first::n_locally_owned_dofs:               4
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_levels:                  4
+DEAL:3:grid_policy_first::n_cells:                   33
+DEAL:3:grid_policy_first::n_active_cells:            25
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_dofs:                             141
+DEAL:3:grid_policy_first::n_locally_owned_dofs:               16
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_levels:                  5
+DEAL:3:grid_policy_first::n_cells:                   97
+DEAL:3:grid_policy_first::n_active_cells:            73
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_dofs:                             423
+DEAL:3:grid_policy_first::n_locally_owned_dofs:               56
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_levels:                  6
+DEAL:3:grid_policy_first::n_cells:                   245
+DEAL:3:grid_policy_first::n_active_cells:            184
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_dofs:                             1353
+DEAL:3:grid_policy_first::n_locally_owned_dofs:               228
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_levels:                  7
+DEAL:3:grid_policy_first::n_cells:                   657
+DEAL:3:grid_policy_first::n_active_cells:            493
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_first::n_dofs:                             4813
+DEAL:3:grid_policy_first::n_locally_owned_dofs:               912
+DEAL:3:grid_policy_first::
+DEAL:3:grid_policy_minimal::n_levels:                  1
+DEAL:3:grid_policy_minimal::n_cells:                   1
+DEAL:3:grid_policy_minimal::n_active_cells:            1
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_dofs:                             9
+DEAL:3:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_levels:                  1
+DEAL:3:grid_policy_minimal::n_cells:                   1
+DEAL:3:grid_policy_minimal::n_active_cells:            1
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_dofs:                             25
+DEAL:3:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_levels:                  1
+DEAL:3:grid_policy_minimal::n_cells:                   1
+DEAL:3:grid_policy_minimal::n_active_cells:            1
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_dofs:                             43
+DEAL:3:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_levels:                  4
+DEAL:3:grid_policy_minimal::n_cells:                   33
+DEAL:3:grid_policy_minimal::n_active_cells:            25
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_dofs:                             141
+DEAL:3:grid_policy_minimal::n_locally_owned_dofs:               44
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_levels:                  5
+DEAL:3:grid_policy_minimal::n_cells:                   89
+DEAL:3:grid_policy_minimal::n_active_cells:            67
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_dofs:                             423
+DEAL:3:grid_policy_minimal::n_locally_owned_dofs:               79
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_levels:                  6
+DEAL:3:grid_policy_minimal::n_cells:                   229
+DEAL:3:grid_policy_minimal::n_active_cells:            172
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_dofs:                             1353
+DEAL:3:grid_policy_minimal::n_locally_owned_dofs:               240
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_levels:                  7
+DEAL:3:grid_policy_minimal::n_cells:                   657
+DEAL:3:grid_policy_minimal::n_active_cells:            493
+DEAL:3:grid_policy_minimal::
+DEAL:3:grid_policy_minimal::n_dofs:                             4813
+DEAL:3:grid_policy_minimal::n_locally_owned_dofs:               912
+DEAL:3:grid_policy_minimal::
+
+
+DEAL:4:grid_policy_default::n_levels:                  1
+DEAL:4:grid_policy_default::n_cells:                   1
+DEAL:4:grid_policy_default::n_active_cells:            1
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_dofs:                             9
+DEAL:4:grid_policy_default::n_locally_owned_dofs:               9
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_levels:                  1
+DEAL:4:grid_policy_default::n_cells:                   1
+DEAL:4:grid_policy_default::n_active_cells:            1
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_dofs:                             25
+DEAL:4:grid_policy_default::n_locally_owned_dofs:               0
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_levels:                  3
+DEAL:4:grid_policy_default::n_cells:                   9
+DEAL:4:grid_policy_default::n_active_cells:            7
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_dofs:                             43
+DEAL:4:grid_policy_default::n_locally_owned_dofs:               11
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_levels:                  4
+DEAL:4:grid_policy_default::n_cells:                   25
+DEAL:4:grid_policy_default::n_active_cells:            19
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_dofs:                             141
+DEAL:4:grid_policy_default::n_locally_owned_dofs:               16
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_levels:                  5
+DEAL:4:grid_policy_default::n_cells:                   65
+DEAL:4:grid_policy_default::n_active_cells:            49
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_dofs:                             423
+DEAL:4:grid_policy_default::n_locally_owned_dofs:               87
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_levels:                  6
+DEAL:4:grid_policy_default::n_cells:                   189
+DEAL:4:grid_policy_default::n_active_cells:            142
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_dofs:                             1353
+DEAL:4:grid_policy_default::n_locally_owned_dofs:               296
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_levels:                  7
+DEAL:4:grid_policy_default::n_cells:                   541
+DEAL:4:grid_policy_default::n_active_cells:            406
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_default::n_dofs:                             4813
+DEAL:4:grid_policy_default::n_locally_owned_dofs:               1004
+DEAL:4:grid_policy_default::
+DEAL:4:grid_policy_first::n_levels:                  1
+DEAL:4:grid_policy_first::n_cells:                   1
+DEAL:4:grid_policy_first::n_active_cells:            1
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_dofs:                             9
+DEAL:4:grid_policy_first::n_locally_owned_dofs:               0
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_levels:                  2
+DEAL:4:grid_policy_first::n_cells:                   5
+DEAL:4:grid_policy_first::n_active_cells:            4
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_dofs:                             25
+DEAL:4:grid_policy_first::n_locally_owned_dofs:               16
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_levels:                  3
+DEAL:4:grid_policy_first::n_cells:                   9
+DEAL:4:grid_policy_first::n_active_cells:            7
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_dofs:                             43
+DEAL:4:grid_policy_first::n_locally_owned_dofs:               18
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_levels:                  4
+DEAL:4:grid_policy_first::n_cells:                   33
+DEAL:4:grid_policy_first::n_active_cells:            25
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_dofs:                             141
+DEAL:4:grid_policy_first::n_locally_owned_dofs:               64
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_levels:                  5
+DEAL:4:grid_policy_first::n_cells:                   85
+DEAL:4:grid_policy_first::n_active_cells:            64
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_dofs:                             423
+DEAL:4:grid_policy_first::n_locally_owned_dofs:               158
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_levels:                  6
+DEAL:4:grid_policy_first::n_cells:                   213
+DEAL:4:grid_policy_first::n_active_cells:            160
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_dofs:                             1353
+DEAL:4:grid_policy_first::n_locally_owned_dofs:               368
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_levels:                  7
+DEAL:4:grid_policy_first::n_cells:                   541
+DEAL:4:grid_policy_first::n_active_cells:            406
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_first::n_dofs:                             4813
+DEAL:4:grid_policy_first::n_locally_owned_dofs:               1004
+DEAL:4:grid_policy_first::
+DEAL:4:grid_policy_minimal::n_levels:                  1
+DEAL:4:grid_policy_minimal::n_cells:                   1
+DEAL:4:grid_policy_minimal::n_active_cells:            1
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_dofs:                             9
+DEAL:4:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_levels:                  1
+DEAL:4:grid_policy_minimal::n_cells:                   1
+DEAL:4:grid_policy_minimal::n_active_cells:            1
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_dofs:                             25
+DEAL:4:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_levels:                  1
+DEAL:4:grid_policy_minimal::n_cells:                   1
+DEAL:4:grid_policy_minimal::n_active_cells:            1
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_dofs:                             43
+DEAL:4:grid_policy_minimal::n_locally_owned_dofs:               0
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_levels:                  4
+DEAL:4:grid_policy_minimal::n_cells:                   25
+DEAL:4:grid_policy_minimal::n_active_cells:            19
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_dofs:                             141
+DEAL:4:grid_policy_minimal::n_locally_owned_dofs:               16
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_levels:                  5
+DEAL:4:grid_policy_minimal::n_cells:                   65
+DEAL:4:grid_policy_minimal::n_active_cells:            49
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_dofs:                             423
+DEAL:4:grid_policy_minimal::n_locally_owned_dofs:               87
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_levels:                  6
+DEAL:4:grid_policy_minimal::n_cells:                   189
+DEAL:4:grid_policy_minimal::n_active_cells:            142
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_dofs:                             1353
+DEAL:4:grid_policy_minimal::n_locally_owned_dofs:               296
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_levels:                  7
+DEAL:4:grid_policy_minimal::n_cells:                   541
+DEAL:4:grid_policy_minimal::n_active_cells:            406
+DEAL:4:grid_policy_minimal::
+DEAL:4:grid_policy_minimal::n_dofs:                             4813
+DEAL:4:grid_policy_minimal::n_locally_owned_dofs:               1004
+DEAL:4:grid_policy_minimal::
+

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.