MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_PreserveDirichletAggregationAlgorithm_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_PRESERVEDIRICHLETAGGREGATIONALGORITHM_DECL_HPP_
11 #define MUELU_PRESERVEDIRICHLETAGGREGATIONALGORITHM_DECL_HPP_
12 
13 #include "MueLu_ConfigDefs.hpp"
16 
18 #include "MueLu_Aggregates_fwd.hpp"
19 #include "MueLu_LWGraph.hpp"
20 
21 namespace MueLu {
46 template <class LocalOrdinal = DefaultLocalOrdinal,
48  class Node = DefaultNode>
49 class PreserveDirichletAggregationAlgorithm : public MueLu::AggregationAlgorithmBase<LocalOrdinal, GlobalOrdinal, Node> {
50 #undef MUELU_PRESERVEDIRICHLETAGGREGATIONALGORITHM_SHORT
52 
53  public:
55 
56 
58  PreserveDirichletAggregationAlgorithm(const RCP<const FactoryBase>& /* graphFact */ = Teuchos::null) {}
59 
62 
64 
66 
67 
70  void BuildAggregatesNonKokkos(const Teuchos::ParameterList& params, const LWGraph& graph, Aggregates& aggregates, typename AggregationAlgorithmBase<LocalOrdinal, GlobalOrdinal, Node>::AggStatHostType& aggStat, LO& numNonAggregatedNodes) const;
71 
72  void BuildAggregates(const Teuchos::ParameterList& params,
73  const LWGraph_kokkos& graph,
74  Aggregates& aggregates,
76  LO& numNonAggregatedNodes) const;
78 
79  std::string description() const { return "Phase - (Dirichlet)"; }
80 
81 }; // class PreserveDirichletAggregationAlgorithm
82 
83 } // namespace MueLu
84 
85 #define MUELU_PRESERVEDIRICHLETAGGREGATIONALGORITHM_SHORT
86 
87 #endif /* MUELU_PRESERVEDIRICHLETAGGREGATIONALGORITHM_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.
Pure virtual base class for all MueLu aggregation algorithms.
LocalOrdinal LO
std::string description() const
Return a simple one-line description of this object.
MueLu::DefaultNode Node
PreserveDirichletAggregationAlgorithm(const RCP< const FactoryBase > &=Teuchos::null)
Constructor.
Builds one-to-one aggregates for all Dirichlet boundary nodes. For some applications this might be ne...
MueLu::DefaultGlobalOrdinal GlobalOrdinal
void BuildAggregates(const Teuchos::ParameterList &params, const LWGraph_kokkos &graph, Aggregates &aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatType &aggStat, LO &numNonAggregatedNodes) const
Lightweight MueLu representation of a compressed row storage graph.
void BuildAggregatesNonKokkos(const Teuchos::ParameterList &params, const LWGraph &graph, Aggregates &aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatHostType &aggStat, LO &numNonAggregatedNodes) const
Local aggregation.
Kokkos::View< unsigned *, typename LWGraphType::device_type > AggStatType