SpECTRE
v2024.12.16
|
A Shape whose inner surface conforms to a surface of constant Boyer-Lindquist radius, in Kerr-Schild coordinates as given by domain::CoordinateMaps::TimeDependent::Shape. More...
#include <Shape.hpp>
Classes | |
struct | Center |
Center for the Shape map. More... | |
struct | InitialTime |
The initial time of the function of time. More... | |
struct | InnerRadius |
The inner radius of the Shape map, the radius at which to begin applying the map. More... | |
struct | LMax |
The max angular resolution l of the Shape. More... | |
struct | Mass |
The mass of the Kerr black hole. More... | |
struct | OuterRadius |
The outer radius of the Shape map, beyond which it is no longer applied. More... | |
struct | Spin |
The dimensionless spin of the Kerr black hole. More... | |
Public Types | |
using | maps_list = implementation defined |
using | options = implementation defined |
Public Types inherited from domain::creators::time_dependence::TimeDependence< 3 > | |
using | creatable_classes = implementation defined |
Public Member Functions | |
Shape (const Shape &)=delete | |
Shape (Shape &&)=default | |
Shape & | operator= (const Shape &)=delete |
Shape & | operator= (Shape &&)=default |
Shape (double initial_time, size_t l_max, double mass, std::array< double, 3 > spin, std::array< double, 3 > center, double inner_radius, double outer_radius, const Options::Context &context={}) | |
auto | get_clone () const -> std::unique_ptr< TimeDependence< mesh_dim > > 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, mesh_dim > > > 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, mesh_dim > > > 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, mesh_dim > > > 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< 3 > | |
TimeDependence (const TimeDependence &)=default | |
TimeDependence (TimeDependence &&)=default | |
TimeDependence & | operator= (const 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 Member Functions | |
static std::string | name () |
Static Public Attributes | |
static constexpr size_t | mesh_dim = 3 |
static constexpr Options::String | help |
Friends | |
template<domain::ObjectLabel OtherLabel> | |
bool | operator== (const Shape< OtherLabel > &lhs, const Shape< OtherLabel > &rhs) |
A Shape whose inner surface conforms to a surface of constant Boyer-Lindquist radius, in Kerr-Schild coordinates as given by domain::CoordinateMaps::TimeDependent::Shape.
This TimeDependence is suitable for use on a spherical shell, where LMax is the number of l and m spherical harmonics to use in approximating the Kerr horizon, of mass Mass
and spin Spin
. The value of the Boyer-Lindquist radius to which the inner surface conforms is given by the value of inner_radius
. If the user wants the inner surface of the Shape to conform to a Kerr horizon for a given mass and spin, inner_radius
should be the Boyer-Lindquist radius of the outer horizon.
The actual shape map that is applied will go from the Grid to the Distorted frame, and then an identity map will go from the Distorted to Inertial frame. The reasoning behind this is because in basically all use cases (BBH), the shape map will go to the Distorted frame only and other maps will go from the Distorted frame to the Inertial frame.
control_system::system::Shape
control system, you must choose the same Label | that the control system is using. |
|
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< 3 >.
|
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< 3 >.
|
overridevirtual |
Returns the coordinate maps from the Frame::Grid
to the Frame::Inertial
frame for each block.
Implements domain::creators::time_dependence::TimeDependence< 3 >.
|
overridevirtual |
Returns the functions of time for the domain.
Implements domain::creators::time_dependence::TimeDependence< 3 >.
|
overridevirtual |
Returns a std::unique_ptr
pointing to a copy of the TimeDependence
.
Implements domain::creators::time_dependence::TimeDependence< 3 >.
|
staticconstexpr |