DDC 0.7.0
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
39#include "detail/macros.hpp"
40#include "detail/tagged_vector.hpp"
41#include "detail/type_seq.hpp"
42
43#include "real_type.hpp"
44#include "scope_guard.hpp"
45
46// Containers
47#include "aligned_allocator.hpp"
48#include "chunk.hpp"
49#include "chunk_span.hpp"
50#include "chunk_traits.hpp"
51#include "kokkos_allocator.hpp"
52
53// Discretizations
54#include "discrete_domain.hpp"
55#include "discrete_element.hpp"
56#include "discrete_space.hpp"
57#include "discrete_vector.hpp"
58#include "non_uniform_point_sampling.hpp"
59#include "periodic_sampling.hpp"
60#include "sparse_discrete_domain.hpp"
61#include "strided_discrete_domain.hpp"
62#include "trivial_space.hpp"
63#include "uniform_point_sampling.hpp"
64
65// Algorithms
66#include "create_mirror.hpp"
67#include "for_each.hpp"
68#include "parallel_deepcopy.hpp"
69#include "parallel_fill.hpp"
70#include "parallel_for_each.hpp"
71#include "parallel_transform_reduce.hpp"
72#include "reducer.hpp"
73#include "transform_reduce.hpp"
74
75// Output
76#include "print.hpp"
The top-level namespace of DDC.