46 #ifndef MUELU_UNCOUPLEDAGGREGATIONFACTORY_KOKKOS_DECL_HPP
47 #define MUELU_UNCOUPLEDAGGREGATIONFACTORY_KOKKOS_DECL_HPP
50 #ifdef HAVE_MUELU_KOKKOS_REFACTOR
52 #include <KokkosCompat_ClassicNodeAPI_Wrapper.hpp>
70 #include "MueLu_LWGraph_kokkos.hpp"
141 template <
class LocalOrdinal = int,
142 class GlobalOrdinal = LocalOrdinal,
144 class UncoupledAggregationFactory_kokkos :
public SingleLevelFactoryBase {
145 #undef MUELU_UNCOUPLEDAGGREGATIONFACTORY_KOKKOS_SHORT
153 UncoupledAggregationFactory_kokkos();
156 virtual ~UncoupledAggregationFactory_kokkos() { }
158 RCP<const ParameterList> GetValidParameterList()
const;
168 void SetOrdering(
const std::string& ordering) {
169 SetParameter(
"aggregation: ordering", ParameterEntry(ordering));
172 void SetMaxNeighAlreadySelected(
int maxNeighAlreadySelected) {
173 SetParameter(
"aggregation: max selected neighbors", ParameterEntry(Teuchos::as<LocalOrdinal>(maxNeighAlreadySelected)));
176 void SetMinNodesPerAggregate(
int minNodesPerAggregate) {
177 SetParameter(
"aggregation: min agg size", ParameterEntry(Teuchos::as<LocalOrdinal>(minNodesPerAggregate)));
181 SetParameter(
"OnePt aggregate map name", ParameterEntry(std::string(name)));
182 SetFactory(
"OnePt aggregate map factory",mapFact);
186 const std::string& GetOrdering()
const {
187 const ParameterList& pL = GetParameterList();
188 return pL.get<std::string>(
"aggregation: ordering");
191 int GetMaxNeighAlreadySelected()
const {
192 const ParameterList& pL = GetParameterList();
193 return Teuchos::as<int>(pL.get<LocalOrdinal>(
"aggregation: max selected neighbors"));
196 int GetMinNodesPerAggregate()
const {
197 const ParameterList& pL = GetParameterList();
198 return Teuchos::as<int>(pL.get<LocalOrdinal>(
"aggregation: min agg size"));
206 void DeclareInput(Level ¤tLevel)
const;
214 void Build(Level ¤tLevel)
const;
232 mutable std::vector<RCP<MueLu::AggregationAlgorithmBase_kokkos<LocalOrdinal, GlobalOrdinal, Node> > > algos_;
237 mutable bool bDefinitionPhase_;
243 #define MUELU_UNCOUPLEDAGGREGATIONFACTORY_KOKKOS_SHORT
244 #endif // HAVE_MUELU_KOKKOS_REFACTOR
245 #endif // MUELU_UNCOUPLEDAGGREGATIONFACTORY_KOKKOS_DECL_HPP