119 #ifdef HAVE_EPETRA_DEBUG 135 PermuteToLIDs, PermuteFromLIDs, RemoteLIDs, ExportLIDs,
147 #ifdef HAVE_EPETRA_DEBUG 163 PermuteToLIDs, PermuteFromLIDs, RemoteLIDs, ExportLIDs,
175 #ifdef HAVE_EPETRA_DEBUG 191 PermuteToLIDs, PermuteFromLIDs, RemoteLIDs, ExportLIDs,
203 #ifdef HAVE_EPETRA_DEBUG 219 PermuteToLIDs, PermuteFromLIDs, RemoteLIDs, ExportLIDs,
233 int* PermuteFromLIDs,
247 if (NumSameIDs + NumPermuteIDs > 0) {
256 if (CombineMode==
Zero)
260 bool VarSizes =
false;
261 if( NumExportIDs > 0) {
263 Sizes_ =
new int[NumExportIDs];
266 LenExports, Exports, SizeOfPacket,
Sizes_, VarSizes, Distor));
298 for (
int iproc=0; iproc < NumProc; iproc++) {
301 os <<
"Length of Export buffer (in chars) = " <<
LenExports_ << std::endl;
302 os <<
"Length of Import buffer (in chars) = " <<
LenImports_ << std::endl;
314 bool throw_error =
true;
316 throw ReportError(
"Epetra_DistObject::operator= is not supported.",-1);
int NumPermuteIDs() const
Returns the number of elements that are local to the calling processor, but not part of the first Num...
int * ExportLIDs() const
List of elements that will be sent to other processors.
int NumSameIDs() const
Returns the number of elements that are identical between the source and target maps, up to the first different ID.
Epetra_Distributor: The Epetra Gather/Scatter Setup Base Class.
virtual int CopyAndPermute(const Epetra_SrcDistObject &Source, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor, Epetra_CombineMode CombineMode=Zero)=0
Perform ID copies and permutations that are on processor.
bool DistributedGlobal() const
Returns true if map is defined across more than one processor.
Epetra_Distributor & Distributor() const
virtual void Print(std::ostream &os) const
Print method.
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.
Epetra_OffsetIndex: This class builds index for efficient mapping of data from one Epetra_CrsGraph ba...
int * PermuteFromLIDs() const
List of elements in the source map that are permuted.
bool SameAs(const Epetra_BlockMap &Map) const
Returns true if this and Map are identical maps.
const Epetra_BlockMap & SourceMap() const
Returns the SourceMap used to construct this importer.
int NumRemoteIDs() const
Returns the number of elements that are not on the calling processor.
#define EPETRA_CHK_ERR(a)
const Epetra_BlockMap & TargetMap() const
Returns the TargetMap used to construct this importer.
int * PermuteToLIDs() const
List of elements in the target map that are permuted.
virtual ~Epetra_DistObject()
Epetra_DistObject destructor.
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements...
int NumPermuteIDs() const
Returns the number of elements that are local to the calling processor, but not part of the first Num...
virtual int ReportError(const std::string Message, int ErrorCode) const
Error reporting method.
Epetra_Import: This class builds an import object for efficient importing of off-processor elements...
int * RemoteLIDs() const
List of elements in the target map that are coming from other processors.
virtual int CheckSizes(const Epetra_SrcDistObject &Source)=0
Allows the source and target (this) objects to be compared for compatibility, return nonzero if not...
virtual int MyPID() const =0
Return my process ID.
const Epetra_Comm & Comm() const
Returns the address of the Epetra_Comm for this multi-vector.
int * PermuteFromLIDs() const
List of elements in the source map that are permuted.
int NumExportIDs() const
Returns the number of elements that must be sent by the calling processor to other processors...
int * RemoteLIDs() const
List of elements in the target map that are coming from other processors.
int Export(const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0)
Exports an Epetra_DistObject using the Epetra_Import object.
virtual int DoTransfer(const Epetra_SrcDistObject &A, Epetra_CombineMode CombineMode, int NumSameIDs, int NumPermuteIDs, int NumRemoteIDs, int NumExportIDs, int *PermuteToLIDs, int *PermuteFromLIDs, int *RemoteLIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &LenImports, char *&Imports, Epetra_Distributor &Distor, bool DoReverse, const Epetra_OffsetIndex *Indexor)
Perform actual transfer (redistribution) of data across memory images, using Epetra_Distributor objec...
Epetra_Object: The base Epetra class.
virtual const Epetra_BlockMap & Map() const =0
Returns a reference to the Epetra_BlockMap for this object.
int NumSameIDs() const
Returns the number of elements that are identical between the source and target maps, up to the first different ID.
virtual int UnpackAndCombine(const Epetra_SrcDistObject &Source, int NumImportIDs, int *ImportLIDs, int LenImports, char *Imports, int &SizeOfPacket, Epetra_Distributor &Distor, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor)=0
Perform any unpacking and combining after call to DoTransfer().
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
Epetra_Distributor & Distributor() const
int * ExportLIDs() const
List of elements that will be sent to other processors.
Epetra_DistObject & operator=(const Epetra_DistObject &src)
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.
Epetra_DistObject(const Epetra_BlockMap &Map)
Basic Epetra_DistObject constuctor.
int * PermuteToLIDs() const
List of elements in the target map that are permuted.
virtual int NumProc() const =0
Returns total number of processes.
int NumExportIDs() const
Returns the number of elements that must be sent by the calling processor to other processors...
int NumRemoteIDs() const
Returns the number of elements that are not on the calling processor.
virtual void PrintInfo(std::ostream &os) const =0
Print object to an output stream.
const Epetra_BlockMap & SourceMap() const
Returns the SourceMap used to construct this exporter.
Epetra_SrcDistObject: A class for supporting flexible source distributed objects for import/export op...
const Epetra_BlockMap & TargetMap() const
Returns the TargetMap used to construct this exporter.
int Import(const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0)
Imports an Epetra_DistObject using the Epetra_Import object.
Epetra_DistObject: A class for constructing and using dense multi-vectors, vectors and matrices in pa...
virtual int PackAndPrepare(const Epetra_SrcDistObject &Source, int NumExportIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &SizeOfPacket, int *Sizes, bool &VarSizes, Epetra_Distributor &Distor)=0
Perform any packing or preparation required for call to DoTransfer().