Epetra_DistObject Class Reference

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:

[legend]
List of all members.

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 (ostream &os) const
 Print method.

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.

Virtual methods to be implemented by derived class

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)=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().

Protected Attributes

Epetra_BlockMap Map_
const Epetra_CommComm_
bool DistributedGlobal_
char * Exports_
char * Imports_
int LenExports_
int LenImports_
int * Sizes_

Private Member Functions

Epetra_DistObjectoperator= (const Epetra_DistObject &src)

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.

Definition at line 67 of file Epetra_DistObject.h.


Constructor & Destructor Documentation

Epetra_DistObject::Epetra_DistObject const Epetra_BlockMap Map  ) 
 

Basic Epetra_DistObject constuctor.

Creates a Epetra_DistObject object.

Parameters:
In Map - 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.

Definition at line 41 of file Epetra_DistObject.cpp.

Epetra_DistObject::Epetra_DistObject const Epetra_BlockMap Map,
const char *const   Label
 

Creates a Epetra_DistObject object.

Parameters:
In Map - 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:
In Label - An identifier for this object. By default, set to the name of the object class.
Returns:
Pointer to a Epetra_DistObject.

Definition at line 56 of file Epetra_DistObject.cpp.

Epetra_DistObject::Epetra_DistObject const Epetra_DistObject Source  ) 
 

Epetra_DistObject copy constructor.

Definition at line 71 of file Epetra_DistObject.cpp.

Epetra_DistObject::~Epetra_DistObject  )  [virtual]
 

Epetra_DistObject destructor.

Definition at line 84 of file Epetra_DistObject.cpp.


Member Function Documentation

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:
In Source - Distributed object that will be imported into the "\e this" object.
In Importer - A Epetra_Import object specifying the communication required.
In CombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns:
Integer error code, set to 0 if successful.

Definition at line 103 of file Epetra_DistObject.cpp.

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:
In Source - Distributed object that will be imported into the "\e this" object.
In Exporter - A Epetra_Export object specifying the communication required.
In CombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns:
Integer error code, set to 0 if successful.

Definition at line 155 of file Epetra_DistObject.cpp.

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:
In Source - Distributed object that will be exported to the "\e this" object.
In Importer - A Epetra_Import object specifying the communication required.
In CombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns:
Integer error code, set to 0 if successful.

Definition at line 181 of file Epetra_DistObject.cpp.

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:
In Source - Distributed object that will be exported to the "\e this" multivector.
In Exporter - A Epetra_Export object specifying the communication required.
In CombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns:
Integer error code, set to 0 if successful.

Definition at line 129 of file Epetra_DistObject.cpp.

const Epetra_BlockMap& Epetra_DistObject::Map  )  const [inline, virtual]
 

Returns the address of the Epetra_BlockMap for this multi-vector.

Implements Epetra_SrcDistObject.

Definition at line 179 of file Epetra_DistObject.h.

const Epetra_Comm& Epetra_DistObject::Comm  )  const [inline]
 

Returns the address of the Epetra_Comm for this multi-vector.

Reimplemented in Epetra_CrsGraph, Epetra_CrsMatrix, and Epetra_VbrMatrix.

Definition at line 182 of file Epetra_DistObject.h.

bool Epetra_DistObject::DistributedGlobal  )  const [inline]
 

Returns true if this multi-vector is distributed global, i.e., not local replicated.

Definition at line 185 of file Epetra_DistObject.h.

void Epetra_DistObject::Print ostream &  os  )  const [virtual]
 

Print method.

Reimplemented from Epetra_Object.

Reimplemented in Epetra_CrsGraph, Epetra_CrsMatrix, Epetra_IntVector, Epetra_MapColoring, Epetra_MultiVector, and Epetra_VbrMatrix.

Definition at line 267 of file Epetra_DistObject.cpp.

int Epetra_DistObject::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
[protected, virtual]
 

Perform actual transfer (redistribution) of data across memory images, using Epetra_Distributor object.

Definition at line 207 of file Epetra_DistObject.cpp.

virtual int Epetra_DistObject::CheckSizes const Epetra_SrcDistObject Source  )  [protected, pure virtual]
 

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

Implemented in Epetra_CrsGraph, Epetra_CrsMatrix, Epetra_IntVector, Epetra_MapColoring, Epetra_MultiVector, and Epetra_VbrMatrix.

virtual int Epetra_DistObject::CopyAndPermute const Epetra_SrcDistObject Source,
int  NumSameIDs,
int  NumPermuteIDs,
int *  PermuteToLIDs,
int *  PermuteFromLIDs,
const Epetra_OffsetIndex Indexor
[protected, pure virtual]
 

Perform ID copies and permutations that are on processor.

Implemented in Epetra_CrsGraph, Epetra_CrsMatrix, Epetra_IntVector, Epetra_MapColoring, Epetra_MultiVector, and Epetra_VbrMatrix.

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
[protected, pure virtual]
 

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

Implemented in Epetra_CrsGraph, Epetra_CrsMatrix, Epetra_IntVector, Epetra_MapColoring, Epetra_MultiVector, and Epetra_VbrMatrix.

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
[protected, pure virtual]
 

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

Implemented in Epetra_CrsGraph, Epetra_CrsMatrix, Epetra_IntVector, Epetra_MapColoring, Epetra_MultiVector, and Epetra_VbrMatrix.

Epetra_DistObject & Epetra_DistObject::operator= const Epetra_DistObject src  )  [private]
 

Definition at line 283 of file Epetra_DistObject.cpp.


Member Data Documentation

Epetra_BlockMap Epetra_DistObject::Map_ [protected]
 

Definition at line 256 of file Epetra_DistObject.h.

const Epetra_Comm* Epetra_DistObject::Comm_ [protected]
 

Definition at line 257 of file Epetra_DistObject.h.

bool Epetra_DistObject::DistributedGlobal_ [protected]
 

Definition at line 258 of file Epetra_DistObject.h.

char* Epetra_DistObject::Exports_ [protected]
 

Definition at line 259 of file Epetra_DistObject.h.

char* Epetra_DistObject::Imports_ [protected]
 

Definition at line 260 of file Epetra_DistObject.h.

int Epetra_DistObject::LenExports_ [protected]
 

Definition at line 261 of file Epetra_DistObject.h.

int Epetra_DistObject::LenImports_ [protected]
 

Definition at line 262 of file Epetra_DistObject.h.

int* Epetra_DistObject::Sizes_ [protected]
 

Definition at line 263 of file Epetra_DistObject.h.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:38:05 2008 for Epetra Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1