--- /dev/null
+Fixed: The function hp::Refinement::predict_error() produced incorrect
+results for p-coarsening.
+<br>
+(Marc Fehling, 2021/04/21)
if (cell->future_fe_index_set())
{
predicted_errors[cell->active_cell_index()] *=
- std::pow(gamma_p, future_fe_degree - cell->get_fe().degree);
+ std::pow(gamma_p,
+ int(future_fe_degree) - int(cell->get_fe().degree));
}
// step 2: algebraic decay with h-adaptation
// ---------------------------------------------------------------------
//
-// Copyright (C) 2019 - 2020 by the deal.II authors
+// Copyright (C) 2019 - 2021 by the deal.II authors
//
// This file is part of the deal.II library.
//
// validate combination of error prediction and cell data transfer algorithms
// for hp-adaptive methods
+// test either h- or p-adaptation
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/grid/tria.h>
-#include <deal.II/hp/fe_collection.h>
#include <deal.II/hp/refinement.h>
#include <deal.II/lac/vector.h>
-#include <deal.II/numerics/adaptation_strategies.h>
#include <deal.II/numerics/cell_data_transfer.h>
#include "../tests.h"
fes.push_back(FE_Q<dim>(d));
DoFHandler<dim> dh(tria);
+ for (const auto &cell : dh.active_cell_iterators())
+ {
+ // set active FE index
+ cell->set_active_fe_index(1);
+ }
for (auto cell = dh.begin(0); cell != dh.end(0); ++cell)
{
if (cell->id().to_string() == "0_0:")
// p-refinement
cell->set_future_fe_index(2);
}
+ else if (cell->id().to_string() == "3_0:")
+ {
+ // p-coarsening
+ cell->set_future_fe_index(0);
+ }
}
dh.distribute_dofs(fes);
// ----- predict -----
- Vector<float> error_indicators, predicted_error_indicators;
- error_indicators.reinit(tria.n_active_cells());
- predicted_error_indicators.reinit(tria.n_active_cells());
+ Vector<float> error_indicators(tria.n_active_cells());
for (unsigned int i = 0; i < tria.n_active_cells(); ++i)
error_indicators[i] = 10.;
+ Vector<float> predicted_error_indicators(tria.n_active_cells());
hp::Refinement::predict_error(dh,
error_indicators,
predicted_error_indicators,
deallog << " refining";
else if (cell->coarsen_flag_set())
deallog << " coarsening";
- else if (cell->future_fe_index_set())
- deallog << " future_fe_deg:"
- << dh.get_fe_collection()[cell->future_fe_index()].degree;
+
+ if (cell->future_fe_index_set())
+ deallog << " future_fe_deg:" << fes[cell->future_fe_index()].degree;
deallog << std::endl;
}
DEAL:1d::pre_adaptation
DEAL:1d:: ncells:5
-DEAL:1d:: cell:1_0: fe_deg:1 error:10.0000 predicted:5.00000 refining
-DEAL:1d:: cell:2_0: fe_deg:1 error:10.0000 predicted:2.50000 future_fe_deg:3
-DEAL:1d:: cell:3_0: fe_deg:1 error:10.0000 predicted:10.0000
-DEAL:1d:: cell:0_1:0 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:1d:: cell:0_1:1 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
+DEAL:1d:: cell:1_0: fe_deg:2 error:10.0000 predicted:2.50000 refining
+DEAL:1d:: cell:2_0: fe_deg:2 error:10.0000 predicted:5.00000 future_fe_deg:3
+DEAL:1d:: cell:3_0: fe_deg:2 error:10.0000 predicted:20.0000 future_fe_deg:1
+DEAL:1d:: cell:0_1:0 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:1d:: cell:0_1:1 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
DEAL:1d::post_adaptation
DEAL:1d:: ncells:5
-DEAL:1d:: cell:0_0: fe_deg:1 transferred:28.2843
-DEAL:1d:: cell:2_0: fe_deg:3 transferred:2.50000
-DEAL:1d:: cell:3_0: fe_deg:1 transferred:10.0000
-DEAL:1d:: cell:1_1:0 fe_deg:1 transferred:3.53553
-DEAL:1d:: cell:1_1:1 fe_deg:1 transferred:3.53553
+DEAL:1d:: cell:0_0: fe_deg:2 transferred:56.5685
+DEAL:1d:: cell:2_0: fe_deg:3 transferred:5.00000
+DEAL:1d:: cell:3_0: fe_deg:1 transferred:20.0000
+DEAL:1d:: cell:1_1:0 fe_deg:2 transferred:1.76777
+DEAL:1d:: cell:1_1:1 fe_deg:2 transferred:1.76777
DEAL:1d::predicted_error_norms
-DEAL:1d:: pre_adaptation:30.5164
-DEAL:1d:: post_adaptation:30.5164
+DEAL:1d:: pre_adaptation:60.2599
+DEAL:1d:: post_adaptation:60.2599
DEAL:1d::OK
DEAL:2d::pre_adaptation
DEAL:2d:: ncells:7
-DEAL:2d:: cell:1_0: fe_deg:1 error:10.0000 predicted:5.00000 refining
-DEAL:2d:: cell:2_0: fe_deg:1 error:10.0000 predicted:2.50000 future_fe_deg:3
-DEAL:2d:: cell:3_0: fe_deg:1 error:10.0000 predicted:10.0000
-DEAL:2d:: cell:0_1:0 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:2d:: cell:0_1:1 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:2d:: cell:0_1:2 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:2d:: cell:0_1:3 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
+DEAL:2d:: cell:1_0: fe_deg:2 error:10.0000 predicted:2.50000 refining
+DEAL:2d:: cell:2_0: fe_deg:2 error:10.0000 predicted:5.00000 future_fe_deg:3
+DEAL:2d:: cell:3_0: fe_deg:2 error:10.0000 predicted:20.0000 future_fe_deg:1
+DEAL:2d:: cell:0_1:0 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:2d:: cell:0_1:1 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:2d:: cell:0_1:2 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:2d:: cell:0_1:3 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
DEAL:2d::post_adaptation
DEAL:2d:: ncells:7
-DEAL:2d:: cell:0_0: fe_deg:1 transferred:40.0000
-DEAL:2d:: cell:2_0: fe_deg:3 transferred:2.50000
-DEAL:2d:: cell:3_0: fe_deg:1 transferred:10.0000
-DEAL:2d:: cell:1_1:0 fe_deg:1 transferred:2.50000
-DEAL:2d:: cell:1_1:1 fe_deg:1 transferred:2.50000
-DEAL:2d:: cell:1_1:2 fe_deg:1 transferred:2.50000
-DEAL:2d:: cell:1_1:3 fe_deg:1 transferred:2.50000
+DEAL:2d:: cell:0_0: fe_deg:2 transferred:80.0000
+DEAL:2d:: cell:2_0: fe_deg:3 transferred:5.00000
+DEAL:2d:: cell:3_0: fe_deg:1 transferred:20.0000
+DEAL:2d:: cell:1_1:0 fe_deg:2 transferred:1.25000
+DEAL:2d:: cell:1_1:1 fe_deg:2 transferred:1.25000
+DEAL:2d:: cell:1_1:2 fe_deg:2 transferred:1.25000
+DEAL:2d:: cell:1_1:3 fe_deg:2 transferred:1.25000
DEAL:2d::predicted_error_norms
-DEAL:2d:: pre_adaptation:41.6083
-DEAL:2d:: post_adaptation:41.6083
+DEAL:2d:: pre_adaptation:82.6514
+DEAL:2d:: post_adaptation:82.6514
DEAL:2d::OK
DEAL:3d::pre_adaptation
DEAL:3d:: ncells:11
-DEAL:3d:: cell:1_0: fe_deg:1 error:10.0000 predicted:5.00000 refining
-DEAL:3d:: cell:2_0: fe_deg:1 error:10.0000 predicted:2.50000 future_fe_deg:3
-DEAL:3d:: cell:3_0: fe_deg:1 error:10.0000 predicted:10.0000
-DEAL:3d:: cell:0_1:0 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:3d:: cell:0_1:1 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:3d:: cell:0_1:2 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:3d:: cell:0_1:3 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:3d:: cell:0_1:4 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:3d:: cell:0_1:5 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:3d:: cell:0_1:6 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
-DEAL:3d:: cell:0_1:7 fe_deg:1 error:10.0000 predicted:20.0000 coarsening
+DEAL:3d:: cell:1_0: fe_deg:2 error:10.0000 predicted:2.50000 refining
+DEAL:3d:: cell:2_0: fe_deg:2 error:10.0000 predicted:5.00000 future_fe_deg:3
+DEAL:3d:: cell:3_0: fe_deg:2 error:10.0000 predicted:20.0000 future_fe_deg:1
+DEAL:3d:: cell:0_1:0 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:3d:: cell:0_1:1 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:3d:: cell:0_1:2 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:3d:: cell:0_1:3 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:3d:: cell:0_1:4 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:3d:: cell:0_1:5 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:3d:: cell:0_1:6 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
+DEAL:3d:: cell:0_1:7 fe_deg:2 error:10.0000 predicted:40.0000 coarsening
DEAL:3d::post_adaptation
DEAL:3d:: ncells:11
-DEAL:3d:: cell:0_0: fe_deg:1 transferred:56.5685
-DEAL:3d:: cell:2_0: fe_deg:3 transferred:2.50000
-DEAL:3d:: cell:3_0: fe_deg:1 transferred:10.0000
-DEAL:3d:: cell:1_1:0 fe_deg:1 transferred:1.76777
-DEAL:3d:: cell:1_1:1 fe_deg:1 transferred:1.76777
-DEAL:3d:: cell:1_1:2 fe_deg:1 transferred:1.76777
-DEAL:3d:: cell:1_1:3 fe_deg:1 transferred:1.76777
-DEAL:3d:: cell:1_1:4 fe_deg:1 transferred:1.76777
-DEAL:3d:: cell:1_1:5 fe_deg:1 transferred:1.76777
-DEAL:3d:: cell:1_1:6 fe_deg:1 transferred:1.76777
-DEAL:3d:: cell:1_1:7 fe_deg:1 transferred:1.76777
+DEAL:3d:: cell:0_0: fe_deg:2 transferred:113.137
+DEAL:3d:: cell:2_0: fe_deg:3 transferred:5.00000
+DEAL:3d:: cell:3_0: fe_deg:1 transferred:20.0000
+DEAL:3d:: cell:1_1:0 fe_deg:2 transferred:0.883883
+DEAL:3d:: cell:1_1:1 fe_deg:2 transferred:0.883883
+DEAL:3d:: cell:1_1:2 fe_deg:2 transferred:0.883883
+DEAL:3d:: cell:1_1:3 fe_deg:2 transferred:0.883883
+DEAL:3d:: cell:1_1:4 fe_deg:2 transferred:0.883883
+DEAL:3d:: cell:1_1:5 fe_deg:2 transferred:0.883883
+DEAL:3d:: cell:1_1:6 fe_deg:2 transferred:0.883883
+DEAL:3d:: cell:1_1:7 fe_deg:2 transferred:0.883883
DEAL:3d::predicted_error_norms
-DEAL:3d:: pre_adaptation:57.7170
-DEAL:3d:: post_adaptation:57.7170
+DEAL:3d:: pre_adaptation:115.027
+DEAL:3d:: post_adaptation:115.027
DEAL:3d::OK
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// 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.
+//
+// ---------------------------------------------------------------------
+
+
+
+// validate combination of error prediction and cell data transfer algorithms
+// for hp-adaptive methods
+// test all combinations of h- and p-adaptation
+
+
+#include <deal.II/dofs/dof_handler.h>
+
+#include <deal.II/fe/fe_q.h>
+
+#include <deal.II/grid/tria.h>
+
+#include <deal.II/hp/refinement.h>
+
+#include <deal.II/lac/vector.h>
+
+#include <deal.II/numerics/cell_data_transfer.h>
+
+#include "../tests.h"
+
+#include "../test_grids.h"
+
+
+template <int dim>
+void
+test()
+{
+ // ------ setup ------
+ Triangulation<dim> tria;
+ TestGrids::hyper_line(tria, 4);
+
+ tria.begin_active()->set_refine_flag();
+ (++tria.begin_active())->set_refine_flag();
+ tria.execute_coarsening_and_refinement();
+
+ hp::FECollection<dim> fes;
+ for (unsigned int d = 1; d <= 3; ++d)
+ fes.push_back(FE_Q<dim>(d));
+
+ DoFHandler<dim> dh(tria);
+ for (const auto &cell : dh.active_cell_iterators())
+ {
+ // set active FE index
+ if (cell->is_locally_owned())
+ cell->set_active_fe_index(1);
+ }
+ for (auto cell = dh.begin(0); cell != dh.end(0); ++cell)
+ {
+ // set refinement/coarsening flags
+ if (cell->id().to_string() == "0_0:")
+ {
+ // h-coarsening and p-refinement
+ for (unsigned int i = 0; i < cell->n_children(); ++i)
+ if (cell->child(i)->is_locally_owned())
+ {
+ cell->child(i)->set_coarsen_flag();
+ cell->child(i)->set_future_fe_index(2);
+ }
+ }
+ else if (cell->id().to_string() == "1_0:")
+ {
+ // h-coarsening and p-coarsening
+ for (unsigned int i = 0; i < cell->n_children(); ++i)
+ if (cell->child(i)->is_locally_owned())
+ {
+ cell->child(i)->set_coarsen_flag();
+ cell->child(i)->set_future_fe_index(0);
+ }
+ }
+ else if (cell->id().to_string() == "2_0:")
+ {
+ // h-refinement and p-refinement
+ if (cell->is_locally_owned())
+ {
+ cell->set_refine_flag();
+ cell->set_future_fe_index(2);
+ }
+ }
+ else if (cell->id().to_string() == "3_0:")
+ {
+ // h-refinement and p-coarsening
+ if (cell->is_locally_owned())
+ {
+ cell->set_refine_flag();
+ cell->set_future_fe_index(0);
+ }
+ }
+ }
+ dh.distribute_dofs(fes);
+
+ // ----- predict -----
+ Vector<float> error_indicators(tria.n_active_cells());
+ for (unsigned int i = 0; i < tria.n_active_cells(); ++i)
+ error_indicators[i] = 10.;
+
+ Vector<float> predicted_error_indicators(tria.n_active_cells());
+ hp::Refinement::predict_error(dh,
+ error_indicators,
+ predicted_error_indicators,
+ /*gamma_p=*/0.5,
+ /*gamma_h=*/1.,
+ /*gamma_n=*/1.);
+
+ // ----- verify ------
+ deallog << "pre_adaptation" << std::endl
+ << " ncells:" << tria.n_active_cells() << std::endl;
+ for (const auto &cell : dh.active_cell_iterators())
+ {
+ deallog << " cell:" << cell->id().to_string()
+ << " fe_deg:" << cell->get_fe().degree
+ << " error:" << error_indicators[cell->active_cell_index()]
+ << " predicted:"
+ << predicted_error_indicators[cell->active_cell_index()];
+
+ if (cell->refine_flag_set())
+ deallog << " refining";
+ else if (cell->coarsen_flag_set())
+ deallog << " coarsening";
+
+ if (cell->future_fe_index_set())
+ deallog << " future_fe_deg:" << fes[cell->future_fe_index()].degree;
+
+ deallog << std::endl;
+ }
+
+ // ----- execute adaptation -----
+ CellDataTransfer<dim, dim, Vector<float>> cell_data_transfer(
+ tria,
+ &AdaptationStrategies::Refinement::l2_norm<dim, dim, float>,
+ &AdaptationStrategies::Coarsening::l2_norm<dim, dim, float>);
+ cell_data_transfer.prepare_for_coarsening_and_refinement();
+
+ tria.execute_coarsening_and_refinement();
+
+ Vector<float> transferred_indicators(tria.n_active_cells());
+ cell_data_transfer.unpack(predicted_error_indicators, transferred_indicators);
+
+ // ----- verify -----
+ deallog << "post_adaptation" << std::endl
+ << " ncells:" << tria.n_active_cells() << std::endl;
+ for (const auto &cell : dh.active_cell_iterators())
+ deallog << " cell:" << cell->id().to_string()
+ << " fe_deg:" << cell->get_fe().degree << " transferred:"
+ << transferred_indicators[cell->active_cell_index()] << std::endl;
+
+ // ----- verify norms -----
+ const double predicted_error_pre = predicted_error_indicators.l2_norm(),
+ predicted_error_post = transferred_indicators.l2_norm();
+
+ deallog << "predicted_error_norms" << std::endl
+ << " pre_adaptation:" << predicted_error_pre << std::endl
+ << " post_adaptation:" << predicted_error_post << std::endl;
+
+ Assert(predicted_error_pre == predicted_error_post,
+ ExcMessage("Transfer failed - Results not similar."));
+
+ deallog << "OK" << std::endl;
+}
+
+
+
+int
+main(int argc, char *argv[])
+{
+ initlog();
+
+ deallog.push("1d");
+ test<1>();
+ deallog.pop();
+ deallog.push("2d");
+ test<2>();
+ deallog.pop();
+ deallog.push("3d");
+ test<3>();
+ deallog.pop();
+}
--- /dev/null
+
+DEAL:1d::pre_adaptation
+DEAL:1d:: ncells:6
+DEAL:1d:: cell:2_0: fe_deg:2 error:10.0000 predicted:0.625000 refining future_fe_deg:3
+DEAL:1d:: cell:3_0: fe_deg:2 error:10.0000 predicted:10.0000 refining future_fe_deg:1
+DEAL:1d:: cell:0_1:0 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:1d:: cell:0_1:1 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:1d:: cell:1_1:0 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:1d:: cell:1_1:1 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:1d::post_adaptation
+DEAL:1d:: ncells:6
+DEAL:1d:: cell:0_0: fe_deg:3 transferred:56.5685
+DEAL:1d:: cell:1_0: fe_deg:1 transferred:56.5685
+DEAL:1d:: cell:2_1:0 fe_deg:3 transferred:0.441942
+DEAL:1d:: cell:2_1:1 fe_deg:3 transferred:0.441942
+DEAL:1d:: cell:3_1:0 fe_deg:1 transferred:7.07107
+DEAL:1d:: cell:3_1:1 fe_deg:1 transferred:7.07107
+DEAL:1d::predicted_error_norms
+DEAL:1d:: pre_adaptation:80.6250
+DEAL:1d:: post_adaptation:80.6250
+DEAL:1d::OK
+DEAL:2d::pre_adaptation
+DEAL:2d:: ncells:10
+DEAL:2d:: cell:2_0: fe_deg:2 error:10.0000 predicted:0.625000 refining future_fe_deg:3
+DEAL:2d:: cell:3_0: fe_deg:2 error:10.0000 predicted:10.0000 refining future_fe_deg:1
+DEAL:2d:: cell:0_1:0 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:2d:: cell:0_1:1 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:2d:: cell:0_1:2 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:2d:: cell:0_1:3 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:2d:: cell:1_1:0 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:2d:: cell:1_1:1 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:2d:: cell:1_1:2 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:2d:: cell:1_1:3 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:2d::post_adaptation
+DEAL:2d:: ncells:10
+DEAL:2d:: cell:0_0: fe_deg:3 transferred:80.0000
+DEAL:2d:: cell:1_0: fe_deg:1 transferred:80.0000
+DEAL:2d:: cell:2_1:0 fe_deg:3 transferred:0.312500
+DEAL:2d:: cell:2_1:1 fe_deg:3 transferred:0.312500
+DEAL:2d:: cell:2_1:2 fe_deg:3 transferred:0.312500
+DEAL:2d:: cell:2_1:3 fe_deg:3 transferred:0.312500
+DEAL:2d:: cell:3_1:0 fe_deg:1 transferred:5.00000
+DEAL:2d:: cell:3_1:1 fe_deg:1 transferred:5.00000
+DEAL:2d:: cell:3_1:2 fe_deg:1 transferred:5.00000
+DEAL:2d:: cell:3_1:3 fe_deg:1 transferred:5.00000
+DEAL:2d::predicted_error_norms
+DEAL:2d:: pre_adaptation:113.580
+DEAL:2d:: post_adaptation:113.580
+DEAL:2d::OK
+DEAL:3d::pre_adaptation
+DEAL:3d:: ncells:18
+DEAL:3d:: cell:2_0: fe_deg:2 error:10.0000 predicted:0.625000 refining future_fe_deg:3
+DEAL:3d:: cell:3_0: fe_deg:2 error:10.0000 predicted:10.0000 refining future_fe_deg:1
+DEAL:3d:: cell:0_1:0 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:3d:: cell:0_1:1 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:3d:: cell:0_1:2 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:3d:: cell:0_1:3 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:3d:: cell:0_1:4 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:3d:: cell:0_1:5 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:3d:: cell:0_1:6 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:3d:: cell:0_1:7 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:3
+DEAL:3d:: cell:1_1:0 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:3d:: cell:1_1:1 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:3d:: cell:1_1:2 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:3d:: cell:1_1:3 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:3d:: cell:1_1:4 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:3d:: cell:1_1:5 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:3d:: cell:1_1:6 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:3d:: cell:1_1:7 fe_deg:2 error:10.0000 predicted:40.0000 coarsening future_fe_deg:1
+DEAL:3d::post_adaptation
+DEAL:3d:: ncells:18
+DEAL:3d:: cell:0_0: fe_deg:3 transferred:113.137
+DEAL:3d:: cell:1_0: fe_deg:1 transferred:113.137
+DEAL:3d:: cell:2_1:0 fe_deg:3 transferred:0.220971
+DEAL:3d:: cell:2_1:1 fe_deg:3 transferred:0.220971
+DEAL:3d:: cell:2_1:2 fe_deg:3 transferred:0.220971
+DEAL:3d:: cell:2_1:3 fe_deg:3 transferred:0.220971
+DEAL:3d:: cell:2_1:4 fe_deg:3 transferred:0.220971
+DEAL:3d:: cell:2_1:5 fe_deg:3 transferred:0.220971
+DEAL:3d:: cell:2_1:6 fe_deg:3 transferred:0.220971
+DEAL:3d:: cell:2_1:7 fe_deg:3 transferred:0.220971
+DEAL:3d:: cell:3_1:0 fe_deg:1 transferred:3.53553
+DEAL:3d:: cell:3_1:1 fe_deg:1 transferred:3.53553
+DEAL:3d:: cell:3_1:2 fe_deg:1 transferred:3.53553
+DEAL:3d:: cell:3_1:3 fe_deg:1 transferred:3.53553
+DEAL:3d:: cell:3_1:4 fe_deg:1 transferred:3.53553
+DEAL:3d:: cell:3_1:5 fe_deg:1 transferred:3.53553
+DEAL:3d:: cell:3_1:6 fe_deg:1 transferred:3.53553
+DEAL:3d:: cell:3_1:7 fe_deg:1 transferred:3.53553
+DEAL:3d::predicted_error_norms
+DEAL:3d:: pre_adaptation:160.313
+DEAL:3d:: post_adaptation:160.313
+DEAL:3d::OK