43#ifndef IFPACK_OVERLAPPINGPARTITIONER_H
44#define IFPACK_OVERLAPPINGPARTITIONER_H
46#include "Ifpack_ConfigDefs.h"
47#include "Ifpack_Partitioner.h"
48#include "Teuchos_ParameterList.hpp"
113 if ((MyRow < 0) || (MyRow >
NumMyRows()))
125 if ((j < 0) || (j > (
int)
Parts_[i].size()))
134 return(
Parts_[Part].size());
140 List[i] =
Parts_[Part][i];
181 virtual std::ostream&
Print(std::ostream& os)
const;
189#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
193 long long NumGlobalRows64()
const;
Ifpack_Graph: a pure virtual class that defines graphs for IFPACK.
std::vector< std::vector< int > > Parts_
Parts_[i][j] is the ID of the j-th row contained in the (overlapping)
int operator()(int MyRow) const
Returns the local non-overlapping partition ID of the specified row.
int NumGlobalRows() const
Returns the number of global rows.
int NumLocalParts() const
Returns the number of computed local partitions.
bool IsComputed()
Returns true if partitions have been computed successfully.
int OverlappingLevel_
Overlapping level.
int NumMyNonzeros() const
Returns the number of local nonzero elements.
int NumLocalParts_
Number of local subgraphs.
int NumMyRows() const
Returns the number of local rows.
int MaxNumEntries() const
Returns the max number of local entries in a row.
virtual std::ostream & Print(std::ostream &os) const
Prints basic information on iostream. This function is used by operator<<.
virtual ~Ifpack_OverlappingPartitioner()
Destructor.
std::vector< int > Partition_
Partition_[i] contains the ID of non-overlapping part it belongs to.
virtual int SetPartitionParameters(Teuchos::ParameterList &List)=0
Sets all the parameters for the partitioner.
bool verbose_
If true, information are reported on cout.
int OverlappingLevel() const
Returns the overlapping level.
virtual int Compute()
Computes the partitions. Returns 0 if successful.
const int * NonOverlappingPartition() const
Returns a pointer to the integer vector containing the non-overlapping partition ID of each local row...
int RowsInPart(const int Part, int *List) const
Copies into List the rows in the (overlapping) partition Part.
bool IsComputed_
If true, the graph has been successfully partitioned.
int NumRowsInPart(const int Part) const
Returns the number of rows contained in specified partition.
virtual int SetParameters(Teuchos::ParameterList &List)
Sets all the parameters for the partitioner.
virtual int ComputeOverlappingPartitions()
Computes the partitions. Returns 0 if successful.
const Epetra_Comm & Comm() const
Returns the communicator object of Graph.
const Ifpack_Graph * Graph_
Reference to the graph to be partitioned.
virtual int ComputePartitions()=0
Computes the partitions. Returns 0 if successful.
Ifpack_Partitioner: A class to decompose local Ifpack_Graph's.