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 : #include <unordered_map>
8 :
9 : #include "DataStructures/LinkedMessageId.hpp"
10 : #include "Domain/FunctionsOfTime/FunctionOfTime.hpp"
11 : #include "ParallelAlgorithms/ApparentHorizonFinder/Storage.hpp"
12 :
13 : /// \cond
14 : template <size_t VolumeDim>
15 : class Domain;
16 : template <size_t VolumeDim>
17 : class ElementId;
18 : namespace gsl {
19 : template <class T>
20 : class not_null;
21 : } // namespace gsl
22 : /// \endcond
23 :
24 : namespace ah {
25 : /*!
26 : * \brief Interpolate volume data from any new elements received by the horizon
27 : * finder to the target points.
28 : *
29 : * \details For each new element, the `vars_to_interpolate_to_target` in
30 : * \p all_volume_variables are interpolated to the target points and stored
31 : * in \p current_iteration_storage.
32 : */
33 : template <typename Fr>
34 1 : bool interpolate_volume_data(
35 : gsl::not_null<ah::Storage::Iteration<Fr>*> current_iteration_storage,
36 : const ah::Storage::VolumeVariables<Fr>& volume_vars_storage,
37 : const ElementId<3>& element_id);
38 : } // namespace ah
|