41#ifndef __TSQR_MpiCommFactory_hpp
42#define __TSQR_MpiCommFactory_hpp
45#include <Tsqr_Config.hpp>
46#include <Tsqr_MpiMessenger.hpp>
47#include <Teuchos_RCP.hpp>
57 template<
class Scalar >
58 Teuchos::RCP< MessengerBase< Scalar > >
59 makeMpiComm (MPI_Comm comm)
61 return Teuchos::rcp_implicit_cast< MessengerBase< Scalar > >(
new MpiMessenger< Scalar > (comm));
65#ifdef HAVE_MPI_COMM_NETWORK
68 template<
class Scalar >
69 Teuchos::RCP< MessengerBase< Scalar > >
72 makeMpiComm (MPI_COMM_NETWORK);
76#ifdef HAVE_MPI_COMM_NODE
79 template<
class Scalar >
80 Teuchos::RCP< MessengerBase< Scalar > >
83 makeMpiComm (MPI_COMM_NODE);
91 template<
class Scalar >
92 Teuchos::RCP< MessengerBase< Scalar > >
95 makeMpiComm (MPI_COMM_WORLD);