Ifpack2 Templated Preconditioning Package  Version 1.0
Public Member Functions | List of all members
Ifpack2::Details::UserPartitioner< GraphType > Class Template Reference

Partition in which the user can define a nonoverlapping partition of the graph in any way they choose. More...

#include <Ifpack2_Details_UserPartitioner_decl.hpp>

Inheritance diagram for Ifpack2::Details::UserPartitioner< GraphType >:
Inheritance graph
[legend]

Public Member Functions

 UserPartitioner (const Teuchos::RCP< const row_graph_type > &graph)
 Constructor. More...
 
virtual ~UserPartitioner ()
 Destructor. More...
 
void setPartitionParameters (Teuchos::ParameterList &List)
 Sets all the parameters for the partitioner. The only valid parameters are: More...
 
void computePartitions ()
 Compute the partitions. More...
 
- Public Member Functions inherited from Ifpack2::OverlappingPartitioner< GraphType >
 OverlappingPartitioner (const Teuchos::RCP< const row_graph_type > &graph)
 Constructor. More...
 
virtual ~OverlappingPartitioner ()
 Destructor. More...
 
int numLocalParts () const
 Number of computed local partitions. More...
 
int overlappingLevel () const
 The number of levels of overlap. More...
 
local_ordinal_type operator() (const local_ordinal_type MyRow) const
 Local index of the nonoverlapping partition of the given row. More...
 
local_ordinal_type operator() (const local_ordinal_type i, const local_ordinal_type j) const
 Local index of the overlapping partition of the j-th vertex in partition i. More...
 
size_t numRowsInPart (const local_ordinal_type Part) const
 the number of rows contained in the given partition. More...
 
void rowsInPart (const local_ordinal_type Part, Teuchos::ArrayRCP< local_ordinal_type > &List) const
 Fill List with the local indices of the rows in the (overlapping) partition Part. More...
 
virtual Teuchos::ArrayView< const local_ordinal_type > nonOverlappingPartition () const
 A view of the local indices of the nonoverlapping partitions of each local row. More...
 
virtual void setParameters (Teuchos::ParameterList &List)
 Set all the parameters for the partitioner. More...
 
virtual void compute ()
 Computes the partitions. Returns 0 if successful. More...
 
virtual void computeOverlappingPartitions ()
 Computes the partitions. Returns 0 if successful. More...
 
virtual bool isComputed () const
 Returns true if partitions have been computed successfully. More...
 
virtual std::ostream & print (std::ostream &os) const
 Prints basic information on iostream. This function is used by operator<<. More...
 
std::string description () const
 Return a simple one-line description of this object. More...
 
void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
 Print the object with some verbosity level to an FancyOStream object. More...
 
- Public Member Functions inherited from Ifpack2::Partitioner< GraphType >
virtual ~Partitioner ()
 Destructor. More...
 

Additional Inherited Members

- Protected Attributes inherited from Ifpack2::OverlappingPartitioner< GraphType >
int NumLocalParts_
 Number of local subgraphs. More...
 
Teuchos::Array< local_ordinal_type > Partition_
 Mapping from local row to partition number. Partition_[i] contains the local index of the nonoverlapping partition to which local row i belongs. If the application has explicitly defined Parts_, then Partition_ is unused. More...
 
Teuchos::Array< Teuchos::ArrayRCP< local_ordinal_type > > Parts_
 Mapping from partition to all local rows it contains. Parts_[i][j] is the local index of the j-th row contained in the (overlapping) partition i. More...
 
Teuchos::RCP< const row_graph_type > Graph_
 The graph to be partitioned. More...
 
int OverlappingLevel_
 Level of overlap. More...
 
bool IsComputed_
 If true, the graph has been successfully partitioned. More...
 
bool verbose_
 If true, information are reported to stdout. More...
 

Detailed Description

template<class GraphType>
class Ifpack2::Details::UserPartitioner< GraphType >

Partition in which the user can define a nonoverlapping partition of the graph in any way they choose.

See Ifpack2::Details::UserPartitioner::setPartitionParameters for a list of supported parameters.

Template Parameters
GraphTypeSpecialization of Tpetra::CrsGraph or Tpetra::RowGraph.

Constructor & Destructor Documentation

◆ UserPartitioner()

template<class GraphType >
Ifpack2::Details::UserPartitioner< GraphType >::UserPartitioner ( const Teuchos::RCP< const row_graph_type > &  graph)

Constructor.

◆ ~UserPartitioner()

template<class GraphType >
Ifpack2::Details::UserPartitioner< GraphType >::~UserPartitioner ( )
virtual

Destructor.

Member Function Documentation

◆ setPartitionParameters()

template<class GraphType >
void Ifpack2::Details::UserPartitioner< GraphType >::setPartitionParameters ( Teuchos::ParameterList List)
virtual

Sets all the parameters for the partitioner. The only valid parameters are:

  • "partitioner: map" (Teuchos::ArrayRCP<local ordinal>) Use this option if the parts (aka blocks) do not overlap. The ith entry in the ArrayRCP is the part (block) number that row i belongs to. In this case, you are specifying OverlappingPartitioner::Partition_.
  • "partitioner: parts" (Teuchos::Array<Teuchos::ArrayRCP<local ordinal>>) Use this option if the parts (aka blocks) overlap. The i'th entry in the Array is an ArrayRCP that contains all the rows in part (block) i. In this case, you are specifying OverlappingPartitioner::Parts_.

You may set only one of these parameters. Setting both will results in a runtime exception.

Implements Ifpack2::OverlappingPartitioner< GraphType >.

◆ computePartitions()

template<class GraphType >
void Ifpack2::Details::UserPartitioner< GraphType >::computePartitions ( )
virtual

Compute the partitions.

Implements Ifpack2::OverlappingPartitioner< GraphType >.


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