Ifpack2 Templated Preconditioning Package Version 1.0
Loading...
Searching...
No Matches
Ifpack2_Zoltan2Partitioner_decl.hpp
1// @HEADER
2// *****************************************************************************
3// Ifpack2: Templated Object-Oriented Algebraic Preconditioner Package
4//
5// Copyright 2009 NTESS and the Ifpack2 contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef IFPACK2_ZOLTAN2PARTITIONER_DECL_HPP
11#define IFPACK2_ZOLTAN2PARTITIONER_DECL_HPP
12
13#if defined(HAVE_IFPACK2_ZOLTAN2)
14#include "Ifpack2_ConfigDefs.hpp"
15#include "Ifpack2_OverlappingPartitioner_decl.hpp"
16
17#include "Zoltan2_PartitioningProblem.hpp"
18#include "Zoltan2_TpetraRowGraphAdapter.hpp"
19
20namespace Ifpack2 {
21
23
30template <class GraphType>
31class Zoltan2Partitioner : public OverlappingPartitioner<GraphType> {
32 public:
33 typedef typename GraphType::local_ordinal_type local_ordinal_type;
34 typedef typename GraphType::global_ordinal_type global_ordinal_type;
35 typedef typename GraphType::node_type node_type;
36 typedef Tpetra::RowGraph<local_ordinal_type, global_ordinal_type, node_type>
37 row_graph_type;
38 typedef Zoltan2::TpetraRowGraphAdapter<row_graph_type>
39 Zoltan2GraphAdapterType;
40
42 Zoltan2Partitioner(const Teuchos::RCP<const row_graph_type>& graph);
43
45 virtual ~Zoltan2Partitioner();
46
48 void setPartitionParameters(Teuchos::ParameterList& List);
49
51 void computePartitions();
52
53 private:
54 std::string zoltan2AlgoName_;
55};
56
57} // namespace Ifpack2
58
59#endif // HAVE_IFPACK2_ZOLTAN2
60#endif // IFPACK2_ZOLTAN2PARTITIONER_DECL_HPP
Preconditioners and smoothers for Tpetra sparse matrices.
Definition Ifpack2_AdditiveSchwarz_decl.hpp:40