Anasazi
Version of the Day
src
TSQR
Tsqr_MpiCommFactory.hpp
1
#ifndef __TSQR_MpiCommFactory_hpp
2
#define __TSQR_MpiCommFactory_hpp
3
4
#include <mpi.h>
5
#include <Tsqr_Config.hpp>
6
#include <Tsqr_MpiMessenger.hpp>
7
#include <
Teuchos_RCP.hpp
>
8
11
12
namespace
TSQR
{
13
namespace
MPI {
14
15
namespace
details
{
16
17
template
<
class
Scalar >
18
Teuchos::RCP< MessengerBase< Scalar >
>
19
makeMpiComm (MPI_Comm comm)
20
{
21
return
Teuchos::rcp_implicit_cast< MessengerBase< Scalar > >(
new
MpiMessenger< Scalar > (comm));
22
}
23
}
// namespace details
24
25
#ifdef HAVE_MPI_COMM_NETWORK
26
template
<
class
Scalar >
29
Teuchos::RCP< MessengerBase< Scalar >
>
30
makeMpiCommNetwork ()
31
{
32
makeMpiComm (MPI_COMM_NETWORK);
33
}
34
#endif // HAVE_MPI_COMM_NETWORK
35
36
#ifdef HAVE_MPI_COMM_NODE
37
template
<
class
Scalar >
40
Teuchos::RCP< MessengerBase< Scalar >
>
41
makeMpiCommNode ()
42
{
43
makeMpiComm (MPI_COMM_NODE);
44
}
45
#endif // HAVE_MPI_COMM_NODE
46
51
template
<
class
Scalar >
52
Teuchos::RCP< MessengerBase< Scalar >
>
53
makeMpiCommWorld ()
54
{
55
makeMpiComm (MPI_COMM_WORLD);
56
}
57
58
}
// namespace MPI
59
}
// namespace TSQR
60
61
#endif // __TSQR_MpiCommFactory_hpp
62
details
TSQR
Definition:
Tsqr_MpiCommFactory.hpp:12
Teuchos::RCP
Teuchos_RCP.hpp
Generated by
1.8.14