Public Types | Public Member Functions | Static Public Attributes | Friends | List of all members
domain::CoordinateMapBase< SourceFrame, TargetFrame, Dim > Class Template Referenceabstract

Abstract base class for CoordinateMap. More...

#include <CoordinateMap.hpp>

Public Types

using source_frame = SourceFrame
 
using target_frame = TargetFrame
 

Public Member Functions

 WRAPPED_PUPable_abstract (CoordinateMapBase)
 
 CoordinateMapBase (const CoordinateMapBase &)=default
 
CoordinateMapBaseoperator= (const CoordinateMapBase &)=default
 
 CoordinateMapBase (CoordinateMapBase &&)=default
 
CoordinateMapBaseoperator= (CoordinateMapBase &&)=default
 
virtual std::unique_ptr< CoordinateMapBase< SourceFrame, TargetFrame, Dim > > get_clone () const =0
 
virtual std::unique_ptr< CoordinateMapBase< SourceFrame, Frame::Grid, Dim > > get_to_grid_frame () const =0
 Retrieve the same map but going from SourceFrame to Frame::Grid. More...
 
virtual bool is_identity () const noexcept=0
 Returns true if the map is the identity.
 
virtual bool inv_jacobian_is_time_dependent () const noexcept=0
 Returns true if the inverse Jacobian depends on time.
 
virtual bool jacobian_is_time_dependent () const noexcept=0
 Returns true if the Jacobian depends on time.
 
virtual tnsr::I< double, Dim, TargetFrame > operator() (tnsr::I< double, Dim, SourceFrame > source_point, double time=std::numeric_limits< double >::signaling_NaN(), const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time=std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>{}) const noexcept=0
 Apply the Maps to the point(s) source_point
 
virtual tnsr::I< DataVector, Dim, TargetFrame > operator() (tnsr::I< DataVector, Dim, SourceFrame > source_point, double time=std::numeric_limits< double >::signaling_NaN(), const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time=std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>{}) const noexcept=0
 
virtual boost::optional< tnsr::I< double, Dim, SourceFrame > > inverse (tnsr::I< double, Dim, TargetFrame > target_point, double time=std::numeric_limits< double >::signaling_NaN(), const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time=std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>{}) const noexcept=0
 Apply the inverse Maps to the point(s) target_point. The returned boost::optional is invalid if the map is not invertible at target_point, or if target_point can be easily determined to not make sense for the map. An example of the latter is passing a point with a negative value of z into a positive-z Wedge3D inverse map.
 
virtual InverseJacobian< double, Dim, SourceFrame, TargetFrame > inv_jacobian (tnsr::I< double, Dim, SourceFrame > source_point, double time=std::numeric_limits< double >::signaling_NaN(), const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time=std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>{}) const noexcept=0
 Compute the inverse Jacobian of the Maps at the point(s) source_point
 
virtual InverseJacobian< DataVector, Dim, SourceFrame, TargetFrame > inv_jacobian (tnsr::I< DataVector, Dim, SourceFrame > source_point, double time=std::numeric_limits< double >::signaling_NaN(), const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time=std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>{}) const noexcept=0
 
virtual Jacobian< double, Dim, SourceFrame, TargetFrame > jacobian (tnsr::I< double, Dim, SourceFrame > source_point, double time=std::numeric_limits< double >::signaling_NaN(), const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time=std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>{}) const noexcept=0
 Compute the Jacobian of the Maps at the point(s) source_point
 
virtual Jacobian< DataVector, Dim, SourceFrame, TargetFrame > jacobian (tnsr::I< DataVector, Dim, SourceFrame > source_point, double time=std::numeric_limits< double >::signaling_NaN(), const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time=std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>{}) const noexcept=0
 
virtual std::tuple< tnsr::I< double, Dim, TargetFrame >, InverseJacobian< double, Dim, SourceFrame, TargetFrame >, Jacobian< double, Dim, SourceFrame, TargetFrame >, tnsr::I< double, Dim, TargetFrame > > coords_frame_velocity_jacobians (tnsr::I< double, Dim, SourceFrame > source_point, double time=std::numeric_limits< double >::signaling_NaN(), const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time=std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>{}) const noexcept=0
 Compute the mapped coordinates, frame velocity, Jacobian, and inverse Jacobian.
 
virtual std::tuple< tnsr::I< DataVector, Dim, TargetFrame >, InverseJacobian< DataVector, Dim, SourceFrame, TargetFrame >, Jacobian< DataVector, Dim, SourceFrame, TargetFrame >, tnsr::I< DataVector, Dim, TargetFrame > > coords_frame_velocity_jacobians (tnsr::I< DataVector, Dim, SourceFrame > source_point, double time=std::numeric_limits< double >::signaling_NaN(), const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time=std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>{}) const noexcept=0
 

Static Public Attributes

static constexpr size_t dim = Dim
 

Friends

bool operator== (const CoordinateMapBase &lhs, const CoordinateMapBase &rhs) noexcept
 
bool operator!= (const CoordinateMapBase &lhs, const CoordinateMapBase &rhs) noexcept
 

Detailed Description

template<typename SourceFrame, typename TargetFrame, size_t Dim>
class domain::CoordinateMapBase< SourceFrame, TargetFrame, Dim >

Abstract base class for CoordinateMap.

Member Function Documentation

◆ get_to_grid_frame()

template<typename SourceFrame , typename TargetFrame , size_t Dim>
virtual std::unique_ptr<CoordinateMapBase<SourceFrame, Frame::Grid, Dim> > domain::CoordinateMapBase< SourceFrame, TargetFrame, Dim >::get_to_grid_frame ( ) const
pure virtual

Retrieve the same map but going from SourceFrame to Frame::Grid.

This functionality is needed when composing time-dependent maps with time-independent maps, where the target frame of the time-independent map is Frame::Grid.


The documentation for this class was generated from the following file: