MueLu Version of the Day
Loading...
Searching...
No Matches
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
17#include "MueLu_LWGraph.hpp"
18#include "MueLu_LWGraph_kokkos.hpp"
19#include "MueLu_Types.hpp"
20
21namespace MueLu {
22
29template <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
58 virtual void SetupPhase(const ParameterList& params, Teuchos::RCP<const Teuchos::Comm<int>>& comm, LO& numLocalNodes, LO& numNonAggregatedNodes){};
59
61 virtual void BuildAggregatesNonKokkos(const Teuchos::ParameterList& params,
62 const LWGraphHostType& graph,
63 Aggregates& aggregates,
64 AggStatHostType& aggStat,
65 LO& numNonAggregatedNodes) const = 0;
66
68 virtual void BuildAggregates(const Teuchos::ParameterList& params,
69 const LWGraphType& graph,
70 Aggregates& aggregates,
71 AggStatType& aggStat,
72 LO& numNonAggregatedNodes) const = 0;
74};
75
76} // namespace MueLu
77
78#define MUELU_AGGREGATIONALGORITHMBASE_SHORT
79#endif /* MUELU_AGGREGATIONALGORITHMBASE_HPP_ */
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
MueLu::DefaultNode Node
Container class for aggregation information.
Pure virtual base class for all MueLu aggregation algorithms.
Kokkos::View< unsigned *, typename LWGraphHostType::device_type > AggStatHostType
virtual void BuildAggregates(const Teuchos::ParameterList &params, const LWGraphType &graph, Aggregates &aggregates, AggStatType &aggStat, LO &numNonAggregatedNodes) const =0
BuildAggregates routine.
virtual void SetupPhase(const ParameterList &params, Teuchos::RCP< const Teuchos::Comm< int > > &comm, LO &numLocalNodes, LO &numNonAggregatedNodes)
virtual void BuildAggregatesNonKokkos(const Teuchos::ParameterList &params, const LWGraphHostType &graph, Aggregates &aggregates, AggStatHostType &aggStat, LO &numNonAggregatedNodes) const =0
BuildAggregatesNonKokkos routine.
Kokkos::View< unsigned *, typename LWGraphType::device_type > AggStatType
Base class for MueLu classes.
Lightweight MueLu representation of a compressed row storage graph.
Lightweight MueLu representation of a compressed row storage graph.
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode