Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <cstddef>
7 :
8 : #include "DataStructures/DataBox/Tag.hpp"
9 : #include "DataStructures/DataVector.hpp"
10 : #include "DataStructures/Tensor/TypeAliases.hpp"
11 : #include "Utilities/TMPL.hpp"
12 :
13 1 : namespace intrp::Tags {
14 : /*!
15 : * \brief PointInfo holds the points to be interpolated onto,
16 : * in whatever frame those points are to be held constant.
17 : *
18 : * \details PointInfo is used only for interpolation points that are
19 : * time-independent in some frame, so that there is no `Interpolator`
20 : * ParallelComponent. `VolumeDim` is a typename rather than a `size_t` to better
21 : * facilitate this tag being used in metafunctions. `VolumeDim` must be a
22 : * `tmpl::size_t`.
23 : */
24 : template <typename InterpolationTargetTag, typename VolumeDim>
25 1 : struct PointInfo : db::SimpleTag {
26 0 : using type =
27 : tnsr::I<DataVector, VolumeDim::value,
28 : typename InterpolationTargetTag::compute_target_points::frame>;
29 : };
30 : } // namespace intrp::Tags
|