NeoN
WIP Prototype of a modern OpenFOAM core
Loading...
Searching...
No Matches
label.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2// SPDX-FileCopyrightText: 2023 NeoN authors
3#pragma once
4
5#include <cstdint>
6
8
9
10namespace NeoN
11{
12#ifdef NeoN_DP_LABEL
13using label = int64_t;
14
15#ifdef NeoN_US_IDX
16using localIdx = uint32_t;
17using globalIdx = uint64_t;
18#else
19using localIdx = int64_t;
20using globalIdx = int64_t;
21#endif
22
23#else
24using label = int32_t;
25
26#ifdef NeoN_US_IDX
27using localIdx = uint32_t;
28using globalIdx = uint64_t;
29#else
30using localIdx = int32_t;
31using globalIdx = int64_t;
32#endif
33
34#endif
35
36using size_t = std::size_t;
37using mpi_label_t = int;
38
39// traits for label
40template<>
41KOKKOS_INLINE_FUNCTION localIdx one<localIdx>()
42{
43 return 1;
44};
45
46template<>
47KOKKOS_INLINE_FUNCTION localIdx zero<localIdx>()
48{
49 return 0;
50};
51
52}
int64_t globalIdx
Definition label.hpp:31
int32_t localIdx
Definition label.hpp:30
std::size_t size_t
Definition label.hpp:36
KOKKOS_INLINE_FUNCTION localIdx one< localIdx >()
Definition label.hpp:41
KOKKOS_INLINE_FUNCTION localIdx zero< localIdx >()
Definition label.hpp:47
int mpi_label_t
Definition label.hpp:37
int32_t label
Definition label.hpp:24