Tpetra::BlockElementSpace< OrdinalType > Class Template Reference

Tpetra::BlockElementSpace: A class for constructing and using template<OrdinalType> BlockElementSpaces. More...

#include <Tpetra_BlockElementSpace.hpp>

Inheritance diagram for Tpetra::BlockElementSpace< OrdinalType >:

Inheritance graph
[legend]
Collaboration diagram for Tpetra::BlockElementSpace< OrdinalType >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 BlockElementSpace (ElementSpace< OrdinalType > &ElementSpace, OrdinalType elementSize)
 Tpetra::BlockElementSpace constructor with constant element size.
 BlockElementSpace (ElementSpace< OrdinalType > &ElementSpace, std::vector< OrdinalType > const &elementSizeList)
 Tpetra::BlockElementSpace constructor with arbitrary element sizes.
 BlockElementSpace (BlockElementSpace< OrdinalType > const &BlockElementSpace)
 Tpetra::BlockElementSpace copy constructor.
 ~BlockElementSpace ()
 Tpetra::BlockElementSpace destructor.
void getRemoteIDList (OrdinalType numIDs, OrdinalType *GIDList, OrdinalType *imageIDList, OrdinalType *LIDList, OrdinalType *elementSizeList) const
 Returns the image IDs, corresponding local index values, and element sizes for a given list of global indices.
void getLocalElementID (OrdinalType pointID, OrdinalType &elementID, OrdinalType &elementOffset) const
 Returns the local ID of the element that contains the given local Point ID, and the offset of the point in that element.
OrdinalType getElementSize () const
 Returns the size of elements in the BlockElementSpace. Throws an exception of +2 if not all elements are the same size.
OrdinalType getElementSize (OrdinalType LID) const
 Returns the size of the element whose local ID is passed in.
OrdinalType getNumGlobalPoints () const
 Returns the number of global points in the BlockElementSpace; equals the sum of all element sizes across all images.
OrdinalType getNumMyPoints () const
 Returns the number of global points on this image; equals the sum of all element sizes on the calling image.
OrdinalType getMinMyElementSize () const
 Returns the minimum element size on the calling image.
OrdinalType getMaxMyElementSize () const
 Returns the maximum element size on the calling image.
OrdinalType getMinElementSize () const
 Returns the minimum element size in the BlockElementSpace.
OrdinalType getMaxElementSize () const
 Returns the maximum element size in the BlockElementSpace.
bool isConstantElementSize () const
 Returns true if all elements have a constant size, returns false otherwise.
bool isSameAs (BlockElementSpace< OrdinalType > const &BlockElementSpace) const
 Returns true if this BlockElementSpace is identical to the one passed in, returns false otherwise.
bool operator== (BlockElementSpace< OrdinalType > const &BlockElementSpace) const
bool operator!= (BlockElementSpace< OrdinalType > const &BlockElementSpace) const
OrdinalType const * getElementSizeList () const
 Returns a pointer to array of the sizes of all the elements that belong to the calling image.
void getElementSizeList (OrdinalType *elementSizeList) const
OrdinalType const * getFirstPointInElementList () const
 Returns a pointer to the internal array of the mapping between the local elements, and the first local point number in each element.
void getFirstPointInElementList (OrdinalType *firstPointInElementList) const
OrdinalType const * getPointToElementList () const
 Returns a pointer to an array that lists the LID of the element that each point belongs to.
void getPointToElementList (OrdinalType *pointToElementList) const
void print (ostream &os) const
 Prints the BlockElementSpace object to the output stream. (Used by the overloaded << operator inherited from Object).
ElementSpace< OrdinalType
> const & 
elementSpace () const
 Access function for ElementSpace object.
ElementSpace< OrdinalType > * generateCompatibleElementSpace () const
 Generates a compatible ElementSpace.
BlockElementSpace< OrdinalType > & operator= (BlockElementSpace< OrdinalType > const &Source)
 Assignment operator.

Detailed Description

template<typename OrdinalType>
class Tpetra::BlockElementSpace< OrdinalType >

Tpetra::BlockElementSpace: A class for constructing and using template<OrdinalType> BlockElementSpaces.

BlockElementSpace objects can have variable element sizes. (If variable element sizes are not needed, an ElementSpace object should probably be used instead.) Some BlockElementSpace methods throw exceptions, and should be enclosed in a try/catch block. All BlockElementSpace objects require an ElementSpace object, which requires a Comm object. Point IDs are always in the range of [0, elementSize).

BlockElementSpace error codes (positive for non-fatal, negative for fatal):

  1. +1 Specified Point ID not found on this image.
  2. +2 Specified Local ID not found on this image.
  3. +3 elementSize requested in a variable-sized BlockElementSpace.
  4. +4 Pointer passed to getFirstPointInElementList, getElementSizeList, or getPointToElementList does not have child allocated. (Null pointer).
  5. -1 elementSize (or element in elementSizeList) <= 0. Should be > 0.
  6. -99 Internal BlockElementSpace error. Contact developer.


Member Function Documentation

template<typename OrdinalType>
ElementSpace<OrdinalType>* Tpetra::BlockElementSpace< OrdinalType >::generateCompatibleElementSpace (  )  const [inline]

Generates a compatible ElementSpace.

A "compatible" ElementSpace is defined as an ElementSpace where there is a one to one correspondence between its elements and the points of this BlockElementSpace. The ElementSpace will be allocated on the heap, and it is the responsibility of the caller to ensure that it is deallocated properly.

template<typename OrdinalType>
OrdinalType Tpetra::BlockElementSpace< OrdinalType >::getElementSize ( OrdinalType  LID  )  const [inline]

Returns the size of the element whose local ID is passed in.

Throws an exception of +1 if the local ID is not found on the calling image.

LID -= elementSpace().getIndexBase(); // convert to zero-based counting.

template<typename OrdinalType>
OrdinalType const* Tpetra::BlockElementSpace< OrdinalType >::getElementSizeList (  )  const [inline]

Returns a pointer to array of the sizes of all the elements that belong to the calling image.

Each of these methods is implemented twice, one that returns a pointer, and one that copies the array into one passed in by the user.

template<typename OrdinalType>
void Tpetra::BlockElementSpace< OrdinalType >::getFirstPointInElementList ( OrdinalType *  firstPointInElementList  )  const [inline]

template<typename OrdinalType>
void Tpetra::BlockElementSpace< OrdinalType >::getLocalElementID ( OrdinalType  pointID,
OrdinalType &  elementID,
OrdinalType &  elementOffset 
) const [inline]

Returns the local ID of the element that contains the given local Point ID, and the offset of the point in that element.

The local ID and offset are placed in OrdinalType variables passed in by reference by the user.

pointID -= elementSpace().getIndexBase(); // convert from indexBase-based to zero-based counting.

template<typename OrdinalType>
void Tpetra::BlockElementSpace< OrdinalType >::getPointToElementList ( OrdinalType *  pointToElementList  )  const [inline]

template<typename OrdinalType>
void Tpetra::BlockElementSpace< OrdinalType >::getRemoteIDList ( OrdinalType  numIDs,
OrdinalType *  GIDList,
OrdinalType *  imageIDList,
OrdinalType *  LIDList,
OrdinalType *  elementSizeList 
) const [inline]

Returns the image IDs, corresponding local index values, and element sizes for a given list of global indices.

Theimage IDs, local index values, and element sizes are placed into arrays passed in by the user. The list of global indices used to create these is also passed in by the user. Exceptions might be thrown.

template<typename OrdinalType>
bool Tpetra::BlockElementSpace< OrdinalType >::isSameAs ( BlockElementSpace< OrdinalType > const &  BlockElementSpace  )  const [inline]

Returns true if this BlockElementSpace is identical to the one passed in, returns false otherwise.

Also implemented through the == and != operators.


The documentation for this class was generated from the following file:
Generated on Tue Oct 20 12:56:02 2009 for Tpetra by doxygen 1.4.7