9#ifndef __TSQR_MpiCommFactory_hpp
10#define __TSQR_MpiCommFactory_hpp
13#include <Tsqr_Config.hpp>
14#include <Tsqr_MpiMessenger.hpp>
15#include <Teuchos_RCP.hpp>
25 template<
class Scalar >
26 Teuchos::RCP< MessengerBase< Scalar > >
27 makeMpiComm (MPI_Comm comm)
29 return Teuchos::rcp_implicit_cast< MessengerBase< Scalar > >(
new MpiMessenger< Scalar > (comm));
33#ifdef HAVE_MPI_COMM_NETWORK
36 template<
class Scalar >
37 Teuchos::RCP< MessengerBase< Scalar > >
40 makeMpiComm (MPI_COMM_NETWORK);
44#ifdef HAVE_MPI_COMM_NODE
47 template<
class Scalar >
48 Teuchos::RCP< MessengerBase< Scalar > >
51 makeMpiComm (MPI_COMM_NODE);
59 template<
class Scalar >
60 Teuchos::RCP< MessengerBase< Scalar > >
63 makeMpiComm (MPI_COMM_WORLD);