SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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  InitialTime
 The initial time of the functions of time. More...
 
struct  TransitionRotScaleTrans
 

Public Types

using maps_list = implementation defined
 
using ShapeMapOptions = time_dependent_options::ShapeMapOptions< false, domain::ObjectLabel::None >
 
using ShapeMapOptionType = typename ShapeMapOptions::type::value_type
 
using RotationMapOptions = time_dependent_options::RotationMapOptions< true >
 
using RotationMapOptionType = typename RotationMapOptions::type::value_type
 
using ExpansionMapOptions = time_dependent_options::ExpansionMapOptions< true >
 
using ExpansionMapOptionType = typename ExpansionMapOptions::type::value_type
 
using TranslationMapOptions = time_dependent_options::TranslationMapOptions< 3 >
 
using TranslationMapOptionType = typename TranslationMapOptions::type::value_type
 
using options = implementation defined
 

Public Member Functions

 TimeDependentMapOptions (double initial_time, ShapeMapOptionType shape_map_options, RotationMapOptionType rotation_map_options, ExpansionMapOptionType expansion_map_options, TranslationMapOptionType 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_central_region) 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_central_region 
) 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: