MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_HybridAggregationFactory_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_HYBRIDAGGREGATIONFACTORY_DECL_HPP_
11 #define MUELU_HYBRIDAGGREGATIONFACTORY_DECL_HPP_
12 
13 #include <Xpetra_Map_fwd.hpp>
14 
15 #include "MueLu_ConfigDefs.hpp"
18 
20 
21 #include "MueLu_Level_fwd.hpp"
22 #include "MueLu_LWGraph_fwd.hpp"
23 #include "MueLu_Aggregates_fwd.hpp"
24 #include "MueLu_Exceptions.hpp"
25 
26 // Uncoupled Agg
30 
35 
36 // Structured Agg
38 
39 namespace MueLu {
40 
95 template <class LocalOrdinal, class GlobalOrdinal, class Node>
97 #undef MUELU_HYBRIDAGGREGATIONFACTORY_SHORT
99 
100  public:
102 
103 
106 
109 
111 
113 
115 
116 
117  void DeclareInput(Level& currentLevel) const;
118 
120 
122 
123 
125  void Build(Level& currentLevel) const;
126 
128  void BuildInterfaceAggregates(Level& currentLevel,
129  RCP<Aggregates> aggregates,
131  LO& numNonAggregatedNodes,
132  Array<LO> coarseRate) const;
133 
135 
136  private:
138  // will be filled in Build routine
139  mutable std::vector<RCP<MueLu::AggregationAlgorithmBase<LO, GO, Node> > > algos_;
140 
144  mutable bool bDefinitionPhase_;
145 
146 }; // class HybridAggregationFactory
147 
148 } // namespace MueLu
149 
150 #define MUELU_HYBRIDAGGREGATIONFACTORY_SHORT
151 #endif /* MUELU_HYBRIDAGGREGATIONFACTORY_DECL_HPP_ */
Kokkos::View< unsigned *, typename LWGraphHostType::device_type > AggStatHostType
Factory for building aggregates on meshes partly structured and partly unstructured.
void BuildInterfaceAggregates(Level &currentLevel, RCP< Aggregates > aggregates, typename AggregationAlgorithmBase< LocalOrdinal, GlobalOrdinal, Node >::AggStatHostType &aggStat, LO &numNonAggregatedNodes, Array< LO > coarseRate) const
Specifically build aggregates along interfaces.
std::vector< RCP< MueLu::AggregationAlgorithmBase< LO, GO, Node > > > algos_
aggregation algorithms
LocalOrdinal LO
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
Class that holds all level-specific information.
Definition: MueLu_Level.hpp:63
void Build(Level &currentLevel) const
Build aggregates.
void DeclareInput(Level &currentLevel) const
Input.
Base class for factories that use one level (currentLevel).