131 (void)argc; (void)argv;
140 int rank ()
const {
return 0; }
144 int size ()
const {
return 1; }
148 FakeMPIHelper(
const FakeMPIHelper&);
149 FakeMPIHelper& operator=(
const FakeMPIHelper);
183 return MPI_COMM_WORLD;
194 return MPI_COMM_SELF;
227 int rank ()
const {
return rank_; }
231 int size ()
const {
return size_; }
236 void prevent_warning(
int){}
239 MPIHelper(
int& argc,
char**& argv)
241 int wasInitialized = -1;
242 MPI_Initialized( &wasInitialized );
247 static int is_initialized = MPI_Init(&argc, &argv);
248 prevent_warning(is_initialized);
251 MPI_Comm_rank(MPI_COMM_WORLD,&rank_);
252 MPI_Comm_size(MPI_COMM_WORLD,&size_);
254 assert( rank_ >= 0 );
255 assert( size_ >= 1 );
257 dverb <<
"Called MPI_Init on p=" << rank_ <<
"!" << std::endl;
262 int wasFinalized = -1;
263 MPI_Finalized( &wasFinalized );
266 dverb <<
"Called MPI_Finalize on p=" << rank_ <<
"!" <<std::endl;
270 MPIHelper(
const MPIHelper&);
271 MPIHelper& operator=(
const MPIHelper);
280 typedef FakeMPIHelper MPIHelper;
Implements an utility class that provides MPI's collective communication methods.
Implements an utility class that provides collective communication methods for sequential programs.
Definition of macros controlling symbol visibility at the ABI level.
#define DUNE_EXPORT
Export a symbol as part of the public ABI.
Definition visibility.hh:18
Standard Dune debug streams.
DVerbType dverb(std::cout)
Singleton of verbose debug stream.
Definition stdstreams.hh:114
Dune namespace.
Definition alignment.hh:11
Definition collectivecommunication.hh:42
Collective communication interface and sequential default implementation.
Definition collectivecommunication.hh:79
A fake mpi helper.
Definition mpihelper.hh:68
static DUNE_EXPORT MPICommunicator getCommunicator()
get the default communicator
Definition mpihelper.hh:89
int size() const
return rank of process, i.e. one
Definition mpihelper.hh:144
@ isFake
Are we fake (i.e. pretend to have MPI support but are compiled without.)
Definition mpihelper.hh:75
static MPICommunicator getLocalCommunicator()
get a local communicator
Definition mpihelper.hh:101
No_Comm MPICommunicator
The type of the mpi communicator.
Definition mpihelper.hh:81
static DUNE_EXPORT FakeMPIHelper & instance(int argc, char **argv)
Get the singleton instance of the helper.
Definition mpihelper.hh:129
static CollectiveCommunication< MPICommunicator > getCollectiveCommunication()
Definition mpihelper.hh:109
int rank() const
return rank of process, i.e. zero
Definition mpihelper.hh:140
A real mpi helper.
Definition mpihelper.hh:160
int size() const
return number of processes
Definition mpihelper.hh:231
@ isFake
Are we fake (i. e. pretend to have MPI support but are compiled without.
Definition mpihelper.hh:167
static DUNE_EXPORT MPIHelper & instance(int &argc, char **&argv)
Get the singleton instance of the helper.
Definition mpihelper.hh:217
static CollectiveCommunication< MPICommunicator > getCollectiveCommunication()
Definition mpihelper.hh:198
int rank() const
return rank of process
Definition mpihelper.hh:227
MPI_Comm MPICommunicator
The type of the mpi communicator.
Definition mpihelper.hh:173
static MPICommunicator getCommunicator()
get the default communicator
Definition mpihelper.hh:181
static MPICommunicator getLocalCommunicator()
get a local communicator
Definition mpihelper.hh:192