Isorropia::Partitioner Class Reference

Interface (abstract base class) for computing a new partitioning and describing the layout of elements in the new partition (the parts). More...

#include <Isorropia_Partitioner.hpp>

Inheritance diagram for Isorropia::Partitioner:

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

Collaboration graph
[legend]
List of all members.
virtual __deprecated void compute_partitioning (bool forceRepartitioning=false)
 The deprecated way to compute partitioning.
virtual __deprecated bool partitioning_already_computed () const =0
 Query whether a partitioning as already been successfully computed.
virtual __deprecated int newPartitionNumber (int myElem)
 Return the new partition ID for a given element that resided locally in the old partitioning.
virtual __deprecated int numElemsInPartition (int partition)
 Return the number of LOCAL elements in a given partition.
virtual __deprecated void elemsInPartition (int part, int *elementList, int len)
 Fill user-allocated list (of length len) with the local element ids to be located in the given partition.

Public Member Functions

virtual ~Partitioner ()
 Destructor.
virtual void partition (bool forceRepartitioning=false)=0
 Method which does the work of computing a new partitioning.
virtual int numElemsInPart (int part) const =0
 Return the number of LOCAL elements in a given part.
virtual void elemsInPart (int part, int *elementList, int len) const =0
 Fill user-allocated list (of length len) with the local element ids to be located in the given part.
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 int newPartNumber (int myElem) const =0
 Return the new part ID for a given element that resided locally in the old partitioning.

Detailed Description

Interface (abstract base class) for computing a new partitioning and describing the layout of elements in the new partition (the parts).

If the methods which describe the new partitioning (e.g., operator [], elemsInPart()) are called before compute_partitioning() 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::Partitioner::~Partitioner (  )  [inline, virtual]

Destructor.

Reimplemented in Isorropia::Epetra::Partitioner.


Member Function Documentation

virtual void Isorropia::Partitioner::partition ( bool  forceRepartitioning = false  )  [pure virtual]

Method which does the work of computing a new partitioning.

Implementations of this interface will typically be constructed with an object or information describing the existing ('old') partitioning. This method computes a 'new' rebalanced partitioning for that input data.

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

Implemented in Isorropia::Epetra::Partitioner.

virtual int Isorropia::Partitioner::newPartNumber ( int  myElem  )  const [pure virtual]

Return the new part ID for a given element that resided locally in the old partitioning.

Deprecated:
A better way to have the same results is to use Isorropia::Operator::operator[]
Parameters:
[in] myElem local ID of element we want to know in which part it belongs to.
Returns:
new part number
See also:
Isorropia::Operator::operator[]

Implemented in Isorropia::Epetra::Partitioner.

virtual int Isorropia::Partitioner::numElemsInPart ( int  part  )  const [pure virtual]

Return the number of LOCAL elements in a given part.

Parameters:
[in] part the part ID we want to know the number of local elements.
Returns:
number of local elements that belongs to the given part.
See also:
Isorropia::Operator::numElemsWithProperty()

Implemented in Isorropia::Epetra::Partitioner.

virtual void Isorropia::Partitioner::elemsInPart ( int  part,
int *  elementList,
int  len 
) const [pure virtual]

Fill user-allocated list (of length len) with the local element ids to be located in the given part.

Parameters:
[in] part the part ID we consider
[out] elementList array of elements that belongs to this part ID, must be allocated by user with size at least len
[in] len maximum number of elements we can put in the array. Usually, may be the result of Isorropia::Partitioner::numElemsInPart(). .
See also:
Isorropia::Operator::elemsWithProperty()

Implemented in Isorropia::Epetra::Partitioner.

virtual __deprecated void Isorropia::Partitioner::compute_partitioning ( bool  forceRepartitioning = false  )  [inline, virtual]

The deprecated way to compute partitioning.

Parameters:
[in] forceRepartitioning Optional parameter to recompute the partitioning even one has been already computed.
Deprecated:
This method uses the old name and will be removed in next version, use Isorropia::Partitioner::partition() (or possibly Isorropia::Operator::compute() )
See also:
Isorropia::Partitioner::partition()

Isorropia::Operator::compute()

virtual __deprecated bool Isorropia::Partitioner::partitioning_already_computed (  )  const [pure virtual]

Query whether a partitioning as already been successfully computed.

Deprecated:
This method uses the old name and will be removed in next version, use Isorropia::Operator::alreadyComputed()
See also:
Isorropia::Operator::alreadyComputed()

Implemented in Isorropia::Epetra::Partitioner.

virtual __deprecated int Isorropia::Partitioner::newPartitionNumber ( int  myElem  )  [inline, virtual]

Return the new partition ID for a given element that resided locally in the old partitioning.

Deprecated:
This method uses the old name and will be removed in next version, use Isorropia::Partitioner::newPartNumber(), or even better Isorropia::Operator::operator[]()
See also:
Isorropia::Partitioner::newPartNumber()

Isorropia::Operator::operator[]()

virtual __deprecated int Isorropia::Partitioner::numElemsInPartition ( int  partition  )  [inline, virtual]

Return the number of LOCAL elements in a given partition.

Deprecated:
This method uses the old name and will be removed in next version, use Isorropia::Partitioner::numElemsInPart()
See also:
Isorropia::Partitioner::numElemsInPart()

virtual __deprecated void Isorropia::Partitioner::elemsInPartition ( int  part,
int *  elementList,
int  len 
) [inline, virtual]

Fill user-allocated list (of length len) with the local element ids to be located in the given partition.

Deprecated:
This method uses the old name and will be removed in next version, use Isorropia::Partitioner::elemsInPart()
See also:
Isorropia::Partitioner::elemsInPart()

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] paramlist List 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:
forceRecomputing Optional 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::Operator, Isorropia::Epetra::Orderer, and Isorropia::Epetra::Partitioner.

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 const int& Isorropia::Operator::operator[] ( int  myElem  )  const [pure virtual, inherited]

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

Parameters:
[in] myElem 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 virtual, inherited]

Return the number of LOCAL elements with the given property.

Parameters:
[in] property 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 virtual, inherited]

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

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


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