DDC 0.5.2
Loading...
Searching...
No Matches
ddc.hpp
1// Copyright (C) The DDC development team, see COPYRIGHT.md file
2//
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7#include <Kokkos_Core.hpp>
8
9#if defined(KOKKOS_ENABLE_CUDA)
10# if !defined(KOKKOS_ENABLE_CUDA_CONSTEXPR)
11static_assert(false, "DDC requires option -DKokkos_ENABLE_CUDA_CONSTEXPR=ON");
12# endif
13
14# if !defined(KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE)
15static_assert(false, "DDC requires option -DKokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE=ON");
16# endif
17#endif
18
19#if defined(KOKKOS_ENABLE_HIP)
20# if !defined(KOKKOS_ENABLE_HIP_RELOCATABLE_DEVICE_CODE)
21static_assert(false, "DDC requires option -DKokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE=ON");
22# endif
23#endif
24
25#if defined(KOKKOS_ENABLE_SYCL)
26# if !defined(KOKKOS_ENABLE_SYCL_RELOCATABLE_DEVICE_CODE)
27static_assert(false, "DDC requires option -DKokkos_ENABLE_SYCL_RELOCATABLE_DEVICE_CODE=ON");
28# endif
29#endif
30
31//! @brief The top-level namespace of DDC.
32//! All DDC symbols are defined either in this namespace or in a nested namespace.
33namespace ddc {
34}
35
36// Misc
37#include "ddc/config.hpp"
38#include "ddc/detail/macros.hpp"
39#include "ddc/detail/tagged_vector.hpp"
40#include "ddc/detail/type_seq.hpp"
41#include "ddc/real_type.hpp"
42#include "ddc/scope_guard.hpp"
43
44// Containers
45#include "ddc/aligned_allocator.hpp"
46#include "ddc/chunk.hpp"
47#include "ddc/chunk_span.hpp"
48#include "ddc/chunk_traits.hpp"
49#include "ddc/kokkos_allocator.hpp"
50
51// Discretizations
52#include "ddc/discrete_domain.hpp"
53#include "ddc/discrete_element.hpp"
54#include "ddc/discrete_space.hpp"
55#include "ddc/discrete_vector.hpp"
56#include "ddc/non_uniform_point_sampling.hpp"
57#include "ddc/periodic_sampling.hpp"
58#include "ddc/storage_discrete_domain.hpp"
59#include "ddc/strided_discrete_domain.hpp"
60#include "ddc/trivial_space.hpp"
61#include "ddc/uniform_point_sampling.hpp"
62
63// Algorithms
64#include "ddc/create_mirror.hpp"
65#include "ddc/for_each.hpp"
66#include "ddc/parallel_deepcopy.hpp"
67#include "ddc/parallel_fill.hpp"
68#include "ddc/parallel_for_each.hpp"
69#include "ddc/parallel_transform_reduce.hpp"
70#include "ddc/reducer.hpp"
71#include "ddc/transform_reduce.hpp"
The top-level namespace of DDC.