Ifpack2 Templated Preconditioning Package  Version 1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
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. More...
 
Teuchos::Array
< Teuchos::ArrayRCP
< local_ordinal_type > > 
Parts_
 Mapping from partition to all local rows it contains. 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...
 
bool maintainSparsity_
 If true, only add row to partition (block) if doing so won't add new columns to the column map. 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

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

Constructor.

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

Destructor.

Member Function Documentation

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>) 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>>) 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 >.

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: