Epetra_MapColoring Class Reference

Epetra_MapColoring: A class for coloring Epetra_Map and Epetra_BlockMap objects. More...

#include <Epetra_MapColoring.h>

Inheritance diagram for Epetra_MapColoring:

Inheritance graph
[legend]
List of all members.

Constructors/destructors

 Epetra_MapColoring (const Epetra_BlockMap &Map, const int DefaultColor=0)
 Epetra_MapColoring basic constructor.
 Epetra_MapColoring (const Epetra_BlockMap &Map, int *ElementColors, const int DefaultColor=0)
 Epetra_MapColoring constructor.
 Epetra_MapColoring (const Epetra_MapColoring &Source)
 Epetra_MapColoring copy constructor.
virtual ~Epetra_MapColoring ()
 Epetra_MapColoring destructor.

Set Color methods

int & operator[] (int LID)
 LID element color assignment method.
int & operator() (int GID)
 GID element color assignment method, Note: Valid only for GIDs owned by calling processor.

Local/Global color accessor methods

const int & operator[] (int LID) const
 LID element color access method.
const int & operator() (int GID) const
 GID element color assignment method, Note: Valid only for GIDs owned by calling processor.

Color Information Access Methods

int NumColors () const
 Returns number of colors on the calling processor.
int MaxNumColors () const
 Returns maximum over all processors of the number of colors.
int * ListOfColors () const
 Array of length NumColors() containing List of color values used in this coloring.
int DefaultColor () const
 Returns default color.
int NumElementsWithColor (int Color) const
 Returns number of map elements on calling processor having specified Color.
int * ColorLIDList (int Color) const
 Returns pointer to array of Map LIDs associated with the specified color.
int * ElementColors () const
 Returns pointer to array of the colors associated with the LIDs on the calling processor.

Epetra_Map and Epetra_BlockMap generators

Epetra_MapGenerateMap (int Color) const
 Generates an Epetra_Map of the GIDs associated with the specified color.
Epetra_BlockMapGenerateBlockMap (int Color) const
 Generates an Epetra_BlockMap of the GIDs associated with the specified color.

I/O methods

virtual void Print (ostream &os) const
 Print method.

Private Member Functions

int Allocate (int *ElementColors, int Increment)
int GenerateLists () const
int DeleteLists () const
bool InItemList (int ColorValue) const
int CheckSizes (const Epetra_SrcDistObject &A)
 Allows the source and target (this) objects to be compared for compatibility, return nonzero if not.
int CopyAndPermute (const Epetra_SrcDistObject &Source, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor)
 Perform ID copies and permutations that are on processor.
int PackAndPrepare (const Epetra_SrcDistObject &Source, int NumExportIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &SizeOfPacket, int *Sizes, bool &VarSizes, Epetra_Distributor &Distor)
 Perform any packing or preparation required for call to DoTransfer().
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)
 Perform any unpacking and combining after call to DoTransfer().
Epetra_MapColoringoperator= (const Epetra_MapColoring &Coloring)

Private Attributes

int DefaultColor_
Epetra_HashTableColorIDs_
ListItemFirstColor_
int NumColors_
int * ListOfColors_
int * ColorCount_
int * ElementColors_
int ** ColorLists_
bool Allocated_
bool ListsAreGenerated_
bool ListsAreValid_

Classes

struct  ListItem

Detailed Description

Epetra_MapColoring: A class for coloring Epetra_Map and Epetra_BlockMap objects.

This class allows the user to associate an integer value, i.e., a color, to each element of an existing Epetra_Map or Epetra_BlockMap object. Colors may be assigned at construction, or via set methods. Any elements that are not explicitly assigned a color are assigned the color 0 (integer zero).

This class has the following features:

Definition at line 90 of file Epetra_MapColoring.h.


Constructor & Destructor Documentation

Epetra_MapColoring::Epetra_MapColoring ( const Epetra_BlockMap Map,
const int  DefaultColor = 0 
)

Epetra_MapColoring basic constructor.

Parameters:
In Map - An Epetra_Map or Epetra_BlockMap (Note: Epetra_BlockMap is a base class of Epetra_Map, so either can be passed in to this constructor.
In DefaultColor - The integer value to use as the default color for this map. This constructor will initially define the color of all map elements to the default color.
Returns:
Pointer to a Epetra_MapColoring object.

Definition at line 54 of file Epetra_MapColoring.cpp.

Epetra_MapColoring::Epetra_MapColoring ( const Epetra_BlockMap Map,
int *  ElementColors,
const int  DefaultColor = 0 
)

Epetra_MapColoring constructor.

Parameters:
In Map - An Epetra_Map or Epetra_BlockMap (Note: Epetra_BlockMap is a base class of Epetra_Map, so either can be passed in to this constructor.
In ElementColors - Array of dimension Map.NumMyElements() containing the list of colors that should be assigned the map elements on this processor. If this argument is set to 0 (zero), all elements will initially be assigned color 0 (zero). Element colors can be modified by using methods described below.
In DefaultColor - The color that will be assigned by default when no other value is specified. This value has no meaning for this constructor, but is used by certain methods now and in the future.
Returns:
Pointer to a Epetra_MapColoring object.

Definition at line 36 of file Epetra_MapColoring.cpp.

Epetra_MapColoring::Epetra_MapColoring ( const Epetra_MapColoring Source  ) 

Epetra_MapColoring copy constructor.

Definition at line 72 of file Epetra_MapColoring.cpp.

Epetra_MapColoring::~Epetra_MapColoring (  )  [virtual]

Epetra_MapColoring destructor.

Definition at line 89 of file Epetra_MapColoring.cpp.


Member Function Documentation

int& Epetra_MapColoring::operator[] ( int  LID  )  [inline]

LID element color assignment method.

Allows color assignment of ith LID: colormap[i] = color

Returns:
MapColor(LID).

Definition at line 147 of file Epetra_MapColoring.h.

int& Epetra_MapColoring::operator() ( int  GID  )  [inline]

GID element color assignment method, Note: Valid only for GIDs owned by calling processor.

Allows color assignment of specified GID only if the GID is owned by map on the calling processor. If you are unsure about the ownership of a GID, check by using the MyGID() method. MyGID(GID) returns true if the GID is owned by the calling processor.

Returns:
MapColor(GID).

Definition at line 155 of file Epetra_MapColoring.h.

const int& Epetra_MapColoring::operator[] ( int  LID  )  const [inline]

LID element color access method.

Returns color of ith LID: colormap[i] = color

Returns:
MapColor[LID].

Definition at line 164 of file Epetra_MapColoring.h.

const int& Epetra_MapColoring::operator() ( int  GID  )  const [inline]

GID element color assignment method, Note: Valid only for GIDs owned by calling processor.

Allows color assignment of specified GID only if the GID is owned by map on the calling processor. If you are unsure about the ownership, check by using the MyGID() method on the map object.

Returns:
MapColor(GID).

Definition at line 172 of file Epetra_MapColoring.h.

int Epetra_MapColoring::NumColors (  )  const [inline]

Returns number of colors on the calling processor.

Definition at line 178 of file Epetra_MapColoring.h.

int Epetra_MapColoring::MaxNumColors (  )  const

Returns maximum over all processors of the number of colors.

Definition at line 352 of file Epetra_MapColoring.cpp.

int* Epetra_MapColoring::ListOfColors (  )  const [inline]

Array of length NumColors() containing List of color values used in this coloring.

Color values can be arbitrary integer values. As a result, a user of a previously constructed MapColoring object may need to know exactly which color values are present. This array contains that information as a sorted list of integer values.

Definition at line 188 of file Epetra_MapColoring.h.

int Epetra_MapColoring::DefaultColor (  )  const [inline]

Returns default color.

Definition at line 191 of file Epetra_MapColoring.h.

int Epetra_MapColoring::NumElementsWithColor ( int  Color  )  const

Returns number of map elements on calling processor having specified Color.

Definition at line 190 of file Epetra_MapColoring.cpp.

int * Epetra_MapColoring::ColorLIDList ( int  Color  )  const

Returns pointer to array of Map LIDs associated with the specified color.

Returns a pointer to a list of Map LIDs associated with the specified color. This is a purely local list with no information about other processors. If there are no LIDs associated with the specified color, the pointer is set to zero.

Definition at line 199 of file Epetra_MapColoring.cpp.

int* Epetra_MapColoring::ElementColors (  )  const [inline]

Returns pointer to array of the colors associated with the LIDs on the calling processor.

Returns a pointer to the list of colors associated with the elements on this processor such that ElementColor[LID] is the color assigned to that LID.

Definition at line 207 of file Epetra_MapColoring.h.

Epetra_Map * Epetra_MapColoring::GenerateMap ( int  Color  )  const

Generates an Epetra_Map of the GIDs associated with the specified color.

This method will create an Epetra_Map such that on each processor the GIDs associated with the specified color will be part of the map on that processor. Note that this method always generates an Epetra_Map, not an Epetra_BlockMap, even if the map associated with this map coloring is a block map. Once the map is generated, the user is responsible for deleting it.

Definition at line 208 of file Epetra_MapColoring.cpp.

Epetra_BlockMap * Epetra_MapColoring::GenerateBlockMap ( int  Color  )  const

Generates an Epetra_BlockMap of the GIDs associated with the specified color.

This method will create an Epetra_BlockMap such that on each processor the GIDs associated with the specified color will be part of the map on that processor. Note that this method will generate an Epetra_BlockMap such that each element as the same element size as the corresponding element of map associated with the map coloring. Once the map is generated, the user is responsible for deleting it.

Definition at line 229 of file Epetra_MapColoring.cpp.

void Epetra_MapColoring::Print ( ostream &  os  )  const [virtual]

Print method.

Reimplemented from Epetra_DistObject.

Definition at line 261 of file Epetra_MapColoring.cpp.

int Epetra_MapColoring::Allocate ( int *  ElementColors,
int  Increment 
) [private]

Definition at line 118 of file Epetra_MapColoring.cpp.

int Epetra_MapColoring::GenerateLists (  )  const [private]

Definition at line 131 of file Epetra_MapColoring.cpp.

int Epetra_MapColoring::DeleteLists (  )  const [private]

Definition at line 97 of file Epetra_MapColoring.cpp.

bool Epetra_MapColoring::InItemList ( int  ColorValue  )  const [private]

Definition at line 175 of file Epetra_MapColoring.cpp.

int Epetra_MapColoring::CheckSizes ( const Epetra_SrcDistObject A  )  [private, virtual]

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

Implements Epetra_DistObject.

Definition at line 360 of file Epetra_MapColoring.cpp.

int Epetra_MapColoring::CopyAndPermute ( const Epetra_SrcDistObject Source,
int  NumSameIDs,
int  NumPermuteIDs,
int *  PermuteToLIDs,
int *  PermuteFromLIDs,
const Epetra_OffsetIndex Indexor 
) [private, virtual]

Perform ID copies and permutations that are on processor.

Implements Epetra_DistObject.

Definition at line 366 of file Epetra_MapColoring.cpp.

int Epetra_MapColoring::PackAndPrepare ( const Epetra_SrcDistObject Source,
int  NumExportIDs,
int *  ExportLIDs,
int &  LenExports,
char *&  Exports,
int &  SizeOfPacket,
int *  Sizes,
bool &  VarSizes,
Epetra_Distributor Distor 
) [private, virtual]

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

Implements Epetra_DistObject.

Definition at line 394 of file Epetra_MapColoring.cpp.

int Epetra_MapColoring::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 
) [private, virtual]

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

Implements Epetra_DistObject.

Definition at line 432 of file Epetra_MapColoring.cpp.

Epetra_MapColoring& Epetra_MapColoring::operator= ( const Epetra_MapColoring Coloring  )  [private]


Member Data Documentation

int Epetra_MapColoring::DefaultColor_ [private]

Definition at line 288 of file Epetra_MapColoring.h.

Epetra_HashTable* Epetra_MapColoring::ColorIDs_ [mutable, private]

Definition at line 289 of file Epetra_MapColoring.h.

ListItem* Epetra_MapColoring::FirstColor_ [mutable, private]

Definition at line 290 of file Epetra_MapColoring.h.

int Epetra_MapColoring::NumColors_ [mutable, private]

Definition at line 291 of file Epetra_MapColoring.h.

int* Epetra_MapColoring::ListOfColors_ [mutable, private]

Definition at line 292 of file Epetra_MapColoring.h.

int* Epetra_MapColoring::ColorCount_ [mutable, private]

Definition at line 293 of file Epetra_MapColoring.h.

int* Epetra_MapColoring::ElementColors_ [mutable, private]

Definition at line 294 of file Epetra_MapColoring.h.

int** Epetra_MapColoring::ColorLists_ [mutable, private]

Definition at line 295 of file Epetra_MapColoring.h.

bool Epetra_MapColoring::Allocated_ [private]

Definition at line 296 of file Epetra_MapColoring.h.

bool Epetra_MapColoring::ListsAreGenerated_ [mutable, private]

Definition at line 297 of file Epetra_MapColoring.h.

bool Epetra_MapColoring::ListsAreValid_ [mutable, private]

Definition at line 298 of file Epetra_MapColoring.h.


The documentation for this class was generated from the following files:
Generated on Wed May 12 21:41:08 2010 for Epetra Package Browser (Single Doxygen Collection) by  doxygen 1.4.7