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);
#define EPETRA_CHK_ERR(a)
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
bool DistributedGlobal() const
Returns true if map is defined across more than one processor.
bool SameAs(const Epetra_BlockMap &Map) const
Returns true if this and Map are identical maps.
virtual int NumProc() const =0
Returns total number of processes.
virtual void PrintInfo(std::ostream &os) const =0
Print object to an output stream.
virtual int MyPID() const =0
Return my process ID.
Epetra_DistObject: A class for constructing and using dense multi-vectors, vectors and matrices in pa...
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 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().
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.
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 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().
virtual ~Epetra_DistObject()
Epetra_DistObject destructor.
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.
Epetra_DistObject & operator=(const Epetra_DistObject &src)
const Epetra_Comm & Comm() const
Returns the address of the Epetra_Comm for this multi-vector.
Epetra_DistObject(const Epetra_BlockMap &Map)
Basic Epetra_DistObject constuctor.
virtual void Print(std::ostream &os) const
Print method.
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_Distributor: The Epetra Gather/Scatter Setup Base Class.
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 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_Export: This class builds an export object for efficient exporting of off-processor elements.
int * RemoteLIDs() const
List of elements in the target map that are coming from other processors.
const Epetra_BlockMap & TargetMap() const
Returns the TargetMap used to construct this exporter.
Epetra_Distributor & Distributor() const
int NumRemoteIDs() const
Returns the number of elements that are not on the calling processor.
const Epetra_BlockMap & SourceMap() const
Returns the SourceMap used to construct this exporter.
int * PermuteToLIDs() const
List of elements in the target map that are permuted.
int NumPermuteIDs() const
Returns the number of elements that are local to the calling processor, but not part of the first Num...
int * PermuteFromLIDs() const
List of elements in the source map that are permuted.
int NumSameIDs() const
Returns the number of elements that are identical between the source and target maps,...
int * ExportLIDs() const
List of elements that will be sent to other processors.
int NumExportIDs() const
Returns the number of elements that must be sent by the calling processor to other processors.
Epetra_Import: This class builds an import object for efficient importing of off-processor elements.
int * PermuteToLIDs() const
List of elements in the target map that are permuted.
int NumPermuteIDs() const
Returns the number of elements that are local to the calling processor, but not part of the first Num...
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 NumSameIDs() const
Returns the number of elements that are identical between the source and target maps,...
Epetra_Distributor & Distributor() const
int * RemoteLIDs() const
List of elements in the target map that are coming from other processors.
int NumRemoteIDs() const
Returns the number of elements that are not on the calling processor.
int * ExportLIDs() const
List of elements that will be sent to other processors.
const Epetra_BlockMap & SourceMap() const
Returns the SourceMap used to construct this importer.
const Epetra_BlockMap & TargetMap() const
Returns the TargetMap used to construct this importer.
Epetra_Object: The base Epetra class.
virtual int ReportError(const std::string Message, int ErrorCode) const
Error reporting method.
Epetra_OffsetIndex: This class builds index for efficient mapping of data from one Epetra_CrsGraph ba...
Epetra_SrcDistObject: A class for supporting flexible source distributed objects for import/export op...
virtual const Epetra_BlockMap & Map() const =0
Returns a reference to the Epetra_BlockMap for this object.