SpECTRE  v2024.04.12
domain::creators::sphere::TimeDependentMapOptions Struct Reference

This holds all options related to the time dependent maps of the domain::creators::Sphere domain creator. More...

#include <SphereTimeDependentMaps.hpp>

Classes

struct  ExpansionMapOptions
 
struct  InitialTime
 The initial time of the functions of time. More...
 
struct  RotationMapOptions
 
struct  TranslationMapOptions
 

Public Types

using maps_list = tmpl::list< IdentityForComposition< Frame::Grid, Frame::Inertial >, IdentityForComposition< Frame::Grid, Frame::Distorted >, IdentityForComposition< Frame::Distorted, Frame::Inertial >, GridToDistortedComposition, GridToInertialShapeMap, GridToInertialSimple, GridToInertialComposition, DistortedToInertialComposition >
 
using ShapeMapOptions = time_dependent_options::ShapeMapOptions< false, domain::ObjectLabel::None >
 
using options = tmpl::list< InitialTime, ShapeMapOptions, RotationMapOptions, ExpansionMapOptions, TranslationMapOptions >
 

Public Member Functions

 TimeDependentMapOptions (double initial_time, std::optional< ShapeMapOptions > shape_map_options, std::optional< RotationMapOptions > rotation_map_options, std::optional< ExpansionMapOptions > expansion_map_options, std::optional< TranslationMapOptions > translation_map_options)
 
std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > create_functions_of_time (double inner_radius, 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< double, 3 > &center, std::pair< double, double > inner_shell_radii, std::pair< double, double > outer_shell_radii)
 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...
 
MapType< Frame::Grid, Frame::Distortedgrid_to_distorted_map (bool include_distorted_map) const
 This will construct the map from Frame::Grid to Frame::Distorted. More...
 
MapType< Frame::Grid, Frame::Inertialgrid_to_inertial_map (bool include_distorted_map, bool use_rigid) const
 This will construct the map from Frame::Grid to Frame::Inertial. More...
 
bool using_distorted_frame () const
 Whether or not the distorted frame is being used. I.e. whether or not shape map options were specified.
 

Static Public Attributes

static constexpr Options::String help
 
static const std::string size_name {"Size"}
 
static const std::string shape_name {"Shape"}
 
static const std::string rotation_name {"Rotation"}
 
static const std::string expansion_name {"Expansion"}
 
static const std::string expansion_outer_boundary_name
 
static const std::string translation_name {"Translation"}
 

Detailed Description

This holds all options related to the time dependent maps of the domain::creators::Sphere domain creator.

Details

Currently this class will only add a Shape map (and size FunctionOfTime) to the domain. Other maps can be added as needed.

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

Member Function Documentation

◆ build_maps()

void domain::creators::sphere::TimeDependentMapOptions::build_maps ( const std::array< double, 3 > &  center,
std::pair< double, double >  inner_shell_radii,
std::pair< double, double >  outer_shell_radii 
)

Construct the actual maps that will be used.

Currently, this constructs a:

  • Shape: Shape (with a size function of time)
  • Rotation: Rotation
  • Expansion: Expansion
  • Expansion outside the transition region: ExpansionOuterBoundary
  • Translation: Translation

◆ create_functions_of_time()

std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > domain::creators::sphere::TimeDependentMapOptions::create_functions_of_time ( double  inner_radius,
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:

  • Size: PiecewisePolynomial<3>
  • Shape: PiecewisePolynomial<2>
  • Rotation: SettleToConstantQuaternion
  • Expansion: SettleToConstant
  • ExpansionOuterBoundary: PiecewisePolynomial<2>
  • Translation: PiecewisePolynomial<2>

◆ distorted_to_inertial_map()

MapType< Frame::Distorted, Frame::Inertial > domain::creators::sphere::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 RotScaleTrans map. If it is false, then this returns nullptr.

◆ grid_to_distorted_map()

MapType< Frame::Grid, Frame::Distorted > domain::creators::sphere::TimeDependentMapOptions::grid_to_distorted_map ( bool  include_distorted_map) const

This will construct the map from Frame::Grid to Frame::Distorted.

If the argument include_distorted_map is true, then this will add a Shape map (with a size function of time). If it is false, then this returns nullptr.

◆ grid_to_inertial_map()

MapType< Frame::Grid, Frame::Inertial > domain::creators::sphere::TimeDependentMapOptions::grid_to_inertial_map ( bool  include_distorted_map,
bool  use_rigid 
) const

This will construct the map from Frame::Grid to Frame::Inertial.

If the argument include_distorted_map is true, then this map will have a Shape map (with a size function of time). If it is false, then there will be a RotScaleTrans map in either the inner region or in the transition region.

Member Data Documentation

◆ expansion_outer_boundary_name

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

◆ help

constexpr Options::String domain::creators::sphere::TimeDependentMapOptions::help
staticconstexpr
Initial value:
{
"The options for all the hard-coded time dependent maps in the "
"Sphere domain."}

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