rebl-AMR
communicate.h
Go to the documentation of this file.
1 #ifndef _COMMUNICATE_H_
2 #define _COMMUNICATE_H_
3 #include "definitions.h"
4 
10 struct MpiCom
11 {
12 MPI_Comm mpicom;
15 MpiCom() {};
16 MpiCom(MPI_Comm Com);
17 };
18 
24 struct Message
25 {
27 int tag;
30 void *buf;
31 MPI_Datatype datatype; /*<! Templated using template initialization */
32 MPI_Status status;
33 MPI_Request request;
34 
35 void print()
36 {
37 cout<<RED "count "<<count<<endl;
38 cout<<"tag "<<tag<<endl;
39 cout<<"sender "<<sender<<endl;
40 cout<<"reciever " <<reciever<<endl;
41 cout<<"Datatype " RESET<<datatype<<endl;
42 
43 };
44 
45 };
46 
57 template <class Type>
59 {
60 private:
63 
64 public:
65 CommPoint2Point(void *buff,uint size, uint *tg, uint snd, uint rcv, uint type,MPI_Comm com);
66 CommPoint2Point(void *buff,uint size, uint snd, uint rcv);
67 CommPoint2Point(void *buff,uint size);
68 void assignSender(uint sndr);
69 void assignReciever(uint rcv);
70 integer myRank();
71 integer mySize();
72 void Irecv();
73 void Isend();
74 void recv();
75 void send();
76 //MPI_Request chechRequest();
77 void getOffset(uint myvalue,uint *offset);
79 };
80 
89 template<class Type>
91 {
92  private:
95 
96  public:
97  CommCollective( void *buf, uint size, uint root);
98  CommCollective(void *buff,uint size);
99  void bcast();
100  void Ibcast();
101  void getTotalNumber(uint *offset,uint *myvalue,uint* totalvalue);
102  void IgetTotalNumber(uint *offset,uint *myvalue,uint* totalvalue);
103  void waitOnRequest();
105 };
106 
107 #endif
108 
109 
110 
111 
112 
void getTotalNumber(uint *offset, uint *myvalue, uint *totalvalue)
void recv()
Definition: communicate.cpp:155
MpiCom Com
Definition: communicate.h:93
integer myRank()
Definition: communicate.cpp:64
void assignReciever(uint rcv)
Definition: communicate.cpp:131
is a template wrapper around MPI functions for collective communicatios
Definition: communicate.h:90
integer myrank
Definition: communicate.h:13
void assignSender(uint sndr)
Definition: communicate.cpp:125
int integer
Definition: definitions.h:39
void send()
Definition: communicate.cpp:161
void Ibcast()
Definition: communicate.cpp:303
~CommPoint2Point()
Definition: communicate.h:78
#define RED
Definition: definitions.h:124
#define RESET
Definition: definitions.h:130
Message Msg
Definition: communicate.h:62
MPI_Request request
Definition: communicate.h:33
void getOffset(uint myvalue, uint *offset)
Definition: communicate.cpp:201
MPI_Status status
Definition: communicate.h:32
MpiCom Com
Definition: communicate.h:61
void Irecv()
Definition: communicate.cpp:142
struct that embeds data related to the message and envelope
Definition: communicate.h:24
MPI_Comm mpicom
Definition: communicate.h:12
void IgetTotalNumber(uint *offset, uint *myvalue, uint *totalvalue)
int tag
Definition: communicate.h:27
void Isend()
Definition: communicate.cpp:149
unsigned int uint
Definition: definitions.h:38
void print()
Definition: communicate.h:35
integer mySize()
Definition: communicate.cpp:70
void * buf
Definition: communicate.h:30
Message Msg
Definition: communicate.h:94
MpiCom()
Definition: communicate.h:15
integer comsize
Definition: communicate.h:14
class for embedding data related to the communicator
Definition: communicate.h:10
~CommCollective()
Definition: communicate.h:104
void waitOnRequest()
Definition: communicate.cpp:330
MPI_Datatype datatype
Definition: communicate.h:31
A template wrapper around MPI functions for point to point communication.
Definition: communicate.h:58
uint reciever
Definition: communicate.h:29
uint count
Definition: communicate.h:26
uint sender
Definition: communicate.h:28
void bcast()
Definition: communicate.cpp:297
CommCollective(void *buf, uint size, uint root)
Definition: communicate.cpp:243
CommPoint2Point(void *buff, uint size, uint *tg, uint snd, uint rcv, uint type, MPI_Comm com)
Definition: communicate.cpp:15