From 264d2cb01330a7cdd65f223e77b960c076839aaf Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Mon, 13 Apr 2015 20:41:47 -0500 Subject: [PATCH] Add another test, this time for parallel triangulations. --- tests/mpi/active_cell_index_01.cc | 76 +++++++++++++++++++ .../mpi/active_cell_index_01.mpirun=3.output | 7 ++ 2 files changed, 83 insertions(+) create mode 100644 tests/mpi/active_cell_index_01.cc create mode 100644 tests/mpi/active_cell_index_01.mpirun=3.output diff --git a/tests/mpi/active_cell_index_01.cc b/tests/mpi/active_cell_index_01.cc new file mode 100644 index 0000000000..6fbfc6ddbf --- /dev/null +++ b/tests/mpi/active_cell_index_01.cc @@ -0,0 +1,76 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2010 - 2015 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. +// +// --------------------------------------------------------------------- + + + +// check that cell->active_cell_index() works as advertised + +#include "../tests.h" + +#include +#include +#include +#include +#include +#include +#include + +#include + + + +template +void check (const parallel::distributed::Triangulation &tria) +{ + unsigned int index = 0; + for (typename Triangulation::active_cell_iterator cell=tria.begin_active(); + cell!=tria.end(); ++cell, ++index) + AssertThrow (cell->active_cell_index() == index, ExcInternalError()); + + AssertThrow (index == tria.n_active_cells(), ExcInternalError()); + AssertThrow (index >= tria.n_locally_owned_active_cells(), ExcInternalError()); +} + + + + + +template +void check () +{ + parallel::distributed::Triangulation tria(MPI_COMM_WORLD); + GridGenerator::hyper_cube (tria); + tria.refine_global (3); + + DoFHandler dof_handler (tria); + + check (tria); + + if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0) + deallog << "OK for " << dim << "d" << std::endl; +} + + +int main (int argc, char *argv[]) +{ + Utilities::MPI::MPI_InitFinalize mpi_initialization(argc, argv, 1); + MPILogInitAll log; + + check<2> (); + check<3> (); +} + + + diff --git a/tests/mpi/active_cell_index_01.mpirun=3.output b/tests/mpi/active_cell_index_01.mpirun=3.output new file mode 100644 index 0000000000..cef4e0057d --- /dev/null +++ b/tests/mpi/active_cell_index_01.mpirun=3.output @@ -0,0 +1,7 @@ + +DEAL:0::OK for 2d +DEAL:0::OK for 3d + + + + -- 2.39.5