|
|
| 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.
|
| 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.
|
| 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.
|
| 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.
|
| 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.
|
| 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 |
|
bool | is_none () const |
| | Returns true if the instance is None, meaning no time dependence.
|
template<size_t MeshDim>
class domain::creators::time_dependence::ScalingAndZRotation< MeshDim >
Cubic scaling, followed by uniform rotation about the \(z\) axis:
\begin{eqnarray*}x &\to& x \cos \alpha(t) - y \sin \alpha(t)\text{,} \\
y &\to& x \sin \alpha(t) + y \cos \alpha(t)\text{,}
\end{eqnarray*}
where \(\alpha(t)\) is a domain::FunctionsOfTime::FunctionOfTime. For 3 spatial dimensions, \(z \to z\), and the rotation is implemented as a product of the 2D rotation and an identity map. The rotation is undefined (and therefore unimplemented here) for 1 spatial dimension.
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.