Ifpack_Partitioner: A class to decompose local Ifpack_Graph's. More...
#include <Ifpack_Partitioner.h>
Public Member Functions  
virtual  ~Ifpack_Partitioner () 
Destructor.  
virtual int  NumLocalParts () const =0 
Returns the number of computed local partitions.  
virtual int  OverlappingLevel () const =0 
Returns the overlapping level.  
virtual int  operator() (int MyRow) const =0 
Returns the local nonoverlapping partition ID of the specified row. More...  
virtual int  operator() (int i, int j) const =0 
Returns the local overlapping partition ID of the jth node in partition i.  
virtual int  NumRowsInPart (const int Part) const =0 
Returns the number of rows contained in specified partition.  
virtual int  RowsInPart (const int Part, int *List) const =0 
Copies into List the rows in the (overlapping) partition Part.  
virtual const int *  NonOverlappingPartition () const =0 
Returns a pointer to the integer vector containing the nonoverlapping partition ID of each local row.  
virtual int  SetParameters (Teuchos::ParameterList &List)=0 
Sets all the parameters for the partitioner.  
virtual int  Compute ()=0 
Computes the partitions. Returns 0 if successful.  
virtual bool  IsComputed ()=0 
Returns true if partitions have been computed successfully.  
virtual std::ostream &  Print (std::ostream &os) const =0 
Prints basic information about the partitioning object.  
Ifpack_Partitioner: A class to decompose local Ifpack_Graph's.
Class Ifpack_Partitioner enables the decomposition of a local Ifpack_Graph's. It is supposed that the graph refers to a localized matrix (that is, a matrix that has been filtered through Ifpack_LocalFilter).
The overloaded operator (int i) can be used to extract the local partition ID of local row i.
The partitions created by Ifpack_Partitioner derived clased are nonoverlapping in graph sense. This means that each row (or, more approriately, vertex) of G
is assigned to exactly one partition.
Partitioner can be extended using the functionalities of class Ifpack_OverlappingPartitioner (itself derived from Ifpack_Partitioner. This class extends the nonoverlapping partitions by the required amount of overlap, considering local nodes only (that is, this overlap do not modify the overlap among the processes).
Ifpack_Partitioner is a pure virtual class. Concrete implementations are:
NumPDEEqns
parts (where NumPDEEqns
is the number of equations in the linear system). It is supposed that all the equations referring to the same grid node are ordered consecutively. Besides, the number of equations per node must be constant in the domain.Generically, a constructor requires an Ifpack_Graph object. Ifpack_Graph is a pure virtual class. Concrete implentations are:
An example of use is an Ifpack_Partitioner derived class is as follows:
When overlapping partitiones are created, the user can get the row ID contained in each partition as follows:
Ifpack_Partitioner is used to create the subblocks in Ifpack_BlockJacobi, Ifpack_BlockGaussSeidel, and Ifpack_BlockSymGaussSeidel.
Definition at line 162 of file Ifpack_Partitioner.h.

pure virtual 
Returns the local nonoverlapping partition ID of the specified row.
Returns the nonoverlapping partition ID of the specified row.
MyRow   (In) local row numbe 
Implemented in Ifpack_OverlappingPartitioner.