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> 55 #include <Xpetra_ConfigDefs.hpp> 56 #include <Xpetra_Map.hpp> 71 template<
class LocalOrdinal,
class GlobalOrdinal,
class Node>
75 template<
class LocalOrdinal,
class GlobalOrdinal,
class DeviceType>
76 class LWGraph_kokkos<LocalOrdinal, GlobalOrdinal,
Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType>> {
78 typedef LocalOrdinal local_ordinal_type;
79 typedef GlobalOrdinal global_ordinal_type;
80 typedef typename DeviceType::execution_space execution_space;
81 typedef Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType> node_type;
84 typedef Xpetra::Map<LocalOrdinal, GlobalOrdinal, node_type> map_type;
89 typedef node_type Node;
90 #undef MUELU_LWGRAPH_KOKKOS_SHORT 97 LWGraph_kokkos(
const local_graph_type& graph,
98 const RCP<const map_type>& domainMap,
99 const RCP<const map_type>& rangeMap,
100 const std::string& objectLabel =
"");
102 ~LWGraph_kokkos() { }
105 size_t GetNodeNumVertices()
const {
return graph_.row_map.dimension_0()-1; }
106 size_t GetNodeNumEdges()
const {
return graph_.row_map(GetNodeNumVertices()); }
108 const RCP<const Teuchos::Comm<int> > GetComm()
const {
return domainMap_->getComm(); }
109 const RCP<const Map> GetDomainMap()
const {
return domainMap_; }
111 const RCP<const Map> GetImportMap()
const {
return importMap_; }
114 ArrayView<const LO> getNeighborVertices(LO i)
const;
117 bool isLocalNeighborVertex(LO i)
const {
return i >= minLocalIndex_ && i <= maxLocalIndex_; }
120 void SetBoundaryNodeMap(
const ArrayRCP<const bool>& bndry) { dirichletBoundaries_ = bndry; }
123 size_t getNodeMaxNumRowEntries ()
const {
return maxNumRowEntries_; }
126 const ArrayRCP<const bool> GetBoundaryNodeMap()
const {
return dirichletBoundaries_; }
129 std::string description()
const {
return "MueLu.description()"; }
137 const local_graph_type graph_;
140 const RCP<const map_type> domainMap_;
141 const RCP<const map_type> importMap_;
144 ArrayRCP<const bool> dirichletBoundaries_;
147 LO minLocalIndex_, maxLocalIndex_;
148 size_t maxNumRowEntries_;
151 const std::string & objectLabel_;
156 #define MUELU_LWGRAPH_KOKKOS_SHORT 157 #endif // HAVE_MUELU_KOKKOS_REFACTOR 158 #endif // MUELU_LWGRAPH_KOKKOS_DECL_HPP
Namespace for MueLu classes and methods.