60 nrecvs_(Plan.nrecvs_),
77 const int * ExportPIDs,
88 for(
int i=0; i<NumExportIDs; ++i) {
89 if (ExportPIDs[i] != myproc) {
90 std::cerr <<
"Epetra_SerialDistributor::CreateFromSends: ExportPIDs["<<i
91 <<
"]=="<<ExportPIDs[i]<<
", not allowed for serial case."<< std::endl;
108 const int * RemoteGIDs,
109 const int * RemotePIDs,
131 #ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
133 const long long * RemoteGIDs,
134 const int * RemotePIDs,
137 long long *& ExportGIDs,
156 int & len_import_objs,
157 char *& import_objs )
159 len_import_objs = obj_size*
nrecvs_;
160 if (len_import_objs > 0) {
161 import_objs =
new char[len_import_objs];
164 for(
int i=0; i<len_import_objs; ++i) import_objs[i] = export_objs[i];
173 int & len_import_objs,
174 char *& import_objs )
178 (void)len_import_objs;
189 int & len_import_objs,
190 char *& import_objs )
194 (void)len_import_objs;
215 int & len_import_objs,
216 char *& import_objs )
220 (void)len_import_objs;
241 int & len_import_objs,
242 char *& import_objs )
247 (void)len_import_objs;
258 int & len_import_objs,
259 char *& import_objs )
264 (void)len_import_objs;
276 int & len_import_objs,
277 char *& import_objs )
282 (void)len_import_objs;
295 int & len_import_objs,
296 char *& import_objs )
301 (void)len_import_objs;
310 os <<
"Trivial Distributor" << std::endl;
int DoReversePosts(char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)
Do reverse post of buffer of export objects (can do other local work before executing Waits) ...
int CreateFromRecvs(const int &NumRemoteIDs, const int *RemoteGIDs, const int *RemotePIDs, bool Deterministic, int &NumExportIDs, int *&ExportGIDs, int *&ExportPIDs)
Create Distributor object using list of Remote global IDs and corresponding PIDs. ...
Epetra_SerialDistributor: The Epetra Serial implementation of the Epetra_Distributor Gather/Scatter S...
#define EPETRA_CHK_ERR(a)
int Do(char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)
Execute plan on buffer of export objects in a single step.
Epetra_Object: The base Epetra class.
Epetra_SerialDistributor(const Epetra_SerialComm &Comm)
Constructor.
virtual void Print(std::ostream &os) const
virtual ~Epetra_SerialDistributor()
Epetra_Comm Destructor.
int DoPosts(char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)
Post buffer of export objects (can do other local work before executing Waits)
Epetra_SerialComm: The Epetra Serial Communication Class.
int CreateFromSends(const int &NumExportIDs, const int *ExportPIDs, bool Deterministic, int &NumRemoteIDs)
Create Distributor object using list of process IDs to which we export.
int DoReverseWaits()
Wait on a reverse set of posts.
int DoReverse(char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)
Execute reverse of plan on buffer of export objects in a single step.
int DoWaits()
Wait on a set of posts.