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