FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fei_mpiTraits.hpp
1 /*--------------------------------------------------------------------*/
2 /* Copyright 2005 Sandia Corporation. */
3 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
4 /* non-exclusive license for use of this work by or on behalf */
5 /* of the U.S. Government. Export of this program may require */
6 /* a license from the United States Government. */
7 /*--------------------------------------------------------------------*/
8 
9 #ifndef _fei_mpiTraits_hpp_
10 #define _fei_mpiTraits_hpp_
11 
12 #include <fei_macros.hpp>
13 #include <fei_defs.h>
14 
15 #ifndef FEI_SER
16 
17 namespace fei {
18 
21  template<class T>
22  struct mpiTraits {};
23 
26  template<>
27  struct mpiTraits<char> {
29  static MPI_Datatype mpi_type() {return(MPI_CHAR);};
30  };
31 
34  template<>
35  struct mpiTraits<float> {
37  static MPI_Datatype mpi_type() {return(MPI_FLOAT);};
38  };
39 
42  template<>
43  struct mpiTraits<double> {
45  static MPI_Datatype mpi_type() {return(MPI_DOUBLE);};
46  };
47 
50  template<>
51  struct mpiTraits<int> {
53  static MPI_Datatype mpi_type() {return(MPI_INT);};
54  };
55 
58  template<>
59  struct mpiTraits<long> {
61  static MPI_Datatype mpi_type() {return(MPI_LONG);};
62  };
63 
64 #ifdef EIGHT_BYTE_GLOBAL_ID
65 
67  template<>
68  struct mpiTraits<GlobalID> {
70  static MPI_Datatype mpi_type() {return(MPI_LONG_LONG);};
71  };
72 #endif
73 
74 } //namespace fei
75 
76 #endif //FEI_SER
77 
78 #endif // _fei_mpiTraits_hpp_
79