Isorropia: Partitioning, Load Balancing and more
Public Member Functions | List of all members
Isorropia::Colorer Class Referenceabstract

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]

Public Member Functions

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

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 ( )
inlinevirtual

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
inlinevirtual

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  theColor) const
inlinevirtual

Return the number of local elements of a given color.

Parameters
theColorThe wanted color.
Returns
The number of local of the asked color.
See Also
Isorropia::Operator::numElemsWithProperty()
virtual void Isorropia::Colorer::elemsWithColor ( int  theColor,
int *  elementList,
int  len 
) const
inlinevirtual

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

Parameters
theColorthe 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
inlinevirtual

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

Parameters
size[out] Number of elements in the array.
array[out] Pointer 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
inlinevirtual

Copy a part of the color assignments array.

Parameters
len[in] of the array given by the user.
size[out] Number of elements in the array.
array[out] Array 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 virtualinherited

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
paramlist[in] List of parameters that the user wants to use.

Implemented in Isorropia::Epetra::Operator.

virtual void Isorropia::Operator::compute ( bool  forceRecomputing = false)
pure virtualinherited

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::Operator, Isorropia::Epetra::Partitioner, Isorropia::Epetra::Colorer, Isorropia::Epetra::Partitioner2D, Isorropia::Epetra::Orderer, and Isorropia::Epetra::LevelScheduler.

virtual bool Isorropia::Operator::alreadyComputed ( ) const
pure virtualinherited

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 virtualinherited

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 virtualinherited

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 virtualinherited

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

Parameters
myElem[in] the 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 virtualinherited

Return the number of LOCAL elements with the given property.

Parameters
property[in] Value 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 virtualinherited

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

Parameters
property[in] Value of the property to consider.
elementList[out] User allocated array (of size at least len) of local ID that have the asked property.
len[in] Maximum 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 virtualinherited

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

Parameters
size[out] Number of elements in the array.
array[out] Pointer 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 virtualinherited

Copy a part of the property array.

Parameters
len[in] of the array given by the user.
size[out] Number of elements in the array.
array[out] Array 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: