Isorropia: Partitioning, Load Balancing and more Version 3.0
Public Member Functions
Isorropia::Colorer Class Reference

Interface (abstract base class) for computing a new coloring and describing the result. More...

#include <Isorropia_Colorer.hpp>

Inheritance diagram for Isorropia::Colorer:
Inheritance graph
[legend]
Collaboration diagram for Isorropia::Colorer:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual ~Colorer ()
 Destructor.
virtual void color (bool forceColoring=false)=0
 Method which does the work of computing a new coloring.
virtual int numColors () const
 Method which returns the number (global) of colors used.
virtual int numElemsWithColor (int color) const
 Return the number of local elements of a given color.
virtual void elemsWithColor (int color, int *elementList, int len) const
 Fill user-allocated list (of length len) with the local element ids for LOCAL elements of the given color.
virtual int extractColorsView (int &size, const int *&array) const
 Give access of the color assignments array that is owned by the current processor.
virtual int extractColorsCopy (int len, int &size, int *array) const
 Copy a part of the color assignments array.
virtual void setParameters (const Teuchos::ParameterList &paramlist)=0
 Set parameters for the Operator instance.
virtual void compute (bool forceRecomputing=false)=0
 Method which does the work of computing a new partitioning/coloring/ordering, depending on the child class used.
virtual bool alreadyComputed () const =0
 Query whether the computation has already been called.
virtual int numProperties () const =0
 Return the number of different values used for "properties".
virtual int numLocalProperties () const =0
 Return the number of different values used for "properties" for this process only.
virtual const int & operator[] (int myElem) const =0
 Return the "property" for a given element that resided locally.
virtual int numElemsWithProperty (int property) const =0
 Return the number of LOCAL elements with the given property.
virtual void elemsWithProperty (int property, int *elementList, int len) const =0
 Fill user-allocated list (of length len) with the local element ids of the LOCAL elements with the given property.
virtual int extractPropertiesView (int &size, const int *&array) const =0
 Give access of the property array that is owned by the current processor.
virtual int extractPropertiesCopy (int len, int &size, int *array) const =0
 Copy a part of the property array.

Detailed Description

Interface (abstract base class) for computing a new coloring and describing the result.

The colors returned have values between 1 and C, where C is the number of colors used.


Constructor & Destructor Documentation

virtual Isorropia::Colorer::~Colorer ( ) [inline, virtual]

Destructor.

Reimplemented in Isorropia::Epetra::Colorer.


Member Function Documentation

virtual void Isorropia::Colorer::color ( bool  forceColoring = false) [pure virtual]

Method which does the work of computing a new coloring.

Parameters:
forceColoringOptional argument defaults to false. Depending on the implementation, color() should only perform a coloring the first time it is called, and subsequent repeated calls are no-ops. If the user's intent is to re-compute the coloring (e.g., if parameters or other inputs have been changed), then setting this flag to true will force a new coloring to be computed.

Implemented in Isorropia::Epetra::Colorer.

virtual int Isorropia::Colorer::numColors ( ) const [inline, virtual]

Method which returns the number (global) of colors used.

Returns:
The overall number of colors used. All colors used for all vertices are between 1 and this value (included).
See also:
Isorropia::Operator::numProperties()
virtual int Isorropia::Colorer::numElemsWithColor ( int  color) const [inline, virtual]

Return the number of local elements of a given color.

Parameters:
colorThe wanted color.
Returns:
The number of local of the asked color.
See also:
Isorropia::Operator::numElemsWithProperty()
virtual void Isorropia::Colorer::elemsWithColor ( int  color,
int *  elementList,
int  len 
) const [inline, virtual]

Fill user-allocated list (of length len) with the local element ids for LOCAL elements of the given color.

Parameters:
colorthe wanted color
elementListan array to receive local elements of the given color
lenthe number of elements wanted
See also:
Isorropia::Operator::elemsWithProperty()
virtual int Isorropia::Colorer::extractColorsView ( int &  size,
const int *&  array 
) const [inline, virtual]

Give access of the color assignments array that is owned by the current processor.

Parameters:
[out]sizeNumber of elements in the array.
[out]arrayPointer to the color assignements array inside the object.
Remarks:
This pointer is only significant if the object still exists. Otherwise, you must use
See also:
Isorropia::Operator::extractPartsCopy()
Isorropia::Operator::extractPropertiesView()
virtual int Isorropia::Colorer::extractColorsCopy ( int  len,
int &  size,
int *  array 
) const [inline, virtual]

Copy a part of the color assignments array.

Parameters:
[in]lenof the array given by the user.
[out]sizeNumber of elements in the array.
[out]arrayArray of color assignments. Allocated by the user with a size of at least len elements.
Remarks:
Memory space which is not useful in the array is not initialized or used in this method.
See also:
Isorropia::Operator::extractPropertiesCopy()
virtual void Isorropia::Operator::setParameters ( const Teuchos::ParameterList &  paramlist) [pure virtual, inherited]

Set parameters for the Operator instance.

The contents of the input paramlist object are copied into an internal ParameterList attribute. Instances of this interface should not retain a reference to the input ParameterList after this method returns.

Parameters:
[in]paramlistList of parameters that the user wants to use.

Implemented in Isorropia::Epetra::Operator.

virtual void Isorropia::Operator::compute ( bool  forceRecomputing = false) [pure virtual, inherited]

Method which does the work of computing a new partitioning/coloring/ordering, depending on the child class used.

Parameters:
forceRecomputingOptional argument defaults to false. Depending on the implementation, compute() should only perform a computation the first time it is called, and subsequent repeated calls are no-ops. If the user's intent is to re-compute the results (e.g., if parameters or other inputs have been changed), then setting this flag to true will force a new result to be computed.

Implemented in Isorropia::Epetra::Colorer, Isorropia::Epetra::LevelScheduler, Isorropia::Epetra::Operator, Isorropia::Epetra::Orderer, Isorropia::Epetra::Partitioner, and Isorropia::Epetra::Partitioner2D.

virtual bool Isorropia::Operator::alreadyComputed ( ) const [pure virtual, inherited]

Query whether the computation has already been called.

Returns:
True if the computation has already been done, False otherwise.

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::numProperties ( ) const [pure virtual, inherited]

Return the number of different values used for "properties".

For example, the number of colors or the number of parts used for the overall graph/matrix.

Returns:
Global number of values for properties
Remarks:
Infact, it returns the upper bound of the interval of taken values. For example, for the colors "1,2,4" , it will return "4"

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::numLocalProperties ( ) const [pure virtual, inherited]

Return the number of different values used for "properties" for this process only.

Returns:
Local number of values for properties

Implemented in Isorropia::Epetra::Operator.

virtual const int& Isorropia::Operator::operator[] ( int  myElem) const [pure virtual, inherited]

Return the "property" for a given element that resided locally.

Parameters:
[in]myElemthe local ID of the element we want to know the property.
Returns:
property associated to the local element.

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::numElemsWithProperty ( int  property) const [pure virtual, inherited]

Return the number of LOCAL elements with the given property.

Parameters:
[in]propertyValue of the property to consider.
Returns:
Number of local elems which have this property.

Implemented in Isorropia::Epetra::Operator.

virtual void Isorropia::Operator::elemsWithProperty ( int  property,
int *  elementList,
int  len 
) const [pure virtual, inherited]

Fill user-allocated list (of length len) with the local element ids of the LOCAL elements with the given property.

Parameters:
[in]propertyValue of the property to consider.
[out]elementListUser allocated array (of size at least len) of local ID that have the asked property.
[in]lenMaximum lenght for the array. If len is greater than the result of numElemsWithProperty() for property, only the first and relevant elements are filled.
Remarks:
Memory space which is not useful in the array is not initialized or used in this method.

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::extractPropertiesView ( int &  size,
const int *&  array 
) const [pure virtual, inherited]

Give access of the property array that is owned by the current processor.

Parameters:
[out]sizeNumber of elements in the array.
[out]arrayPointer to the the properties array inside the object.
Remarks:
This pointer is only significant if the object still exists. Otherwise, you must use
See also:
Isorropia::Operator::extractPropertiesCopy().
Isorropia::Operator::extractPropertiesCopy()

Implemented in Isorropia::Epetra::Operator.

virtual int Isorropia::Operator::extractPropertiesCopy ( int  len,
int &  size,
int *  array 
) const [pure virtual, inherited]

Copy a part of the property array.

Parameters:
[in]lenof the array given by the user.
[out]sizeNumber of elements in the array.
[out]arrayArray of properties. Allocated by the user with a size of at least len elements.
Remarks:
Memory space which is not useful in the array is not initialized or used in this method.
See also:
Isorropia::Operator::extractPropertiesView()

Implemented in Isorropia::Epetra::Operator.


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