SpECTRE  v2024.03.19
domain::creators::time_dependence::CubicScale< MeshDim > Class Template Referencefinal

A linear or cubic radial scaling time dependence. More...

#include <CubicScale.hpp>

Classes

struct  Acceleration
 The acceleration of the expansion factors. More...
 
struct  InitialExpansion
 The initial values of the expansion factors. More...
 
struct  InitialTime
 The initial time of the functions of time. More...
 
struct  OuterBoundary
 The outer boundary or pivot point of the domain::CoordinateMaps::TimeDependent::CubicScale map. More...
 
struct  UseLinearScaling
 Whether to use linear scaling or cubic scaling. More...
 
struct  Velocity
 The velocity of the expansion factors. More...
 

Public Types

using maps_list = tmpl::list< CoordinateMap< Frame::Grid, Frame::Inertial, CubicScaleMap > >
 
using options = tmpl::list< InitialTime, OuterBoundary, UseLinearScaling, InitialExpansion, Velocity, Acceleration >
 
using GridToInertialMap = domain::CoordinateMap< Frame::Grid, Frame::Inertial, CubicScaleMap >
 
- Public Types inherited from domain::creators::time_dependence::TimeDependence< MeshDim >
using creatable_classes = tmpl::append< creatable_classes_any_dim, tmpl::conditional_t< MeshDim==1, creatable_classes_1d, tmpl::conditional_t< MeshDim==2, creatable_classes_2d, creatable_classes_3d > > >
 

Public Member Functions

 CubicScale (const CubicScale &)=delete
 
 CubicScale (CubicScale &&)=default
 
CubicScaleoperator= (const CubicScale &)=delete
 
CubicScaleoperator= (CubicScale &&)=default
 
 CubicScale (double initial_time, double outer_boundary, bool use_linear_scaling, const std::array< double, 2 > &initial_expansion, const std::array< double, 2 > &velocity, const std::array< double, 2 > &acceleration)
 
auto get_clone () const -> std::unique_ptr< TimeDependence< MeshDim > > override
 Returns a std::unique_ptr pointing to a copy of the TimeDependence. More...
 
auto block_maps_grid_to_inertial (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Inertial, MeshDim > > > override
 Returns the coordinate maps from the Frame::Grid to the Frame::Inertial frame for each block. More...
 
auto block_maps_grid_to_distorted (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Distorted, MeshDim > > > override
 Returns the coordinate maps from the Frame::Grid to the Frame::Distorted frame for each block. Returns vector of nullptr if there is no distorted frame. More...
 
auto block_maps_distorted_to_inertial (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Distorted, Frame::Inertial, MeshDim > > > override
 Returns the coordinate maps from the Frame::Distorted to the Frame::Inertial frame for each block. Returns vector of nullptr if is no distorted frame. More...
 
auto functions_of_time (const std::unordered_map< std::string, double > &initial_expiration_times={}) const -> std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > override
 Returns the functions of time for the domain. More...
 
- Public Member Functions inherited from domain::creators::time_dependence::TimeDependence< MeshDim >
 TimeDependence (const TimeDependence &)=default
 
TimeDependenceoperator= (const TimeDependence &)=default
 
 TimeDependence (TimeDependence &&)=default
 
TimeDependenceoperator= (TimeDependence &&)=default
 
virtual auto get_clone () const -> std::unique_ptr< TimeDependence >=0
 Returns a std::unique_ptr pointing to a copy of the TimeDependence. More...
 
virtual auto block_maps_grid_to_inertial (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Inertial, MeshDim > > >=0
 Returns the coordinate maps from the Frame::Grid to the Frame::Inertial frame for each block. More...
 
virtual auto block_maps_grid_to_distorted (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Distorted, MeshDim > > >=0
 Returns the coordinate maps from the Frame::Grid to the Frame::Distorted frame for each block. Returns vector of nullptr if there is no distorted frame. More...
 
virtual auto block_maps_distorted_to_inertial (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Distorted, Frame::Inertial, MeshDim > > >=0
 Returns the coordinate maps from the Frame::Distorted to the Frame::Inertial frame for each block. Returns vector of nullptr if is no distorted frame. More...
 
virtual auto functions_of_time (const std::unordered_map< std::string, double > &initial_expiration_times={}) const -> std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > >=0
 Returns the functions of time for the domain. More...
 
bool is_none () const
 Returns true if the instance is None, meaning no time dependence.
 

Static Public Attributes

static constexpr size_t mesh_dim = MeshDim
 
static constexpr Options::String help
 

Friends

template<size_t LocalDim>
bool operator== (const CubicScale< LocalDim > &lhs, const CubicScale< LocalDim > &rhs)
 

Detailed Description

template<size_t MeshDim>
class domain::creators::time_dependence::CubicScale< MeshDim >

A linear or cubic radial scaling time dependence.

Adds the domain::CoordinateMaps::TimeDependent::CubicScale map. A linear radial scaling can be used by specifying the UseLinearScaling bool.

Member Function Documentation

◆ block_maps_distorted_to_inertial()

template<size_t MeshDim>
auto domain::creators::time_dependence::CubicScale< MeshDim >::block_maps_distorted_to_inertial ( size_t  number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Distorted, Frame::Inertial, MeshDim > > >
inlineoverridevirtual

Returns the coordinate maps from the Frame::Distorted to the Frame::Inertial frame for each block. Returns vector of nullptr if is no distorted frame.

Implements domain::creators::time_dependence::TimeDependence< MeshDim >.

◆ block_maps_grid_to_distorted()

template<size_t MeshDim>
auto domain::creators::time_dependence::CubicScale< MeshDim >::block_maps_grid_to_distorted ( size_t  number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Distorted, MeshDim > > >
inlineoverridevirtual

Returns the coordinate maps from the Frame::Grid to the Frame::Distorted frame for each block. Returns vector of nullptr if there is no distorted frame.

Implements domain::creators::time_dependence::TimeDependence< MeshDim >.

◆ block_maps_grid_to_inertial()

template<size_t MeshDim>
auto domain::creators::time_dependence::CubicScale< MeshDim >::block_maps_grid_to_inertial ( size_t  number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Inertial, MeshDim > > >
overridevirtual

Returns the coordinate maps from the Frame::Grid to the Frame::Inertial frame for each block.

Implements domain::creators::time_dependence::TimeDependence< MeshDim >.

◆ functions_of_time()

template<size_t MeshDim>
auto domain::creators::time_dependence::CubicScale< MeshDim >::functions_of_time ( const std::unordered_map< std::string, double > &  initial_expiration_times = {}) const -> std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > >
overridevirtual

Returns the functions of time for the domain.

Implements domain::creators::time_dependence::TimeDependence< MeshDim >.

◆ get_clone()

template<size_t MeshDim>
auto domain::creators::time_dependence::CubicScale< MeshDim >::get_clone ( ) const -> std::unique_ptr< TimeDependence< MeshDim > >
overridevirtual

Member Data Documentation

◆ help

template<size_t MeshDim>
constexpr Options::String domain::creators::time_dependence::CubicScale< MeshDim >::help
staticconstexpr
Initial value:
= {
"A spatial radial scaling either based on a cubic scaling or a simple\n"
"linear scaling.\n"
"\n"
"If the two functions of time have the same name then the scaling is a\n"
"linear radial scaling."}

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