46#ifndef MUELU_AGGREGATIONSTRUCTUREDALGORITHM_KOKKOS_DECL_HPP
47#define MUELU_AGGREGATIONSTRUCTUREDALGORITHM_KOKKOS_DECL_HPP
56#include "MueLu_LWGraph_kokkos.hpp"
78#undef MUELU_AGGREGATIONSTRUCTUREDALGORITHM_KOKKOS_SHORT
85 using size_type =
typename local_graph_type::size_type;
89 using memory_space =
typename local_graph_type::device_type::memory_space;
91 using LOVectorView =
decltype(std::declval<LOVector>().getDeviceLocalView(Xpetra::Access::ReadWrite));
115 Kokkos::View<unsigned*, device_type>& aggStat,
116 LO& numNonAggregatedNodes)
const;
121 RCP<IndexManager_kokkos>& geoData,
122 const LO dofsPerNode,
123 RCP<CrsGraph>& myGraph)
const;
126 std::string
description()
const {
return "Aggretation: structured algorithm"; }
138 Kokkos::View<unsigned*, device_type> aggStat,
142 KOKKOS_INLINE_FUNCTION
143 void operator() (
const LO nodeIdx, LO& lNumAggregatedNodes)
const;
160 const LO numGhostedNodes,
const LO dofsPerNode,
165 KOKKOS_INLINE_FUNCTION
181 const LO dofsPerNode,
182 const int numInterpolationPoints,
const LO numLocalRows,
186 KOKKOS_INLINE_FUNCTION
187 void operator() (
const LO rowIdx, GO& update,
const bool final)
const;
206 const int numDimensions,
207 const LO numGhostedNodes,
const LO dofsPerNode,
208 const int numInterpolationPoints,
214 KOKKOS_INLINE_FUNCTION
223#define MUELU_AGGREGATIONSTRUCTUREDALGORITHM_KOKKOS_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
decltype(std::declval< LOVector >().getDeviceLocalView(Xpetra::Access::ReadWrite)) LOVectorView
typename Kokkos::View< const int[3], device_type > constIntTupleView
typename local_graph_type::row_map_type::non_const_type non_const_row_map_type
typename LWGraph_kokkos::local_graph_type local_graph_type
typename local_graph_type::device_type::execution_space execution_space
std::string description() const
Return a simple one-line description of this object.
void BuildAggregates(const Teuchos::ParameterList ¶ms, const LWGraph_kokkos &graph, Aggregates_kokkos &aggregates, Kokkos::View< unsigned *, device_type > &aggStat, LO &numNonAggregatedNodes) const
Build aggregates object.
typename local_graph_type::size_type size_type
typename local_graph_type::device_type device_type
typename Kokkos::View< const LO[3], device_type > constLOTupleView
typename local_graph_type::entries_type entries_type
void BuildGraph(const LWGraph_kokkos &graph, RCP< IndexManager_kokkos > &geoData, const LO dofsPerNode, RCP< CrsGraph > &myGraph) const
Build a CrsGraph instead of aggregates.
typename local_graph_type::device_type::memory_space memory_space
AggregationStructuredAlgorithm_kokkos()
Constructor.
virtual ~AggregationStructuredAlgorithm_kokkos()
Destructor.
Container class for mesh layout and indices calculation.
Lightweight MueLu representation of a compressed row storage graph.
Namespace for MueLu classes and methods.
KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
constLOTupleView lFineNodesPerDir_
constIntTupleView endRate_
constIntTupleView coarseRate_
KOKKOS_INLINE_FUNCTION void operator()(const LO nodeIdx) const
non_const_row_map_type rowPtr_
IndexManager_kokkos geoData_
const int numGhostedNodes_
IndexManager_kokkos geoData_
const int numInterpolationPoints_
constIntTupleView coarseRate_
non_const_row_map_type rowPtr_
constLOTupleView ghostedNodesPerDir_
constLOTupleView lFineNodesPerDir_
KOKKOS_INLINE_FUNCTION void operator()(const LO nodeIdx) const
const int numGhostedNodes_
constIntTupleView endRate_
non_const_row_map_type rowPtr_
KOKKOS_INLINE_FUNCTION void operator()(const LO rowIdx, GO &update, const bool final) const
constIntTupleView coarseRate_
const int numInterpolationPoints_
constLOTupleView lFineNodesPerDir_
IndexManager_kokkos geoData_
Kokkos::View< unsigned *, device_type > aggStat_
KOKKOS_INLINE_FUNCTION void operator()(const LO nodeIdx, LO &lNumAggregatedNodes) const
IndexManager_kokkos geoData_
LOVectorView vertex2AggID_