IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ViewTypes.h
Go to the documentation of this file.
1
//
2
// Struct ViewType
3
// Kokkos::Views of different dimensions.
4
//
5
#ifndef IPPL_VIEW_TYPES_H
6
#define IPPL_VIEW_TYPES_H
7
8
#include <Kokkos_Core.hpp>
9
10
namespace
ippl
{
17
namespace
detail
{
24
template
<
typename
T,
int
N>
25
struct
NPtr
{
26
typedef
typename
NPtr
<
T
, N - 1>
::type
*
type
;
27
};
28
32
template
<
typename
T>
33
struct
NPtr
<
T
, 1> {
34
typedef
T
*
type
;
35
};
36
43
template
<
typename
T
,
unsigned
Dim
,
class
... Properties>
44
struct
ViewType
{
45
typedef
Kokkos::View<typename NPtr<T, Dim>::type, Properties...>
view_type
;
46
};
47
48
template
<
typename
MemorySpace>
49
using
hash_type
=
typename
detail::ViewType<int, 1, MemorySpace>::view_type
;
50
}
// namespace detail
51
}
// namespace ippl
52
53
#endif
T
double T
Definition
BumponTailInstability.cpp:23
Dim
constexpr unsigned Dim
Definition
BumponTailInstability.cpp:22
ippl
Definition
Archive.h:20
ippl::detail
Definition
Archive.h:21
ippl::detail::hash_type
typename detail::ViewType< int, 1, MemorySpace >::view_type hash_type
Definition
ViewTypes.h:49
ippl::detail::NPtr
Definition
ViewTypes.h:25
ippl::detail::NPtr::type
NPtr< T, N-1 >::type * type
Definition
ViewTypes.h:26
ippl::detail::NPtr< T, 1 >::type
T * type
Definition
ViewTypes.h:34
ippl::detail::ViewType
Definition
ViewTypes.h:44
ippl::detail::view_type::view_type
Kokkos::View< typename NPtr< T, Dim >::type, Properties... > view_type
Definition
ViewTypes.h:45