46#ifndef MUELU_AGGREGATIONPHASE1ALGORITHM_KOKKOS_DECL_HPP
47#define MUELU_AGGREGATIONPHASE1ALGORITHM_KOKKOS_DECL_HPP
50#ifdef HAVE_MUELU_KOKKOS_REFACTOR
52#include <KokkosCompat_ClassicNodeAPI_Wrapper.hpp>
59#include "MueLu_LWGraph_kokkos.hpp"
89 class AggregationPhase1Algorithm_kokkos :
90 public MueLu::AggregationAlgorithmBase_kokkos<LocalOrdinal,GlobalOrdinal,Node> {
91#undef MUELU_AGGREGATIONPHASE1ALGORITHM_KOKKOS_SHORT
95 using device_type =
typename LWGraph_kokkos::device_type;
96 using execution_space =
typename LWGraph_kokkos::execution_space;
97 using memory_space =
typename LWGraph_kokkos::memory_space;
103 AggregationPhase1Algorithm_kokkos(
const RCP<const FactoryBase>& = Teuchos::null) { }
106 virtual ~AggregationPhase1Algorithm_kokkos() { }
116 void BuildAggregates(
const Teuchos::ParameterList& params,
117 const LWGraph_kokkos& graph,
118 Aggregates_kokkos& aggregates,
120 LO& numNonAggregatedNodes)
const;
122 void BuildAggregatesRandom(
const LO maxAggSize,
123 const LWGraph_kokkos& graph,
124 Aggregates_kokkos& aggregates,
126 LO& numNonAggregatedNodes)
const;
128 void BuildAggregatesDeterministic(
const LO maxAggSize,
129 const LWGraph_kokkos& graph,
130 Aggregates_kokkos& aggregates,
132 LO& numNonAggregatedNodes)
const;
135 std::string description()
const {
return "Phase 1 (main)"; }
141#define MUELU_AGGREGATIONPHASE1ALGORITHM_KOKKOS_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Namespace for MueLu classes and methods.
KokkosClassic::DefaultNode::DefaultNodeType DefaultNode