MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_AggregationAlgorithmBase.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_AGGREGATIONALGORITHMBASE_HPP_
11 #define MUELU_AGGREGATIONALGORITHMBASE_HPP_
12 
13 #include "MueLu_ConfigDefs.hpp"
14 #include "MueLu_BaseClass.hpp"
15 
16 #include "MueLu_Aggregates_fwd.hpp"
17 #include "MueLu_LWGraph.hpp"
18 #include "MueLu_LWGraph_kokkos.hpp"
19 #include "MueLu_Types.hpp"
20 
21 namespace MueLu {
22 
29 template <class LocalOrdinal = DefaultLocalOrdinal,
31  class Node = DefaultNode>
33 #undef MUELU_AGGREGATIONALGORITHMBASE_SHORT
35  public:
37  using AggStatHostType = Kokkos::View<unsigned*, typename LWGraphHostType::device_type>;
38 
40  using AggStatType = Kokkos::View<unsigned*, typename LWGraphType::device_type>;
41 
43 
44 
47 
49 
51 
52 
54  virtual void BuildAggregatesNonKokkos(const Teuchos::ParameterList& params,
55  const LWGraphHostType& graph,
56  Aggregates& aggregates,
57  AggStatHostType& aggStat,
58  LO& numNonAggregatedNodes) const = 0;
59 
61  virtual void BuildAggregates(const Teuchos::ParameterList& params,
62  const LWGraphType& graph,
63  Aggregates& aggregates,
64  AggStatType& aggStat,
65  LO& numNonAggregatedNodes) const = 0;
67 };
68 
69 } // namespace MueLu
70 
71 #define MUELU_AGGREGATIONALGORITHMBASE_SHORT
72 #endif /* MUELU_AGGREGATIONALGORITHMBASE_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.
Pure virtual base class for all MueLu aggregation algorithms.
virtual void BuildAggregates(const Teuchos::ParameterList &params, const LWGraphType &graph, Aggregates &aggregates, AggStatType &aggStat, LO &numNonAggregatedNodes) const =0
BuildAggregates routine.
LocalOrdinal LO
MueLu::DefaultNode Node
MueLu::DefaultGlobalOrdinal GlobalOrdinal
virtual void BuildAggregatesNonKokkos(const Teuchos::ParameterList &params, const LWGraphHostType &graph, Aggregates &aggregates, AggStatHostType &aggStat, LO &numNonAggregatedNodes) const =0
BuildAggregatesNonKokkos routine.
Base class for MueLu classes.
Lightweight MueLu representation of a compressed row storage graph.
Kokkos::View< unsigned *, typename LWGraphType::device_type > AggStatType