From e99cd26b968ff122b518a07b5d704c239674bd98 Mon Sep 17 00:00:00 2001 From: Daniel Arndt Date: Sat, 9 Dec 2017 02:38:00 +0100 Subject: [PATCH] Make DoFTools::extract_hanging_node_dofs for p::d/s::Triangualations --- doc/news/changes/minor/20171209DanielArndt | 5 + include/deal.II/dofs/dof_tools.h | 4 + source/dofs/dof_tools.cc | 109 ++++--- tests/dofs/dof_tools_04a.cc | 163 ++++++++++ ..._tools_04a.with_p4est=true.mpirun=1.output | 285 ++++++++++++++++++ ..._tools_04a.with_p4est=true.mpirun=3.output | 285 ++++++++++++++++++ 6 files changed, 795 insertions(+), 56 deletions(-) create mode 100644 doc/news/changes/minor/20171209DanielArndt create mode 100644 tests/dofs/dof_tools_04a.cc create mode 100644 tests/dofs/dof_tools_04a.with_p4est=true.mpirun=1.output create mode 100644 tests/dofs/dof_tools_04a.with_p4est=true.mpirun=3.output diff --git a/doc/news/changes/minor/20171209DanielArndt b/doc/news/changes/minor/20171209DanielArndt new file mode 100644 index 0000000000..17850e1935 --- /dev/null +++ b/doc/news/changes/minor/20171209DanielArndt @@ -0,0 +1,5 @@ +Improved: DoFTools::extract_hanging_node_dofs works for +parallel::shared::Triangualtion and parallel::distributed::Triangulation +and reports DoFs belonging to locally owned cells. +
+(Daniel Arndt, 2017/12/09) diff --git a/include/deal.II/dofs/dof_tools.h b/include/deal.II/dofs/dof_tools.h index 05d5c29632..3c88742a29 100644 --- a/include/deal.II/dofs/dof_tools.h +++ b/include/deal.II/dofs/dof_tools.h @@ -1248,6 +1248,10 @@ namespace DoFTools * * The size of @p selected_dofs shall equal dof_handler.n_dofs(). * Previous contents of this array or overwritten. + * + * In case of a parallel::shared::Triangualtion or a + * parallel::distributed::Triangulation only dofs belonging to locally owned + * cells are reported. */ template void diff --git a/source/dofs/dof_tools.cc b/source/dofs/dof_tools.cc index c115da2d80..f26c89dacd 100644 --- a/source/dofs/dof_tools.cc +++ b/source/dofs/dof_tools.cc @@ -898,23 +898,23 @@ namespace DoFTools // this function is similar to the make_sparsity_pattern function, // see there for more information - typename dealii::DoFHandler::active_cell_iterator - cell = dof_handler.begin_active(), - endc = dof_handler.end(); - for (; cell!=endc; ++cell) - for (unsigned int face=0; face::faces_per_cell; ++face) - if (cell->face(face)->has_children()) - { - const typename dealii::DoFHandler::line_iterator - line = cell->face(face); + for (auto cell : dof_handler.active_cell_iterators()) + if (cell->is_locally_owned()) + { + for (unsigned int face=0; face::faces_per_cell; ++face) + if (cell->face(face)->has_children()) + { + const typename dealii::DoFHandler::line_iterator + line = cell->face(face); - for (unsigned int dof=0; dof!=fe.dofs_per_vertex; ++dof) - selected_dofs[line->child(0)->vertex_dof_index(1,dof)] = true; + for (unsigned int dof=0; dof!=fe.dofs_per_vertex; ++dof) + selected_dofs[line->child(0)->vertex_dof_index(1,dof)] = true; - for (unsigned int child=0; child<2; ++child) - for (unsigned int dof=0; dof!=fe.dofs_per_line; ++dof) - selected_dofs[line->child(child)->dof_index(dof)] = true; - } + for (unsigned int child=0; child<2; ++child) + for (unsigned int dof=0; dof!=fe.dofs_per_line; ++dof) + selected_dofs[line->child(child)->dof_index(dof)] = true; + } + } } @@ -933,49 +933,46 @@ namespace DoFTools // this function is similar to the make_sparsity_pattern function, // see there for more information + for (auto cell : dof_handler.active_cell_iterators()) + if (cell->is_locally_owned()) + for (unsigned int f=0; f::faces_per_cell; ++f) + if (cell->face(f)->has_children()) + { + const typename dealii::DoFHandler::face_iterator + face = cell->face(f); - typename dealii::DoFHandler::active_cell_iterator - cell = dof_handler.begin_active(), - endc = dof_handler.end(); - for (; cell!=endc; ++cell) - for (unsigned int f=0; f::faces_per_cell; ++f) - if (cell->face(f)->has_children()) - { - const typename dealii::DoFHandler::face_iterator - face = cell->face(f); - - for (unsigned int dof=0; dof!=fe.dofs_per_vertex; ++dof) - selected_dofs[face->child(0)->vertex_dof_index(2,dof)] = true; - - // dof numbers on the centers of the lines bounding this - // face - for (unsigned int line=0; line<4; ++line) for (unsigned int dof=0; dof!=fe.dofs_per_vertex; ++dof) - selected_dofs[face->line(line)->child(0)->vertex_dof_index(1,dof)] = true; - - // next the dofs on the lines interior to the face; the - // order of these lines is laid down in the FiniteElement - // class documentation - for (unsigned int dof=0; dofchild(0)->line(1)->dof_index(dof)] = true; - for (unsigned int dof=0; dofchild(1)->line(2)->dof_index(dof)] = true; - for (unsigned int dof=0; dofchild(2)->line(3)->dof_index(dof)] = true; - for (unsigned int dof=0; dofchild(3)->line(0)->dof_index(dof)] = true; - - // dofs on the bordering lines - for (unsigned int line=0; line<4; ++line) - for (unsigned int child=0; child<2; ++child) - for (unsigned int dof=0; dof!=fe.dofs_per_line; ++dof) - selected_dofs[face->line(line)->child(child)->dof_index(dof)] = true; - - // finally, for the dofs interior to the four child faces - for (unsigned int child=0; child<4; ++child) - for (unsigned int dof=0; dof!=fe.dofs_per_quad; ++dof) - selected_dofs[face->child(child)->dof_index(dof)] = true; - } + selected_dofs[face->child(0)->vertex_dof_index(2,dof)] = true; + + // dof numbers on the centers of the lines bounding this + // face + for (unsigned int line=0; line<4; ++line) + for (unsigned int dof=0; dof!=fe.dofs_per_vertex; ++dof) + selected_dofs[face->line(line)->child(0)->vertex_dof_index(1,dof)] = true; + + // next the dofs on the lines interior to the face; the + // order of these lines is laid down in the FiniteElement + // class documentation + for (unsigned int dof=0; dofchild(0)->line(1)->dof_index(dof)] = true; + for (unsigned int dof=0; dofchild(1)->line(2)->dof_index(dof)] = true; + for (unsigned int dof=0; dofchild(2)->line(3)->dof_index(dof)] = true; + for (unsigned int dof=0; dofchild(3)->line(0)->dof_index(dof)] = true; + + // dofs on the bordering lines + for (unsigned int line=0; line<4; ++line) + for (unsigned int child=0; child<2; ++child) + for (unsigned int dof=0; dof!=fe.dofs_per_line; ++dof) + selected_dofs[face->line(line)->child(child)->dof_index(dof)] = true; + + // finally, for the dofs interior to the four child faces + for (unsigned int child=0; child<4; ++child) + for (unsigned int dof=0; dof!=fe.dofs_per_quad; ++dof) + selected_dofs[face->child(child)->dof_index(dof)] = true; + } } } } diff --git a/tests/dofs/dof_tools_04a.cc b/tests/dofs/dof_tools_04a.cc new file mode 100644 index 0000000000..3c99ea1653 --- /dev/null +++ b/tests/dofs/dof_tools_04a.cc @@ -0,0 +1,163 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2003 - 2017 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 at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + +// The same as dof_tools_04 but for a parallel::distributed::parallel::distributed::Triangulation +// instead of a parallel::distributed::Triangulation: +// check +// DoFTools::extract_hanging_node_constraints +// uses a slightly different refinement and less different FiniteElements + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + + + +template +void +check_this (const DoFHandler &dof_handler) +{ + types::global_dof_index n_dofs = dof_handler.n_dofs(); + + std::vector is_hanging_node_constrained (n_dofs); + DoFTools::extract_hanging_node_dofs (dof_handler, + is_hanging_node_constrained); + + MappingQGeneric mapping(1); + std::map< types::global_dof_index, Point< dim > > support_point_of_dof; + DoFTools::map_dofs_to_support_points (mapping, dof_handler, support_point_of_dof); + + std::vector> constrained_points; + + for (const auto &pair : support_point_of_dof) + if (is_hanging_node_constrained[pair.first]) + constrained_points.push_back(pair.second); + + const int root = 0; + const int mylen = constrained_points.size()*dim; + const unsigned int n_processes = Utilities::MPI::n_mpi_processes(MPI_COMM_WORLD); + const unsigned int my_id = Utilities::MPI::this_mpi_process(MPI_COMM_WORLD); + std::vector recvcounts (n_processes); + + MPI_Gather(&mylen, 1, MPI_INT, recvcounts.data(), 1, MPI_INT, 0, MPI_COMM_WORLD); + + int totlen = 0; + std::vector displs; + std::vector> all_points; + + if (my_id==0) + { + displs.resize(n_processes); + + displs[0] = 0; + totlen += recvcounts[0]; + + for (int i=1; i &a, const Point &b) + { + for (unsigned int i=0; i b(i)) + return false; + } + return false; + }); + all_points.erase(std::unique(all_points.begin(), all_points.end()), all_points.end()); + + deallog << all_points.size() << std::endl; + for (const auto &point: all_points) + deallog << point << std::endl; + 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 (); + } + DoFHandler dof_handler (tria); + dof_handler.distribute_dofs (fe); + + check_this (dof_handler); +} + +#define CHECK(EL,deg,dim)\ + { FE_ ## EL EL(deg); \ + check(EL, #EL #deg); } + +#define CHECK_ALL(EL,deg)\ + { CHECK(EL,deg,2); \ + CHECK(EL,deg,3); \ + } + +int main (int argc, char **argv) +{ + Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1); + mpi_initlog(); + CHECK_ALL(Q,1); + CHECK_ALL(Q,2); + + return 0; +} diff --git a/tests/dofs/dof_tools_04a.with_p4est=true.mpirun=1.output b/tests/dofs/dof_tools_04a.with_p4est=true.mpirun=1.output new file mode 100644 index 0000000000..6feb20d8b2 --- /dev/null +++ b/tests/dofs/dof_tools_04a.with_p4est=true.mpirun=1.output @@ -0,0 +1,285 @@ + +DEAL::Checking Q1 in 2d: +DEAL::4 +DEAL::0.125000 0.500000 +DEAL::0.375000 0.500000 +DEAL::0.500000 0.125000 +DEAL::0.500000 0.375000 +DEAL:: +DEAL::Checking Q1 in 3d: +DEAL::40 +DEAL::0.00000 0.500000 0.125000 +DEAL::0.00000 0.500000 0.375000 +DEAL::0.00000 0.500000 0.625000 +DEAL::0.00000 0.500000 0.875000 +DEAL::0.125000 0.500000 0.00000 +DEAL::0.125000 0.500000 0.250000 +DEAL::0.125000 0.500000 0.500000 +DEAL::0.125000 0.500000 0.750000 +DEAL::0.125000 0.500000 1.00000 +DEAL::0.250000 0.500000 0.125000 +DEAL::0.250000 0.500000 0.375000 +DEAL::0.250000 0.500000 0.625000 +DEAL::0.250000 0.500000 0.875000 +DEAL::0.375000 0.500000 0.00000 +DEAL::0.375000 0.500000 0.250000 +DEAL::0.375000 0.500000 0.500000 +DEAL::0.375000 0.500000 0.750000 +DEAL::0.375000 0.500000 1.00000 +DEAL::0.500000 0.00000 0.125000 +DEAL::0.500000 0.00000 0.375000 +DEAL::0.500000 0.00000 0.625000 +DEAL::0.500000 0.00000 0.875000 +DEAL::0.500000 0.125000 0.00000 +DEAL::0.500000 0.125000 0.250000 +DEAL::0.500000 0.125000 0.750000 +DEAL::0.500000 0.125000 1.00000 +DEAL::0.500000 0.125000 0.500000 +DEAL::0.500000 0.250000 0.125000 +DEAL::0.500000 0.250000 0.375000 +DEAL::0.500000 0.250000 0.625000 +DEAL::0.500000 0.250000 0.875000 +DEAL::0.500000 0.375000 0.00000 +DEAL::0.500000 0.375000 0.250000 +DEAL::0.500000 0.375000 0.750000 +DEAL::0.500000 0.375000 1.00000 +DEAL::0.500000 0.375000 0.500000 +DEAL::0.500000 0.500000 0.125000 +DEAL::0.500000 0.500000 0.375000 +DEAL::0.500000 0.500000 0.625000 +DEAL::0.500000 0.500000 0.875000 +DEAL:: +DEAL::Checking Q2 in 2d: +DEAL::12 +DEAL::0.0625000 0.500000 +DEAL::0.125000 0.500000 +DEAL::0.187500 0.500000 +DEAL::0.312500 0.500000 +DEAL::0.375000 0.500000 +DEAL::0.437500 0.500000 +DEAL::0.500000 0.0625000 +DEAL::0.500000 0.125000 +DEAL::0.500000 0.187500 +DEAL::0.500000 0.312500 +DEAL::0.500000 0.375000 +DEAL::0.500000 0.437500 +DEAL:: +DEAL::Checking Q2 in 3d: +DEAL::216 +DEAL::0.00000 0.500000 0.0625000 +DEAL::0.00000 0.500000 0.125000 +DEAL::0.00000 0.500000 0.187500 +DEAL::0.00000 0.500000 0.312500 +DEAL::0.00000 0.500000 0.375000 +DEAL::0.00000 0.500000 0.437500 +DEAL::0.00000 0.500000 0.562500 +DEAL::0.00000 0.500000 0.625000 +DEAL::0.00000 0.500000 0.687500 +DEAL::0.00000 0.500000 0.812500 +DEAL::0.00000 0.500000 0.875000 +DEAL::0.00000 0.500000 0.937500 +DEAL::0.0625000 0.500000 0.00000 +DEAL::0.0625000 0.500000 0.0625000 +DEAL::0.0625000 0.500000 0.125000 +DEAL::0.0625000 0.500000 0.187500 +DEAL::0.0625000 0.500000 0.250000 +DEAL::0.0625000 0.500000 0.312500 +DEAL::0.0625000 0.500000 0.375000 +DEAL::0.0625000 0.500000 0.437500 +DEAL::0.0625000 0.500000 0.500000 +DEAL::0.0625000 0.500000 0.562500 +DEAL::0.0625000 0.500000 0.625000 +DEAL::0.0625000 0.500000 0.687500 +DEAL::0.0625000 0.500000 0.750000 +DEAL::0.0625000 0.500000 0.812500 +DEAL::0.0625000 0.500000 0.875000 +DEAL::0.0625000 0.500000 0.937500 +DEAL::0.0625000 0.500000 1.00000 +DEAL::0.125000 0.500000 0.00000 +DEAL::0.125000 0.500000 0.250000 +DEAL::0.125000 0.500000 0.500000 +DEAL::0.125000 0.500000 0.750000 +DEAL::0.125000 0.500000 1.00000 +DEAL::0.187500 0.500000 0.00000 +DEAL::0.187500 0.500000 0.0625000 +DEAL::0.187500 0.500000 0.125000 +DEAL::0.187500 0.500000 0.187500 +DEAL::0.187500 0.500000 0.250000 +DEAL::0.187500 0.500000 0.312500 +DEAL::0.187500 0.500000 0.375000 +DEAL::0.187500 0.500000 0.437500 +DEAL::0.187500 0.500000 0.500000 +DEAL::0.187500 0.500000 0.562500 +DEAL::0.187500 0.500000 0.625000 +DEAL::0.187500 0.500000 0.687500 +DEAL::0.187500 0.500000 0.750000 +DEAL::0.187500 0.500000 0.812500 +DEAL::0.187500 0.500000 0.875000 +DEAL::0.187500 0.500000 0.937500 +DEAL::0.187500 0.500000 1.00000 +DEAL::0.250000 0.500000 0.0625000 +DEAL::0.250000 0.500000 0.125000 +DEAL::0.250000 0.500000 0.187500 +DEAL::0.250000 0.500000 0.312500 +DEAL::0.250000 0.500000 0.375000 +DEAL::0.250000 0.500000 0.437500 +DEAL::0.250000 0.500000 0.562500 +DEAL::0.250000 0.500000 0.625000 +DEAL::0.250000 0.500000 0.687500 +DEAL::0.250000 0.500000 0.812500 +DEAL::0.250000 0.500000 0.875000 +DEAL::0.250000 0.500000 0.937500 +DEAL::0.312500 0.500000 0.00000 +DEAL::0.312500 0.500000 0.0625000 +DEAL::0.312500 0.500000 0.125000 +DEAL::0.312500 0.500000 0.187500 +DEAL::0.312500 0.500000 0.250000 +DEAL::0.312500 0.500000 0.312500 +DEAL::0.312500 0.500000 0.375000 +DEAL::0.312500 0.500000 0.437500 +DEAL::0.312500 0.500000 0.500000 +DEAL::0.312500 0.500000 0.562500 +DEAL::0.312500 0.500000 0.625000 +DEAL::0.312500 0.500000 0.687500 +DEAL::0.312500 0.500000 0.750000 +DEAL::0.312500 0.500000 0.812500 +DEAL::0.312500 0.500000 0.875000 +DEAL::0.312500 0.500000 0.937500 +DEAL::0.312500 0.500000 1.00000 +DEAL::0.375000 0.500000 0.00000 +DEAL::0.375000 0.500000 0.250000 +DEAL::0.375000 0.500000 0.500000 +DEAL::0.375000 0.500000 0.750000 +DEAL::0.375000 0.500000 1.00000 +DEAL::0.437500 0.500000 0.00000 +DEAL::0.437500 0.500000 0.0625000 +DEAL::0.437500 0.500000 0.125000 +DEAL::0.437500 0.500000 0.187500 +DEAL::0.437500 0.500000 0.250000 +DEAL::0.437500 0.500000 0.312500 +DEAL::0.437500 0.500000 0.375000 +DEAL::0.437500 0.500000 0.437500 +DEAL::0.437500 0.500000 0.500000 +DEAL::0.437500 0.500000 0.562500 +DEAL::0.437500 0.500000 0.625000 +DEAL::0.437500 0.500000 0.687500 +DEAL::0.437500 0.500000 0.750000 +DEAL::0.437500 0.500000 0.812500 +DEAL::0.437500 0.500000 0.875000 +DEAL::0.437500 0.500000 0.937500 +DEAL::0.437500 0.500000 1.00000 +DEAL::0.500000 0.00000 0.0625000 +DEAL::0.500000 0.00000 0.125000 +DEAL::0.500000 0.00000 0.187500 +DEAL::0.500000 0.00000 0.312500 +DEAL::0.500000 0.00000 0.375000 +DEAL::0.500000 0.00000 0.437500 +DEAL::0.500000 0.00000 0.562500 +DEAL::0.500000 0.00000 0.625000 +DEAL::0.500000 0.00000 0.687500 +DEAL::0.500000 0.00000 0.812500 +DEAL::0.500000 0.00000 0.875000 +DEAL::0.500000 0.00000 0.937500 +DEAL::0.500000 0.0625000 0.00000 +DEAL::0.500000 0.0625000 0.0625000 +DEAL::0.500000 0.0625000 0.187500 +DEAL::0.500000 0.0625000 0.250000 +DEAL::0.500000 0.0625000 0.312500 +DEAL::0.500000 0.0625000 0.437500 +DEAL::0.500000 0.0625000 0.562500 +DEAL::0.500000 0.0625000 0.687500 +DEAL::0.500000 0.0625000 0.750000 +DEAL::0.500000 0.0625000 0.812500 +DEAL::0.500000 0.0625000 0.937500 +DEAL::0.500000 0.0625000 1.00000 +DEAL::0.500000 0.0625000 0.500000 +DEAL::0.500000 0.125000 0.00000 +DEAL::0.500000 0.125000 0.0625000 +DEAL::0.500000 0.125000 0.187500 +DEAL::0.500000 0.125000 0.250000 +DEAL::0.500000 0.125000 0.312500 +DEAL::0.500000 0.125000 0.437500 +DEAL::0.500000 0.125000 0.562500 +DEAL::0.500000 0.125000 0.687500 +DEAL::0.500000 0.125000 0.750000 +DEAL::0.500000 0.125000 0.812500 +DEAL::0.500000 0.125000 0.937500 +DEAL::0.500000 0.125000 1.00000 +DEAL::0.500000 0.125000 0.500000 +DEAL::0.500000 0.187500 0.00000 +DEAL::0.500000 0.187500 0.0625000 +DEAL::0.500000 0.187500 0.187500 +DEAL::0.500000 0.187500 0.250000 +DEAL::0.500000 0.187500 0.312500 +DEAL::0.500000 0.187500 0.437500 +DEAL::0.500000 0.187500 0.687500 +DEAL::0.500000 0.187500 0.750000 +DEAL::0.500000 0.187500 0.812500 +DEAL::0.500000 0.187500 0.937500 +DEAL::0.500000 0.187500 1.00000 +DEAL::0.500000 0.187500 0.562500 +DEAL::0.500000 0.187500 0.500000 +DEAL::0.500000 0.250000 0.0625000 +DEAL::0.500000 0.250000 0.125000 +DEAL::0.500000 0.250000 0.187500 +DEAL::0.500000 0.250000 0.312500 +DEAL::0.500000 0.250000 0.375000 +DEAL::0.500000 0.250000 0.437500 +DEAL::0.500000 0.250000 0.562500 +DEAL::0.500000 0.250000 0.625000 +DEAL::0.500000 0.250000 0.687500 +DEAL::0.500000 0.250000 0.812500 +DEAL::0.500000 0.250000 0.875000 +DEAL::0.500000 0.250000 0.937500 +DEAL::0.500000 0.312500 0.00000 +DEAL::0.500000 0.312500 0.0625000 +DEAL::0.500000 0.312500 0.187500 +DEAL::0.500000 0.312500 0.250000 +DEAL::0.500000 0.312500 0.312500 +DEAL::0.500000 0.312500 0.437500 +DEAL::0.500000 0.312500 0.687500 +DEAL::0.500000 0.312500 0.750000 +DEAL::0.500000 0.312500 0.812500 +DEAL::0.500000 0.312500 0.937500 +DEAL::0.500000 0.312500 1.00000 +DEAL::0.500000 0.312500 0.562500 +DEAL::0.500000 0.312500 0.500000 +DEAL::0.500000 0.375000 0.00000 +DEAL::0.500000 0.375000 0.0625000 +DEAL::0.500000 0.375000 0.187500 +DEAL::0.500000 0.375000 0.250000 +DEAL::0.500000 0.375000 0.312500 +DEAL::0.500000 0.375000 0.687500 +DEAL::0.500000 0.375000 0.750000 +DEAL::0.500000 0.375000 0.812500 +DEAL::0.500000 0.375000 0.937500 +DEAL::0.500000 0.375000 1.00000 +DEAL::0.500000 0.375000 0.437500 +DEAL::0.500000 0.375000 0.562500 +DEAL::0.500000 0.375000 0.500000 +DEAL::0.500000 0.437500 0.00000 +DEAL::0.500000 0.437500 0.0625000 +DEAL::0.500000 0.437500 0.187500 +DEAL::0.500000 0.437500 0.250000 +DEAL::0.500000 0.437500 0.312500 +DEAL::0.500000 0.437500 0.437500 +DEAL::0.500000 0.437500 0.687500 +DEAL::0.500000 0.437500 0.750000 +DEAL::0.500000 0.437500 0.812500 +DEAL::0.500000 0.437500 0.937500 +DEAL::0.500000 0.437500 1.00000 +DEAL::0.500000 0.437500 0.562500 +DEAL::0.500000 0.437500 0.500000 +DEAL::0.500000 0.500000 0.0625000 +DEAL::0.500000 0.500000 0.125000 +DEAL::0.500000 0.500000 0.187500 +DEAL::0.500000 0.500000 0.312500 +DEAL::0.500000 0.500000 0.375000 +DEAL::0.500000 0.500000 0.437500 +DEAL::0.500000 0.500000 0.562500 +DEAL::0.500000 0.500000 0.625000 +DEAL::0.500000 0.500000 0.687500 +DEAL::0.500000 0.500000 0.812500 +DEAL::0.500000 0.500000 0.875000 +DEAL::0.500000 0.500000 0.937500 +DEAL:: diff --git a/tests/dofs/dof_tools_04a.with_p4est=true.mpirun=3.output b/tests/dofs/dof_tools_04a.with_p4est=true.mpirun=3.output new file mode 100644 index 0000000000..6feb20d8b2 --- /dev/null +++ b/tests/dofs/dof_tools_04a.with_p4est=true.mpirun=3.output @@ -0,0 +1,285 @@ + +DEAL::Checking Q1 in 2d: +DEAL::4 +DEAL::0.125000 0.500000 +DEAL::0.375000 0.500000 +DEAL::0.500000 0.125000 +DEAL::0.500000 0.375000 +DEAL:: +DEAL::Checking Q1 in 3d: +DEAL::40 +DEAL::0.00000 0.500000 0.125000 +DEAL::0.00000 0.500000 0.375000 +DEAL::0.00000 0.500000 0.625000 +DEAL::0.00000 0.500000 0.875000 +DEAL::0.125000 0.500000 0.00000 +DEAL::0.125000 0.500000 0.250000 +DEAL::0.125000 0.500000 0.500000 +DEAL::0.125000 0.500000 0.750000 +DEAL::0.125000 0.500000 1.00000 +DEAL::0.250000 0.500000 0.125000 +DEAL::0.250000 0.500000 0.375000 +DEAL::0.250000 0.500000 0.625000 +DEAL::0.250000 0.500000 0.875000 +DEAL::0.375000 0.500000 0.00000 +DEAL::0.375000 0.500000 0.250000 +DEAL::0.375000 0.500000 0.500000 +DEAL::0.375000 0.500000 0.750000 +DEAL::0.375000 0.500000 1.00000 +DEAL::0.500000 0.00000 0.125000 +DEAL::0.500000 0.00000 0.375000 +DEAL::0.500000 0.00000 0.625000 +DEAL::0.500000 0.00000 0.875000 +DEAL::0.500000 0.125000 0.00000 +DEAL::0.500000 0.125000 0.250000 +DEAL::0.500000 0.125000 0.750000 +DEAL::0.500000 0.125000 1.00000 +DEAL::0.500000 0.125000 0.500000 +DEAL::0.500000 0.250000 0.125000 +DEAL::0.500000 0.250000 0.375000 +DEAL::0.500000 0.250000 0.625000 +DEAL::0.500000 0.250000 0.875000 +DEAL::0.500000 0.375000 0.00000 +DEAL::0.500000 0.375000 0.250000 +DEAL::0.500000 0.375000 0.750000 +DEAL::0.500000 0.375000 1.00000 +DEAL::0.500000 0.375000 0.500000 +DEAL::0.500000 0.500000 0.125000 +DEAL::0.500000 0.500000 0.375000 +DEAL::0.500000 0.500000 0.625000 +DEAL::0.500000 0.500000 0.875000 +DEAL:: +DEAL::Checking Q2 in 2d: +DEAL::12 +DEAL::0.0625000 0.500000 +DEAL::0.125000 0.500000 +DEAL::0.187500 0.500000 +DEAL::0.312500 0.500000 +DEAL::0.375000 0.500000 +DEAL::0.437500 0.500000 +DEAL::0.500000 0.0625000 +DEAL::0.500000 0.125000 +DEAL::0.500000 0.187500 +DEAL::0.500000 0.312500 +DEAL::0.500000 0.375000 +DEAL::0.500000 0.437500 +DEAL:: +DEAL::Checking Q2 in 3d: +DEAL::216 +DEAL::0.00000 0.500000 0.0625000 +DEAL::0.00000 0.500000 0.125000 +DEAL::0.00000 0.500000 0.187500 +DEAL::0.00000 0.500000 0.312500 +DEAL::0.00000 0.500000 0.375000 +DEAL::0.00000 0.500000 0.437500 +DEAL::0.00000 0.500000 0.562500 +DEAL::0.00000 0.500000 0.625000 +DEAL::0.00000 0.500000 0.687500 +DEAL::0.00000 0.500000 0.812500 +DEAL::0.00000 0.500000 0.875000 +DEAL::0.00000 0.500000 0.937500 +DEAL::0.0625000 0.500000 0.00000 +DEAL::0.0625000 0.500000 0.0625000 +DEAL::0.0625000 0.500000 0.125000 +DEAL::0.0625000 0.500000 0.187500 +DEAL::0.0625000 0.500000 0.250000 +DEAL::0.0625000 0.500000 0.312500 +DEAL::0.0625000 0.500000 0.375000 +DEAL::0.0625000 0.500000 0.437500 +DEAL::0.0625000 0.500000 0.500000 +DEAL::0.0625000 0.500000 0.562500 +DEAL::0.0625000 0.500000 0.625000 +DEAL::0.0625000 0.500000 0.687500 +DEAL::0.0625000 0.500000 0.750000 +DEAL::0.0625000 0.500000 0.812500 +DEAL::0.0625000 0.500000 0.875000 +DEAL::0.0625000 0.500000 0.937500 +DEAL::0.0625000 0.500000 1.00000 +DEAL::0.125000 0.500000 0.00000 +DEAL::0.125000 0.500000 0.250000 +DEAL::0.125000 0.500000 0.500000 +DEAL::0.125000 0.500000 0.750000 +DEAL::0.125000 0.500000 1.00000 +DEAL::0.187500 0.500000 0.00000 +DEAL::0.187500 0.500000 0.0625000 +DEAL::0.187500 0.500000 0.125000 +DEAL::0.187500 0.500000 0.187500 +DEAL::0.187500 0.500000 0.250000 +DEAL::0.187500 0.500000 0.312500 +DEAL::0.187500 0.500000 0.375000 +DEAL::0.187500 0.500000 0.437500 +DEAL::0.187500 0.500000 0.500000 +DEAL::0.187500 0.500000 0.562500 +DEAL::0.187500 0.500000 0.625000 +DEAL::0.187500 0.500000 0.687500 +DEAL::0.187500 0.500000 0.750000 +DEAL::0.187500 0.500000 0.812500 +DEAL::0.187500 0.500000 0.875000 +DEAL::0.187500 0.500000 0.937500 +DEAL::0.187500 0.500000 1.00000 +DEAL::0.250000 0.500000 0.0625000 +DEAL::0.250000 0.500000 0.125000 +DEAL::0.250000 0.500000 0.187500 +DEAL::0.250000 0.500000 0.312500 +DEAL::0.250000 0.500000 0.375000 +DEAL::0.250000 0.500000 0.437500 +DEAL::0.250000 0.500000 0.562500 +DEAL::0.250000 0.500000 0.625000 +DEAL::0.250000 0.500000 0.687500 +DEAL::0.250000 0.500000 0.812500 +DEAL::0.250000 0.500000 0.875000 +DEAL::0.250000 0.500000 0.937500 +DEAL::0.312500 0.500000 0.00000 +DEAL::0.312500 0.500000 0.0625000 +DEAL::0.312500 0.500000 0.125000 +DEAL::0.312500 0.500000 0.187500 +DEAL::0.312500 0.500000 0.250000 +DEAL::0.312500 0.500000 0.312500 +DEAL::0.312500 0.500000 0.375000 +DEAL::0.312500 0.500000 0.437500 +DEAL::0.312500 0.500000 0.500000 +DEAL::0.312500 0.500000 0.562500 +DEAL::0.312500 0.500000 0.625000 +DEAL::0.312500 0.500000 0.687500 +DEAL::0.312500 0.500000 0.750000 +DEAL::0.312500 0.500000 0.812500 +DEAL::0.312500 0.500000 0.875000 +DEAL::0.312500 0.500000 0.937500 +DEAL::0.312500 0.500000 1.00000 +DEAL::0.375000 0.500000 0.00000 +DEAL::0.375000 0.500000 0.250000 +DEAL::0.375000 0.500000 0.500000 +DEAL::0.375000 0.500000 0.750000 +DEAL::0.375000 0.500000 1.00000 +DEAL::0.437500 0.500000 0.00000 +DEAL::0.437500 0.500000 0.0625000 +DEAL::0.437500 0.500000 0.125000 +DEAL::0.437500 0.500000 0.187500 +DEAL::0.437500 0.500000 0.250000 +DEAL::0.437500 0.500000 0.312500 +DEAL::0.437500 0.500000 0.375000 +DEAL::0.437500 0.500000 0.437500 +DEAL::0.437500 0.500000 0.500000 +DEAL::0.437500 0.500000 0.562500 +DEAL::0.437500 0.500000 0.625000 +DEAL::0.437500 0.500000 0.687500 +DEAL::0.437500 0.500000 0.750000 +DEAL::0.437500 0.500000 0.812500 +DEAL::0.437500 0.500000 0.875000 +DEAL::0.437500 0.500000 0.937500 +DEAL::0.437500 0.500000 1.00000 +DEAL::0.500000 0.00000 0.0625000 +DEAL::0.500000 0.00000 0.125000 +DEAL::0.500000 0.00000 0.187500 +DEAL::0.500000 0.00000 0.312500 +DEAL::0.500000 0.00000 0.375000 +DEAL::0.500000 0.00000 0.437500 +DEAL::0.500000 0.00000 0.562500 +DEAL::0.500000 0.00000 0.625000 +DEAL::0.500000 0.00000 0.687500 +DEAL::0.500000 0.00000 0.812500 +DEAL::0.500000 0.00000 0.875000 +DEAL::0.500000 0.00000 0.937500 +DEAL::0.500000 0.0625000 0.00000 +DEAL::0.500000 0.0625000 0.0625000 +DEAL::0.500000 0.0625000 0.187500 +DEAL::0.500000 0.0625000 0.250000 +DEAL::0.500000 0.0625000 0.312500 +DEAL::0.500000 0.0625000 0.437500 +DEAL::0.500000 0.0625000 0.562500 +DEAL::0.500000 0.0625000 0.687500 +DEAL::0.500000 0.0625000 0.750000 +DEAL::0.500000 0.0625000 0.812500 +DEAL::0.500000 0.0625000 0.937500 +DEAL::0.500000 0.0625000 1.00000 +DEAL::0.500000 0.0625000 0.500000 +DEAL::0.500000 0.125000 0.00000 +DEAL::0.500000 0.125000 0.0625000 +DEAL::0.500000 0.125000 0.187500 +DEAL::0.500000 0.125000 0.250000 +DEAL::0.500000 0.125000 0.312500 +DEAL::0.500000 0.125000 0.437500 +DEAL::0.500000 0.125000 0.562500 +DEAL::0.500000 0.125000 0.687500 +DEAL::0.500000 0.125000 0.750000 +DEAL::0.500000 0.125000 0.812500 +DEAL::0.500000 0.125000 0.937500 +DEAL::0.500000 0.125000 1.00000 +DEAL::0.500000 0.125000 0.500000 +DEAL::0.500000 0.187500 0.00000 +DEAL::0.500000 0.187500 0.0625000 +DEAL::0.500000 0.187500 0.187500 +DEAL::0.500000 0.187500 0.250000 +DEAL::0.500000 0.187500 0.312500 +DEAL::0.500000 0.187500 0.437500 +DEAL::0.500000 0.187500 0.687500 +DEAL::0.500000 0.187500 0.750000 +DEAL::0.500000 0.187500 0.812500 +DEAL::0.500000 0.187500 0.937500 +DEAL::0.500000 0.187500 1.00000 +DEAL::0.500000 0.187500 0.562500 +DEAL::0.500000 0.187500 0.500000 +DEAL::0.500000 0.250000 0.0625000 +DEAL::0.500000 0.250000 0.125000 +DEAL::0.500000 0.250000 0.187500 +DEAL::0.500000 0.250000 0.312500 +DEAL::0.500000 0.250000 0.375000 +DEAL::0.500000 0.250000 0.437500 +DEAL::0.500000 0.250000 0.562500 +DEAL::0.500000 0.250000 0.625000 +DEAL::0.500000 0.250000 0.687500 +DEAL::0.500000 0.250000 0.812500 +DEAL::0.500000 0.250000 0.875000 +DEAL::0.500000 0.250000 0.937500 +DEAL::0.500000 0.312500 0.00000 +DEAL::0.500000 0.312500 0.0625000 +DEAL::0.500000 0.312500 0.187500 +DEAL::0.500000 0.312500 0.250000 +DEAL::0.500000 0.312500 0.312500 +DEAL::0.500000 0.312500 0.437500 +DEAL::0.500000 0.312500 0.687500 +DEAL::0.500000 0.312500 0.750000 +DEAL::0.500000 0.312500 0.812500 +DEAL::0.500000 0.312500 0.937500 +DEAL::0.500000 0.312500 1.00000 +DEAL::0.500000 0.312500 0.562500 +DEAL::0.500000 0.312500 0.500000 +DEAL::0.500000 0.375000 0.00000 +DEAL::0.500000 0.375000 0.0625000 +DEAL::0.500000 0.375000 0.187500 +DEAL::0.500000 0.375000 0.250000 +DEAL::0.500000 0.375000 0.312500 +DEAL::0.500000 0.375000 0.687500 +DEAL::0.500000 0.375000 0.750000 +DEAL::0.500000 0.375000 0.812500 +DEAL::0.500000 0.375000 0.937500 +DEAL::0.500000 0.375000 1.00000 +DEAL::0.500000 0.375000 0.437500 +DEAL::0.500000 0.375000 0.562500 +DEAL::0.500000 0.375000 0.500000 +DEAL::0.500000 0.437500 0.00000 +DEAL::0.500000 0.437500 0.0625000 +DEAL::0.500000 0.437500 0.187500 +DEAL::0.500000 0.437500 0.250000 +DEAL::0.500000 0.437500 0.312500 +DEAL::0.500000 0.437500 0.437500 +DEAL::0.500000 0.437500 0.687500 +DEAL::0.500000 0.437500 0.750000 +DEAL::0.500000 0.437500 0.812500 +DEAL::0.500000 0.437500 0.937500 +DEAL::0.500000 0.437500 1.00000 +DEAL::0.500000 0.437500 0.562500 +DEAL::0.500000 0.437500 0.500000 +DEAL::0.500000 0.500000 0.0625000 +DEAL::0.500000 0.500000 0.125000 +DEAL::0.500000 0.500000 0.187500 +DEAL::0.500000 0.500000 0.312500 +DEAL::0.500000 0.500000 0.375000 +DEAL::0.500000 0.500000 0.437500 +DEAL::0.500000 0.500000 0.562500 +DEAL::0.500000 0.500000 0.625000 +DEAL::0.500000 0.500000 0.687500 +DEAL::0.500000 0.500000 0.812500 +DEAL::0.500000 0.500000 0.875000 +DEAL::0.500000 0.500000 0.937500 +DEAL:: -- 2.39.5