SpECTRE  v2023.01.13
domain::creators::time_dependence::Shape Class Referencefinal

A Shape whose inner surface conforms to a surface of constant Boyer-Lindquist radius, in Kerr-Schild coordinates as given by domain::CoordinateMaps::TimeDependent::Shape. More...

#include <Shape.hpp>

Classes

struct  Center
 Center for the Shape map. More...
 
struct  InitialTime
 The initial time of the function of time. More...
 
struct  InnerRadius
 The inner radius of the Shape map, the radius at which to begin applying the map. More...
 
struct  LMax
 The max angular resolution l of the Shape. More...
 
struct  Mass
 The mass of the Kerr black hole. More...
 
struct  OuterRadius
 The outer radius of the Shape map, beyond which it is no longer applied. More...
 
struct  Spin
 The dimensionless spin of the Kerr black hole. More...
 

Public Types

using maps_list = tmpl::list< domain::CoordinateMap< Frame::Grid, Frame::Inertial, ShapeMap > >
 
using GridToInertialMap = detail::generate_coordinate_map_t< Frame::Grid, Frame::Inertial, tmpl::list< ShapeMap > >
 
using options = tmpl::list< InitialTime, LMax, Mass, Spin, Center, InnerRadius, OuterRadius >
 
- Public Types inherited from domain::creators::time_dependence::TimeDependence< 3 >
using creatable_classes = tmpl::append< creatable_classes_any_dim, tmpl::conditional_t< MeshDim==1, creatable_classes_1d, tmpl::conditional_t< MeshDim==2, creatable_classes_2d, creatable_classes_3d > > >
 

Public Member Functions

 Shape (const Shape &)=delete
 
 Shape (Shape &&)=default
 
Shapeoperator= (const Shape &)=delete
 
Shapeoperator= (Shape &&)=default
 
 Shape (double initial_time, size_t l_max, double mass, std::array< double, 3 > spin, std::array< double, 3 > center, double inner_radius, double outer_radius, const Options::Context &context={})
 
auto get_clone () const -> std::unique_ptr< TimeDependence< mesh_dim > > override
 Returns a std::unique_ptr pointing to a copy of the TimeDependence. More...
 
auto block_maps_grid_to_inertial (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Inertial, mesh_dim > > > override
 Returns the coordinate maps from the Frame::Grid to the Frame::Inertial frame for each block. More...
 
auto block_maps_grid_to_distorted (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Distorted, mesh_dim > > > override
 Returns the coordinate maps from the Frame::Grid to the Frame::Distorted frame for each block. Returns vector of nullptr if there is no distorted frame. More...
 
auto block_maps_distorted_to_inertial (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Distorted, Frame::Inertial, mesh_dim > > > override
 Returns the coordinate maps from the Frame::Distorted to the Frame::Inertial frame for each block. Returns vector of nullptr if is no distorted frame. More...
 
auto functions_of_time (const std::unordered_map< std::string, double > &initial_expiration_times={}) const -> std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > override
 Returns the functions of time for the domain. More...
 
- Public Member Functions inherited from domain::creators::time_dependence::TimeDependence< 3 >
 TimeDependence (const TimeDependence &)=default
 
 TimeDependence (TimeDependence &&)=default
 
TimeDependenceoperator= (const TimeDependence &)=default
 
TimeDependenceoperator= (TimeDependence &&)=default
 
virtual auto get_clone () const -> std::unique_ptr< TimeDependence >=0
 Returns a std::unique_ptr pointing to a copy of the TimeDependence. More...
 
virtual auto block_maps_grid_to_inertial (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Inertial, MeshDim > > >=0
 Returns the coordinate maps from the Frame::Grid to the Frame::Inertial frame for each block. More...
 
virtual auto block_maps_grid_to_distorted (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Distorted, MeshDim > > >=0
 Returns the coordinate maps from the Frame::Grid to the Frame::Distorted frame for each block. Returns vector of nullptr if there is no distorted frame. More...
 
virtual auto block_maps_distorted_to_inertial (size_t number_of_blocks) const -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Distorted, Frame::Inertial, MeshDim > > >=0
 Returns the coordinate maps from the Frame::Distorted to the Frame::Inertial frame for each block. Returns vector of nullptr if is no distorted frame. More...
 
virtual auto functions_of_time (const std::unordered_map< std::string, double > &initial_expiration_times={}) const -> std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > >=0
 Returns the functions of time for the domain. More...
 
bool is_none () const
 Returns true if the instance is None, meaning no time dependence.
 

Static Public Attributes

static constexpr size_t mesh_dim = 3
 
static constexpr Options::String help
 

Friends

bool operator== (const Shape &lhs, const Shape &rhs)
 

Detailed Description

A Shape whose inner surface conforms to a surface of constant Boyer-Lindquist radius, in Kerr-Schild coordinates as given by domain::CoordinateMaps::TimeDependent::Shape.

Details

This TimeDependence is suitable for use on a spherical shell, where LMax is the number of l and m spherical harmonics to use in approximating the Kerr horizon, of mass Mass and spin Spin. The value of the Boyer-Lindquist radius to which the inner surface conforms is given by the value of inner_radius. If the user wants the inner surface of the Shape to conform to a Kerr horizon for a given mass and spin, inner_radius should be the Boyer-Lindquist radius of the outer horizon.

Member Function Documentation

◆ block_maps_distorted_to_inertial()

auto domain::creators::time_dependence::Shape::block_maps_distorted_to_inertial ( size_t  number_of_blocks) const -> std::vector<std::unique_ptr<domain::CoordinateMapBase< Frame::Distorted, Frame::Inertial, mesh_dim>>>
inlineoverridevirtual

Returns the coordinate maps from the Frame::Distorted to the Frame::Inertial frame for each block. Returns vector of nullptr if is no distorted frame.

Implements domain::creators::time_dependence::TimeDependence< 3 >.

◆ block_maps_grid_to_distorted()

auto domain::creators::time_dependence::Shape::block_maps_grid_to_distorted ( size_t  number_of_blocks) const -> std::vector<std::unique_ptr<domain::CoordinateMapBase< Frame::Grid, Frame::Distorted, mesh_dim>>>
inlineoverridevirtual

Returns the coordinate maps from the Frame::Grid to the Frame::Distorted frame for each block. Returns vector of nullptr if there is no distorted frame.

Implements domain::creators::time_dependence::TimeDependence< 3 >.

◆ block_maps_grid_to_inertial()

auto domain::creators::time_dependence::Shape::block_maps_grid_to_inertial ( size_t  number_of_blocks) const -> std::vector<std::unique_ptr<domain::CoordinateMapBase< Frame::Grid, Frame::Inertial, mesh_dim>>>
overridevirtual

Returns the coordinate maps from the Frame::Grid to the Frame::Inertial frame for each block.

Implements domain::creators::time_dependence::TimeDependence< 3 >.

◆ functions_of_time()

auto domain::creators::time_dependence::Shape::functions_of_time ( const std::unordered_map< std::string, double > &  initial_expiration_times = {}) const -> std::unordered_map< std::string, std::unique_ptr<domain::FunctionsOfTime::FunctionOfTime>>
overridevirtual

Returns the functions of time for the domain.

Implements domain::creators::time_dependence::TimeDependence< 3 >.

◆ get_clone()

auto domain::creators::time_dependence::Shape::get_clone ( ) const -> std::unique_ptr<TimeDependence<mesh_dim>>
overridevirtual

Member Data Documentation

◆ help

constexpr Options::String domain::creators::time_dependence::Shape::help
staticconstexpr
Initial value:
= {
"Creates a Shape that conforms to a Kerr horizon of given mass and "
"spin."}

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