Epetra Development
Loading...
Searching...
No Matches
List of all members
Epetra_DistObject Class Referenceabstract

Epetra_DistObject: A class for constructing and using dense multi-vectors, vectors and matrices in parallel. More...

#include <Epetra_DistObject.h>

Inheritance diagram for Epetra_DistObject:
Inheritance graph
[legend]
Collaboration diagram for Epetra_DistObject:
Collaboration graph
[legend]

Public Member Functions

Constructors/Destructor
 Epetra_DistObject (const Epetra_BlockMap &Map)
 Basic Epetra_DistObject constuctor.
 
 Epetra_DistObject (const Epetra_BlockMap &Map, const char *const Label)
 
 Epetra_DistObject (const Epetra_DistObject &Source)
 Epetra_DistObject copy constructor.
 
virtual ~Epetra_DistObject ()
 Epetra_DistObject destructor.
 
Import/Export Methods
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 Import (const Epetra_SrcDistObject &A, const Epetra_Export &Exporter, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0)
 Imports an Epetra_DistObject using the Epetra_Export 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.
 
int Export (const Epetra_SrcDistObject &A, const Epetra_Export &Exporter, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0)
 Exports an Epetra_DistObject using the Epetra_Export object.
 
Attribute accessor methods
const Epetra_BlockMapMap () const
 Returns the address of the Epetra_BlockMap for this multi-vector.
 
const Epetra_CommComm () const
 Returns the address of the Epetra_Comm for this multi-vector.
 
bool DistributedGlobal () const
 Returns true if this multi-vector is distributed global, i.e., not local replicated.
 
Miscellaneous
virtual void Print (std::ostream &os) const
 Print method.
 
- Public Member Functions inherited from Epetra_Object
 Epetra_Object (int TracebackModeIn=-1, bool set_label=true)
 Epetra_Object Constructor.
 
 Epetra_Object (const char *const Label, int TracebackModeIn=-1)
 Epetra_Object Constructor.
 
 Epetra_Object (const Epetra_Object &Object)
 Epetra_Object Copy Constructor.
 
virtual ~Epetra_Object ()
 Epetra_Object Destructor.
 
virtual int ReportError (const std::string Message, int ErrorCode) const
 Error reporting method.
 
virtual void SetLabel (const char *const Label)
 Epetra_Object Label definition using char *.
 
virtual const char * Label () const
 Epetra_Object Label access funtion.
 
- Public Member Functions inherited from Epetra_SrcDistObject
virtual ~Epetra_SrcDistObject ()
 Epetra_SrcDistObject destructor.
 

Protected Member Functions

Internal utilities
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 object.
 
- Protected Member Functions inherited from Epetra_Object
std::string toString (const int &x) const
 
std::string toString (const long long &x) const
 
std::string toString (const double &x) const
 

Virtual methods to be implemented by derived class

Epetra_BlockMap Map_
 
const Epetra_CommComm_
 
char * Exports_
 
char * Imports_
 
int LenExports_
 
int LenImports_
 
int * Sizes_
 
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 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.
 
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 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().
 

Additional Inherited Members

- Static Public Member Functions inherited from Epetra_Object
static void SetTracebackMode (int TracebackModeValue)
 Set the value of the Epetra_Object error traceback report mode.
 
static int GetTracebackMode ()
 Get the value of the Epetra_Object error report mode.
 
static std::ostream & GetTracebackStream ()
 Get the output stream for error reporting.
 
- Static Public Attributes inherited from Epetra_Object
static int TracebackMode
 

Detailed Description

Epetra_DistObject: A class for constructing and using dense multi-vectors, vectors and matrices in parallel.

The Epetra_DistObject is a base class for all Epetra distributed global objects. It provides the basic mechanisms and interface specifications for importing and exporting operations using Epetra_Import and Epetra_Export objects.

Distributed Global vs. Replicated Local.

Constructor & Destructor Documentation

◆ Epetra_DistObject() [1/2]

Epetra_DistObject::Epetra_DistObject ( const Epetra_BlockMap & Map)

Basic Epetra_DistObject constuctor.

Creates a Epetra_DistObject object.

Parameters
InMap - A Epetra_LocalMap, Epetra_Map or Epetra_BlockMap.
Warning
Note that, because Epetra_LocalMap derives from Epetra_Map and Epetra_Map derives from Epetra_BlockMap, this constructor works for all three types of Epetra map classes.
Returns
Pointer to a Epetra_DistObject.

◆ Epetra_DistObject() [2/2]

Epetra_DistObject::Epetra_DistObject ( const Epetra_BlockMap & Map,
const char *const Label )

Creates a Epetra_DistObject object.

Parameters
InMap - A Epetra_LocalMap, Epetra_Map or Epetra_BlockMap.
Warning
Note that, because Epetra_LocalMap derives from Epetra_Map and Epetra_Map derives from Epetra_BlockMap, this constructor works for all three types of Epetra map classes.
Parameters
InLabel - An identifier for this object. By default, set to the name of the object class.
Returns
Pointer to a Epetra_DistObject.

Member Function Documentation

◆ CheckSizes()

virtual int Epetra_DistObject::CheckSizes ( const Epetra_SrcDistObject & Source)
protectedpure virtual

Allows the source and target (this) objects to be compared for compatibility, return nonzero if not.

Implemented in Epetra_CrsMatrix, and Epetra_VbrMatrix.

◆ CopyAndPermute()

virtual int Epetra_DistObject::CopyAndPermute ( const Epetra_SrcDistObject & Source,
int NumSameIDs,
int NumPermuteIDs,
int * PermuteToLIDs,
int * PermuteFromLIDs,
const Epetra_OffsetIndex * Indexor,
Epetra_CombineMode CombineMode = Zero )
protectedpure virtual

Perform ID copies and permutations that are on processor.

Implemented in Epetra_CrsMatrix, and Epetra_VbrMatrix.

◆ Export() [1/2]

int Epetra_DistObject::Export ( const Epetra_SrcDistObject & A,
const Epetra_Export & Exporter,
Epetra_CombineMode CombineMode,
const Epetra_OffsetIndex * Indexor = 0 )

Exports an Epetra_DistObject using the Epetra_Export object.

Parameters
InSource - Distributed object that will be exported to the "\e this" multivector.
InExporter - A Epetra_Export object specifying the communication required.
InCombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns
Integer error code, set to 0 if successful.

◆ Export() [2/2]

int Epetra_DistObject::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.

Parameters
InSource - Distributed object that will be exported to the "\e this" object.
InImporter - A Epetra_Import object specifying the communication required.
InCombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns
Integer error code, set to 0 if successful.

◆ Import() [1/2]

int Epetra_DistObject::Import ( const Epetra_SrcDistObject & A,
const Epetra_Export & Exporter,
Epetra_CombineMode CombineMode,
const Epetra_OffsetIndex * Indexor = 0 )

Imports an Epetra_DistObject using the Epetra_Export object.

Parameters
InSource - Distributed object that will be imported into the "\e this" object.
InExporter - A Epetra_Export object specifying the communication required.
InCombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns
Integer error code, set to 0 if successful.

◆ Import() [2/2]

int Epetra_DistObject::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.

Parameters
InSource - Distributed object that will be imported into the "\e this" object.
InImporter - A Epetra_Import object specifying the communication required.
InCombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns
Integer error code, set to 0 if successful.

◆ Map()

const Epetra_BlockMap & Epetra_DistObject::Map ( ) const
inlinevirtual

◆ PackAndPrepare()

virtual int Epetra_DistObject::PackAndPrepare ( const Epetra_SrcDistObject & Source,
int NumExportIDs,
int * ExportLIDs,
int & LenExports,
char *& Exports,
int & SizeOfPacket,
int * Sizes,
bool & VarSizes,
Epetra_Distributor & Distor )
protectedpure virtual

Perform any packing or preparation required for call to DoTransfer().

Implemented in Epetra_CrsMatrix, and Epetra_VbrMatrix.

◆ Print()

virtual void Epetra_DistObject::Print ( std::ostream & os) const
virtual

◆ UnpackAndCombine()

virtual int Epetra_DistObject::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 )
protectedpure virtual

Perform any unpacking and combining after call to DoTransfer().

Implemented in Epetra_CrsMatrix, and Epetra_VbrMatrix.


The documentation for this class was generated from the following file: