SpECTRE  2021.08.02
domain::CoordinateMaps::TimeDependent::Translation Class Reference

Translation map defined by \(x = \xi+T(t)\). More...

#include <Translation.hpp>

Public Member Functions

 Translation (std::string function_of_time_name) noexcept
 
template<typename T >
std::array< tt::remove_cvref_wrap_t< T >, 1 > operator() (const std::array< T, 1 > &source_coords, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time) const noexcept
 
std::optional< std::array< double, 1 > > inverse (const std::array< double, 1 > &target_coords, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time) const noexcept
 The inverse function is only callable with doubles because the inverse might fail if called for a point out of range, and it is unclear what should happen if the inverse were to succeed for some points in a DataVector but fail for other points.
 
template<typename T >
std::array< tt::remove_cvref_wrap_t< T >, 1 > frame_velocity (const std::array< T, 1 > &source_coords, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time) const noexcept
 
template<typename T >
tnsr::Ij< tt::remove_cvref_wrap_t< T >, 1, Frame::NoFrameinv_jacobian (const std::array< T, 1 > &source_coords) const noexcept
 
template<typename T >
tnsr::Ij< tt::remove_cvref_wrap_t< T >, 1, Frame::NoFramejacobian (const std::array< T, 1 > &source_coords) const noexcept
 
void pup (PUP::er &p) noexcept
 

Static Public Member Functions

static bool is_identity () noexcept
 

Static Public Attributes

static constexpr size_t dim = 1
 

Friends

bool operator== (const Translation &lhs, const Translation &rhs) noexcept
 

Detailed Description

Translation map defined by \(x = \xi+T(t)\).

The map adds a translation, \(T(t)\), to the coordinates \(\xi\), where \(T(t)\) is a FunctionOfTime.