MueLu Version of the Day
Loading...
Searching...
No Matches
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"
24#include "MueLu_Exceptions.hpp"
25
26// Uncoupled Agg
30
35
36// Structured Agg
38
39namespace MueLu {
40
95template <class LocalOrdinal, class GlobalOrdinal, class Node>
97#undef MUELU_HYBRIDAGGREGATIONFACTORY_SHORT
99
100 public:
102
103
106
109
110 RCP<const ParameterList> GetValidParameterList() const;
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.
std::vector< RCP< MueLu::AggregationAlgorithmBase< LO, GO, Node > > > algos_
aggregation algorithms
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
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.
void DeclareInput(Level &currentLevel) const
Input.
void Build(Level &currentLevel) const
Build aggregates.
Class that holds all level-specific information.
Base class for factories that use one level (currentLevel).
Namespace for MueLu classes and methods.