ESyS-Particle
4.0.1
Main Page
Related Pages
Namespaces
Classes
Files
File List
tml
type
gettype.h
1
2
// //
3
// Copyright (c) 2003-2011 by The University of Queensland //
4
// Earth Systems Science Computational Centre (ESSCC) //
5
// http://www.uq.edu.au/esscc //
6
// //
7
// Primary Business: Brisbane, Queensland, Australia //
8
// Licensed under the Open Software License version 3.0 //
9
// http://www.opensource.org/licenses/osl-3.0.php //
10
// //
12
13
#ifndef __GETTYPE_H
14
#define __GETTYPE_H
15
16
//--- MPI ---
17
#include <mpi.h>
18
19
//--- STL includes ---
20
#include <utility>
21
22
#include <Foundation/triplet.h>
23
#include <Foundation/quadtuple.h>
24
#include <Foundation/quintuple.h>
25
26
using
std::pair;
27
33
class
SGetType
34
{
35
public
:
36
template
<
typename
T> MPI_Datatype operator()(
const
T &);
37
38
template
<
typename
T1,
typename
T2>
39
MPI_Datatype operator()(
const
pair<T1,T2>&);
40
41
template
<
typename
T1,
typename
T2,
typename
T3>
42
MPI_Datatype operator()(
const
esys::lsm::triplet<T1,T2,T3>
&trip);
43
44
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
45
MPI_Datatype operator()(
const
esys::lsm::quadtuple<T1,T2,T3,T4>
&quad);
46
47
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4,
typename
T5>
48
MPI_Datatype operator()(
const
esys::lsm::quintuple<T1,T2,T3,T4,T5>
&quin);
49
};
50
54
template
<
typename
T1,
typename
T2>
55
struct
tml_pair
{
56
static
MPI_Datatype type;
57
static
bool
initialized;
58
};
59
template
<
typename
T1,
typename
T2> MPI_Datatype
tml_pair<T1,T2>::type
=MPI_DATATYPE_NULL;
60
template
<
typename
T1,
typename
T2>
bool
tml_pair<T1,T2>::initialized
=
false
;
61
65
template
<
typename
T1,
typename
T2,
typename
T3>
66
struct
tml_trip
{
67
static
MPI_Datatype type;
68
static
bool
initialized;
69
};
70
template
<
typename
T1,
typename
T2,
typename
T3> MPI_Datatype
tml_trip<T1,T2,T3>::type
=MPI_DATATYPE_NULL;
71
template
<
typename
T1,
typename
T2,
typename
T3>
bool
tml_trip<T1,T2,T3>::initialized
=
false
;
72
76
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
77
struct
tml_quad
{
78
static
MPI_Datatype type;
79
static
bool
initialized;
80
};
81
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4> MPI_Datatype
tml_quad<T1,T2,T3,T4>::type
=MPI_DATATYPE_NULL;
82
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4>
bool
tml_quad<T1,T2,T3,T4>::initialized
=
false
;
83
87
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4,
typename
T5>
88
struct
tml_quin
{
89
static
MPI_Datatype type;
90
static
bool
initialized;
91
};
92
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4,
typename
T5> MPI_Datatype
tml_quin<T1,T2,T3,T4,T5>::type
=MPI_DATATYPE_NULL;
93
template
<
typename
T1,
typename
T2,
typename
T3,
typename
T4,
typename
T5>
bool
tml_quin<T1,T2,T3,T4,T5>::initialized
=
false
;
94
95
static
SGetType
GetType;
96
97
#include "tml/type/gettype.hpp"
98
99
#endif //__GETTYPE_H
Generated on Wed Jun 6 2012 00:04:51 for ESyS-Particle by
1.8.1