From: Mathias Anselmann Date: Thu, 6 Jun 2019 21:46:40 +0000 (+0200) Subject: Update so that extract_dofs() doesn't depend on dim or spacedim template parameters... X-Git-Tag: v9.2.0-rc1~1436^2~6 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=32e5379561669caac7250114d45fe87572b81044;p=dealii.git Update so that extract_dofs() doesn't depend on dim or spacedim template parameters anymore. Unifying test suite, with the hope to make things easier in the future. --- diff --git a/include/deal.II/dofs/dof_tools.h b/include/deal.II/dofs/dof_tools.h index bc8a88c4d7..5bb814c004 100644 --- a/include/deal.II/dofs/dof_tools.h +++ b/include/deal.II/dofs/dof_tools.h @@ -1351,7 +1351,7 @@ namespace DoFTools * first have to be mapped to the global degrees of freedom, to correspond * with them. */ - template + template void extract_dofs(const DoFHandlerType &dof_handler, const ComponentMask & component_mask, @@ -1381,7 +1381,7 @@ namespace DoFTools * sequential computations of course equals DoFHandler::n_dofs(). The * previous contents of this array are overwritten. */ - template + template void extract_dofs(const DoFHandlerType &dof_handler, const BlockMask & block_mask, diff --git a/source/dofs/dof_tools.cc b/source/dofs/dof_tools.cc index 9607414e56..3e2b4d963e 100644 --- a/source/dofs/dof_tools.cc +++ b/source/dofs/dof_tools.cc @@ -397,7 +397,7 @@ namespace DoFTools - template + template void extract_dofs(const DoFHandlerType &dof, const ComponentMask & component_mask, @@ -444,14 +444,14 @@ namespace DoFTools - template + template void extract_dofs(const DoFHandlerType &dof, const BlockMask & block_mask, std::vector & selected_dofs) { // simply forward to the function that works based on a component mask - extract_dofs( + extract_dofs( dof, dof.get_fe_collection().component_mask(block_mask), selected_dofs); } diff --git a/source/dofs/dof_tools.inst.in b/source/dofs/dof_tools.inst.in index 39bb4fcbbd..bcde5579b4 100644 --- a/source/dofs/dof_tools.inst.in +++ b/source/dofs/dof_tools.inst.in @@ -689,33 +689,25 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : DIMENSIONS) &patch); template void - extract_dofs>( + extract_dofs>( const DoFHandler &, const ComponentMask &, std::vector &); template void - extract_dofs>( + extract_dofs>( const DoFHandler &, const BlockMask &, std::vector &); template void - extract_dofs>( + extract_dofs>( const hp::DoFHandler &, const ComponentMask &, std::vector &); template void - extract_dofs>( + extract_dofs>( const hp::DoFHandler &, const BlockMask &, std::vector &); diff --git a/source/dofs/dof_tools_constraints.cc b/source/dofs/dof_tools_constraints.cc index c97405c778..9c72684871 100644 --- a/source/dofs/dof_tools_constraints.cc +++ b/source/dofs/dof_tools_constraints.cc @@ -3133,7 +3133,7 @@ namespace DoFTools { std::vector mask(coarse_grid.get_fe(0).n_components(), false); mask[coarse_component] = true; - extract_dofs>( + extract_dofs>( coarse_grid, ComponentMask(mask), coarse_dof_is_parameter); } diff --git a/tests/dofs/dof_tools_00a.cc b/tests/dofs/dof_tools_00a.cc index 91c6a1ad69..51f41bfc7c 100644 --- a/tests/dofs/dof_tools_00a.cc +++ b/tests/dofs/dof_tools_00a.cc @@ -16,6 +16,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -23,9 +24,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { const unsigned int n_components = dof_handler.get_fe().n_components(); diff --git a/tests/dofs/dof_tools_01a.cc b/tests/dofs/dof_tools_01a.cc index af2e87f7f6..68cdde951b 100644 --- a/tests/dofs/dof_tools_01a.cc +++ b/tests/dofs/dof_tools_01a.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -26,9 +27,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // create sparsity pattern SparsityPattern sp(dof_handler.n_dofs(), diff --git a/tests/dofs/dof_tools_01a_constraints_false.cc b/tests/dofs/dof_tools_01a_constraints_false.cc index 4b72db5c1c..898f8572e1 100644 --- a/tests/dofs/dof_tools_01a_constraints_false.cc +++ b/tests/dofs/dof_tools_01a_constraints_false.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -28,9 +29,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { AffineConstraints cm; DoFTools::make_hanging_node_constraints(dof_handler, cm); diff --git a/tests/dofs/dof_tools_01a_constraints_true.cc b/tests/dofs/dof_tools_01a_constraints_true.cc index 6103c1350a..537011bd6a 100644 --- a/tests/dofs/dof_tools_01a_constraints_true.cc +++ b/tests/dofs/dof_tools_01a_constraints_true.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -28,9 +29,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { AffineConstraints cm; DoFTools::make_hanging_node_constraints(dof_handler, cm); diff --git a/tests/dofs/dof_tools_01a_subdomain.cc b/tests/dofs/dof_tools_01a_subdomain.cc index 5a5e2d8a3f..fa3ac5d814 100644 --- a/tests/dofs/dof_tools_01a_subdomain.cc +++ b/tests/dofs/dof_tools_01a_subdomain.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // create sparsity pattern SparsityPattern sp(dof_handler.n_dofs(), diff --git a/tests/dofs/dof_tools_01b.cc b/tests/dofs/dof_tools_01b.cc index fd735e23e7..25b7643e05 100644 --- a/tests/dofs/dof_tools_01b.cc +++ b/tests/dofs/dof_tools_01b.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -26,9 +27,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // create sparsity pattern DynamicSparsityPattern sp(dof_handler.n_dofs()); diff --git a/tests/dofs/dof_tools_01c.cc b/tests/dofs/dof_tools_01c.cc index 5bacfc473e..7fb71c48ae 100644 --- a/tests/dofs/dof_tools_01c.cc +++ b/tests/dofs/dof_tools_01c.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -26,9 +27,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // we split up the matrix into // blocks according to the number diff --git a/tests/dofs/dof_tools_01d.cc b/tests/dofs/dof_tools_01d.cc index dd7122bf6c..3751e47b95 100644 --- a/tests/dofs/dof_tools_01d.cc +++ b/tests/dofs/dof_tools_01d.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -26,9 +27,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // we split up the matrix into // blocks according to the number diff --git a/tests/dofs/dof_tools_02a.cc b/tests/dofs/dof_tools_02a.cc index bdf6c4d9ed..ae83f70a34 100644 --- a/tests/dofs/dof_tools_02a.cc +++ b/tests/dofs/dof_tools_02a.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // set up X-shape mask const unsigned int n_components = dof_handler.get_fe().n_components(); diff --git a/tests/dofs/dof_tools_02a_constraints_false.cc b/tests/dofs/dof_tools_02a_constraints_false.cc index b6d0bf8d10..fb072a99e1 100644 --- a/tests/dofs/dof_tools_02a_constraints_false.cc +++ b/tests/dofs/dof_tools_02a_constraints_false.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -29,9 +30,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // set up X-shape mask const unsigned int n_components = dof_handler.get_fe().n_components(); diff --git a/tests/dofs/dof_tools_02a_constraints_true.cc b/tests/dofs/dof_tools_02a_constraints_true.cc index 0aeee7a8db..ac8344f1e4 100644 --- a/tests/dofs/dof_tools_02a_constraints_true.cc +++ b/tests/dofs/dof_tools_02a_constraints_true.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -29,9 +30,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // set up X-shape mask const unsigned int n_components = dof_handler.get_fe().n_components(); diff --git a/tests/dofs/dof_tools_02a_subdomain.cc b/tests/dofs/dof_tools_02a_subdomain.cc index 3728333125..fd9424a37e 100644 --- a/tests/dofs/dof_tools_02a_subdomain.cc +++ b/tests/dofs/dof_tools_02a_subdomain.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -29,9 +30,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // set up X-shape mask const unsigned int n_components = dof_handler.get_fe().n_components(); diff --git a/tests/dofs/dof_tools_02b.cc b/tests/dofs/dof_tools_02b.cc index ef1e9f9180..11451a7ae7 100644 --- a/tests/dofs/dof_tools_02b.cc +++ b/tests/dofs/dof_tools_02b.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // set up X-shape mask const unsigned int n_components = dof_handler.get_fe().n_components(); diff --git a/tests/dofs/dof_tools_02c.cc b/tests/dofs/dof_tools_02c.cc index baf7b7a46f..25fee868fa 100644 --- a/tests/dofs/dof_tools_02c.cc +++ b/tests/dofs/dof_tools_02c.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // set up X-shape mask const unsigned int n_components = dof_handler.get_fe().n_components(); diff --git a/tests/dofs/dof_tools_02d.cc b/tests/dofs/dof_tools_02d.cc index a3fb0247c5..00a862ee70 100644 --- a/tests/dofs/dof_tools_02d.cc +++ b/tests/dofs/dof_tools_02d.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // set up X-shape mask const unsigned int n_components = dof_handler.get_fe().n_components(); diff --git a/tests/dofs/dof_tools_03.cc b/tests/dofs/dof_tools_03.cc index 917d811436..b5adb37e06 100644 --- a/tests/dofs/dof_tools_03.cc +++ b/tests/dofs/dof_tools_03.cc @@ -19,6 +19,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // use a higher output accuracy for this // test. the reason is that many of the diff --git a/tests/dofs/dof_tools_04.cc b/tests/dofs/dof_tools_04.cc index 8bdd81893f..521fcf87df 100644 --- a/tests/dofs/dof_tools_04.cc +++ b/tests/dofs/dof_tools_04.cc @@ -16,15 +16,16 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::extract_hanging_node_constraints -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { const types::global_dof_index n_dofs = dof_handler.n_dofs(); diff --git a/tests/dofs/dof_tools_05.cc b/tests/dofs/dof_tools_05.cc index 4ecce407c2..3bcd8cd1c0 100644 --- a/tests/dofs/dof_tools_05.cc +++ b/tests/dofs/dof_tools_05.cc @@ -16,15 +16,16 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::extract_boundary_dofs -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { std::vector component_select(dof_handler.get_fe().n_components(), true); std::vector boundary_dofs(dof_handler.n_dofs()); diff --git a/tests/dofs/dof_tools_06.cc b/tests/dofs/dof_tools_06.cc index 7e2461b11e..55a2b8dd1d 100644 --- a/tests/dofs/dof_tools_06.cc +++ b/tests/dofs/dof_tools_06.cc @@ -16,15 +16,16 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::extract_subdomain_dofs -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { std::vector dofs(dof_handler.n_dofs()); diff --git a/tests/dofs/dof_tools_07.cc b/tests/dofs/dof_tools_07.cc index 817902192c..3640446125 100644 --- a/tests/dofs/dof_tools_07.cc +++ b/tests/dofs/dof_tools_07.cc @@ -16,15 +16,16 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::count_dofs_per_component -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { std::vector n_dofs( dof_handler.get_fe().n_components()); diff --git a/tests/dofs/dof_tools_08.cc b/tests/dofs/dof_tools_08.cc index 1c76f6caa2..5ba5e6cf2b 100644 --- a/tests/dofs/dof_tools_08.cc +++ b/tests/dofs/dof_tools_08.cc @@ -16,6 +16,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::map_dof_to_boundary_indices(const DoFHandler &, @@ -23,9 +24,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { std::vector map(dof_handler.n_dofs()); DoFTools::map_dof_to_boundary_indices(dof_handler, map); diff --git a/tests/dofs/dof_tools_09.cc b/tests/dofs/dof_tools_09.cc index fdf6f57652..679433b0d3 100644 --- a/tests/dofs/dof_tools_09.cc +++ b/tests/dofs/dof_tools_09.cc @@ -16,6 +16,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::map_dof_to_boundary_indices(const DoFHandler &, @@ -24,9 +25,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { std::vector map(dof_handler.n_dofs()); std::set boundary_ids; diff --git a/tests/dofs/dof_tools_10.cc b/tests/dofs/dof_tools_10.cc index f601a81193..2546540474 100644 --- a/tests/dofs/dof_tools_10.cc +++ b/tests/dofs/dof_tools_10.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::map_dofs_to_support_points (const Mapping &, @@ -26,17 +27,17 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // don't check if fe has no support // points if (dof_handler.get_fe().get_unit_support_points().size() == 0) return; - std::vector> map(dof_handler.n_dofs()); - MappingQ mapping(2); + std::vector> map(dof_handler.n_dofs()); + MappingQ mapping(2); DoFTools::map_dofs_to_support_points(mapping, dof_handler, map); diff --git a/tests/dofs/dof_tools_12.cc b/tests/dofs/dof_tools_12.cc index fa922baac2..a00c23268b 100644 --- a/tests/dofs/dof_tools_12.cc +++ b/tests/dofs/dof_tools_12.cc @@ -16,30 +16,27 @@ #include "../tests.h" #include "dof_tools_common.h" +//#include "dof_tools_fake_hp.inst.in" // check // DoFTools::extract_dofs -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { std::vector selected_dofs(dof_handler.n_dofs()); std::vector mask(dof_handler.get_fe().n_components(), false); // only select first component mask[0] = true; - DoFTools::extract_dofs>(dof_handler, - ComponentMask(mask), - selected_dofs); + DoFTools::extract_dofs(dof_handler, ComponentMask(mask), selected_dofs); output_bool_vector(selected_dofs); // also select last component mask.back() = true; - DoFTools::extract_dofs>(dof_handler, - ComponentMask(mask), - selected_dofs); + DoFTools::extract_dofs(dof_handler, ComponentMask(mask), selected_dofs); output_bool_vector(selected_dofs); } diff --git a/tests/dofs/dof_tools_12.output b/tests/dofs/dof_tools_12.output index c5c9fe4fde..032dd3bd33 100644 --- a/tests/dofs/dof_tools_12.output +++ b/tests/dofs/dof_tools_12.output @@ -2,192 +2,320 @@ DEAL::Checking Q1 in 1d: DEAL::11111 DEAL::11111 +DEAL::11111 +DEAL::11111 DEAL::Checking Q1 in 2d: DEAL::111111111111111111 DEAL::111111111111111111 +DEAL::111111111111111111 +DEAL::111111111111111111 DEAL::Checking Q1 in 3d: DEAL::111111111111111111111111111111111111111111111111111111111111 DEAL::111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111 DEAL::Checking Q2 in 1d: DEAL::111111111 DEAL::111111111 +DEAL::111111111 +DEAL::111111111 DEAL::Checking Q2 in 2d: DEAL::111111111111111111111111111111111111111111111111111111111 DEAL::111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111 DEAL::Checking Q2 in 3d: DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking Q3 in 1d: DEAL::1111111111111 DEAL::1111111111111 +DEAL::1111111111111 +DEAL::1111111111111 DEAL::Checking Q3 in 2d: DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking Q3 in 3d: DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking DGQ0 in 1d: DEAL::1111 DEAL::1111 +DEAL::1111 +DEAL::1111 DEAL::Checking DGQ0 in 2d: DEAL::1111111111 DEAL::1111111111 +DEAL::1111111111 +DEAL::1111111111 DEAL::Checking DGQ0 in 3d: DEAL::1111111111111111111111 DEAL::1111111111111111111111 +DEAL::1111111111111111111111 +DEAL::1111111111111111111111 DEAL::Checking DGQ1 in 1d: DEAL::11111111 DEAL::11111111 +DEAL::11111111 +DEAL::11111111 DEAL::Checking DGQ1 in 2d: DEAL::1111111111111111111111111111111111111111 DEAL::1111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111 DEAL::Checking DGQ1 in 3d: DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking DGQ3 in 1d: DEAL::1111111111111111 DEAL::1111111111111111 +DEAL::1111111111111111 +DEAL::1111111111111111 DEAL::Checking DGQ3 in 2d: DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking DGQ3 in 3d: DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking DGP0 in 1d: DEAL::1111 DEAL::1111 +DEAL::1111 +DEAL::1111 DEAL::Checking DGP0 in 2d: DEAL::1111111111 DEAL::1111111111 +DEAL::1111111111 +DEAL::1111111111 DEAL::Checking DGP0 in 3d: DEAL::1111111111111111111111 DEAL::1111111111111111111111 +DEAL::1111111111111111111111 +DEAL::1111111111111111111111 DEAL::Checking DGP1 in 1d: DEAL::11111111 DEAL::11111111 +DEAL::11111111 +DEAL::11111111 DEAL::Checking DGP1 in 2d: DEAL::111111111111111111111111111111 DEAL::111111111111111111111111111111 +DEAL::111111111111111111111111111111 +DEAL::111111111111111111111111111111 DEAL::Checking DGP1 in 3d: DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking DGP3 in 1d: DEAL::1111111111111111 DEAL::1111111111111111 +DEAL::1111111111111111 +DEAL::1111111111111111 DEAL::Checking DGP3 in 2d: DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking DGP3 in 3d: DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking Nedelec0 in 2d: DEAL::11111111111111111111111111111 DEAL::11111111111111111111111111111 +DEAL::11111111111111111111111111111 +DEAL::11111111111111111111111111111 DEAL::Checking Nedelec0 in 3d: DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking RaviartThomas0 in 2d: DEAL::11111111111111111111111111111 DEAL::11111111111111111111111111111 +DEAL::11111111111111111111111111111 +DEAL::11111111111111111111111111111 DEAL::Checking RaviartThomas1 in 2d: DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking RaviartThomas2 in 2d: DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking RaviartThomasNodal0 in 2d: DEAL::11111111111111111111111111111 DEAL::11111111111111111111111111111 +DEAL::11111111111111111111111111111 +DEAL::11111111111111111111111111111 DEAL::Checking RaviartThomasNodal1 in 2d: DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking RaviartThomasNodal2 in 2d: DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking RaviartThomasNodal0 in 3d: DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking RaviartThomasNodal1 in 3d: DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking RaviartThomasNodal2 in 3d: DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking FE_Q<1>(1)3 in 1d: DEAL::100100100100100 DEAL::101101101101101 +DEAL::100100100100100 +DEAL::101101101101101 DEAL::Checking FE_DGQ<1>(2)2 in 1d: DEAL::111000111000111000111000 DEAL::111111111111111111111111 +DEAL::111000111000111000111000 +DEAL::111111111111111111111111 DEAL::Checking FE_DGP<1>(3)1 in 1d: DEAL::1111111111111111 DEAL::1111111111111111 +DEAL::1111111111111111 +DEAL::1111111111111111 DEAL::Checking FE_Q<2>(1)3 in 2d: DEAL::100100100100100100100100100100100100100100100100100100 DEAL::101101101101101101101101101101101101101101101101101101 +DEAL::100100100100100100100100100100100100100100100100100100 +DEAL::101101101101101101101101101101101101101101101101101101 DEAL::Checking FE_DGQ<2>(2)2 in 2d: DEAL::111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000 DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000111111111000000000 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking FE_DGP<2>(3)1 in 2d: DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking FE_Q<3>(1)3 in 3d: DEAL::100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100 DEAL::101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101 +DEAL::100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100 +DEAL::101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101101 DEAL::Checking FE_DGQ<3>(2)2 in 3d: DEAL::111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000 DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000111111111111111111111111111000000000000000000000000000 +DEAL::111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking FE_DGP<3>(3)1 in 3d: DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 +DEAL::11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 DEAL::Checking FE_Q<1>(1)3FE_DGQ<1>(2)2 in 1d: DEAL::100100000000100000000100000000100000000 DEAL::100100000111100000111100000111100000111 +DEAL::100100000000100000000100000000100000000 +DEAL::100100000111100000111100000111100000111 DEAL::Checking FE_DGQ<1>(2)2FE_DGP<1>(3)1 in 1d: DEAL::1110000000111000000011100000001110000000 DEAL::1110001111111000111111100011111110001111 +DEAL::1110000000111000000011100000001110000000 +DEAL::1110001111111000111111100011111110001111 DEAL::Checking FE_DGP<1>(3)1FE_DGQ<1>(2)2 in 1d: DEAL::1111000000111100000011110000001111000000 DEAL::1111000111111100011111110001111111000111 +DEAL::1111000000111100000011110000001111000000 +DEAL::1111000111111100011111110001111111000111 DEAL::Checking FE_Q<2>(1)3FE_DGQ<2>(2)2 in 2d: DEAL::100100100100000000000000000000100100000000000000000000100100100100000000000000000000100100000000000000000000100000000000000000000000000000000000000100100000000000000000000100100000000000000000000100000000000000000000000000000000000000 DEAL::100100100100000000000111111111100100000000000111111111100100100100000000000111111111100100000000000111111111100000000000111111111000000000111111111100100000000000111111111100100000000000111111111100000000000111111111000000000111111111 +DEAL::100100100100000000000000000000100100000000000000000000100100100100000000000000000000100100000000000000000000100000000000000000000000000000000000000100100000000000000000000100100000000000000000000100000000000000000000000000000000000000 +DEAL::100100100100000000000111111111100100000000000111111111100100100100000000000111111111100100000000000111111111100000000000111111111000000000111111111100100000000000111111111100100000000000111111111100000000000111111111000000000111111111 DEAL::Checking FE_DGQ<2>(2)2FE_DGP<2>(3)1 in 2d: DEAL::1111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000 DEAL::1111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111 +DEAL::1111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000111111111000000000000000000011111111100000000000000000001111111110000000000000000000 +DEAL::1111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111 DEAL::Checking FE_DGP<2>(3)1FE_DGQ<2>(2)2 in 2d: DEAL::1111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000 DEAL::1111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111 +DEAL::1111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000111111111100000000000000000011111111110000000000000000001111111111000000000000000000 +DEAL::1111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111111111111100000000011111111111111111110000000001111111111111111111000000000111111111 DEAL::Checking FE_Q<1>(1)3FE_DGP<1>(3)1FE_Q<1>(1)3 in 1d: DEAL::1000001000000000100000000010000000001000000000 DEAL::1000011000010000100001000010000100001000010000 +DEAL::1000001000000000100000000010000000001000000000 +DEAL::1000011000010000100001000010000100001000010000 DEAL::Checking FE_DGQ<1>(2)2FE_DGQ<1>(2)2FE_Q<1>(3)3 in 1d: DEAL::000000111000000000000000000111000000000000000000111000000000000000000111000000000000000 DEAL::001001111000000000000011001111000000000000011001111000000000000011001111000000000000011 +DEAL::000000111000000000000000000111000000000000000000111000000000000000000111000000000000000 +DEAL::001001111000000000000011001111000000000000011001111000000000000011001111000000000000011 DEAL::Checking FE_DGP<1>(3)1FE_DGP<1>(3)1FE_Q<1>(2)3 in 1d: DEAL::00000011110000000000111100000000001111000000000011110000000 DEAL::00100111110000001001111100000010011111000000100111110000001 +DEAL::00000011110000000000111100000000001111000000000011110000000 +DEAL::00100111110000001001111100000010011111000000100111110000001 DEAL::Checking FE_Q<2>(1)3FE_DGP<2>(3)1FE_Q<2>(1)3 in 2d: DEAL::1000001000001000001000000000000000100000100000000000000010000010000010000010000000000000001000001000000000000000100000000000000000000000001000001000000000000000100000100000000000000010000000000000000000000000 DEAL::1000011000011000011000010000000000100001100001000000000010000110000110000110000100000000001000011000010000000000100001000000000000000000001000011000010000000000100001100001000000000010000100000000000000000000 +DEAL::1000001000001000001000000000000000100000100000000000000010000010000010000010000000000000001000001000000000000000100000000000000000000000001000001000000000000000100000100000000000000010000000000000000000000000 +DEAL::1000011000011000011000010000000000100001100001000000000010000110000110000110000100000000001000011000010000000000100001000000000000000000001000011000010000000000100001100001000000000010000100000000000000000000 DEAL::Checking FE_DGQ<2>(2)2FE_DGQ<2>(2)2FE_Q<2>(3)3 in 2d: DEAL::000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000 DEAL::001001001001000011000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001001001001000011000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001000011000011000011111111111000000000000000000000000000000000001111000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001000011000011111111111000000000000000000000000000000000001111000011000011111111111000000000000000000000000000000000001111 +DEAL::000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000000000000000111111111000000000000000000000000000000000000000 +DEAL::001001001001000011000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001001001001000011000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001000011000011000011111111111000000000000000000000000000000000001111000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001001000011000011000011111111111000000000000000000000000000000000001111001000011000011111111111000000000000000000000000000000000001111000011000011111111111000000000000000000000000000000000001111 DEAL::Checking FE_DGP<2>(3)1FE_DGP<2>(3)1FE_Q<2>(2)3 in 2d: DEAL::00000000000000000000000011111111110000000000000000000000000000111111111100000000000000000000000000000000000001111111111000000000000000000000000000011111111110000000000000000000000000111111111100000000000000000001111111111000000000000000000000000000011111111110000000000000000000000000000111111111100000000000000000000001111111111000000000000000000011111111110000000000000 DEAL::00100100100100100100100111111111110000000000001001001001001001111111111100000000000010010010010010010010010011111111111000000000000100100100100100111111111110000000000001001001001001111111111100000000000010010011111111111000000000000100100100100100111111111110000000000001001001001001001111111111100000000000010010010011111111111000000000000100100111111111110000000000001 +DEAL::00000000000000000000000011111111110000000000000000000000000000111111111100000000000000000000000000000000000001111111111000000000000000000000000000011111111110000000000000000000000000111111111100000000000000000001111111111000000000000000000000000000011111111110000000000000000000000000000111111111100000000000000000000001111111111000000000000000000011111111110000000000000 +DEAL::00100100100100100100100111111111110000000000001001001001001001111111111100000000000010010010010010010010010011111111111000000000000100100100100100111111111110000000000001001001001001111111111100000000000010010011111111111000000000000100100100100100111111111110000000000001001001001001001111111111100000000000010010010011111111111000000000000100100111111111110000000000001 DEAL::Checking FE_DGQ<3>(1)3FE_DGP<3>(3)1FE_Q<3>(1)3 in 3d: DEAL::00000000000000000000000011111111000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000011111111000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000011111111000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000000011111111000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000011111111000000000000000000000000000000000000 DEAL::00100100100100100100100111111111000000000000000000000000000000000000001001001001111111110000000000000000000000000000000000000010010010010010011111111100000000000000000000000000000000000000100100111111111000000000000000000000000000000000000001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000100100100100100100100111111111000000000000000000000000000000000000001001001001111111110000000000000000000000000000000000000010010011111111100000000000000000000000000000000000000111111111000000000000000000000000000000000000001001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000111111111000000000000000000000000000000000000111111110000000000000000000000000000000000000010010010011111111100000000000000000000000000000000000000100100100111111111000000000000000000000000000000000000001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000100111111111000000000000000000000000000000000000001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000011111111000000000000000000000000000000000000 -DEAL::Checking (FESystem<2>(FE_Q<2>(1),3))3FE_DGQ<2>(0)1FE_Q<2>(1)3 in 2d: +DEAL::00000000000000000000000011111111000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000011111111000000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000011111111000000000000000000000000000000000000111111110000000000000000000000000000000000000000000000001111111100000000000000000000000000000000000000000000000011111111000000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000000000011111111000000000000000000000000000000000000000111111110000000000000000000000000000000000000001111111100000000000000000000000000000000000011111111000000000000000000000000000000000000 +DEAL::00100100100100100100100111111111000000000000000000000000000000000000001001001001111111110000000000000000000000000000000000000010010010010010011111111100000000000000000000000000000000000000100100111111111000000000000000000000000000000000000001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000100100100100100100100111111111000000000000000000000000000000000000001001001001111111110000000000000000000000000000000000000010010011111111100000000000000000000000000000000000000111111111000000000000000000000000000000000000001001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000111111111000000000000000000000000000000000000111111110000000000000000000000000000000000000010010010011111111100000000000000000000000000000000000000100100100111111111000000000000000000000000000000000000001001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000000100111111111000000000000000000000000000000000000001111111110000000000000000000000000000000000000011111111100000000000000000000000000000000000011111111000000000000000000000000000000000000 +DEAL::Checking (FESystem<2>(FE_Q<2>(1), 3))3FE_DGQ<2>(0)1FE_Q<2>(1)3 in 2d: DEAL::1000000000001000000000001000000000001000000000000100000000000100000000000010000000000010000000000010000000000010000000000001000000000001000000000000100000000000001000000000001000000000000100000000000100000000000010000000000000 DEAL::1000000000011000000000011000000000011000000000010100000000001100000000001010000000000110000000000110000000000110000000000101000000000011000000000010100000000001001000000000011000000000010100000000001100000000001010000000000100 -DEAL::Checking FE_DGQ<2>(3)1FESystem<2>(FE_DGQ<2>(0),3)1FESystem<2>(FE_Q<2>(2),1, FE_DGQ<2>(0),1)2 in 2d: +DEAL::1000000000001000000000001000000000001000000000000100000000000100000000000010000000000010000000000010000000000010000000000001000000000001000000000000100000000000001000000000001000000000000100000000000100000000000010000000000000 +DEAL::1000000000011000000000011000000000011000000000010100000000001100000000001010000000000110000000000110000000000110000000000101000000000011000000000010100000000001001000000000011000000000010100000000001100000000001010000000000100 +DEAL::Checking FE_DGQ<2>(3)1FESystem<2>(FE_DGQ<2>(0), 3)1FESystem<2>(FE_Q<2>(2), 1, FE_DGQ<2>(0), 1)2 in 2d: +DEAL::000000000000000011111111111111110000000000000000011111111111111110000000000000000000000011111111111111110000000000000000011111111111111110000000000000001111111111111111000000000001111111111111111000000000000000001111111111111111000000000000000001111111111111111000000000000011111111111111110000000000011111111111111110000000 +DEAL::000000000000000011111111111111110000001000000000011111111111111110000001000000000000000011111111111111110000001000000000011111111111111110000001000000001111111111111111000000100001111111111111111000000100000000001111111111111111000000100000000001111111111111111000000100000011111111111111110000001000011111111111111110000001 DEAL::000000000000000011111111111111110000000000000000011111111111111110000000000000000000000011111111111111110000000000000000011111111111111110000000000000001111111111111111000000000001111111111111111000000000000000001111111111111111000000000000000001111111111111111000000000000011111111111111110000000000011111111111111110000000 DEAL::000000000000000011111111111111110000001000000000011111111111111110000001000000000000000011111111111111110000001000000000011111111111111110000001000000001111111111111111000000100001111111111111111000000100000000001111111111111111000000100000000001111111111111111000000100000011111111111111110000001000011111111111111110000001 DEAL::Checking FE_DGQ<2>(3)1FE_Nedelec<2>(0)2 in 2d: DEAL::00000000111111111111111100000011111111111111110000000011111111111111110000001111111111111111000000111111111111111100001111111111111111000000111111111111111100000011111111111111110000111111111111111100001111111111111111 DEAL::01010101111111111111111101010111111111111111110101010111111111111111110101011111111111111111010101111111111111111101011111111111111111010101111111111111111101010111111111111111110101111111111111111101011111111111111111 -DEAL::Checking FE_Nedelec<2>(0)1FESystem<2>(FE_DGQ<2>(1),2)1FESystem<2>(FE_Q<2>(2),1, FE_Nedelec<2>(0),2)2 in 2d: +DEAL::00000000111111111111111100000011111111111111110000000011111111111111110000001111111111111111000000111111111111111100001111111111111111000000111111111111111100000011111111111111110000111111111111111100001111111111111111 +DEAL::01010101111111111111111101010111111111111111110101010111111111111111110101011111111111111111010101111111111111111101011111111111111111010101111111111111111101010111111111111111110101111111111111111101011111111111111111 +DEAL::Checking FE_Nedelec<2>(0)1FESystem<2>(FE_DGQ<2>(1), 2)1FESystem<2>(FE_Q<2>(2), 1, FE_Nedelec<2>(0), 2)2 in 2d: +DEAL::000000001000000100000010000001000000000000000000001000000100000010000000000000000000000001000000100000010000001000000000000000000001000000100000010000000000000000001000000100000010000000000000000100000010000000000000000000010000001000000100000000000000000000100000010000001000000000000000000100000010000000000000000100000010000000000000000 +DEAL::000000001000001100000110000011000001000000000000001000001100000110000010000000000000000001000001100000110000011000001000000000000001000001100000110000010000000000001000001100000110000010000000000100000110000010000000000000010000011000001100000100000000000000100000110000011000001000000000000100000110000010000000000100000110000010000000000 DEAL::000000001000000100000010000001000000000000000000001000000100000010000000000000000000000001000000100000010000001000000000000000000001000000100000010000000000000000001000000100000010000000000000000100000010000000000000000000010000001000000100000000000000000000100000010000001000000000000000000100000010000000000000000100000010000000000000000 DEAL::000000001000001100000110000011000001000000000000001000001100000110000010000000000000000001000001100000110000011000001000000000000001000001100000110000010000000000001000001100000110000010000000000100000110000010000000000000010000011000001100000100000000000000100000110000011000001000000000000100000110000010000000000100000110000010000000000 diff --git a/tests/dofs/dof_tools_12a.cc b/tests/dofs/dof_tools_12a.cc index bb25d2ae63..cc95e1c917 100644 --- a/tests/dofs/dof_tools_12a.cc +++ b/tests/dofs/dof_tools_12a.cc @@ -12,31 +12,7 @@ // the top level directory of deal.II. // // --------------------------------------------------------------------- -#include - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include - -#include "../tests.h" +#include "dof_tools_common_parallel.h" // check // DoFTools::extract_dofs as in dof_tools_12 in parallel for fewer elements @@ -45,16 +21,7 @@ // extracted vector of the global DoF, which has to be mapped with the locally // owned IndexSet first. -void -output_bool_vector(std::vector &v) -{ - for (unsigned int i = 0; i < v.size(); ++i) - deallog << (v[i] ? '1' : '0'); - deallog << std::endl; -} - - -template +template void check_this(const DoFHandlerType &dof_handler) { @@ -63,184 +30,11 @@ check_this(const DoFHandlerType &dof_handler) // only select first component mask[0] = true; - DoFTools::extract_dofs(dof_handler, - ComponentMask(mask), - selected_dofs); + DoFTools::extract_dofs(dof_handler, ComponentMask(mask), selected_dofs); output_bool_vector(selected_dofs); // also select last component mask.back() = true; - DoFTools::extract_dofs(dof_handler, - ComponentMask(mask), - selected_dofs); + DoFTools::extract_dofs(dof_handler, ComponentMask(mask), selected_dofs); output_bool_vector(selected_dofs); } - - -template -void -check(const FiniteElement &fe, const std::string &name) -{ - deallog << "Checking " << name << " in " << dim << "d:" << std::endl; - - // create tria and dofhandler - // objects. set different boundary - // and sub-domain ids - parallel::distributed::Triangulation tria(MPI_COMM_WORLD); - GridGenerator::hyper_cube(tria, 0., 1.); - tria.refine_global(1); - for (unsigned int ref = 0; ref < 2; ++ref) - { - for (auto &cell : tria.active_cell_iterators()) - if (cell->is_locally_owned() && cell->center()(0) < .5 && - cell->center()(1) < .5) - cell->set_refine_flag(); - tria.execute_coarsening_and_refinement(); - } - - // setup DoFHandler - DoFHandler dof_handler(tria); - dof_handler.distribute_dofs(fe); - - // setup hp DoFHandler - hp::FECollection fe_collection(fe); - hp::DoFHandler hp_dof_handler(tria); - hp_dof_handler.distribute_dofs(fe_collection); - - check_this>(dof_handler); - check_this>(hp_dof_handler); -} - - -#define CHECK(EL, deg, dim) \ - { \ - FE_##EL EL(deg); \ - check(EL, #EL #deg); \ - } - -#define CHECK_SYS1(sub1, N1, dim) \ - { \ - FESystem q(sub1, N1); \ - check(q, #sub1 #N1); \ - } - -#define CHECK_SYS2(sub1, N1, sub2, N2, dim) \ - { \ - FESystem q(sub1, N1, sub2, N2); \ - check(q, #sub1 #N1 #sub2 #N2); \ - } - -#define CHECK_SYS3(sub1, N1, sub2, N2, sub3, N3, dim) \ - { \ - FESystem q(sub1, N1, sub2, N2, sub3, N3); \ - check(q, #sub1 #N1 #sub2 #N2 #sub3 #N3); \ - } - -#define CHECK_ALL(EL, deg) \ - { \ - CHECK(EL, deg, 2); \ - CHECK(EL, deg, 3); \ - } - - -int -main(int argc, char **argv) -{ - try - { - Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1); - MPILogInitAll logfile; - - CHECK_ALL(Q, 1) - CHECK_ALL(Q, 2) - CHECK_ALL(Q, 3) - - CHECK_ALL(DGQ, 0) - CHECK_ALL(DGQ, 1) - CHECK_ALL(DGQ, 3) - - CHECK_ALL(DGP, 0) - CHECK_ALL(DGP, 1) - CHECK_ALL(DGP, 3) - - CHECK(Nedelec, 0, 2) - CHECK(Nedelec, 0, 3) - - CHECK(RaviartThomas, 0, 2) - CHECK(RaviartThomas, 1, 2) - CHECK(RaviartThomas, 2, 2) - - CHECK(RaviartThomasNodal, 0, 2) - CHECK(RaviartThomasNodal, 1, 2) - CHECK(RaviartThomasNodal, 2, 2) - CHECK(RaviartThomasNodal, 0, 3) - CHECK(RaviartThomasNodal, 1, 3) - CHECK(RaviartThomasNodal, 2, 3) - - CHECK_SYS1(FE_Q<2>(1), 3, 2) - CHECK_SYS1(FE_DGQ<2>(2), 2, 2) - CHECK_SYS1(FE_DGP<2>(3), 1, 2) - - CHECK_SYS1(FE_Q<3>(1), 3, 3) - CHECK_SYS1(FE_DGQ<3>(2), 2, 3) - CHECK_SYS1(FE_DGP<3>(3), 1, 3) - - CHECK_SYS2(FE_Q<2>(1), 3, FE_DGQ<2>(2), 2, 2) - CHECK_SYS2(FE_DGQ<2>(2), 2, FE_DGP<2>(3), 1, 2) - CHECK_SYS2(FE_DGP<2>(3), 1, FE_DGQ<2>(2), 2, 2) - - CHECK_SYS3(FE_Q<2>(1), 3, FE_DGP<2>(3), 1, FE_Q<2>(1), 3, 2) - CHECK_SYS3(FE_DGQ<2>(2), 2, FE_DGQ<2>(2), 2, FE_Q<2>(3), 3, 2) - CHECK_SYS3(FE_DGP<2>(3), 1, FE_DGP<2>(3), 1, FE_Q<2>(2), 3, 2) - - CHECK_SYS3(FE_DGQ<3>(1), 3, FE_DGP<3>(3), 1, FE_Q<3>(1), 3, 3) - - // systems of systems - CHECK_SYS3( - (FESystem<2>(FE_Q<2>(1), 3)), 3, FE_DGQ<2>(0), 1, FE_Q<2>(1), 3, 2) - CHECK_SYS3(FE_DGQ<2>(3), - 1, - FESystem<2>(FE_DGQ<2>(0), 3), - 1, - FESystem<2>(FE_Q<2>(2), 1, FE_DGQ<2>(0), 1), - 2, - 2) - - // systems with Nedelec elements - CHECK_SYS2(FE_DGQ<2>(3), 1, FE_Nedelec<2>(0), 2, 2) - CHECK_SYS3(FE_Nedelec<2>(0), - 1, - FESystem<2>(FE_DGQ<2>(1), 2), - 1, - FESystem<2>(FE_Q<2>(2), 1, FE_Nedelec<2>(0), 2), - 2, - 2) - - return 0; - } - catch (std::exception &exc) - { - deallog << std::endl - << std::endl - << "----------------------------------------------------" - << std::endl; - deallog << "Exception on processing: " << std::endl - << exc.what() << std::endl - << "Aborting!" << std::endl - << "----------------------------------------------------" - << std::endl; - return 1; - } - catch (...) - { - deallog << std::endl - << std::endl - << "----------------------------------------------------" - << std::endl; - deallog << "Unknown exception!" << std::endl - << "Aborting!" << std::endl - << "----------------------------------------------------" - << std::endl; - return 1; - }; -} diff --git a/tests/dofs/dof_tools_13.cc b/tests/dofs/dof_tools_13.cc index 4234983609..a7dd90d96c 100644 --- a/tests/dofs/dof_tools_13.cc +++ b/tests/dofs/dof_tools_13.cc @@ -18,15 +18,16 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::distribute_cell_to_dof_vector -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // this doesn't make much sense if // the element is not primitive diff --git a/tests/dofs/dof_tools_13a.cc b/tests/dofs/dof_tools_13a.cc index 3d797bf78f..816094bfc9 100644 --- a/tests/dofs/dof_tools_13a.cc +++ b/tests/dofs/dof_tools_13a.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::distribute_cell_to_dof_vector @@ -30,9 +31,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // this doesn't make much sense if // the element is not primitive @@ -56,8 +57,9 @@ check_this(const DoFHandler &dof_handler) std::vector component_mask(dof_handler.get_fe().n_components(), false); component_mask[0] = true; - DoFTools::extract_dofs>( - dof_handler, ComponentMask(component_mask), component_dofs); + DoFTools::extract_dofs(dof_handler, + ComponentMask(component_mask), + component_dofs); for (unsigned int i = 0; i < dof_data.size(); ++i) if (component_dofs[i] == true) @@ -90,8 +92,9 @@ check_this(const DoFHandler &dof_handler) std::vector component_mask(dof_handler.get_fe().n_components(), false); component_mask.back() = true; - DoFTools::extract_dofs>( - dof_handler, ComponentMask(component_mask), component_dofs); + DoFTools::extract_dofs(dof_handler, + ComponentMask(component_mask), + component_dofs); for (unsigned int i = 0; i < dof_data.size(); ++i) if (component_dofs[i] == true) dof_data(i) = i + 1; diff --git a/tests/dofs/dof_tools_14.cc b/tests/dofs/dof_tools_14.cc index 692abc52dd..b377c73728 100644 --- a/tests/dofs/dof_tools_14.cc +++ b/tests/dofs/dof_tools_14.cc @@ -18,21 +18,22 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::count_boundary_dofs -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // no other args deallog << dof_handler.n_boundary_dofs() << std::endl; // with std::map - std::map *> fm; + std::map *> fm; fm[0] = nullptr; deallog << dof_handler.n_boundary_dofs(fm) << std::endl; diff --git a/tests/dofs/dof_tools_15a.cc b/tests/dofs/dof_tools_15a.cc index be6046033c..8f0b45ba35 100644 --- a/tests/dofs/dof_tools_15a.cc +++ b/tests/dofs/dof_tools_15a.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // test doesn't make much sense if // no boundary dofs exist diff --git a/tests/dofs/dof_tools_15b.cc b/tests/dofs/dof_tools_15b.cc index fdf31c31a2..baa17d59f2 100644 --- a/tests/dofs/dof_tools_15b.cc +++ b/tests/dofs/dof_tools_15b.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // test doesn't make much sense if // no boundary dofs exist diff --git a/tests/dofs/dof_tools_15c.cc b/tests/dofs/dof_tools_15c.cc index a0dcd5760c..ad23a41684 100644 --- a/tests/dofs/dof_tools_15c.cc +++ b/tests/dofs/dof_tools_15c.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // test doesn't make much sense if // no boundary dofs exist diff --git a/tests/dofs/dof_tools_15d.cc b/tests/dofs/dof_tools_15d.cc index 0a31082106..cfbc953fd1 100644 --- a/tests/dofs/dof_tools_15d.cc +++ b/tests/dofs/dof_tools_15d.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -27,9 +28,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // test doesn't make much sense if // no boundary dofs exist diff --git a/tests/dofs/dof_tools_16a.cc b/tests/dofs/dof_tools_16a.cc index dccd3432ee..70cc3c2d21 100644 --- a/tests/dofs/dof_tools_16a.cc +++ b/tests/dofs/dof_tools_16a.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -29,9 +30,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // test doesn't make much sense if // no boundary dofs exist @@ -44,7 +45,7 @@ check_this(const DoFHandler &dof_handler) DoFTools::map_dof_to_boundary_indices(dof_handler, set, map); // create sparsity pattern - std::map *> boundary_ids; + std::map *> boundary_ids; boundary_ids[0] = nullptr; SparsityPattern sp(dof_handler.n_boundary_dofs(boundary_ids), dof_handler.max_couplings_between_dofs()); diff --git a/tests/dofs/dof_tools_16b.cc b/tests/dofs/dof_tools_16b.cc index 2ff74a827c..6c93ba9dc0 100644 --- a/tests/dofs/dof_tools_16b.cc +++ b/tests/dofs/dof_tools_16b.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -29,9 +30,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // test doesn't make much sense if // no boundary dofs exist @@ -44,7 +45,7 @@ check_this(const DoFHandler &dof_handler) DoFTools::map_dof_to_boundary_indices(dof_handler, set, map); // create sparsity pattern - std::map *> boundary_ids; + std::map *> boundary_ids; boundary_ids[0] = nullptr; DynamicSparsityPattern sp(dof_handler.n_boundary_dofs(boundary_ids)); DoFTools::make_boundary_sparsity_pattern(dof_handler, boundary_ids, map, sp); diff --git a/tests/dofs/dof_tools_16c.cc b/tests/dofs/dof_tools_16c.cc index 12628683b9..7d7cab8c5c 100644 --- a/tests/dofs/dof_tools_16c.cc +++ b/tests/dofs/dof_tools_16c.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -29,9 +30,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // test doesn't make much sense if // no boundary dofs exist @@ -43,7 +44,7 @@ check_this(const DoFHandler &dof_handler) set.insert(0); DoFTools::map_dof_to_boundary_indices(dof_handler, set, map); - std::map *> boundary_ids; + std::map *> boundary_ids; boundary_ids[0] = nullptr; const unsigned int n_boundary_dofs = dof_handler.n_boundary_dofs(boundary_ids); diff --git a/tests/dofs/dof_tools_16d.cc b/tests/dofs/dof_tools_16d.cc index e0a5dbc3d8..1afe6a71b4 100644 --- a/tests/dofs/dof_tools_16d.cc +++ b/tests/dofs/dof_tools_16d.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -29,9 +30,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // test doesn't make much sense if // no boundary dofs exist @@ -43,7 +44,7 @@ check_this(const DoFHandler &dof_handler) set.insert(0); DoFTools::map_dof_to_boundary_indices(dof_handler, set, map); - std::map *> boundary_ids; + std::map *> boundary_ids; boundary_ids[0] = nullptr; const types::global_dof_index n_boundary_dofs = dof_handler.n_boundary_dofs(boundary_ids); diff --git a/tests/dofs/dof_tools_17a.cc b/tests/dofs/dof_tools_17a.cc index ea129fcaf6..c84f43bd38 100644 --- a/tests/dofs/dof_tools_17a.cc +++ b/tests/dofs/dof_tools_17a.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -26,9 +27,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // create sparsity pattern SparsityPattern sp(dof_handler.n_dofs(), diff --git a/tests/dofs/dof_tools_17b.cc b/tests/dofs/dof_tools_17b.cc index 6a29878bec..96c26b2a8a 100644 --- a/tests/dofs/dof_tools_17b.cc +++ b/tests/dofs/dof_tools_17b.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -26,9 +27,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // create sparsity pattern DynamicSparsityPattern sp(dof_handler.n_dofs()); diff --git a/tests/dofs/dof_tools_17c.cc b/tests/dofs/dof_tools_17c.cc index b8f5028db4..44aad8bfa4 100644 --- a/tests/dofs/dof_tools_17c.cc +++ b/tests/dofs/dof_tools_17c.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -26,9 +27,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // we split up the matrix into // blocks according to the number diff --git a/tests/dofs/dof_tools_17d.cc b/tests/dofs/dof_tools_17d.cc index f382319e3a..e45a217cff 100644 --- a/tests/dofs/dof_tools_17d.cc +++ b/tests/dofs/dof_tools_17d.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -26,9 +27,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // we split up the matrix into // blocks according to the number diff --git a/tests/dofs/dof_tools_18a.cc b/tests/dofs/dof_tools_18a.cc index 104a1670c7..465116c4fb 100644 --- a/tests/dofs/dof_tools_18a.cc +++ b/tests/dofs/dof_tools_18a.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -43,9 +44,9 @@ make_masks(const unsigned int n, } -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { Table<2, DoFTools::Coupling> mask_int; Table<2, DoFTools::Coupling> mask_ext; diff --git a/tests/dofs/dof_tools_18a_1d.cc b/tests/dofs/dof_tools_18a_1d.cc index e2a4fb77a3..d92dade4c1 100644 --- a/tests/dofs/dof_tools_18a_1d.cc +++ b/tests/dofs/dof_tools_18a_1d.cc @@ -52,9 +52,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // create sparsity pattern SparsityPattern sp(dof_handler.n_dofs(), @@ -110,7 +110,7 @@ check_this() DoFHandler dof_handler(tr); dof_handler.distribute_dofs(fe); - check_this(dof_handler); + check_this >(dof_handler); } diff --git a/tests/dofs/dof_tools_18b.cc b/tests/dofs/dof_tools_18b.cc index 29e2738399..7dbf492e52 100644 --- a/tests/dofs/dof_tools_18b.cc +++ b/tests/dofs/dof_tools_18b.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -43,9 +44,9 @@ make_masks(const unsigned int n, -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { Table<2, DoFTools::Coupling> mask_int; Table<2, DoFTools::Coupling> mask_ext; diff --git a/tests/dofs/dof_tools_18c.cc b/tests/dofs/dof_tools_18c.cc index ea84df9d63..0a54719a0c 100644 --- a/tests/dofs/dof_tools_18c.cc +++ b/tests/dofs/dof_tools_18c.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -43,9 +44,9 @@ make_masks(const unsigned int n, -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // we split up the matrix into // blocks according to the number diff --git a/tests/dofs/dof_tools_18d.cc b/tests/dofs/dof_tools_18d.cc index b25f75b363..18a91d9633 100644 --- a/tests/dofs/dof_tools_18d.cc +++ b/tests/dofs/dof_tools_18d.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -43,9 +44,9 @@ make_masks(const unsigned int n, -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // we split up the matrix into // blocks according to the number diff --git a/tests/dofs/dof_tools_19.cc b/tests/dofs/dof_tools_19.cc index 467c710ba5..183f90fdc8 100644 --- a/tests/dofs/dof_tools_19.cc +++ b/tests/dofs/dof_tools_19.cc @@ -26,6 +26,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools:: @@ -44,9 +45,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { // there's presently a crash in the // Raviart-Thomas element. don't @@ -57,7 +58,7 @@ check_this(const DoFHandler &dof_handler) std::string::npos) return; - Functions::ConstantFunction test_func( + Functions::ConstantFunction test_func( 1, dof_handler.get_fe().n_components()); // don't run this test if hanging @@ -73,7 +74,7 @@ check_this(const DoFHandler &dof_handler) deallog << cm.max_constraint_indirections() << std::endl; // L_2 project constant function onto field - QGauss quadrature(6); + QGauss quadrature(6); Vector solution(dof_handler.n_dofs()); VectorTools::project(dof_handler, cm, quadrature, test_func, solution); diff --git a/tests/dofs/dof_tools_20.cc b/tests/dofs/dof_tools_20.cc index 46af85d460..8c48348f91 100644 --- a/tests/dofs/dof_tools_20.cc +++ b/tests/dofs/dof_tools_20.cc @@ -16,15 +16,16 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // DoFTools::extract_dofs_with_support_on_boundary -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { std::vector component_select(dof_handler.get_fe().n_components(), true); std::vector boundary_dofs(dof_handler.n_dofs()); diff --git a/tests/dofs/dof_tools_21.cc b/tests/dofs/dof_tools_21.cc index 3583a84fbd..da334c0722 100644 --- a/tests/dofs/dof_tools_21.cc +++ b/tests/dofs/dof_tools_21.cc @@ -44,11 +44,11 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { - Functions::CosineFunction test_func(dof_handler.get_fe().n_components()); + Functions::CosineFunction test_func(dof_handler.get_fe().n_components()); AffineConstraints cm; @@ -62,7 +62,7 @@ check_this(const DoFHandler &dof_handler) deallog << cm.n_constraints() << std::endl; deallog << cm.max_constraint_indirections() << std::endl; - QGauss quadrature(6); + QGauss quadrature(6); Vector unconstrained(dof_handler.n_dofs()); Vector constrained(dof_handler.n_dofs()); diff --git a/tests/dofs/dof_tools_common.h b/tests/dofs/dof_tools_common.h index 76d8f0c90b..c60991cc18 100644 --- a/tests/dofs/dof_tools_common.h +++ b/tests/dofs/dof_tools_common.h @@ -42,9 +42,9 @@ // forward declaration of the function that must be provided in the // .cc files -template +template void -check_this(const DoFHandler &dof_handler); +check_this(const DoFHandlerType &dof_handler); @@ -95,11 +95,19 @@ check(const FiniteElement &fe, const std::string &name) cell != tria.end(); ++cell) cell->set_subdomain_id(cell->level()); + + // setup DoFHandler DoFHandler dof_handler(tria); dof_handler.distribute_dofs(fe); + // setup hp DoFHandler + hp::FECollection fe_collection(fe); + hp::DoFHandler hp_dof_handler(tria); + hp_dof_handler.distribute_dofs(fe_collection); + // call main function in .cc files - check_this(dof_handler); + check_this >(dof_handler); + check_this >(hp_dof_handler); } diff --git a/tests/dofs/dof_tools_common_parallel.h b/tests/dofs/dof_tools_common_parallel.h new file mode 100644 index 0000000000..7a613ac25b --- /dev/null +++ b/tests/dofs/dof_tools_common_parallel.h @@ -0,0 +1,230 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2003 - 2018 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. +// +// --------------------------------------------------------------------- + +// common parallel framework for the various dof_tools_*.cc tests + +#include + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +#include "../tests.h" + +// forward declaration of the function that must be provided in the +// .cc files +template +void +check_this(const DoFHandlerType &dof_handler); + + + +void +output_bool_vector(std::vector &v) +{ + for (unsigned int i = 0; i < v.size(); ++i) + deallog << (v[i] ? '1' : '0'); + deallog << std::endl; +} + + + +template +void +check(const FiniteElement &fe, const std::string &name) +{ + deallog << "Checking " << name << " in " << dim << "d:" << std::endl; + + // create tria and dofhandler + // objects. set different boundary + // and sub-domain ids + parallel::distributed::Triangulation tria(MPI_COMM_WORLD); + GridGenerator::hyper_cube(tria, 0., 1.); + tria.refine_global(1); + for (unsigned int ref = 0; ref < 2; ++ref) + { + for (auto &cell : tria.active_cell_iterators()) + if (cell->is_locally_owned() && cell->center()(0) < .5 && + cell->center()(1) < .5) + cell->set_refine_flag(); + tria.execute_coarsening_and_refinement(); + } + + // setup DoFHandler + DoFHandler dof_handler(tria); + dof_handler.distribute_dofs(fe); + + // setup hp DoFHandler + hp::FECollection fe_collection(fe); + hp::DoFHandler hp_dof_handler(tria); + hp_dof_handler.distribute_dofs(fe_collection); + + check_this >(dof_handler); + check_this >(hp_dof_handler); +} + + + +#define CHECK(EL, deg, dim) \ + { \ + FE_##EL EL(deg); \ + check(EL, #EL #deg); \ + } + +#define CHECK_SYS1(sub1, N1, dim) \ + { \ + FESystem q(sub1, N1); \ + check(q, #sub1 #N1); \ + } + +#define CHECK_SYS2(sub1, N1, sub2, N2, dim) \ + { \ + FESystem q(sub1, N1, sub2, N2); \ + check(q, #sub1 #N1 #sub2 #N2); \ + } + +#define CHECK_SYS3(sub1, N1, sub2, N2, sub3, N3, dim) \ + { \ + FESystem q(sub1, N1, sub2, N2, sub3, N3); \ + check(q, #sub1 #N1 #sub2 #N2 #sub3 #N3); \ + } + +#define CHECK_ALL(EL, deg) \ + { \ + CHECK(EL, deg, 2); \ + CHECK(EL, deg, 3); \ + } + + + +int +main(int argc, char **argv) +{ + try + { + Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1); + MPILogInitAll logfile; + + CHECK_ALL(Q, 1) + CHECK_ALL(Q, 2) + CHECK_ALL(Q, 3) + + CHECK_ALL(DGQ, 0) + CHECK_ALL(DGQ, 1) + CHECK_ALL(DGQ, 3) + + CHECK_ALL(DGP, 0) + CHECK_ALL(DGP, 1) + CHECK_ALL(DGP, 3) + + CHECK(Nedelec, 0, 2) + CHECK(Nedelec, 0, 3) + + CHECK(RaviartThomas, 0, 2) + CHECK(RaviartThomas, 1, 2) + CHECK(RaviartThomas, 2, 2) + + CHECK(RaviartThomasNodal, 0, 2) + CHECK(RaviartThomasNodal, 1, 2) + CHECK(RaviartThomasNodal, 2, 2) + CHECK(RaviartThomasNodal, 0, 3) + CHECK(RaviartThomasNodal, 1, 3) + CHECK(RaviartThomasNodal, 2, 3) + + CHECK_SYS1(FE_Q<2>(1), 3, 2) + CHECK_SYS1(FE_DGQ<2>(2), 2, 2) + CHECK_SYS1(FE_DGP<2>(3), 1, 2) + + CHECK_SYS1(FE_Q<3>(1), 3, 3) + CHECK_SYS1(FE_DGQ<3>(2), 2, 3) + CHECK_SYS1(FE_DGP<3>(3), 1, 3) + + CHECK_SYS2(FE_Q<2>(1), 3, FE_DGQ<2>(2), 2, 2) + CHECK_SYS2(FE_DGQ<2>(2), 2, FE_DGP<2>(3), 1, 2) + CHECK_SYS2(FE_DGP<2>(3), 1, FE_DGQ<2>(2), 2, 2) + + CHECK_SYS3(FE_Q<2>(1), 3, FE_DGP<2>(3), 1, FE_Q<2>(1), 3, 2) + CHECK_SYS3(FE_DGQ<2>(2), 2, FE_DGQ<2>(2), 2, FE_Q<2>(3), 3, 2) + CHECK_SYS3(FE_DGP<2>(3), 1, FE_DGP<2>(3), 1, FE_Q<2>(2), 3, 2) + + CHECK_SYS3(FE_DGQ<3>(1), 3, FE_DGP<3>(3), 1, FE_Q<3>(1), 3, 3) + + // systems of systems + CHECK_SYS3( + (FESystem<2>(FE_Q<2>(1), 3)), 3, FE_DGQ<2>(0), 1, FE_Q<2>(1), 3, 2) + CHECK_SYS3(FE_DGQ<2>(3), + 1, + FESystem<2>(FE_DGQ<2>(0), 3), + 1, + FESystem<2>(FE_Q<2>(2), 1, FE_DGQ<2>(0), 1), + 2, + 2) + + // systems with Nedelec elements + CHECK_SYS2(FE_DGQ<2>(3), 1, FE_Nedelec<2>(0), 2, 2) + CHECK_SYS3(FE_Nedelec<2>(0), + 1, + FESystem<2>(FE_DGQ<2>(1), 2), + 1, + FESystem<2>(FE_Q<2>(2), 1, FE_Nedelec<2>(0), 2), + 2, + 2) + + return 0; + } + catch (std::exception &exc) + { + deallog << std::endl + << std::endl + << "----------------------------------------------------" + << std::endl; + deallog << "Exception on processing: " << std::endl + << exc.what() << std::endl + << "Aborting!" << std::endl + << "----------------------------------------------------" + << std::endl; + return 1; + } + catch (...) + { + deallog << std::endl + << std::endl + << "----------------------------------------------------" + << std::endl; + deallog << "Unknown exception!" << std::endl + << "Aborting!" << std::endl + << "----------------------------------------------------" + << std::endl; + return 1; + }; +} diff --git a/tests/dofs/dof_tools_fake_hp.inst.in b/tests/dofs/dof_tools_fake_hp.inst.in new file mode 100644 index 0000000000..9ef870de7c --- /dev/null +++ b/tests/dofs/dof_tools_fake_hp.inst.in @@ -0,0 +1,83 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2004 - 2019 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE.md at +// the top level directory of deal.II. +// +// --------------------------------------------------------------------- + +#ifndef dealii_dof_tools_fake_hp_h +#define dealii_dof_tools_fake_hp_h +// fake hp check_this function that does nothing + +template<> +void +check_this(const hp::DoFHandler<1, 1> &dof_handler) +{ + // nothing to do here +} + +template<> +void +check_this(const hp::DoFHandler<1, 2> &dof_handler) +{ + // nothing to do here +} + +template<> +void +check_this(const hp::DoFHandler<1, 3> &dof_handler) +{ + // nothing to do here +} + +template<> +void +check_this(const hp::DoFHandler<2, 1> &dof_handler) +{ + // nothing to do here +} + +template<> +void +check_this(const hp::DoFHandler<2, 2> &dof_handler) +{ + // nothing to do here +} + +template<> +void +check_this(const hp::DoFHandler<2, 3> &dof_handler) +{ + // nothing to do here +} + +template<> +void +check_this(const hp::DoFHandler<3, 1> &dof_handler) +{ + // nothing to do here +} + +template<> +void +check_this(const hp::DoFHandler<3, 2> &dof_handler) +{ + // nothing to do here +} + +template<> +void +check_this(const hp::DoFHandler<3, 3> &dof_handler) +{ + // nothing to do here +} + +#endif // dealii_dof_tools_fake_hp_h diff --git a/tests/dofs/dof_tools_periodic.h b/tests/dofs/dof_tools_periodic.h index d7cdb55552..bfb48240db 100644 --- a/tests/dofs/dof_tools_periodic.h +++ b/tests/dofs/dof_tools_periodic.h @@ -44,9 +44,9 @@ // forward declaration of the function that must be provided in the // .cc files -template +template void -check_this(const DoFHandler &dof_handler); +check_this(const DoFHandlerType &dof_handler); diff --git a/tests/dofs/extract_dofs_by_component_01.cc b/tests/dofs/extract_dofs_by_component_01.cc index ee1b4cce7c..d0f8587d2e 100644 --- a/tests/dofs/extract_dofs_by_component_01.cc +++ b/tests/dofs/extract_dofs_by_component_01.cc @@ -70,8 +70,7 @@ check() component_mask[c] = (int_mask & (1 << c)); std::vector dofs(dof.n_dofs()); - DoFTools::extract_dofs>( - dof, ComponentMask(component_mask), dofs); + DoFTools::extract_dofs(dof, ComponentMask(component_mask), dofs); for (unsigned int d = 0; d < dof.n_dofs(); ++d) deallog << dofs[d]; diff --git a/tests/dofs/extract_dofs_by_component_01_hp.cc b/tests/dofs/extract_dofs_by_component_01_hp.cc index 9ddd85cafc..92de6e0698 100644 --- a/tests/dofs/extract_dofs_by_component_01_hp.cc +++ b/tests/dofs/extract_dofs_by_component_01_hp.cc @@ -71,8 +71,7 @@ check() component_mask[c] = (int_mask & (1 << c)); std::vector dofs(dof.n_dofs()); - DoFTools::extract_dofs>( - dof, ComponentMask(component_mask), dofs); + DoFTools::extract_dofs(dof, ComponentMask(component_mask), dofs); for (unsigned int d = 0; d < dof.n_dofs(); ++d) deallog << dofs[d]; diff --git a/tests/dofs/extract_dofs_by_component_01x.cc b/tests/dofs/extract_dofs_by_component_01x.cc index 0c52237192..e5f5726f1f 100644 --- a/tests/dofs/extract_dofs_by_component_01x.cc +++ b/tests/dofs/extract_dofs_by_component_01x.cc @@ -63,8 +63,7 @@ check() component_mask[0] = true; std::vector dofs(dof.n_dofs()); - DoFTools::extract_dofs>( - dof, ComponentMask(component_mask), dofs); + DoFTools::extract_dofs(dof, ComponentMask(component_mask), dofs); for (unsigned int d = 0; d < dof.n_dofs(); ++d) deallog << dofs[d]; diff --git a/tests/dofs/extract_dofs_by_component_01y.cc b/tests/dofs/extract_dofs_by_component_01y.cc index 9f537c577f..3b0a516a7f 100644 --- a/tests/dofs/extract_dofs_by_component_01y.cc +++ b/tests/dofs/extract_dofs_by_component_01y.cc @@ -67,8 +67,7 @@ check() component_mask[comp] = true; std::vector dofs(dof.n_dofs()); - DoFTools::extract_dofs>( - dof, ComponentMask(component_mask), dofs); + DoFTools::extract_dofs(dof, ComponentMask(component_mask), dofs); for (unsigned int d = 0; d < dof.n_dofs(); ++d) deallog << dofs[d]; diff --git a/tests/dofs/extract_dofs_by_component_02.cc b/tests/dofs/extract_dofs_by_component_02.cc index 4bbae11248..9b72031d37 100644 --- a/tests/dofs/extract_dofs_by_component_02.cc +++ b/tests/dofs/extract_dofs_by_component_02.cc @@ -70,8 +70,7 @@ check() component_mask[c] = (int_mask & (1 << c)); std::vector dofs(dof.n_dofs()); - DoFTools::extract_dofs>( - dof, BlockMask(component_mask), dofs); + DoFTools::extract_dofs(dof, BlockMask(component_mask), dofs); for (unsigned int d = 0; d < dof.n_dofs(); ++d) deallog << dofs[d]; diff --git a/tests/dofs/extract_dofs_by_component_02_hp.cc b/tests/dofs/extract_dofs_by_component_02_hp.cc index 6762eeb656..20e88da1a3 100644 --- a/tests/dofs/extract_dofs_by_component_02_hp.cc +++ b/tests/dofs/extract_dofs_by_component_02_hp.cc @@ -71,8 +71,7 @@ check() component_mask[c] = (int_mask & (1 << c)); std::vector dofs(dof.n_dofs()); - DoFTools::extract_dofs>( - dof, BlockMask(component_mask), dofs); + DoFTools::extract_dofs(dof, BlockMask(component_mask), dofs); for (unsigned int d = 0; d < dof.n_dofs(); ++d) deallog << dofs[d]; diff --git a/tests/dofs/hp_constraints_are_implemented.cc b/tests/dofs/hp_constraints_are_implemented.cc index 22e347c3cd..5812c8e087 100644 --- a/tests/dofs/hp_constraints_are_implemented.cc +++ b/tests/dofs/hp_constraints_are_implemented.cc @@ -18,6 +18,7 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // FE::hp_constraints_are_implemented @@ -25,9 +26,9 @@ -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { deallog << dof_handler.get_fe().get_name() << ": " << (dof_handler.get_fe().hp_constraints_are_implemented() ? "true" : diff --git a/tests/dofs/n_dofs_per_object.cc b/tests/dofs/n_dofs_per_object.cc index 107ba128b5..30c4e02641 100644 --- a/tests/dofs/n_dofs_per_object.cc +++ b/tests/dofs/n_dofs_per_object.cc @@ -18,17 +18,18 @@ #include "../tests.h" #include "dof_tools_common.h" +#include "dof_tools_fake_hp.inst.in" // check // FiniteElement::n_dofs_per_object -template +template void -check_this(const DoFHandler &dof_handler) +check_this(const DoFHandlerType &dof_handler) { - const FiniteElement &fe = dof_handler.get_fe(); + const FiniteElement &fe = dof_handler.get_fe(); deallog << fe.dofs_per_vertex << ' ' << fe.dofs_per_line << ' ' << fe.dofs_per_quad << ' ' << fe.dofs_per_hex << std::endl; deallog << fe.template n_dofs_per_object<0>() << ' '