SpECTRE  v2024.09.29
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 <Sphere.hpp>

Classes

struct  ExpansionMapOptions
 
struct  InitialTime
 The initial time of the functions of time. More...
 
struct  RotationMapOptions
 
struct  TransitionRotScaleTrans
 
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, TransitionRotScaleTrans >
 

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, bool transition_rot_scale_trans)
 
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< double, 3 > &center, bool is_filled, double inner_radius, const std::vector< double > &radial_partitions, double outer_radius)
 Construct the actual maps that will be used. More...
 
MapType< Frame::Distorted, Frame::Inertialdistorted_to_inertial_map (size_t block_number, bool is_inner_cube) const
 This will construct the map from Frame::Distorted to Frame::Inertial. More...
 
MapType< Frame::Grid, Frame::Distortedgrid_to_distorted_map (size_t block_number, bool is_inner_cube) const
 This will construct the map from Frame::Grid to Frame::Distorted. More...
 
MapType< Frame::Grid, Frame::Inertialgrid_to_inertial_map (size_t block_number, bool is_outer_shell, bool is_inner_cube) 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.

Member Function Documentation

◆ build_maps()

void domain::creators::sphere::TimeDependentMapOptions::build_maps ( const std::array< double, 3 > &  center,
bool  is_filled,
double  inner_radius,
const std::vector< double > &  radial_partitions,
double  outer_radius 
)

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 ( 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 ( size_t  block_number,
bool  is_inner_cube 
) const

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

For blocks with a shape map, this will be a RotScaleTrans map. For other blocks, this returns nullptr.

◆ grid_to_distorted_map()

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

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

For blocks with a shape map, this will return the Shape map (with a size function of time). For other blocks, this returns nullptr.

◆ grid_to_inertial_map()

MapType< Frame::Grid, Frame::Inertial > domain::creators::sphere::TimeDependentMapOptions::grid_to_inertial_map ( size_t  block_number,
bool  is_outer_shell,
bool  is_inner_cube 
) const

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

For blocks with a shape map, this will return the Shape and RotScaleTrans composition. For other blocks, this returns just the RotScaleTrans map. In the outer shell, the RotScaleTrans map will transition to zero.

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: