46 #ifndef MUELU_AGGREGATIONSTRUCTUREDALGORITHM_KOKKOS_DECL_HPP
47 #define MUELU_AGGREGATIONSTRUCTUREDALGORITHM_KOKKOS_DECL_HPP
56 #include "MueLu_LWGraph_kokkos.hpp"
73 template <
class LocalOrdinal = int,
74 class GlobalOrdinal = LocalOrdinal,
77 public MueLu::AggregationAlgorithmBase_kokkos<LocalOrdinal,GlobalOrdinal,Node> {
78 #undef MUELU_AGGREGATIONSTRUCTUREDALGORITHM_KOKKOS_SHORT
85 typedef typename local_graph_type::size_type
size_type;
88 typedef typename local_graph_type::device_type::memory_space
memory_space;
90 typedef decltype(std::declval<LOVector>().
template getLocalView<memory_space>())
LOVectorView;
113 std::vector<unsigned>& ,
117 Aggregates_kokkos& aggregates,
119 LO& numNonAggregatedNodes)
const;
127 std::string
description()
const {
return "Aggretation: structured algorithm"; }
143 KOKKOS_INLINE_FUNCTION
144 void operator() (
const LO nodeIdx,
LO& lNumAggregatedNodes)
const;
161 const LO numGhostedNodes,
const LO dofsPerNode,
166 KOKKOS_INLINE_FUNCTION
182 const LO dofsPerNode,
183 const int numInterpolationPoints,
const LO numLocalRows,
187 KOKKOS_INLINE_FUNCTION
188 void operator() (
const LO rowIdx,
GO& update,
const bool final)
const;
207 const int numDimensions,
208 const LO numGhostedNodes,
const LO dofsPerNode,
209 const int numInterpolationPoints,
215 KOKKOS_INLINE_FUNCTION
224 #define MUELU_AGGREGATIONSTRUCTUREDALGORITHM_KOKKOS_SHORT
non_const_row_map_type rowPtr_
const int numGhostedNodes_
local_graph_type::size_type size_type
IndexManager_kokkos geoData_
KOKKOS_INLINE_FUNCTION void operator()(const LO nodeIdx) const
IndexManager_kokkos geoData_
constIntTupleView coarseRate_
virtual ~AggregationStructuredAlgorithm_kokkos()
Destructor.
constLOTupleView lFineNodesPerDir_
local_graph_type::entries_type entries_type
constLOTupleView lFineNodesPerDir_
KOKKOS_INLINE_FUNCTION void operator()(const LO nodeIdx) const
IndexManager_kokkos geoData_
constLOTupleView ghostedNodesPerDir_
constIntTupleView endRate_
Kokkos::View< unsigned *, memory_space > aggStat_
decltype(std::declval< LOVector >().template getLocalView< memory_space >()) typedef LOVectorView
computeGraphRowPtrFunctor(RCP< IndexManager_kokkos > geoData, const LO dofsPerNode, const int numInterpolationPoints, const LO numLocalRows, constIntTupleView coarseRate, constLOTupleView lFineNodesPerDir, non_const_row_map_type rowPtr)
local_graph_type::device_type::execution_space execution_space
non_const_row_map_type rowPtr_
LOVectorView vertex2AggID_
const int numInterpolationPoints_
constIntTupleView coarseRate_
const int numGhostedNodes_
local_graph_type::row_map_type::non_const_type non_const_row_map_type
non_const_row_map_type rowPtr_
KOKKOS_INLINE_FUNCTION void operator()(const LO rowIdx, GO &update, const bool final) const
computeGraphDataLinearFunctor(RCP< IndexManager_kokkos > geoData, const int numDimensions, const LO numGhostedNodes, const LO dofsPerNode, const int numInterpolationPoints, constIntTupleView coarseRate, constIntTupleView endRate, constLOTupleView lFineNodesPerDir, constLOTupleView ghostedNodesPerDir, non_const_row_map_type rowPtr, entries_type colIndex)
fillAggregatesFunctor(RCP< IndexManager_kokkos > geoData, const int myRank, Kokkos::View< unsigned *, memory_space > aggStat, LOVectorView vertex2AggID, LOVectorView procWinner)
const int numInterpolationPoints_
constIntTupleView endRate_
IndexManager_kokkos geoData_
std::string description() const
KOKKOS_INLINE_FUNCTION void operator()(const LO nodeIdx, LO &lNumAggregatedNodes) const
local_graph_type::device_type::memory_space memory_space
void BuildAggregates(const Teuchos::ParameterList &, const LWGraph_kokkos &, Aggregates_kokkos &, std::vector< unsigned > &, LO &) const
Local aggregation.
constLOTupleView lFineNodesPerDir_
computeGraphDataConstantFunctor(RCP< IndexManager_kokkos > geoData, const LO numGhostedNodes, const LO dofsPerNode, constIntTupleView coarseRate, constIntTupleView endRate, constLOTupleView lFineNodesPerDir, non_const_row_map_type rowPtr, entries_type colIndex)
constIntTupleView coarseRate_
LWGraph_kokkos::local_graph_type local_graph_type
void BuildGraph(const LWGraph_kokkos &graph, RCP< IndexManager_kokkos > &geoData, const LO dofsPerNode, RCP< CrsGraph > &myGraph) const
Local aggregation.