From d021a2ed0ad263d56046ad2910ab31c0e8fe90aa Mon Sep 17 00:00:00 2001 From: heister Date: Fri, 3 Jan 2014 10:15:57 +0000 Subject: [PATCH] add meshworker tests git-svn-id: https://svn.dealii.org/trunk@32139 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/mpi/mesh_worker_01.cc | 228 +++++++++++++++++++++++ tests/mpi/mesh_worker_01.mpirun=1.output | 22 +++ tests/mpi/mesh_worker_01.mpirun=2.output | 45 +++++ tests/mpi/mesh_worker_02.cc | 202 ++++++++++++++++++++ tests/mpi/mesh_worker_02.mpirun=1.output | 52 ++++++ tests/mpi/mesh_worker_02.mpirun=2.output | 52 ++++++ 6 files changed, 601 insertions(+) create mode 100644 tests/mpi/mesh_worker_01.cc create mode 100644 tests/mpi/mesh_worker_01.mpirun=1.output create mode 100644 tests/mpi/mesh_worker_01.mpirun=2.output create mode 100644 tests/mpi/mesh_worker_02.cc create mode 100644 tests/mpi/mesh_worker_02.mpirun=1.output create mode 100644 tests/mpi/mesh_worker_02.mpirun=2.output diff --git a/tests/mpi/mesh_worker_01.cc b/tests/mpi/mesh_worker_01.cc new file mode 100644 index 0000000000..c0c48b34ce --- /dev/null +++ b/tests/mpi/mesh_worker_01.cc @@ -0,0 +1,228 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2000 - 2013 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. +// +// --------------------------------------------------------------------- + + +// test meshworker LoopControl + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include + +#include +#include + +using namespace dealii; + + +template +class myIntegrator: public dealii::MeshWorker::LocalIntegrator +{ +public: + typedef MeshWorker::IntegrationInfo CellInfo; + + void cell(MeshWorker::DoFInfo &dinfo, CellInfo &info) const; + void boundary(MeshWorker::DoFInfo &dinfo, CellInfo &info) const; + void face(MeshWorker::DoFInfo &dinfo1, MeshWorker::DoFInfo &dinfo2, + CellInfo &info1, CellInfo &info2) const; + + +}; + +template +void +myIntegrator::cell(MeshWorker::DoFInfo &info, CellInfo &) const +{ + deallog << "C " << info.cell->id() << std::endl; +} + + +template +void +myIntegrator::boundary(MeshWorker::DoFInfo &info, CellInfo &) const +{ + //deallog << "B cell = " << info.cell->id() << " face = " << info.face_number << std::endl; +} + + +template +void +myIntegrator::face(MeshWorker::DoFInfo &info1, MeshWorker::DoFInfo &info2, + CellInfo &, CellInfo &) const +{ + deallog << "F cell1 = " << info1.cell->id() + << " face = " << info1.face_number + << " cell2 = " << info2.cell->id() + << " face2 = " << info2.face_number + << std::endl; +} + + +class DoNothingAssembler +{ + public: + template + void initialize_info(DOFINFO &info, bool face) const {} + template + void assemble(const DOFINFO &info){} + template + void assemble(const DOFINFO &info1, + const DOFINFO &info2) {} + + + }; + +template +void +test_simple(DoFHandler &dofs, MeshWorker::LoopControl &lctrl) +{ + myIntegrator local; + DoNothingAssembler assembler; + MeshWorker::IntegrationInfoBox info_box; + + MeshWorker::DoFInfo dof_info(dofs.block_info()); + +// integration_loop(ITERATOR begin, +// typename identity::type end, +// DOFINFO &dinfo, +// INFOBOX &info, +// const std_cxx1x::function &cell_worker, +// const std_cxx1x::function &boundary_worker, +// const std_cxx1x::function &face_worker, +// ASSEMBLER &assembler, +// const LoopControl &lctrl) +// + + + MeshWorker::integration_loop::active_cell_iterator, DoNothingAssembler> + (dofs.begin_active(), dofs.end(), + dof_info, info_box, + local, + assembler, + lctrl); + +// MeshWorker::loop, MeshWorker::IntegrationInfoBox > +// (dofs.begin_active(), dofs.end(), +// dof_info, info_box, +// std_cxx1x::bind (&Integrator::cell, local, std_cxx1x::_1, std_cxx1x::_2), +// std_cxx1x::bind (&Integrator::bdry, local, std_cxx1x::_1, std_cxx1x::_2), +// std_cxx1x::bind (&Integrator::face, local, std_cxx1x::_1, std_cxx1x::_2, std_cxx1x::_3, std_cxx1x::_4), +// local, +// lctrl); +} + +std::string id_to_string(const CellId &id) +{ + std::ostringstream ss; + ss << id; + return ss.str(); +} + +template +void test_loop(DoFHandler &dofs, MeshWorker::LoopControl &lctrl) +{ + deallog << "* own_cells=" << lctrl.own_cells + << " ghost_cells=" << lctrl.ghost_cells + << " own_faces=" << lctrl.own_faces + << " faces_to_ghost=" << lctrl.faces_to_ghost + << std::endl; + test_simple(dofs, lctrl); +} + +template +void +test() +{ + parallel::distributed::Triangulation tr(MPI_COMM_WORLD, + Triangulation::none/*, + parallel::distributed::Triangulation::construct_multigrid_hierarchy*/); + std::vector reps; + reps.push_back(2); + reps.push_back(1); + GridGenerator::subdivided_hyper_rectangle (tr, reps, + Point(), Point(2.0,1.0)); + + FE_DGP fe(0); + + DoFHandler dofs(tr); + dofs.distribute_dofs(fe); + + dofs.initialize_local_block_info(); + deallog << "DoFHandler ndofs=" << dofs.n_dofs() << std::endl; + + MeshWorker::LoopControl lctrl; + + deallog << "*** 1. CELLS ***" << std::endl; + + lctrl.own_faces = MeshWorker::LoopControl::never; + lctrl.faces_to_ghost = MeshWorker::LoopControl::never; + + lctrl.own_cells = false; lctrl.ghost_cells = false; + test_loop(dofs, lctrl); + + lctrl.own_cells = true; lctrl.ghost_cells = false; + test_loop(dofs, lctrl); + + lctrl.own_cells = false; lctrl.ghost_cells = true; + test_loop(dofs, lctrl); + + lctrl.own_cells = true; lctrl.ghost_cells = true; + test_loop(dofs, lctrl); + + deallog << "*** 2. FACES ***" << std::endl; + + lctrl.own_cells = false; lctrl.ghost_cells = false; + + lctrl.own_faces = MeshWorker::LoopControl::one; + lctrl.faces_to_ghost = MeshWorker::LoopControl::never; + test_loop(dofs, lctrl); + + lctrl.own_faces = MeshWorker::LoopControl::never; + lctrl.faces_to_ghost = MeshWorker::LoopControl::one; + test_loop(dofs, lctrl); + + lctrl.own_faces = MeshWorker::LoopControl::one; + lctrl.faces_to_ghost = MeshWorker::LoopControl::both; + test_loop(dofs, lctrl); + +// +// +// for (int gc=0;gc<2;gc++) +// for (int oc=0;oc<2;oc++) +// for (int of=0;of<3;of++) +// { +// lctrl.own_cells = !!oc; +// lctrl.ghost_cells = !!gc; +// +// lctrl.own_faces = (MeshWorker::LoopControl::FaceOption)of; +// test_loop(dofs, lctrl); +// } +} + + +int main (int argc, char **argv) +{ + Utilities::MPI::MPI_InitFinalize mpi_initialization (argc, argv); + MPILogInitAll log; + + test<2>(); +} diff --git a/tests/mpi/mesh_worker_01.mpirun=1.output b/tests/mpi/mesh_worker_01.mpirun=1.output new file mode 100644 index 0000000000..3942256fe5 --- /dev/null +++ b/tests/mpi/mesh_worker_01.mpirun=1.output @@ -0,0 +1,22 @@ + +DEAL:0::DoFHandler ndofs=2 +DEAL:0::*** 1. CELLS *** +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=0 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::* own_cells=1 ghost_cells=0 own_faces=0 faces_to_ghost=0 +DEAL:0::C 0_0: +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::C 1_0: +DEAL:0::* own_cells=0 ghost_cells=1 own_faces=0 faces_to_ghost=0 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::* own_cells=1 ghost_cells=1 own_faces=0 faces_to_ghost=0 +DEAL:0::C 0_0: +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::C 1_0: +DEAL:0::*** 2. FACES *** +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=2 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 diff --git a/tests/mpi/mesh_worker_01.mpirun=2.output b/tests/mpi/mesh_worker_01.mpirun=2.output new file mode 100644 index 0000000000..1c0d2db422 --- /dev/null +++ b/tests/mpi/mesh_worker_01.mpirun=2.output @@ -0,0 +1,45 @@ + +DEAL:0::DoFHandler ndofs=2 +DEAL:0::*** 1. CELLS *** +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=0 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::* own_cells=1 ghost_cells=0 own_faces=0 faces_to_ghost=0 +DEAL:0::C 0_0: +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::* own_cells=0 ghost_cells=1 own_faces=0 faces_to_ghost=0 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::C 1_0: +DEAL:0::* own_cells=1 ghost_cells=1 own_faces=0 faces_to_ghost=0 +DEAL:0::C 0_0: +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::C 1_0: +DEAL:0::*** 2. FACES *** +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=2 +DEAL:0::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 + +DEAL:1::DoFHandler ndofs=2 +DEAL:1::*** 1. CELLS *** +DEAL:1::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=0 +DEAL:1::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:1::* own_cells=1 ghost_cells=0 own_faces=0 faces_to_ghost=0 +DEAL:1::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:1::C 1_0: +DEAL:1::* own_cells=0 ghost_cells=1 own_faces=0 faces_to_ghost=0 +DEAL:1::C 0_0: +DEAL:1::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:1::* own_cells=1 ghost_cells=1 own_faces=0 faces_to_ghost=0 +DEAL:1::C 0_0: +DEAL:1::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:1::C 1_0: +DEAL:1::*** 2. FACES *** +DEAL:1::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0 +DEAL:1::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:1::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1 +DEAL:1::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 +DEAL:1::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=2 +DEAL:1::F cell1 = 0_0: face = 1 cell2 = 1_0: face2 = 0 + diff --git a/tests/mpi/mesh_worker_02.cc b/tests/mpi/mesh_worker_02.cc new file mode 100644 index 0000000000..1f8ce5a49e --- /dev/null +++ b/tests/mpi/mesh_worker_02.cc @@ -0,0 +1,202 @@ +// --------------------------------------------------------------------- +// $Id: mesh_worker_matrix_01.cc 31349 2013-10-20 19:07:06Z maier $ +// +// Copyright (C) 2000 - 2013 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. +// +// --------------------------------------------------------------------- + + +// test meshworker LoopControl + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include + +#include +#include + +using namespace dealii; + + +template +class myIntegrator: public dealii::MeshWorker::LocalIntegrator +{ +public: + typedef MeshWorker::IntegrationInfo CellInfo; + + void cell(MeshWorker::DoFInfo &dinfo, CellInfo &info) const; + void boundary(MeshWorker::DoFInfo &dinfo, CellInfo &info) const; + void face(MeshWorker::DoFInfo &dinfo1, MeshWorker::DoFInfo &dinfo2, + CellInfo &info1, CellInfo &info2) const; + + +}; + +template +void +myIntegrator::cell(MeshWorker::DoFInfo &info, CellInfo &) const +{ + deallog << "C " << info.cell->id() << std::endl; +} + + +template +void +myIntegrator::boundary(MeshWorker::DoFInfo &info, CellInfo &) const +{ + //deallog << "B cell = " << info.cell->id() << " face = " << info.face_number << std::endl; +} + + +template +void +myIntegrator::face(MeshWorker::DoFInfo &info1, MeshWorker::DoFInfo &info2, + CellInfo &, CellInfo &) const +{ + deallog << "F cell1 = " << info1.cell->id() + << " face = " << info1.face_number + << " cell2 = " << info2.cell->id() + << " face2 = " << info2.face_number + << std::endl; +} + + +class DoNothingAssembler +{ + public: + template + void initialize_info(DOFINFO &info, bool face) const {} + template + void assemble(const DOFINFO &info){} + template + void assemble(const DOFINFO &info1, + const DOFINFO &info2) {} + +}; + +template +void +test_simple(DoFHandler &dofs, MeshWorker::LoopControl &lctrl) +{ + myIntegrator local; + DoNothingAssembler assembler; + MeshWorker::IntegrationInfoBox info_box; + + MeshWorker::DoFInfo dof_info(dofs.block_info()); + +// integration_loop(ITERATOR begin, +// typename identity::type end, +// DOFINFO &dinfo, +// INFOBOX &info, +// const std_cxx1x::function &cell_worker, +// const std_cxx1x::function &boundary_worker, +// const std_cxx1x::function &face_worker, +// ASSEMBLER &assembler, +// const LoopControl &lctrl) +// + + + MeshWorker::integration_loop::active_cell_iterator, DoNothingAssembler> + (dofs.begin_active(), dofs.end(), + dof_info, info_box, + local, + assembler, + lctrl); + +// MeshWorker::loop, MeshWorker::IntegrationInfoBox > +// (dofs.begin_active(), dofs.end(), +// dof_info, info_box, +// std_cxx1x::bind (&Integrator::cell, local, std_cxx1x::_1, std_cxx1x::_2), +// std_cxx1x::bind (&Integrator::bdry, local, std_cxx1x::_1, std_cxx1x::_2), +// std_cxx1x::bind (&Integrator::face, local, std_cxx1x::_1, std_cxx1x::_2, std_cxx1x::_3, std_cxx1x::_4), +// local, +// lctrl); +} + +std::string id_to_string(const CellId &id) +{ + std::ostringstream ss; + ss << id; + return ss.str(); +} + +template +void test_loop(DoFHandler &dofs, MeshWorker::LoopControl &lctrl) +{ + deallog << "* own_cells=" << lctrl.own_cells + << " ghost_cells=" << lctrl.ghost_cells + << " own_faces=" << lctrl.own_faces + << " faces_to_ghost=" << lctrl.faces_to_ghost + << std::endl; + test_simple(dofs, lctrl); +} + +template +void +test() +{ + parallel::distributed::Triangulation tr(MPI_COMM_WORLD, + Triangulation::none/*, + parallel::distributed::Triangulation::construct_multigrid_hierarchy*/); + GridGenerator::hyper_cube(tr); + tr.refine_global(1); + unsigned int myid=Utilities::MPI::this_mpi_process(MPI_COMM_WORLD); + if (myid==0) + tr.begin_active()->set_refine_flag(); + tr.execute_coarsening_and_refinement(); + + FE_DGP fe(0); + + DoFHandler dofs(tr); + dofs.distribute_dofs(fe); + + dofs.initialize_local_block_info(); + deallog << "DoFHandler ndofs=" << dofs.n_dofs() << std::endl; + + MeshWorker::LoopControl lctrl; + + lctrl.own_cells = false; + lctrl.ghost_cells = false; + + lctrl.own_faces = MeshWorker::LoopControl::one; + lctrl.faces_to_ghost = MeshWorker::LoopControl::never; + test_loop(dofs, lctrl); + + lctrl.own_faces = MeshWorker::LoopControl::both; + lctrl.faces_to_ghost = MeshWorker::LoopControl::never; + test_loop(dofs, lctrl); + + lctrl.own_faces = MeshWorker::LoopControl::never; + lctrl.faces_to_ghost = MeshWorker::LoopControl::one; + test_loop(dofs, lctrl); + + lctrl.own_faces = MeshWorker::LoopControl::never; + lctrl.faces_to_ghost = MeshWorker::LoopControl::both; + test_loop(dofs, lctrl); + +} + + +int main (int argc, char **argv) +{ + Utilities::MPI::MPI_InitFinalize mpi_initialization (argc, argv); + MPILogInitAll log; + + test<2>(); +} diff --git a/tests/mpi/mesh_worker_02.mpirun=1.output b/tests/mpi/mesh_worker_02.mpirun=1.output new file mode 100644 index 0000000000..bf38bda8b7 --- /dev/null +++ b/tests/mpi/mesh_worker_02.mpirun=1.output @@ -0,0 +1,52 @@ + +DEAL:0::DoFHandler ndofs=7 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0 +DEAL:0::F cell1 = 0_1:1 face = 3 cell2 = 0_1:3 face2 = 2 +DEAL:0::F cell1 = 0_1:2 face = 1 cell2 = 0_1:3 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=2 faces_to_ghost=0 +DEAL:0::F cell1 = 0_1:1 face = 3 cell2 = 0_1:3 face2 = 2 +DEAL:0::F cell1 = 0_1:2 face = 1 cell2 = 0_1:3 face2 = 0 +DEAL:0::F cell1 = 0_1:3 face = 0 cell2 = 0_1:2 face2 = 1 +DEAL:0::F cell1 = 0_1:3 face = 2 cell2 = 0_1:1 face2 = 3 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 0 cell2 = 0_2:00 face2 = 1 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 2 cell2 = 0_2:00 face2 = 3 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 0 cell2 = 0_2:02 face2 = 1 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 2 cell2 = 0_2:01 face2 = 3 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1 +DEAL:0::F cell1 = 0_1:1 face = 3 cell2 = 0_1:3 face2 = 2 +DEAL:0::F cell1 = 0_1:2 face = 1 cell2 = 0_1:3 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=2 +DEAL:0::F cell1 = 0_1:1 face = 3 cell2 = 0_1:3 face2 = 2 +DEAL:0::F cell1 = 0_1:2 face = 1 cell2 = 0_1:3 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_1:2 face2 = 2 diff --git a/tests/mpi/mesh_worker_02.mpirun=2.output b/tests/mpi/mesh_worker_02.mpirun=2.output new file mode 100644 index 0000000000..bf38bda8b7 --- /dev/null +++ b/tests/mpi/mesh_worker_02.mpirun=2.output @@ -0,0 +1,52 @@ + +DEAL:0::DoFHandler ndofs=7 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=1 faces_to_ghost=0 +DEAL:0::F cell1 = 0_1:1 face = 3 cell2 = 0_1:3 face2 = 2 +DEAL:0::F cell1 = 0_1:2 face = 1 cell2 = 0_1:3 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=2 faces_to_ghost=0 +DEAL:0::F cell1 = 0_1:1 face = 3 cell2 = 0_1:3 face2 = 2 +DEAL:0::F cell1 = 0_1:2 face = 1 cell2 = 0_1:3 face2 = 0 +DEAL:0::F cell1 = 0_1:3 face = 0 cell2 = 0_1:2 face2 = 1 +DEAL:0::F cell1 = 0_1:3 face = 2 cell2 = 0_1:1 face2 = 3 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 0 cell2 = 0_2:00 face2 = 1 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 2 cell2 = 0_2:00 face2 = 3 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 0 cell2 = 0_2:02 face2 = 1 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 2 cell2 = 0_2:01 face2 = 3 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=1 +DEAL:0::F cell1 = 0_1:1 face = 3 cell2 = 0_1:3 face2 = 2 +DEAL:0::F cell1 = 0_1:2 face = 1 cell2 = 0_1:3 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::* own_cells=0 ghost_cells=0 own_faces=0 faces_to_ghost=2 +DEAL:0::F cell1 = 0_1:1 face = 3 cell2 = 0_1:3 face2 = 2 +DEAL:0::F cell1 = 0_1:2 face = 1 cell2 = 0_1:3 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 1 cell2 = 0_2:01 face2 = 0 +DEAL:0::F cell1 = 0_2:00 face = 3 cell2 = 0_2:02 face2 = 2 +DEAL:0::F cell1 = 0_2:01 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:01 face = 3 cell2 = 0_2:03 face2 = 2 +DEAL:0::F cell1 = 0_2:02 face = 1 cell2 = 0_2:03 face2 = 0 +DEAL:0::F cell1 = 0_2:02 face = 3 cell2 = 0_1:2 face2 = 2 +DEAL:0::F cell1 = 0_2:03 face = 1 cell2 = 0_1:1 face2 = 0 +DEAL:0::F cell1 = 0_2:03 face = 3 cell2 = 0_1:2 face2 = 2 -- 2.39.5