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