MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_AggregationPhase3Algorithm_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // MueLu: A package for multigrid based preconditioning
4 //
5 // Copyright 2012 NTESS and the MueLu contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef MUELU_AGGREGATIONPHASE3ALGORITHM_DECL_HPP_
11 #define MUELU_AGGREGATIONPHASE3ALGORITHM_DECL_HPP_
12 
13 #include "MueLu_ConfigDefs.hpp"
16 
18 #include "MueLu_Aggregates_fwd.hpp"
19 #include "MueLu_LWGraph.hpp"
20 
21 namespace MueLu {
39 template <class LocalOrdinal = DefaultLocalOrdinal,
41  class Node = DefaultNode>
42 class AggregationPhase3Algorithm : public MueLu::AggregationAlgorithmBase<LocalOrdinal, GlobalOrdinal, Node> {
43 #undef MUELU_AGGREGATIONPHASE3ALGORITHM_SHORT
45 
46  public:
48 
49 
51  AggregationPhase3Algorithm(const RCP<const FactoryBase>& /* graphFact */ = Teuchos::null) {}
52 
55 
57 
59 
60 
63  void BuildAggregatesNonKokkos(const ParameterList& params, const LWGraph& graph, Aggregates& aggregates, typename AggregationAlgorithmBase<LocalOrdinal, GlobalOrdinal, Node>::AggStatHostType& aggStat, LO& numNonAggregatedNodes) const;
64 
65  void BuildAggregates(const ParameterList& params,
66  const LWGraph_kokkos& graph,
67  Aggregates& aggregates,
69  LO& numNonAggregatedNodes) const;
70 
71  void BuildAggregatesRandom(const ParameterList& params,
72  const LWGraph_kokkos& graph,
73  Aggregates& aggregates,
75  LO& numNonAggregatedNodes) const;
77 
78  std::string description() const { return "Phase 3 (cleanup)"; }
79 };
80 
81 } // namespace MueLu
82 
83 #define MUELU_AGGREGATIONPHASE3ALGORITHM_SHORT
84 
85 #endif /* MUELU_AGGREGATIONPHASE3ALGORITHM_DECL_HPP_ */
Kokkos::View< unsigned *, typename LWGraphHostType::device_type > AggStatHostType
MueLu::DefaultLocalOrdinal LocalOrdinal
Lightweight MueLu representation of a compressed row storage graph.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Container class for aggregation information.
void BuildAggregates(const ParameterList &params, const LWGraph_kokkos &graph, Aggregates &aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatType &aggStat, LO &numNonAggregatedNodes) const
Pure virtual base class for all MueLu aggregation algorithms.
LocalOrdinal LO
void BuildAggregatesNonKokkos(const ParameterList &params, const LWGraph &graph, Aggregates &aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatHostType &aggStat, LO &numNonAggregatedNodes) const
Local aggregation.
MueLu::DefaultNode Node
MueLu::DefaultGlobalOrdinal GlobalOrdinal
AggregationPhase3Algorithm(const RCP< const FactoryBase > &=Teuchos::null)
Constructor.
std::string description() const
Return a simple one-line description of this object.
Lightweight MueLu representation of a compressed row storage graph.
Handle leftover nodes. Try to avoid singleton nodesIdeaIn phase 3 we try to stick unaggregated nodes ...
void BuildAggregatesRandom(const ParameterList &params, const LWGraph_kokkos &graph, Aggregates &aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatType &aggStat, LO &numNonAggregatedNodes) const
Kokkos::View< unsigned *, typename LWGraphType::device_type > AggStatType