SpECTRE  v2023.05.16
domain::creators::bco::TimeDependentMapOptions Struct Reference

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 > &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. More...
 
MapType< Frame::Distorted, Frame::Inertialdistorted_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::Distortedgrid_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::Inertialgrid_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
 

Detailed Description

This holds all options related to the time dependent maps of the binary compact object domains.

Details

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

Note
This struct contains no information about what blocks the time dependent maps will go in.

Member Function Documentation

◆ build_maps()

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:

  • Expansion: CubicScale<3>
  • Rotation: Rotation<3>
  • ShapeA/B: 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.

◆ create_functions_of_time()

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:

  • Expansion: PiecewisePolynomial<2>
  • ExpansionOuterBoundary: FixedSpeedCubic
  • Rotation: QuaternionFunctionOfTime<3>
  • SizeA/B: PiecewisePolynomial<3>
  • ShapeA/B: PiecewisePolynomial<2>

◆ distorted_to_inertial_map()

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.

◆ grid_to_distorted_map()

template<domain::ObjectLabel Object>
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.

◆ grid_to_inertial_map()

template<domain::ObjectLabel Object>
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.

Member Data Documentation

◆ expansion_outer_boundary_name

const std::string domain::creators::bco::TimeDependentMapOptions::expansion_outer_boundary_name
inlinestatic
Initial value:
{
"ExpansionOuterBoundary"}

◆ help

constexpr Options::String domain::creators::bco::TimeDependentMapOptions::help
staticconstexpr
Initial value:
{
"The options for all time dependent maps in a binary compact object "
"domain."}

◆ shape_names

const std::array<std::string, 2> domain::creators::bco::TimeDependentMapOptions::shape_names
inlinestatic
Initial value:
{
{"ShapeA", "ShapeB"}}

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