SpECTRE
v2023.05.16
|
This holds all options related to the time dependent maps of the binary compact object domains. More...
#include <BinaryCompactObjectHelpers.hpp>
Classes | |
struct | ExpansionMap |
struct | ExpansionMapOptions |
Options for the expansion map. The outer boundary radius of the map is always set to the outer boundary of the Domain, so there is no option here to set the outer boundary radius. More... | |
struct | InitialAngularVelocity |
struct | InitialTime |
The initial time of the functions of time. More... | |
struct | RotationMap |
struct | ShapeMapLMax |
struct | ShapeMapOptions |
struct | SizeMap |
struct | SizeMapInitialValues |
Public Types | |
using | maps_list = tmpl::list< GridToDistortedComposition, DistortedToInertialComposition, GridToInertialComposition< false >, GridToInertialComposition< true > > |
using | options = tmpl::list< InitialTime, ExpansionMap, InitialAngularVelocity, SizeMapInitialValues< domain::ObjectLabel::A >, SizeMapInitialValues< domain::ObjectLabel::B >, ShapeMapLMax< domain::ObjectLabel::A >, ShapeMapLMax< domain::ObjectLabel::B > > |
Public Member Functions | |
TimeDependentMapOptions (double initial_time, ExpansionMapOptions expansion_map_options, std::array< double, 3 > initial_angular_velocity, std::array< double, 3 > initial_size_values_A, std::array< double, 3 > initial_size_values_B, size_t initial_l_max_A, size_t initial_l_max_B, const Options::Context &context={}) | |
std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > | create_functions_of_time (const std::unordered_map< std::string, double > &initial_expiration_times) const |
Create the function of time map using the options that were provided to this class. More... | |
void | build_maps (const std::array< std::array< double, 3 >, 2 > ¢ers, const std::array< std::optional< double >, 2 > &object_inner_radii, const std::array< std::optional< double >, 2 > &object_outer_radii, double domain_outer_radius) |
Construct the actual maps that will be used. More... | |
MapType< Frame::Distorted, Frame::Inertial > | distorted_to_inertial_map (bool include_distorted_map) const |
This will construct the map from Frame::Distorted to Frame::Inertial More... | |
template<domain::ObjectLabel Object> | |
MapType< Frame::Grid, Frame::Distorted > | grid_to_distorted_map (bool include_distorted_map) const |
This will construct the maps from the Frame::Grid to the Frame::Distorted . More... | |
template<domain::ObjectLabel Object> | |
MapType< Frame::Grid, Frame::Inertial > | grid_to_inertial_map (bool include_distorted_map) const |
This will construct the entire map from the Frame::Grid to the Frame::Inertial . More... | |
Static Public Attributes | |
static constexpr Options::String | help |
static const std::string | expansion_name {"Expansion"} |
static const std::string | expansion_outer_boundary_name |
static const std::string | rotation_name {"Rotation"} |
static const std::array< std::string, 2 > | size_names {{"SizeA", "SizeB"}} |
static const std::array< std::string, 2 > | shape_names |
This holds all options related to the time dependent maps of the binary compact object domains.
Since both domains will have the same (overall) time dependent maps, their options are going to be the same as well.
This class will create the FunctionsOfTime needed for the binary compact object domains as well as the actual CoordinateMaps themselves
void domain::creators::bco::TimeDependentMapOptions::build_maps | ( | const std::array< std::array< double, 3 >, 2 > & | centers, |
const std::array< std::optional< double >, 2 > & | object_inner_radii, | ||
const std::array< std::optional< double >, 2 > & | object_outer_radii, | ||
double | domain_outer_radius | ||
) |
Construct the actual maps that will be used.
Currently, this constructs a:
CubicScale<3>
Rotation<3>
Shape
(with size FunctionOfTime)If the inner/outer radii for an object are std::nullopt
, this means that a Size map is not constructed for that object. An identity map will be used instead.
std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > domain::creators::bco::TimeDependentMapOptions::create_functions_of_time | ( | const std::unordered_map< std::string, double > & | initial_expiration_times | ) | const |
Create the function of time map using the options that were provided to this class.
Currently, this will add:
PiecewisePolynomial<2>
FixedSpeedCubic
QuaternionFunctionOfTime<3>
PiecewisePolynomial<3>
PiecewisePolynomial<2>
MapType< Frame::Distorted, Frame::Inertial > domain::creators::bco::TimeDependentMapOptions::distorted_to_inertial_map | ( | bool | include_distorted_map | ) | const |
This will construct the map from Frame::Distorted
to Frame::Inertial
If the argument include_distorted_map
is true, then this will be a composition of an CubicScale
and Rotation
map. If it is false, this returns a nullptr
.
MapType< Frame::Grid, Frame::Distorted > domain::creators::bco::TimeDependentMapOptions::grid_to_distorted_map | ( | bool | include_distorted_map | ) | const |
This will construct the maps from the Frame::Grid
to the Frame::Distorted
.
If the argument include_distorted_map
is true, then this will be a Shape
map (with size FunctionOfTime) for the templated Object
. If it is false, then this returns a nullptr
.
MapType< Frame::Grid, Frame::Inertial > domain::creators::bco::TimeDependentMapOptions::grid_to_inertial_map | ( | bool | include_distorted_map | ) | const |
This will construct the entire map from the Frame::Grid
to the Frame::Inertial
.
If the argument include_distorted_map
is true, then this map will have a composition of a Shape
(with size FunctionOfTime), CubicScale
, and Rotation
map. If it is false, there will only be CubicScale
and Rotation
maps.
|
inlinestatic |
|
staticconstexpr |
|
inlinestatic |