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