SpECTRE
v2024.12.16
|
Cubic scaling, followed by uniform rotation about the
#include <ScalingAndZRotation.hpp>
Classes | |
struct | Acceleration |
The acceleration of the expansion factors. More... | |
struct | AngularVelocity |
The | |
struct | InitialExpansion |
The initial values of the expansion factors. More... | |
struct | InitialTime |
The initial time of the function 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 = implementation defined |
using | GridToInertialMap = implementation defined |
using | GridToDistortedMap = domain::CoordinateMap< Frame::Grid, Frame::Distorted, CubicScaleMap > |
using | DistortedToInertialMap = implementation defined |
using | options = implementation defined |
Public Types inherited from domain::creators::time_dependence::TimeDependence< MeshDim > | |
using | creatable_classes = implementation defined |
Public Member Functions | |
ScalingAndZRotation (const ScalingAndZRotation &)=delete | |
ScalingAndZRotation (ScalingAndZRotation &&)=default | |
ScalingAndZRotation & | operator= (const ScalingAndZRotation &)=delete |
ScalingAndZRotation & | operator= (ScalingAndZRotation &&)=default |
ScalingAndZRotation (double initial_time, double angular_velocity, 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 | |
TimeDependence & | operator= (const TimeDependence &)=default |
TimeDependence (TimeDependence &&)=default | |
TimeDependence & | operator= (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 ScalingAndZRotation< LocalDim > &lhs, const ScalingAndZRotation< LocalDim > &rhs) |
Cubic scaling, followed by uniform rotation about the
where domain::FunctionsOfTime::FunctionOfTime
. For 3 spatial dimensions,
The expansion is done by the domain::CoordinateMaps::TimeDependent::CubicScale
map. A linear radial scaling can be used by specifying the UseLinearScaling
bool.
For this map, the cubic scaling goes from the grid frame to the distorted frame, and the rotation goes from the distorted frame to the inertial frame. This was chosen as a way of testing composed maps in the distorted frame.
|
overridevirtual |
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 >.
|
overridevirtual |
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 >.
|
overridevirtual |
Returns the coordinate maps from the Frame::Grid
to the Frame::Inertial
frame for each block.
Implements domain::creators::time_dependence::TimeDependence< MeshDim >.
|
overridevirtual |
Returns the functions of time for the domain.
Implements domain::creators::time_dependence::TimeDependence< MeshDim >.
|
overridevirtual |
Returns a std::unique_ptr
pointing to a copy of the TimeDependence
.
Implements domain::creators::time_dependence::TimeDependence< MeshDim >.
|
staticconstexpr |