Line data Source code
1 0 : // Distributed under the MIT License.Add commentMore actions
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <memory>
7 : #include <string>
8 : #include <unordered_map>
9 :
10 : #include "DataStructures/Tensor/TypeAliases.hpp"
11 :
12 : /// \cond
13 : template <size_t Dim>
14 : class Domain;
15 : namespace domain::FunctionsOfTime {
16 : class FunctionOfTime;
17 : } // namespace domain::FunctionsOfTime
18 : namespace gsl {
19 : template <typename T>
20 : class not_null;
21 : } // namespace gsl
22 : /// \endcond
23 :
24 : /*!
25 : * Transforms cartesian coordinates from one frame to another, by calling
26 : * block_logical_coordinates and calling the correct map functions. Current
27 : * supported frame changes Grid->Inertial, Grid-Distorted, Inertial->Distorted,
28 : * and Inertial->Grid
29 : */
30 : template <typename SrcFrame, typename DestFrame>
31 1 : void coords_to_different_frame(
32 : gsl::not_null<tnsr::I<DataVector, 3, DestFrame>*> dest_cartesian_coords,
33 : const tnsr::I<DataVector, 3, SrcFrame>& src_cartesian_coords,
34 : const Domain<3>& domain,
35 : const std::unordered_map<
36 : std::string, std::unique_ptr<domain::FunctionsOfTime::FunctionOfTime>>&
37 : functions_of_time,
38 : double time);
|