NeoN
A framework for CFD software
Loading...
Searching...
No Matches
label.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2023 - 2026 NeoN authors
2//
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7#include <cstdint>
8
10
30namespace NeoN
31{
32#ifdef NeoN_DP_LABEL
33using label = int64_t;
34
35#ifdef NeoN_US_IDX
36using localIdx = uint32_t;
37using globalIdx = uint64_t;
38#else
39using localIdx = int64_t;
40using globalIdx = int64_t;
41#endif
42
43#else
44using label = int32_t;
45
46#ifdef NeoN_US_IDX
47using localIdx = uint32_t;
48using globalIdx = uint64_t;
49#else
50using localIdx = int32_t;
51using globalIdx = int64_t;
52#endif
53
54#endif
55
56using size_t = std::size_t;
57using mpi_label_t = int;
58
59// traits for label
60template<>
61KOKKOS_INLINE_FUNCTION localIdx one<localIdx>()
62{
63 return 1;
64};
65
66template<>
67KOKKOS_INLINE_FUNCTION localIdx zero<localIdx>()
68{
69 return 0;
70};
71
72}
Integer types used throughout NeoN.
Definition array.hpp:18
int64_t globalIdx
Definition label.hpp:51
int32_t localIdx
Definition label.hpp:50
std::size_t size_t
Definition label.hpp:56
KOKKOS_INLINE_FUNCTION localIdx one< localIdx >()
Definition label.hpp:61
KOKKOS_INLINE_FUNCTION localIdx zero< localIdx >()
Definition label.hpp:67
int mpi_label_t
Definition label.hpp:57
int32_t label
Definition label.hpp:44