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

Interface (abstract base class) for computing a new partitioning/coloring/ ordering and exploiting their results. More...

#include <Isorropia_Operator.hpp>

Inheritance diagram for Isorropia::Operator:
Inheritance graph
[legend]

Public Member Functions

virtual ~Operator ()
 Destructor. 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 partitioning/coloring/ ordering and exploiting their results.

If the accessor methods are called before the computation of the result (by a method like compute()) has been called, behavior is not well defined. Implementations will either return empty/erroneous data, or throw an exception. In most cases, implementations will probably call compute_partitioning() internally in a constructor or factory method, so this won't usually be an issue.

Constructor & Destructor Documentation

virtual Isorropia::Operator::~Operator ( )
inlinevirtual

Destructor.

Reimplemented in Isorropia::Epetra::Operator.

Member Function Documentation

virtual void Isorropia::Operator::setParameters ( const Teuchos::ParameterList &  paramlist)
pure virtual

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

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 virtual

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

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

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

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

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

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

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

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: