MueLu
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
MueLu_LWGraph_kokkos_def.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// MueLu: A package for multigrid based preconditioning
4
//
5
// Copyright 2012 NTESS and the MueLu contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef MUELU_LWGRAPH_KOKKOS_DEF_HPP
11
#define MUELU_LWGRAPH_KOKKOS_DEF_HPP
12
13
#include "MueLu_LWGraph.hpp"
14
#include "
MueLu_LWGraph_kokkos_decl.hpp
"
15
16
namespace
MueLu
{
17
18
template
<
class
LocalOrdinal,
class
GlobalOrdinal,
class
Node>
19
RCP<MueLu::LWGraph<LocalOrdinal, GlobalOrdinal, Node> >
MueLu::LWGraph_kokkos<LocalOrdinal, GlobalOrdinal, Node>::copyToHost
() {
20
// This could be improved to skip copies for UVM.
21
22
auto
graph = this->
getGraph
();
23
24
auto
row_map_h = Kokkos::create_mirror_view(graph.row_map);
25
auto
entries_h = Kokkos::create_mirror_view(graph.entries);
26
Kokkos::deep_copy(row_map_h, graph.row_map);
27
Kokkos::deep_copy(entries_h, graph.entries);
28
29
using
local_graph_type_host =
typename
MueLu::LWGraphBase<LocalOrdinal, GlobalOrdinal, Node, true>::local_graph_type
;
30
auto
graph_h = local_graph_type_host(entries_h, row_map_h);
31
32
auto
lw_h = rcp(
new
MueLu::LWGraph<LocalOrdinal, GlobalOrdinal, Node>
(graph_h, this->
GetDomainMap
(), this->
GetImportMap
(), this->
getObjectLabel
()));
33
34
using
bndry_nodes_type =
typename
MueLu::LWGraphBase<LocalOrdinal, GlobalOrdinal, Node, true>::boundary_nodes_type
;
35
36
auto
bndry = this->
GetBoundaryNodeMap
();
37
auto
bndry_h = bndry_nodes_type(
"boundary_nodes"
, bndry.extent(0));
38
Kokkos::deep_copy(bndry_h, bndry);
39
lw_h->SetBoundaryNodeMap(bndry_h);
40
41
return
lw_h;
42
}
43
44
}
// namespace MueLu
45
46
#endif
// MUELU_LWGRAPH_KOKKOS_DEF_HPP
MueLu_LWGraph_kokkos_decl.hpp
MueLu::LWGraph_kokkos::copyToHost
RCP< MueLu::LWGraph< LocalOrdinal, GlobalOrdinal, Node > > copyToHost()
Definition
MueLu_LWGraph_kokkos_def.hpp:19
MueLu::LWGraphBase::local_graph_type
typename std::conditional< OnHost, typename local_graph_device_type::HostMirror, local_graph_device_type >::type local_graph_type
Definition
MueLu_LWGraphBase.hpp:93
MueLu::LWGraphBase< LocalOrdinal, GlobalOrdinal, Node, false >::getGraph
local_graph_type & getGraph() const
Definition
MueLu_LWGraphBase.hpp:285
MueLu::LWGraphBase::boundary_nodes_type
Kokkos::View< bool *, memory_space > boundary_nodes_type
Definition
MueLu_LWGraphBase.hpp:95
MueLu::LWGraphBase< LocalOrdinal, GlobalOrdinal, Node, false >::GetBoundaryNodeMap
KOKKOS_INLINE_FUNCTION const boundary_nodes_type GetBoundaryNodeMap() const
Definition
MueLu_LWGraphBase.hpp:243
MueLu::LWGraphBase< LocalOrdinal, GlobalOrdinal, Node, false >::GetDomainMap
const RCP< const Map > GetDomainMap() const
Definition
MueLu_LWGraphBase.hpp:179
MueLu::LWGraphBase< LocalOrdinal, GlobalOrdinal, Node, false >::getObjectLabel
const std::string & getObjectLabel() const
Definition
MueLu_LWGraphBase.hpp:305
MueLu::LWGraphBase< LocalOrdinal, GlobalOrdinal, Node, false >::GetImportMap
const RCP< const Map > GetImportMap() const
Definition
MueLu_LWGraphBase.hpp:183
MueLu::LWGraph
Lightweight MueLu representation of a compressed row storage graph.
Definition
MueLu_LWGraph_decl.hpp:33
MueLu
Namespace for MueLu classes and methods.
Definition
MueLu_BrickAggregationFactory_decl.hpp:42
src
Graph
Containers
MueLu_LWGraph_kokkos_def.hpp
Generated by
1.17.0