--- /dev/null
+New: MGTwoLevelTransferNonNested now also supports FE_SimplexP.
+<br>
+(Peter Munch, Marco Feder, 2023/08/02)
#include <deal.II/dofs/dof_tools.h>
#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_simplex_p.h>
#include <deal.II/fe/fe_system.h>
#include <deal.II/fe/fe_tools.h>
#include <deal.II/fe/fe_values.h>
unit_points.end());
}
+ typename NonMatching::MappingInfo<dim, dim, Number>::AdditionalData ad;
+ ad.store_cells = true;
+
auto mapping_info =
std::make_shared<NonMatching::MappingInfo<dim, dim, Number>>(
- rpe.get_mapping(), update_values);
+ rpe.get_mapping(), update_values, ad);
mapping_info->reinit_cells(cell_iterators, unit_points_vector);
return mapping_info;
Assert((dynamic_cast<const FE_DGQ<dim, spacedim> *>(
&dof_handler.get_fe().base_element(0)) != nullptr) ||
(dynamic_cast<const FE_Q<dim, spacedim> *>(
+ &dof_handler.get_fe().base_element(0)) != nullptr) ||
+ (dynamic_cast<const FE_SimplexP<dim, spacedim> *>(
+ &dof_handler.get_fe().base_element(0)) != nullptr) ||
+ (dynamic_cast<const FE_SimplexDGP<dim, spacedim> *>(
&dof_handler.get_fe().base_element(0)) != nullptr),
+ ExcMessage("Function expects FE_DGQ, FE_Q, FE_SimplexP, or "
+ "FE_SimplexDGP in dof_handler."));
+
+ Assert((dynamic_cast<const FE_Q<dim, spacedim> *>(
+ &dof_handler_support_points.get_fe()) != nullptr ||
+ dynamic_cast<const FE_SimplexP<dim, spacedim> *>(
+ &dof_handler_support_points.get_fe()) != nullptr) ||
+ ((dynamic_cast<const FE_DGQ<dim, spacedim> *>(
+ &dof_handler_support_points.get_fe()) != nullptr ||
+ dynamic_cast<const FE_SimplexDGP<dim, spacedim> *>(
+ &dof_handler_support_points.get_fe()) != nullptr) &&
+ dof_handler_support_points.get_fe().degree == 0),
ExcMessage(
- "Function expects FE_DGQ of FE_Q elements in dof_handler."));
-
- Assert(
- (dynamic_cast<const FE_Q<dim, spacedim> *>(
- &dof_handler_support_points.get_fe()) != nullptr) ||
- ((dynamic_cast<const FE_DGQ<dim, spacedim> *>(
- &dof_handler_support_points.get_fe()) != nullptr) &&
- dof_handler_support_points.get_fe().degree == 0),
- ExcMessage(
- "Function expects FE_DGQ&°ree==0 or FE_Q in dof_handler_support_points."));
+ "Function expects (FE_DGQ||FE_SimplexDGP)&°ree==0 or "
+ "(FE_Q||FE_SimplexP) in dof_handler_support_points."));
Assert(
dof_handler_support_points.get_fe().n_components() == 1,
n_components);
else if (const auto fe = dynamic_cast<const FE_DGQ<dim> *>(&fe_base))
fe_coarse = fe->clone();
+ else if (const auto fe = dynamic_cast<const FE_SimplexP<dim> *>(&fe_base))
+ fe_coarse = fe->clone();
+ else if (const auto fe = dynamic_cast<const FE_SimplexDGP<dim> *>(&fe_base))
+ fe_coarse = fe->clone();
else
AssertThrow(false, ExcMessage(dof_handler_coarse.get_fe().get_name()));
}
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2020 - 2022 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+
+/**
+ * Test prolongation with uniformly refined meshes.
+ *
+ * To compare with non_nested_transfer_04.
+ */
+
+#include <deal.II/base/conditional_ostream.h>
+#include <deal.II/base/function.h>
+#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_simplex_p.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/multigrid/mg_constrained_dofs.h>
+#include <deal.II/multigrid/mg_transfer_global_coarsening.h>
+
+#include "mg_transfer_util.h"
+
+using namespace dealii;
+
+template <int dim>
+class RightHandSideFunction : public Function<dim>
+{
+public:
+ RightHandSideFunction()
+ : Function<dim>(1)
+ {}
+
+ virtual double
+ value(const Point<dim> &p, const unsigned int component = 0) const
+ {
+ (void)component;
+ return p[0];
+ }
+};
+
+template <int dim, typename Number>
+void
+do_test(const FiniteElement<dim> &fe_fine,
+ const FiniteElement<dim> &fe_coarse,
+ const Function<dim, Number> &function)
+{
+ // create coarse grid
+ Triangulation<dim> tria_coarse; // TODO
+ if (fe_coarse.reference_cell().is_simplex())
+ GridGenerator::subdivided_hyper_cube_with_simplices(tria_coarse, 1);
+ else
+ GridGenerator::hyper_cube(tria_coarse);
+ tria_coarse.refine_global();
+
+ // create fine grid
+ Triangulation<dim> tria_fine; // TODO
+
+ if (fe_fine.reference_cell().is_simplex())
+ GridGenerator::subdivided_hyper_cube_with_simplices(tria_fine, 1);
+ else
+ GridGenerator::hyper_cube(tria_fine);
+ tria_fine.refine_global();
+ tria_fine.refine_global();
+
+ // setup dof-handlers
+ DoFHandler<dim> dof_handler_fine(tria_fine);
+ dof_handler_fine.distribute_dofs(fe_fine);
+
+ DoFHandler<dim> dof_handler_coarse(tria_coarse);
+ dof_handler_coarse.distribute_dofs(fe_coarse);
+
+ // setup constraint matrix
+ AffineConstraints<Number> constraint_coarse;
+ constraint_coarse.close();
+
+ AffineConstraints<Number> constraint_fine;
+ constraint_fine.close();
+
+ // setup transfer operator
+ MGTwoLevelTransfer<dim, LinearAlgebra::distributed::Vector<Number>> transfer;
+
+ transfer.reinit(dof_handler_fine,
+ dof_handler_coarse,
+ constraint_fine,
+ constraint_coarse);
+
+ test_non_nested_transfer(transfer,
+ dof_handler_fine,
+ dof_handler_coarse,
+ function);
+}
+
+template <int dim, typename Number>
+void
+test(int fe_degree,
+ const Function<dim, Number> &function,
+ const bool do_simplex_mesh)
+{
+ const auto str_fine = std::to_string(fe_degree);
+ const auto str_coarse = std::to_string(fe_degree);
+
+ if ((fe_degree > 0) && (do_simplex_mesh == false))
+ {
+ deallog.push("CG<2>(" + str_fine + ")<->CG<2>(" + str_coarse + ")");
+ do_test<dim, double>(FE_Q<dim>(fe_degree),
+ FE_Q<dim>(fe_degree),
+ function);
+ deallog.pop();
+ }
+
+ if ((fe_degree > 0) && do_simplex_mesh)
+ {
+ deallog.push("CG<2>(" + str_fine + ")<->CG<2>(" + str_coarse + ")");
+ do_test<dim, double>(FE_SimplexP<dim>(fe_degree),
+ FE_SimplexP<dim>(fe_degree),
+ function);
+ deallog.pop();
+ }
+}
+
+int
+main(int argc, char **argv)
+{
+ Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
+ MPILogInitAll all;
+
+ deallog.precision(8);
+
+ // Functions::ConstantFunction<2, double> fu(1.);
+ RightHandSideFunction<2> fu;
+
+ for (unsigned int i = 0; i <= 4; ++i)
+ test<2, double>(i, fu, false);
+
+ for (unsigned int i = 0; i <= 2; ++i)
+ test<2, double>(i, fu, true);
+}
--- /dev/null
+
+DEAL:0:CG<2>(1)<->CG<2>(1)::3.0618622
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.50000000 0.0000000 0.50000000 1.0000000 1.0000000 0.0000000 0.50000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.25000000 0.0000000 0.25000000 0.50000000 0.50000000 0.0000000 0.25000000 0.50000000 0.75000000 0.75000000 1.0000000 1.0000000 0.75000000 1.0000000 0.0000000 0.25000000 0.50000000 0.0000000 0.25000000 0.50000000 0.75000000 1.0000000 0.75000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::4.9702238
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.25000000 0.0000000 0.25000000 0.50000000 0.50000000 0.0000000 0.25000000 0.50000000 0.75000000 0.75000000 1.0000000 1.0000000 0.75000000 1.0000000 0.0000000 0.25000000 0.50000000 0.0000000 0.25000000 0.50000000 0.75000000 1.0000000 0.75000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.18750000 1.5000000 0.25000000 2.0000000 2.0625000 2.7500000 0.18750000 1.5000000 2.0625000
+DEAL:0:CG<2>(2)<->CG<2>(2)::5.3560713
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.50000000 0.0000000 0.50000000 0.0000000 0.50000000 0.25000000 0.25000000 0.25000000 1.0000000 1.0000000 1.0000000 0.75000000 0.75000000 0.75000000 0.0000000 0.50000000 0.0000000 0.50000000 0.25000000 0.25000000 1.0000000 1.0000000 0.75000000 0.75000000
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.12500000 0.50000000 0.50000000 0.50000000 0.37500000 0.37500000 0.37500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.75000000 0.75000000 0.75000000 0.62500000 0.62500000 0.62500000 1.0000000 1.0000000 1.0000000 0.87500000 0.87500000 0.87500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000
+DEAL:0:CG<2>(2)<->CG<2>(2)::10.383092
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.12500000 0.50000000 0.50000000 0.50000000 0.37500000 0.37500000 0.37500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.75000000 0.75000000 0.75000000 0.62500000 0.62500000 0.62500000 1.0000000 1.0000000 1.0000000 0.87500000 0.87500000 0.87500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.93750000 0.0000000 1.1250000 0.0000000 1.8750000 0.78125000 0.93750000 1.5625000 1.5625000 1.8750000 3.1250000 2.3437500 2.8125000 4.6875000 0.0000000 0.93750000 0.0000000 1.8750000 0.78125000 1.5625000 1.5625000 3.1250000 2.3437500 4.6875000
+DEAL:0:CG<2>(3)<->CG<2>(3)::7.6697458
+DEAL:0:CG<2>(3)<->CG<2>(3)::0.0000000 0.50000000 0.0000000 0.50000000 0.0000000 0.0000000 0.50000000 0.50000000 0.13819660 0.36180340 0.13819660 0.36180340 0.13819660 0.36180340 0.13819660 0.36180340 1.0000000 1.0000000 1.0000000 1.0000000 0.63819660 0.86180340 0.63819660 0.86180340 0.63819660 0.86180340 0.63819660 0.86180340 0.0000000 0.50000000 0.0000000 0.0000000 0.50000000 0.50000000 0.13819660 0.36180340 0.13819660 0.36180340 0.13819660 0.36180340 1.0000000 1.0000000 1.0000000 0.63819660 0.86180340 0.63819660 0.86180340 0.63819660 0.86180340
+DEAL:0:CG<2>(3)<->CG<2>(3)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.75000000 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170
+DEAL:0:CG<2>(3)<->CG<2>(3)::15.445755
+DEAL:0:CG<2>(3)<->CG<2>(3)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.75000000 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170
+DEAL:0:CG<2>(3)<->CG<2>(3)::-0.021093750 0.70312500 -0.023437500 0.78125000 -0.044531250 -0.044531250 1.4843750 1.4843750 0.41641110 0.91952640 0.46267900 1.0216960 0.87909011 1.9412224 0.87909011 1.9412224 1.2867187 1.4296875 2.7164063 2.7164063 1.7523486 2.2554639 1.9470540 2.5060710 3.6994026 4.7615349 3.6994026 4.7615349 -0.021093750 0.70312500 -0.044531250 -0.044531250 1.4843750 1.4843750 0.41641110 0.91952640 0.87909011 1.9412224 0.87909011 1.9412224 1.2867188 2.7164063 2.7164063 1.7523486 2.2554639 3.6994026 4.7615349 3.6994026 4.7615349
+DEAL:0:CG<2>(4)<->CG<2>(4)::9.9861511
+DEAL:0:CG<2>(4)<->CG<2>(4)::0.0000000 0.50000000 0.0000000 0.50000000 0.0000000 0.0000000 0.0000000 0.50000000 0.50000000 0.50000000 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.0000000 0.50000000 0.0000000 0.0000000 0.0000000 0.50000000 0.50000000 0.50000000 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 1.0000000 1.0000000 1.0000000 1.0000000 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342
+DEAL:0:CG<2>(4)<->CG<2>(4)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.75000000 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171
+DEAL:0:CG<2>(4)<->CG<2>(4)::20.810567
+DEAL:0:CG<2>(4)<->CG<2>(4)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.75000000 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171
+DEAL:0:CG<2>(4)<->CG<2>(4)::-3.4694470e-18 0.85447724 -1.9081958e-17 1.0013652 -1.3877788e-17 -4.8572257e-17 -1.7347235e-17 1.2493373 2.1606744 1.2493373 0.18408253 0.92186504 0.88199239 0.21572703 1.0803372 1.0336103 0.26914839 1.3478655 1.2895674 0.46548041 2.3310746 2.2302506 0.26914839 1.3478655 1.2895674 1.4582719 1.7089545 2.1321498 3.6874601 2.1321498 1.2501574 2.7655951 1.9480673 1.4650644 3.2410116 2.2829476 1.8278642 4.0435965 2.8482832 3.1612114 6.9932239 4.9259816 1.8278642 4.0435965 2.8482832 -1.0408341e-17 0.85447724 -1.3877788e-17 -4.8572257e-17 -1.7347235e-17 1.2493373 2.1606744 1.2493373 0.18408253 0.92186504 0.88199239 0.26914839 1.3478655 1.2895674 0.46548041 2.3310746 2.2302506 0.26914839 1.3478655 1.2895674 1.4582719 2.1321498 3.6874601 2.1321498 1.2501574 2.7655951 1.9480673 1.8278642 4.0435965 2.8482832 3.1612114 6.9932239 4.9259816 1.8278642 4.0435965 2.8482832
+DEAL:0:CG<2>(1)<->CG<2>(1)::3.0618622
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.50000000 0.0000000 1.0000000 0.50000000 0.0000000 1.0000000 0.50000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.25000000 0.0000000 0.50000000 0.25000000 0.0000000 0.75000000 0.50000000 1.0000000 0.75000000 0.50000000 0.25000000 0.0000000 0.25000000 0.0000000 1.0000000 0.75000000 1.0000000 0.50000000 0.75000000 1.0000000 0.25000000 0.50000000 0.75000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::4.9812147
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.25000000 0.0000000 0.50000000 0.25000000 0.0000000 0.75000000 0.50000000 1.0000000 0.75000000 0.50000000 0.25000000 0.0000000 0.25000000 0.0000000 1.0000000 0.75000000 1.0000000 0.50000000 0.75000000 1.0000000 0.25000000 0.50000000 0.75000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.12500000 1.3750000 0.25000000 2.2500000 2.0000000 0.25000000 1.8750000 1.6250000 2.7500000
+DEAL:0:CG<2>(2)<->CG<2>(2)::5.3560713
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.50000000 0.0000000 0.25000000 0.25000000 0.0000000 1.0000000 0.50000000 0.75000000 0.75000000 0.50000000 0.0000000 0.25000000 0.25000000 0.0000000 1.0000000 0.50000000 1.0000000 0.75000000 0.75000000 1.0000000 0.25000000 0.50000000 0.75000000 1.0000000
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.50000000 0.25000000 0.37500000 0.37500000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.75000000 0.50000000 0.62500000 0.62500000 0.50000000 1.0000000 0.75000000 0.87500000 0.87500000 0.75000000 0.50000000 0.62500000 0.62500000 0.50000000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.25000000 0.37500000 0.37500000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.37500000 0.37500000 0.25000000 1.0000000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.50000000 0.75000000 0.62500000 0.62500000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.25000000 0.50000000 0.37500000 0.37500000 0.50000000 0.12500000 0.25000000 0.37500000 0.50000000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.62500000 0.75000000 0.87500000 1.0000000 0.62500000 0.62500000 0.75000000
+DEAL:0:CG<2>(2)<->CG<2>(2)::10.451291
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.50000000 0.25000000 0.37500000 0.37500000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.75000000 0.50000000 0.62500000 0.62500000 0.50000000 1.0000000 0.75000000 0.87500000 0.87500000 0.75000000 0.50000000 0.62500000 0.62500000 0.50000000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.25000000 0.37500000 0.37500000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.37500000 0.37500000 0.25000000 1.0000000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.50000000 0.75000000 0.62500000 0.62500000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.25000000 0.50000000 0.37500000 0.37500000 0.50000000 0.12500000 0.25000000 0.37500000 0.50000000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.62500000 0.75000000 0.87500000 1.0000000 0.62500000 0.62500000 0.75000000
+DEAL:0:CG<2>(2)<->CG<2>(2)::-0.046875000 0.71875000 -0.18750000 0.84375000 1.2500000 0.18750000 1.3906250 0.50000000 2.7187500 3.7500000 2.5000000 -0.14062500 1.2500000 1.2500000 0.18750000 1.2968750 0.53125000 1.4375000 2.9062500 3.7500000 3.5625000 1.0312500 2.5000000 3.7500000 3.5625000
template <int dim, typename Number, typename MeshType>
void
test_non_nested_transfer(
- const MGTwoLevelTransferNonNested<dim,
- LinearAlgebra::distributed::Vector<Number>>
+ const MGTwoLevelTransferBase<LinearAlgebra::distributed::Vector<Number>>
&transfer,
const MeshType &dof_handler_fine,
const MeshType &dof_handler_coarse,
for (unsigned int degree = 1; degree <= 4; ++degree)
test<2>(n_refinements, degree, false /*quadrilateral*/);
- // for (unsigned int n_refinements = 2; n_refinements <= 4; ++n_refinements)
- // for (unsigned int degree = 1; degree <= 2; ++degree)
- // test<2>(n_refinements, degree, true /*triangle*/);
+ for (unsigned int n_refinements = 2; n_refinements <= 4; ++n_refinements)
+ for (unsigned int degree = 1; degree <= 2; ++degree)
+ test<2>(n_refinements, degree, true /*triangle*/);
}
DEAL:0::2 2 4 quad 3
DEAL:0::2 3 4 quad 3
DEAL:0::2 4 4 quad 3
+DEAL:0::2 1 2 tri 3
+DEAL:0::2 2 2 tri 3
+DEAL:0::2 1 3 tri 3
+DEAL:0::2 2 3 tri 3
+DEAL:0::2 1 4 tri 3
+DEAL:0::2 2 4 tri 3
--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2020 - 2022 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+
+/**
+ * Test prolongation with uniformly refined meshes, using the
+ * non-nested infrastructure.
+ *
+ * To compare with mg_transfer_a_05.
+ */
+
+#include <deal.II/base/conditional_ostream.h>
+#include <deal.II/base/function.h>
+#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_simplex_p.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/multigrid/mg_constrained_dofs.h>
+#include <deal.II/multigrid/mg_transfer_global_coarsening.h>
+
+#include "mg_transfer_util.h"
+
+using namespace dealii;
+
+template <int dim>
+class RightHandSideFunction : public Function<dim>
+{
+public:
+ RightHandSideFunction()
+ : Function<dim>(1)
+ {}
+
+ virtual double
+ value(const Point<dim> &p, const unsigned int component = 0) const
+ {
+ (void)component;
+ return p[0];
+ }
+};
+
+template <int dim, typename Number>
+void
+do_test(const FiniteElement<dim> &fe_fine,
+ const FiniteElement<dim> &fe_coarse,
+ const Function<dim, Number> &function)
+{
+ // create coarse grid
+ Triangulation<dim> tria_coarse; // TODO
+ if (fe_coarse.reference_cell().is_simplex())
+ GridGenerator::subdivided_hyper_cube_with_simplices(tria_coarse, 1);
+ else
+ GridGenerator::hyper_cube(tria_coarse);
+ tria_coarse.refine_global();
+
+ // create fine grid
+ Triangulation<dim> tria_fine; // TODO
+
+ if (fe_fine.reference_cell().is_simplex())
+ GridGenerator::subdivided_hyper_cube_with_simplices(tria_fine, 1);
+ else
+ GridGenerator::hyper_cube(tria_fine);
+ tria_fine.refine_global();
+ tria_fine.refine_global();
+
+ // setup dof-handlers
+ DoFHandler<dim> dof_handler_fine(tria_fine);
+ dof_handler_fine.distribute_dofs(fe_fine);
+
+ DoFHandler<dim> dof_handler_coarse(tria_coarse);
+ dof_handler_coarse.distribute_dofs(fe_coarse);
+
+ // setup constraint matrix
+ AffineConstraints<Number> constraint_coarse;
+ constraint_coarse.close();
+
+ AffineConstraints<Number> constraint_fine;
+ constraint_fine.close();
+
+ // setup transfer operator
+ MGTwoLevelTransferNonNested<dim, LinearAlgebra::distributed::Vector<Number>>
+ transfer;
+
+ const auto mapping_fine =
+ fe_fine.reference_cell().template get_default_mapping<dim>(1);
+ const auto mapping_coarse =
+ fe_coarse.reference_cell().template get_default_mapping<dim>(1);
+
+ transfer.reinit(dof_handler_fine,
+ dof_handler_coarse,
+ *mapping_fine,
+ *mapping_coarse,
+ constraint_fine,
+ constraint_coarse);
+
+ test_non_nested_transfer(transfer,
+ dof_handler_fine,
+ dof_handler_coarse,
+ function);
+}
+
+template <int dim, typename Number>
+void
+test(int fe_degree,
+ const Function<dim, Number> &function,
+ const bool do_simplex_mesh)
+{
+ const auto str_fine = std::to_string(fe_degree);
+ const auto str_coarse = std::to_string(fe_degree);
+
+ if ((fe_degree > 0) && (do_simplex_mesh == false))
+ {
+ deallog.push("CG<2>(" + str_fine + ")<->CG<2>(" + str_coarse + ")");
+ do_test<dim, double>(FE_Q<dim>(fe_degree),
+ FE_Q<dim>(fe_degree),
+ function);
+ deallog.pop();
+ }
+
+ if ((fe_degree > 0) && do_simplex_mesh)
+ {
+ deallog.push("CG<2>(" + str_fine + ")<->CG<2>(" + str_coarse + ")");
+ do_test<dim, double>(FE_SimplexP<dim>(fe_degree),
+ FE_SimplexP<dim>(fe_degree),
+ function);
+ deallog.pop();
+ }
+}
+
+int
+main(int argc, char **argv)
+{
+ Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1);
+ MPILogInitAll all;
+
+ deallog.precision(8);
+
+ // Functions::ConstantFunction<2, double> fu(1.);
+ RightHandSideFunction<2> fu;
+
+ for (unsigned int i = 0; i <= 4; ++i)
+ test<2, double>(i, fu, false);
+
+ for (unsigned int i = 0; i <= 2; ++i)
+ test<2, double>(i, fu, true);
+}
--- /dev/null
+
+DEAL:0:CG<2>(1)<->CG<2>(1)::3.0618622
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.50000000 0.0000000 0.50000000 1.0000000 1.0000000 0.0000000 0.50000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.25000000 0.0000000 0.25000000 0.50000000 0.50000000 0.0000000 0.25000000 0.50000000 0.75000000 0.75000000 1.0000000 1.0000000 0.75000000 1.0000000 0.0000000 0.25000000 0.50000000 0.0000000 0.25000000 0.50000000 0.75000000 1.0000000 0.75000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::4.9702238
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.25000000 0.0000000 0.25000000 0.50000000 0.50000000 0.0000000 0.25000000 0.50000000 0.75000000 0.75000000 1.0000000 1.0000000 0.75000000 1.0000000 0.0000000 0.25000000 0.50000000 0.0000000 0.25000000 0.50000000 0.75000000 1.0000000 0.75000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.18750000 1.5000000 0.25000000 2.0000000 2.0625000 2.7500000 0.18750000 1.5000000 2.0625000
+DEAL:0:CG<2>(2)<->CG<2>(2)::5.3560713
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.50000000 0.0000000 0.50000000 0.0000000 0.50000000 0.25000000 0.25000000 0.25000000 1.0000000 1.0000000 1.0000000 0.75000000 0.75000000 0.75000000 0.0000000 0.50000000 0.0000000 0.50000000 0.25000000 0.25000000 1.0000000 1.0000000 0.75000000 0.75000000
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.12500000 0.50000000 0.50000000 0.50000000 0.37500000 0.37500000 0.37500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.75000000 0.75000000 0.75000000 0.62500000 0.62500000 0.62500000 1.0000000 1.0000000 1.0000000 0.87500000 0.87500000 0.87500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000
+DEAL:0:CG<2>(2)<->CG<2>(2)::10.383092
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.12500000 0.50000000 0.50000000 0.50000000 0.37500000 0.37500000 0.37500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.75000000 0.75000000 0.75000000 0.62500000 0.62500000 0.62500000 1.0000000 1.0000000 1.0000000 0.87500000 0.87500000 0.87500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.0000000 0.25000000 0.0000000 0.25000000 0.12500000 0.12500000 0.50000000 0.50000000 0.37500000 0.37500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000 0.75000000 0.75000000 0.62500000 0.62500000 1.0000000 1.0000000 0.87500000 0.87500000
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.93750000 0.0000000 1.1250000 0.0000000 1.8750000 0.78125000 0.93750000 1.5625000 1.5625000 1.8750000 3.1250000 2.3437500 2.8125000 4.6875000 0.0000000 0.93750000 0.0000000 1.8750000 0.78125000 1.5625000 1.5625000 3.1250000 2.3437500 4.6875000
+DEAL:0:CG<2>(3)<->CG<2>(3)::7.6697458
+DEAL:0:CG<2>(3)<->CG<2>(3)::0.0000000 0.50000000 0.0000000 0.50000000 0.0000000 0.0000000 0.50000000 0.50000000 0.13819660 0.36180340 0.13819660 0.36180340 0.13819660 0.36180340 0.13819660 0.36180340 1.0000000 1.0000000 1.0000000 1.0000000 0.63819660 0.86180340 0.63819660 0.86180340 0.63819660 0.86180340 0.63819660 0.86180340 0.0000000 0.50000000 0.0000000 0.0000000 0.50000000 0.50000000 0.13819660 0.36180340 0.13819660 0.36180340 0.13819660 0.36180340 1.0000000 1.0000000 1.0000000 0.63819660 0.86180340 0.63819660 0.86180340 0.63819660 0.86180340
+DEAL:0:CG<2>(3)<->CG<2>(3)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.75000000 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170
+DEAL:0:CG<2>(3)<->CG<2>(3)::15.445755
+DEAL:0:CG<2>(3)<->CG<2>(3)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.75000000 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.0000000 0.25000000 0.0000000 0.0000000 0.25000000 0.25000000 0.069098301 0.18090170 0.069098301 0.18090170 0.069098301 0.18090170 0.50000000 0.50000000 0.50000000 0.31909830 0.43090170 0.31909830 0.43090170 0.31909830 0.43090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170 0.75000000 0.75000000 0.75000000 0.56909830 0.68090170 0.56909830 0.68090170 0.56909830 0.68090170 1.0000000 1.0000000 1.0000000 0.81909830 0.93090170 0.81909830 0.93090170 0.81909830 0.93090170
+DEAL:0:CG<2>(3)<->CG<2>(3)::-0.021093750 0.70312500 -0.023437500 0.78125000 -0.044531250 -0.044531250 1.4843750 1.4843750 0.41641110 0.91952640 0.46267900 1.0216960 0.87909011 1.9412224 0.87909011 1.9412224 1.2867188 1.4296875 2.7164063 2.7164063 1.7523486 2.2554639 1.9470540 2.5060710 3.6994026 4.7615349 3.6994026 4.7615349 -0.021093750 0.70312500 -0.044531250 -0.044531250 1.4843750 1.4843750 0.41641110 0.91952640 0.87909011 1.9412224 0.87909011 1.9412224 1.2867188 2.7164063 2.7164063 1.7523486 2.2554639 3.6994026 4.7615349 3.6994026 4.7615349
+DEAL:0:CG<2>(4)<->CG<2>(4)::9.9861511
+DEAL:0:CG<2>(4)<->CG<2>(4)::0.0000000 0.50000000 0.0000000 0.50000000 0.0000000 0.0000000 0.0000000 0.50000000 0.50000000 0.50000000 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.0000000 0.50000000 0.0000000 0.0000000 0.0000000 0.50000000 0.50000000 0.50000000 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 0.086336582 0.25000000 0.41366342 1.0000000 1.0000000 1.0000000 1.0000000 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342 0.58633658 0.75000000 0.91366342
+DEAL:0:CG<2>(4)<->CG<2>(4)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.75000000 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171
+DEAL:0:CG<2>(4)<->CG<2>(4)::20.810567
+DEAL:0:CG<2>(4)<->CG<2>(4)::0.0000000 0.25000000 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.75000000 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.0000000 0.25000000 0.0000000 0.0000000 0.0000000 0.25000000 0.25000000 0.25000000 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.043168291 0.12500000 0.20683171 0.50000000 0.50000000 0.50000000 0.50000000 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.29316829 0.37500000 0.45683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.75000000 0.75000000 0.75000000 0.75000000 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 0.54316829 0.62500000 0.70683171 1.0000000 1.0000000 1.0000000 1.0000000 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171 0.79316829 0.87500000 0.95683171
+DEAL:0:CG<2>(4)<->CG<2>(4)::-1.9515639e-17 0.85447724 -1.7780916e-17 1.0013652 -2.6888214e-17 -5.2909066e-17 -2.3418767e-17 1.2493373 2.1606744 1.2493373 0.18408253 0.92186504 0.88199239 0.21572703 1.0803372 1.0336103 0.26914839 1.3478655 1.2895674 0.46548041 2.3310746 2.2302506 0.26914839 1.3478655 1.2895674 1.4582719 1.7089545 2.1321498 3.6874601 2.1321498 1.2501574 2.7655951 1.9480673 1.4650644 3.2410116 2.2829476 1.8278642 4.0435965 2.8482832 3.1612114 6.9932239 4.9259816 1.8278642 4.0435965 2.8482832 -6.9388939e-18 0.85447724 -2.6020852e-17 -4.9873300e-17 -2.0816682e-17 1.2493373 2.1606744 1.2493373 0.18408253 0.92186504 0.88199239 0.26914839 1.3478655 1.2895674 0.46548041 2.3310746 2.2302506 0.26914839 1.3478655 1.2895674 1.4582719 2.1321498 3.6874601 2.1321498 1.2501574 2.7655951 1.9480673 1.8278642 4.0435965 2.8482832 3.1612114 6.9932239 4.9259816 1.8278642 4.0435965 2.8482832
+DEAL:0:CG<2>(1)<->CG<2>(1)::3.0618622
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.50000000 0.0000000 1.0000000 0.50000000 0.0000000 1.0000000 0.50000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.25000000 0.0000000 0.50000000 0.25000000 0.0000000 0.75000000 0.50000000 1.0000000 0.75000000 0.50000000 0.25000000 0.0000000 0.25000000 0.0000000 1.0000000 0.75000000 1.0000000 0.50000000 0.75000000 1.0000000 0.25000000 0.50000000 0.75000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::4.9812147
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.0000000 0.25000000 0.0000000 0.50000000 0.25000000 0.0000000 0.75000000 0.50000000 1.0000000 0.75000000 0.50000000 0.25000000 0.0000000 0.25000000 0.0000000 1.0000000 0.75000000 1.0000000 0.50000000 0.75000000 1.0000000 0.25000000 0.50000000 0.75000000 1.0000000
+DEAL:0:CG<2>(1)<->CG<2>(1)::0.12500000 1.3750000 0.25000000 2.2500000 2.0000000 0.25000000 1.8750000 1.6250000 2.7500000
+DEAL:0:CG<2>(2)<->CG<2>(2)::5.3560713
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.50000000 0.0000000 0.25000000 0.25000000 0.0000000 1.0000000 0.50000000 0.75000000 0.75000000 0.50000000 0.0000000 0.25000000 0.25000000 0.0000000 1.0000000 0.50000000 1.0000000 0.75000000 0.75000000 1.0000000 0.25000000 0.50000000 0.75000000 1.0000000
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.50000000 0.25000000 0.37500000 0.37500000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.75000000 0.50000000 0.62500000 0.62500000 0.50000000 1.0000000 0.75000000 0.87500000 0.87500000 0.75000000 0.50000000 0.62500000 0.62500000 0.50000000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.25000000 0.37500000 0.37500000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.37500000 0.37500000 0.25000000 1.0000000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.50000000 0.75000000 0.62500000 0.62500000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.25000000 0.50000000 0.37500000 0.37500000 0.50000000 0.12500000 0.25000000 0.37500000 0.50000000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.62500000 0.75000000 0.87500000 1.0000000 0.62500000 0.62500000 0.75000000
+DEAL:0:CG<2>(2)<->CG<2>(2)::10.451291
+DEAL:0:CG<2>(2)<->CG<2>(2)::0.0000000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.50000000 0.25000000 0.37500000 0.37500000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.75000000 0.50000000 0.62500000 0.62500000 0.50000000 1.0000000 0.75000000 0.87500000 0.87500000 0.75000000 0.50000000 0.62500000 0.62500000 0.50000000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.25000000 0.37500000 0.37500000 0.25000000 0.0000000 0.12500000 0.12500000 0.0000000 0.37500000 0.37500000 0.25000000 1.0000000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.50000000 0.75000000 0.62500000 0.62500000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.25000000 0.50000000 0.37500000 0.37500000 0.50000000 0.12500000 0.25000000 0.37500000 0.50000000 0.75000000 1.0000000 0.87500000 0.87500000 1.0000000 0.62500000 0.75000000 0.87500000 1.0000000 0.62500000 0.62500000 0.75000000
+DEAL:0:CG<2>(2)<->CG<2>(2)::-0.046875000 0.71875000 -0.18750000 0.84375000 1.2500000 0.18750000 1.3906250 0.50000000 2.7187500 3.7500000 2.5000000 -0.14062500 1.2500000 1.2500000 0.18750000 1.2968750 0.53125000 1.4375000 2.9062500 3.7500000 3.5625000 1.0312500 2.5000000 3.7500000 3.5625000