Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <array>
7 : #include <cstddef>
8 :
9 : #include "Domain/Structure/SegmentId.hpp"
10 : #include "NumericalAlgorithms/Spectral/SegmentSize.hpp"
11 :
12 : namespace domain {
13 : /// @{
14 : /*!
15 : * \brief Size of a child segment relative to its parent
16 : *
17 : * Determines which part of the `parent_segment_id` is covered by the
18 : * `child_segment_id`: The full segment, its lower half or its upper half.
19 : */
20 1 : Spectral::SegmentSize child_size(const SegmentId& child_segment_id,
21 : const SegmentId& parent_segment_id);
22 :
23 : template <size_t Dim>
24 1 : std::array<Spectral::SegmentSize, Dim> child_size(
25 : const std::array<SegmentId, Dim>& child_segment_ids,
26 : const std::array<SegmentId, Dim>& parent_segment_ids);
27 : /// @}
28 : } // namespace domain
|