46 #ifndef MUELU_LWGRAPH_KOKKOS_DECL_HPP 
   47 #define MUELU_LWGRAPH_KOKKOS_DECL_HPP 
   50 #ifdef HAVE_MUELU_KOKKOS_REFACTOR 
   52 #include <Kokkos_StaticCrsGraph.hpp> 
   53 #include <KokkosCompat_ClassicNodeAPI_Wrapper.hpp> 
   56 #include <Xpetra_Map.hpp> 
   71   template<
class LocalOrdinal, 
class GlobalOrdinal, 
class Node>
 
   75   template<
class LocalOrdinal, 
class GlobalOrdinal, 
class DeviceType>
 
   80     using execution_space     = 
typename DeviceType::execution_space;
 
   81     using memory_space        = 
typename DeviceType::memory_space;
 
   83     using node_type           = Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType>;
 
   84     using size_type           = size_t;
 
   95     typedef node_type                                           
Node;
 
   96 #undef MUELU_LWGRAPH_KOKKOS_SHORT 
  110     LWGraph_kokkos(
const local_graph_type&    graph,
 
  111                    const RCP<const map_type>& domainMap,
 
  112                    const RCP<const map_type>& importMap,
 
  113                    const std::string&         objectLabel = 
"");
 
  115     ~LWGraph_kokkos() { }
 
  118     const RCP<const Teuchos::Comm<int> > GetComm()
 const {
 
  119       return domainMap_->getComm();
 
  121     const RCP<const Map> GetDomainMap()
 const {
 
  125     const RCP<const Map> GetImportMap()
 const {
 
  130     KOKKOS_INLINE_FUNCTION size_type GetNodeNumVertices()
 const {
 
  131       return graph_.numRows();
 
  134     KOKKOS_INLINE_FUNCTION size_type GetNodeNumEdges()
 const {
 
  135       return graph_.row_map(GetNodeNumVertices());
 
  139     KOKKOS_INLINE_FUNCTION size_type getNodeMaxNumRowEntries ()
 const {
 
  140       return maxNumRowEntries_;
 
  144     KOKKOS_INLINE_FUNCTION 
typename local_graph_type::row_map_type getRowPtrs()
 const {
 
  145       return graph_.row_map;
 
  149     KOKKOS_INLINE_FUNCTION 
typename local_graph_type::entries_type getEntries()
 const {
 
  150       return graph_.entries;
 
  157     KOKKOS_INLINE_FUNCTION
 
  159       auto rowView = graph_.rowConst(i);
 
  165     KOKKOS_INLINE_FUNCTION 
bool isLocalNeighborVertex(
LO i)
 const {
 
  166       return i >= minLocalIndex_ && i <= maxLocalIndex_;
 
  170     KOKKOS_INLINE_FUNCTION 
void SetBoundaryNodeMap(
const boundary_nodes_type bndry) {
 
  171       dirichletBoundaries_ = bndry;
 
  175     KOKKOS_INLINE_FUNCTION 
const boundary_nodes_type GetBoundaryNodeMap()
 const {
 
  176       return dirichletBoundaries_;
 
  180     std::string description()
 const {
 
  181       return "LWGraph (" + objectLabel_ + 
")";
 
  190     const local_graph_type      graph_;
 
  193     const RCP<const map_type>   domainMap_;
 
  194     const RCP<const map_type>   importMap_;
 
  197     boundary_nodes_type         dirichletBoundaries_;
 
  200     LO        minLocalIndex_, maxLocalIndex_;
 
  201     size_type maxNumRowEntries_;
 
  204     const std::string& objectLabel_;
 
  209 #define MUELU_LWGRAPH_KOKKOS_SHORT 
  210 #endif // HAVE_MUELU_KOKKOS_REFACTOR 
  211 #endif // MUELU_LWGRAPH_KOKKOS_DECL_HPP 
MueLu::DefaultLocalOrdinal LocalOrdinal
 
MueLu::DefaultGlobalOrdinal GlobalOrdinal