Epetra_LocalMap: A class for replicating vectors and matrices across multiple processors. More...
#include <Epetra_LocalMap.h>
Public Member Functions | |
Epetra_LocalMap (int NumMyElements, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_LocalMap constructor for a user-defined replicate distribution of elements. More... | |
Epetra_LocalMap (long long NumMyElements, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_LocalMap (long long NumMyElements, long long IndexBase, const Epetra_Comm &Comm) | |
Epetra_LocalMap (const Epetra_LocalMap &map) | |
Epetra_LocalMap copy constructor. | |
virtual | ~Epetra_LocalMap () |
Epetra_LocalMap destructor. | |
Epetra_LocalMap & | operator= (const Epetra_LocalMap &map) |
Assignment Operator. | |
Public Member Functions inherited from Epetra_Map | |
Epetra_Map (int NumGlobalElements, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_Map constructor for a Epetra-defined uniform linear distribution of elements. More... | |
Epetra_Map (long long NumGlobalElements, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_Map (long long NumGlobalElements, long long IndexBase, const Epetra_Comm &Comm) | |
Epetra_Map (int NumGlobalElements, int NumMyElements, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_Map constructor for a user-defined linear distribution of elements. More... | |
Epetra_Map (long long NumGlobalElements, int NumMyElements, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_Map (long long NumGlobalElements, int NumMyElements, long long IndexBase, const Epetra_Comm &Comm) | |
Epetra_Map (int NumGlobalElements, int NumMyElements, const int *MyGlobalElements, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_Map constructor for a user-defined arbitrary distribution of elements. More... | |
Epetra_Map (long long NumGlobalElements, int NumMyElements, const long long *MyGlobalElements, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_Map (long long NumGlobalElements, int NumMyElements, const long long *MyGlobalElements, long long IndexBase, const Epetra_Comm &Comm) | |
Epetra_Map (long long NumGlobal_Elements, int NumMy_Elements, const long long *myGlobalElements, int indexBase, const Epetra_Comm &comm, bool UserIsDistributedGlobal, long long UserMinAllGID, long long UserMaxAllGID) | |
Epetra_Map constructor for a user-defined arbitrary distribution of elements, where the user provides all the globals. More... | |
Epetra_Map (long long NumGlobal_Elements, int NumMy_Elements, const long long *myGlobalElements, long long indexBase, const Epetra_Comm &comm, bool UserIsDistributedGlobal, long long UserMinAllGID, long long UserMaxAllGID) | |
Epetra_Map (int NumGlobal_Elements, int NumMy_Elements, const int *myGlobalElements, int indexBase, const Epetra_Comm &comm, bool UserIsDistributedGlobal, int UserMinAllGID, int UserMaxAllGID) | |
Epetra_Map (const Epetra_Map &map) | |
Epetra_Map copy constructor. | |
virtual | ~Epetra_Map (void) |
Epetra_Map destructor. | |
Epetra_Map & | operator= (const Epetra_Map &map) |
Assignment Operator. | |
Epetra_Map * | RemoveEmptyProcesses () const |
Return a new BlockMap with processes with zero elements removed. More... | |
Epetra_Map * | ReplaceCommWithSubset (const Epetra_Comm *Comm) const |
Replace this Map's communicator with a subset communicator. More... | |
Public Member Functions inherited from Epetra_BlockMap | |
template<> | |
bool | GlobalIndicesIsType () const |
template<> | |
bool | GlobalIndicesIsType () const |
Epetra_BlockMap (int NumGlobalElements, int ElementSize, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap constructor for a Epetra-defined uniform linear distribution of constant size elements. More... | |
Epetra_BlockMap (long long NumGlobalElements, int ElementSize, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap (long long NumGlobalElements, int ElementSize, long long IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap (int NumGlobalElements, int NumMyElements, int ElementSize, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap constructor for a user-defined linear distribution of constant size elements. More... | |
Epetra_BlockMap (long long NumGlobalElements, int NumMyElements, int ElementSize, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap (long long NumGlobalElements, int NumMyElements, int ElementSize, long long IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap (int NumGlobalElements, int NumMyElements, const int *MyGlobalElements, int ElementSize, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap constructor for a user-defined arbitrary distribution of constant size elements. More... | |
Epetra_BlockMap (long long NumGlobalElements, int NumMyElements, const long long *MyGlobalElements, int ElementSize, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap (long long NumGlobalElements, int NumMyElements, const long long *MyGlobalElements, int ElementSize, long long IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap (int NumGlobalElements, int NumMyElements, const int *MyGlobalElements, const int *ElementSizeList, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap constructor for a user-defined arbitrary distribution of variable size elements. More... | |
Epetra_BlockMap (long long NumGlobalElements, int NumMyElements, const long long *MyGlobalElements, const int *ElementSizeList, int IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap (long long NumGlobalElements, int NumMyElements, const long long *MyGlobalElements, const int *ElementSizeList, long long IndexBase, const Epetra_Comm &Comm) | |
Epetra_BlockMap (long long NumGlobal_Elements, int NumMy_Elements, const long long *myGlobalElements, int ElementSize, int indexBase, const Epetra_Comm &comm, bool UserIsDistributedGlobal, long long UserMinAllGID, long long UserMaxAllGID) | |
Epetra_BlockMap constructor for a user-defined arbitrary distribution of constant size elements, where the user provides all the globals. More... | |
Epetra_BlockMap (long long NumGlobal_Elements, int NumMy_Elements, const long long *myGlobalElements, int ElementSize, long long indexBase, const Epetra_Comm &comm, bool UserIsDistributedGlobal, long long UserMinAllGID, long long UserMaxAllGID) | |
Epetra_BlockMap (int NumGlobal_Elements, int NumMy_Elements, const int *myGlobalElements, int ElementSize, int indexBase, const Epetra_Comm &comm, bool UserIsDistributedGlobal, int UserMinAllGID, int UserMaxAllGID) | |
Epetra_BlockMap (const Epetra_BlockMap &map) | |
Epetra_BlockMap copy constructor. | |
virtual | ~Epetra_BlockMap (void) |
Epetra_BlockMap destructor. | |
int | RemoteIDList (int NumIDs, const int *GIDList, int *PIDList, int *LIDList) const |
Returns the processor IDs and corresponding local index value for a given list of global indices. More... | |
int | RemoteIDList (int NumIDs, const long long *GIDList, int *PIDList, int *LIDList) const |
int | RemoteIDList (int NumIDs, const int *GIDList, int *PIDList, int *LIDList, int *SizeList) const |
Returns the processor IDs, corresponding local index value, and element size for a given list of global indices. More... | |
int | RemoteIDList (int NumIDs, const long long *GIDList, int *PIDList, int *LIDList, int *SizeList) const |
int | LID (int GID) const |
Returns local ID of global ID, return -1 if not found on this processor. | |
int | LID (long long GID) const |
int | GID (int LID) const |
Returns global ID of local ID, return IndexBase-1 if not found on this processor. | |
long long | GID64 (int LID) const |
int | FindLocalElementID (int PointID, int &ElementID, int &ElementOffset) const |
Returns the LID of the element that contains the given local PointID, and the Offset of the point in that element. | |
bool | MyGID (int GID_in) const |
Returns true if the GID passed in belongs to the calling processor in this map, otherwise returns false. | |
bool | MyGID (long long GID_in) const |
bool | MyLID (int lid) const |
Returns true if the LID passed in belongs to the calling processor in this map, otherwise returns false. | |
int | MinAllGID () const |
Returns the minimum global ID across the entire map. | |
long long | MinAllGID64 () const |
int | MaxAllGID () const |
Returns the maximum global ID across the entire map. | |
long long | MaxAllGID64 () const |
int | MinMyGID () const |
Returns the minimum global ID owned by this processor. | |
long long | MinMyGID64 () const |
int | MaxMyGID () const |
Returns the maximum global ID owned by this processor. | |
long long | MaxMyGID64 () const |
int | MinLID () const |
The minimum local index value on the calling processor. | |
int | MaxLID () const |
The maximum local index value on the calling processor. | |
int | NumGlobalElements () const |
Number of elements across all processors. | |
long long | NumGlobalElements64 () const |
int | NumMyElements () const |
Number of elements on the calling processor. | |
int | MyGlobalElements (int *MyGlobalElementList) const |
Puts list of global elements on this processor into the user-provided array. | |
int | MyGlobalElements (long long *MyGlobalElementList) const |
int | MyGlobalElementsPtr (int *&MyGlobalElementList) const |
int | MyGlobalElementsPtr (long long *&MyGlobalElementList) const |
int | ElementSize () const |
Returns the size of elements in the map; only valid if map has constant element size. | |
int | ElementSize (int LID) const |
Size of element for specified LID. | |
int | FirstPointInElement (int LID) const |
Returns the requested entry in the FirstPointInElementList; see FirstPointInElementList() for details. More... | |
int | IndexBase () const |
Index base for this map. | |
long long | IndexBase64 () const |
int | NumGlobalPoints () const |
Number of global points for this map; equals the sum of all element sizes across all processors. | |
long long | NumGlobalPoints64 () const |
int | NumMyPoints () const |
Number of local points for this map; equals the sum of all element sizes on the calling processor. | |
int | MinMyElementSize () const |
Minimum element size on the calling processor. | |
int | MaxMyElementSize () const |
Maximum element size on the calling processor. | |
int | MinElementSize () const |
Minimum element size across all processors. | |
int | MaxElementSize () const |
Maximum element size across all processors. | |
bool | UniqueGIDs () const |
Returns true if map GIDs are 1-to-1. More... | |
bool | GlobalIndicesInt () const |
Returns true if map create with int NumGlobalElements. | |
bool | GlobalIndicesLongLong () const |
Returns true if map create with long long NumGlobalElements. | |
template<typename int_type > | |
bool | GlobalIndicesIsType () const |
bool | GlobalIndicesTypeValid () const |
bool | GlobalIndicesTypeMatch (const Epetra_BlockMap &other) const |
bool | ConstantElementSize () const |
Returns true if map has constant element size. | |
bool | SameBlockMapDataAs (const Epetra_BlockMap &Map) const |
bool | SameAs (const Epetra_BlockMap &Map) const |
Returns true if this and Map are identical maps. | |
bool | PointSameAs (const Epetra_BlockMap &Map) const |
Returns true if this and Map have identical point-wise structure. More... | |
bool | LinearMap () const |
Returns true if the global ID space is contiguously divided (but not necessarily uniformly) across all processors. | |
bool | DistributedGlobal () const |
Returns true if map is defined across more than one processor. | |
int * | MyGlobalElements () const |
Pointer to internal array containing list of global IDs assigned to the calling processor. | |
long long * | MyGlobalElements64 () const |
void | MyGlobalElements (const int *&IntGIDs, const long long *&LLGIDs) const |
void | MyGlobalElements (int *&IntGIDs, long long *&LLGIDs) |
int * | FirstPointInElementList () const |
Pointer to internal array containing a mapping between the local elements and the first local point number in each element. More... | |
int * | ElementSizeList () const |
List of the element sizes corresponding to the array MyGlobalElements(). | |
int * | PointToElementList () const |
For each local point, indicates the local element ID that the point belongs to. | |
int | ElementSizeList (int *ElementSizeList) const |
Same as ElementSizeList() except it fills the user array that is passed in. | |
int | FirstPointInElementList (int *FirstPointInElementList) const |
Same as FirstPointInElementList() except it fills the user array that is passed in. | |
int | PointToElementList (int *PointToElementList) const |
Same as PointToElementList() except it fills the user array that is passed in. | |
virtual void | Print (std::ostream &os) const |
Print object to an output stream. | |
const Epetra_Comm & | Comm () const |
Access function for Epetra_Comm communicator. | |
bool | IsOneToOne () const |
Epetra_BlockMap & | operator= (const Epetra_BlockMap &map) |
Assignment Operator. | |
int | ReferenceCount () const |
Returns the reference count of BlockMapData. More... | |
const Epetra_BlockMapData * | DataPtr () const |
Returns a pointer to the BlockMapData instance this BlockMap uses. More... | |
Epetra_BlockMap * | RemoveEmptyProcesses () const |
Return a new BlockMap with processes with zero elements removed. More... | |
Epetra_BlockMap * | ReplaceCommWithSubset (const Epetra_Comm *Comm) const |
Replace this BlockMap's communicator with a subset communicator. More... | |
Public Member Functions inherited from Epetra_Object | |
Epetra_Object (int TracebackModeIn=-1, bool set_label=true) | |
Epetra_Object Constructor. More... | |
Epetra_Object (const char *const Label, int TracebackModeIn=-1) | |
Epetra_Object Constructor. More... | |
Epetra_Object (const Epetra_Object &Object) | |
Epetra_Object Copy Constructor. More... | |
virtual | ~Epetra_Object () |
Epetra_Object Destructor. More... | |
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 *. More... | |
virtual const char * | Label () const |
Epetra_Object Label access funtion. More... | |
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. More... | |
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 |
Protected Member Functions inherited from Epetra_BlockMap | |
void | CleanupData () |
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 |
Protected Attributes inherited from Epetra_BlockMap | |
Epetra_BlockMapData * | BlockMapData_ |
Epetra_LocalMap: A class for replicating vectors and matrices across multiple processors.
Small matrix and vector objects are often replicated on distributed memory parallel machines. The Epetra_LocalMap class allows construction of these replicated local objects and keeps information that describes this distribution.
Epetra_LocalMap allows the storage and retrieval of the following information. Once a Epetra_Map is constructed any of the following attributes can be obtained by calling a query function that has the name as the attribute, e.g. to get the value of NumGlobalPoints, you can call a function NumGlobalElements(). For attributes that are lists, the query functions return the list values in a user allocated array.
The Epetra_LocalMap class is actually a derived class of Epetra_Map. Epetra_Map is in turn derived from Epetra_BlockMap. As such, Epetra_LocalMap has full access to all the functions in these other map classes.
In particular, the following function allows a boolean test:
Epetra_LocalMap::Epetra_LocalMap | ( | int | NumMyElements, |
int | IndexBase, | ||
const Epetra_Comm & | Comm | ||
) |
Epetra_LocalMap constructor for a user-defined replicate distribution of elements.
Creates a map that puts NumMyElements on the calling processor. Each processor should pass in the same value for NumMyElements.
In | NumMyElements - Number of elements owned by the calling processor. |
In | IndexBase - Minimum index value used for arrays that use this map. Typically 0 for C/C++ and 1 for Fortran. |
In | Comm - Epetra_Comm communicator containing information on the number of processors. |