43 #ifndef IFPACK2_OVERLAPPINGPARTITIONER_DECL_HPP 44 #define IFPACK2_OVERLAPPINGPARTITIONER_DECL_HPP 46 #include "Ifpack2_ConfigDefs.hpp" 47 #include "Ifpack2_Partitioner.hpp" 48 #include "Tpetra_RowGraph.hpp" 76 template<
class GraphType>
79 typedef typename GraphType::local_ordinal_type local_ordinal_type;
80 typedef typename GraphType::global_ordinal_type global_ordinal_type;
81 typedef typename GraphType::node_type node_type;
82 typedef Tpetra::RowGraph<local_ordinal_type, global_ordinal_type, node_type> row_graph_type;
103 local_ordinal_type
operator () (
const local_ordinal_type MyRow)
const;
107 operator () (
const local_ordinal_type i,
const local_ordinal_type j)
const;
113 void rowsInPart (
const local_ordinal_type Part, Teuchos::ArrayRCP<local_ordinal_type>& List)
const;
116 virtual Teuchos::ArrayView<const local_ordinal_type>
147 virtual std::ostream&
print(std::ostream& os)
const;
156 void describe(Teuchos::FancyOStream &out,
const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default)
const;
175 Teuchos::Array<Teuchos::ArrayRCP<local_ordinal_type> >
Parts_;
178 Teuchos::RCP<const row_graph_type>
Graph_;
192 #endif // IFPACK2_OVERLAPPINGPARTITIONER_DECL_HPP Teuchos::Array< local_ordinal_type > Partition_
Definition: Ifpack2_OverlappingPartitioner_decl.hpp:171
Teuchos::Array< Teuchos::ArrayRCP< local_ordinal_type > > Parts_
Definition: Ifpack2_OverlappingPartitioner_decl.hpp:175
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. ...
Definition: Ifpack2_OverlappingPartitioner_def.hpp:136
virtual Teuchos::ArrayView< const local_ordinal_type > nonOverlappingPartition() const
A view of the local indices of the nonoverlapping partitions of each local row.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:149
OverlappingPartitioner(const Teuchos::RCP< const row_graph_type > &graph)
Constructor.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:56
int OverlappingLevel_
Level of overlap.
Definition: Ifpack2_OverlappingPartitioner_decl.hpp:181
int overlappingLevel() const
The number of levels of overlap.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:78
int numLocalParts() const
Number of computed local partitions.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:71
Ifpack2::Partitioner:
Definition: Ifpack2_Partitioner.hpp:179
Teuchos::RCP< const row_graph_type > Graph_
The graph to be partitioned.
Definition: Ifpack2_OverlappingPartitioner_decl.hpp:178
virtual void computeOverlappingPartitions()
Computes the partitions. Returns 0 if successful.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:240
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.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:391
virtual ~OverlappingPartitioner()
Destructor.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:66
virtual bool isComputed() const
Returns true if partitions have been computed successfully.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:357
int NumLocalParts_
Number of local subgraphs.
Definition: Ifpack2_OverlappingPartitioner_decl.hpp:167
std::string description() const
Return a simple one-line description of this object.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:375
virtual void computePartitions()=0
Computes the partitions. Returns 0 if successful.
virtual void compute()
Computes the partitions. Returns 0 if successful.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:188
virtual std::ostream & print(std::ostream &os) const
Prints basic information on iostream. This function is used by operator<<.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:365
local_ordinal_type operator()(const local_ordinal_type MyRow) const
Local index of the nonoverlapping partition of the given row.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:87
bool verbose_
If true, information are reported to stdout.
Definition: Ifpack2_OverlappingPartitioner_decl.hpp:187
virtual void setParameters(Teuchos::ParameterList &List)
Set all the parameters for the partitioner.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:158
size_t numRowsInPart(const local_ordinal_type Part) const
the number of rows contained in the given partition.
Definition: Ifpack2_OverlappingPartitioner_def.hpp:122
Definition: Ifpack2_OverlappingPartitioner_decl.hpp:77
Preconditioners and smoothers for Tpetra sparse matrices.
Definition: Ifpack2_AdditiveSchwarz_decl.hpp:72
virtual void setPartitionParameters(Teuchos::ParameterList &List)=0
Set all the parameters for the partitioner.
bool IsComputed_
If true, the graph has been successfully partitioned.
Definition: Ifpack2_OverlappingPartitioner_decl.hpp:184