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