19#ifdef DEAL_II_WITH_TRILINOS
20# ifdef DEAL_II_WITH_MPI
21# include <Epetra_MpiComm.h>
22# include <Teuchos_DefaultComm.hpp>
24# include <Epetra_SerialComm.h>
25# include <Teuchos_RCP.hpp>
32#ifdef DEAL_II_WITH_TRILINOS
38# ifdef DEAL_II_WITH_MPI
54# ifdef DEAL_II_WITH_MPI
58 static auto communicator =
70# ifdef DEAL_II_WITH_MPI
86# ifdef DEAL_II_WITH_MPI
92 dynamic_cast<const Epetra_MpiComm *
>(&communicator);
94 return new Epetra_MpiComm(
115# ifdef DEAL_II_WITH_MPI
116 Epetra_MpiComm *
mpi_comm =
dynamic_cast<Epetra_MpiComm *
>(&communicator);
132 return mpi_communicator.NumProc();
139 return static_cast<unsigned int>(mpi_communicator.MyPID());
147 if (map.LinearMap() ==
true)
154 return Epetra_Map(map.NumGlobalElements(),
163 return Epetra_Map(map.NumGlobalElements(),
165 map.MyGlobalElements(),
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
static ::ExceptionBase & ExcInternalError()
MPI_Comm duplicate_communicator(const MPI_Comm mpi_communicator)
void free_communicator(MPI_Comm mpi_communicator)
void destroy_communicator(Epetra_Comm &communicator)
Epetra_Map duplicate_map(const Epetra_BlockMap &map, const Epetra_Comm &comm)
unsigned int get_this_mpi_process(const Epetra_Comm &mpi_communicator)
unsigned int get_n_mpi_processes(const Epetra_Comm &mpi_communicator)
const Epetra_Comm & comm_self()
const Teuchos::RCP< const Teuchos::Comm< int > > & tpetra_comm_self()
Epetra_Comm * duplicate_communicator(const Epetra_Comm &communicator)
const Epetra_Comm & comm_world()