44#ifndef EPETRA_DISTRIBUTOR_H
45#define EPETRA_DISTRIBUTOR_H
96 const int * ExportPIDs,
98 int & NumRemoteIDs ) = 0;
117 const int * RemoteGIDs,
118 const int * RemotePIDs,
122 int *& ExportPIDs) = 0;
124#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
126 const long long * RemoteGIDs,
127 const int * RemotePIDs,
130 long long *& ExportGIDs,
131 int *& ExportPIDs) = 0;
139 virtual int Do(
char * export_objs,
141 int & len_import_objs,
142 char *& import_objs) = 0;
147 int & len_import_objs,
148 char *& import_objs ) = 0;
153 int & len_import_objs,
154 char *& import_objs ) = 0;
162 int & len_import_objs,
163 char *& import_objs) = 0;
173 virtual int Do(
char * export_objs,
176 int & len_import_objs,
177 char *& import_objs) = 0;
183 int & len_import_objs,
184 char *& import_objs) = 0;
190 int & len_import_objs,
191 char *& import_objs) = 0;
197 int & len_import_objs,
198 char *& import_objs) = 0;
203 virtual void Print(std::ostream & os)
const = 0;
Epetra_Distributor: The Epetra Gather/Scatter Setup Base Class.
virtual Epetra_Distributor * Clone()=0
Epetra_Distributor clone constructor.
virtual int DoPosts(char *export_objs, int obj_size, int *&sizes, int &len_import_objs, char *&import_objs)=0
Post buffer of export objects (can do other local work before executing Waits)
virtual int DoReverseWaits()=0
Wait on a reverse set of posts.
virtual int DoReverse(char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)=0
Execute reverse of plan on buffer of export objects in a single step.
virtual int CreateFromRecvs(const int &NumRemoteIDs, const int *RemoteGIDs, const int *RemotePIDs, bool Deterministic, int &NumExportIDs, int *&ExportGIDs, int *&ExportPIDs)=0
Create Distributor object using list of Remote global IDs and corresponding PIDs.
virtual int Do(char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)=0
Execute plan on buffer of export objects in a single step.
virtual int DoWaits()=0
Wait on a set of posts.
virtual int DoReversePosts(char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)=0
Do reverse post of buffer of export objects (can do other local work before executing Waits)
virtual ~Epetra_Distributor()
Epetra_Distributor Destructor.
virtual int CreateFromSends(const int &NumExportIDs, const int *ExportPIDs, bool Deterministic, int &NumRemoteIDs)=0
Create Distributor object using list of process IDs to which we export.
virtual int CreateFromRecvs(const int &NumRemoteIDs, const long long *RemoteGIDs, const int *RemotePIDs, bool Deterministic, int &NumExportIDs, long long *&ExportGIDs, int *&ExportPIDs)=0
virtual int DoPosts(char *export_objs, int obj_size, int &len_import_objs, char *&import_objs)=0
Post buffer of export objects (can do other local work before executing Waits)
virtual void Print(std::ostream &os) const =0
virtual int DoReverse(char *export_objs, int obj_size, int *&sizes, int &len_import_objs, char *&import_objs)=0
Execute reverse of plan on buffer of export objects in a single step (object size may vary)
virtual Epetra_Distributor * ReverseClone()=0
Create and extract the reverse version of the distributor.
virtual int Do(char *export_objs, int obj_size, int *&sizes, int &len_import_objs, char *&import_objs)=0
Execute plan on buffer of export objects in a single step (object size may vary)
virtual int DoReversePosts(char *export_objs, int obj_size, int *&sizes, int &len_import_objs, char *&import_objs)=0
Do reverse post of buffer of export objects (can do other local work before executing Waits)