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);