From e3fca89bf3aeba8c9c31ad27b518626908b2a4e2 Mon Sep 17 00:00:00 2001 From: Timo Heister Date: Wed, 6 Nov 2019 11:43:53 -0500 Subject: [PATCH] add missing file --- include/deal.II/base/mpi_tags.h | 99 +++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 include/deal.II/base/mpi_tags.h diff --git a/include/deal.II/base/mpi_tags.h b/include/deal.II/base/mpi_tags.h new file mode 100644 index 0000000000..728d75e0ac --- /dev/null +++ b/include/deal.II/base/mpi_tags.h @@ -0,0 +1,99 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 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_mpi_tags_h +#define dealii_mpi_tags_h + +#include + +DEAL_II_NAMESPACE_OPEN + + +namespace Utilities +{ + namespace MPI + { + namespace internal + { + /** + * This enum holds all MPI tags used in collective MPI communications with + * using MPI_ANY_SOURCE inside the deal.II library. + * + * We keep these tags in a central location so that they are unique within + * the library. Otherwise, communication that receives packages with + * MPI_ANY_SOURCE might pick up packets from a different algorithm. + */ + struct Tags + { + /** + * The enum with the tags. + */ + enum enumeration + { + /// Utilities::MPI::some_to_some() + mpi_some_to_some = 300, + + /// Utilities::MPI::compute_point_to_point_communication_pattern() + compute_point_to_point_communication_pattern, + + /// GridTools::exchange_cell_data_to_ghosts(): + exchange_cell_data_to_ghosts, + + /// Triangulation::communicate_locally_moved_vertices() + triangulation_communicate_locally_moved_vertices, + + /// dof_handler_policy.cc: communicate_mg_ghost_cells() + dofhandler_communicate_mg_ghost_cells, + + /// dof_handler_policy.cc: communicate_mg_ghost_cells() + dofhandler_communicate_mg_ghost_cells_reply, + + /// mg_transfer_internal.cc: fill_copy_indices() + mg_transfer_fill_copy_indices, + + /// SparsityTools::sparsity_tools_distribute_sparsity_pattern() + sparsity_tools_distribute_sparsity_pattern, + + /// Dictionary::reinit() + dictionary_reinit, + + /// ConsensusAlgorithmPayload::get_requesters() + consensus_algorithm_payload_get_requesters, + + /// FETools::extrapolate() + fe_tools_extrapolate, + /// FETools::extrapolate(), allocate space for 10 rounds: + fe_tools_extrapolate_end = fe_tools_extrapolate + 10, + + /// ConsensusAlgorithm_NBX::process + consensus_algorithm_nbx_process_request, + /// ConsensusAlgorithm_NBX::process + consensus_algorithm_nbx_process_deliver, + + /// ConsensusAlgorithm_PEX::process + consensus_algorithm_pex_process_request, + /// ConsensusAlgorithm_PEX::process + consensus_algorithm_pex_process_deliver, + + }; + }; + } // namespace internal + } // namespace MPI +} // namespace Utilities + + +DEAL_II_NAMESPACE_CLOSE + +#endif -- 2.39.5