SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
domain::creators::SphericalShells Class Reference

A set of concentric spherical shells. More...

#include <SphericalShells.hpp>

Classes

struct  InitialNumberOfRadialGridPoints
struct  InitialRadialRefinement
struct  InitialSphericalHarmonicL
struct  InnerBoundaryCondition
struct  InnerRadius
struct  OuterBoundaryCondition
struct  OuterRadius
struct  RadialDistribution
struct  RadialPartitioning
struct  TimeDependentMaps

Public Types

using maps_list
using TimeDepOptionType
using basic_options
template<typename Metavariables>
using options

Public Member Functions

 SphericalShells (double inner_radius, double outer_radius, size_t initial_radial_refinement, size_t initial_number_of_radial_grid_points, size_t initial_spherical_harmonic_l, std::vector< double > radial_partitioning={}, const typename RadialDistribution::type &radial_distribution=domain::CoordinateMaps::Distribution::Linear, std::optional< TimeDepOptionType > time_dependent_options=std::nullopt, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > inner_boundary_condition=nullptr, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > outer_boundary_condition=nullptr, const Options::Context &context={})
 SphericalShells (const SphericalShells &)=delete
 SphericalShells (SphericalShells &&)=default
SphericalShellsoperator= (const SphericalShells &)=delete
SphericalShellsoperator= (SphericalShells &&)=default
Domain< 3 > create_domain () const override
std::unordered_map< std::string, tnsr::I< double, 3, Frame::Grid > > grid_anchors () const override
 A single grid anchor "Center" at the origin.
std::vector< DirectionMap< 3, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > external_boundary_conditions () const override
 The set of external boundary condition for every block in the domain.
std::vector< std::array< size_t, 3 > > initial_extents () const override
 Obtain the initial grid extents of the Elements in each block.
std::vector< std::array< size_t, 3 > > initial_refinement_levels () const override
 Obtain the initial refinement levels of the blocks.
std::vector< std::stringblock_names () const override
 The block names are Shell0, Shell1, ..., starting with the innermost Block.
std::unordered_map< std::string, std::unordered_set< std::string > > block_groups () const override
 The block groups are Shell0, Shell1, ..., starting with the innermost Block.
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
 Retrieve the functions of time used for moving meshes.
Public Member Functions inherited from DomainCreator< 3 >
DomainCreator< VolumeDim > & operator= (const DomainCreator< VolumeDim > &)=delete

Static Public Attributes

static constexpr Options::String help
Static Public Attributes inherited from DomainCreator< 3 >
static constexpr size_t volume_dim

Detailed Description

A set of concentric spherical shells.

Note
This domain will use a spherical harmonic basis in the angular directions. It cannot be used with subcell.
See also
Sphere for a spherical domain compatible with subcell

This domain creator offers one grid anchor "Center" at the origin.

Time dependent maps

There are two ways to add time dependent maps to the SphericalShells domain creator. In the input file, these are specified under the TimeDependentMaps: block.

TimeDependence

You can use a simple TimeDependence (e.g. domain::creators::time_dependence::UniformTranslation or domain::creators::time_dependence::RotationAboutZAxis) to add time dependent maps. This method will add the same maps to all blocks in the domain.

Hard-coded time dependent maps

The SphericalShells domain creator also has the option to use some hard coded time dependent maps that may be useful in certain scenarios. This method adds the maps in domain::creators::sphere::TimeDependentMapOptions to the domain. Currently, the first (inner-most) shell has maps between Frame::Grid, Frame::Distorted, and Frame::Inertial while all subsequent shells only have maps between Frame::Grid and Frame::Inertial.

None

To not have any time dependent maps, pass a std::nullopt as the appropriate argument in the constructor. In the input file, simply have TimeDependentMaps: None.

Member Typedef Documentation

◆ basic_options

using domain::creators::SphericalShells::basic_options
Initial value:
Radius of the cylinder's outer edge.
Definition AngularCylinder.hpp:66
Radial coordinates of the boundaries splitting elements.
Definition AngularCylinder.hpp:101
Definition CartoonSphere1D.hpp:51

◆ maps_list

using domain::creators::SphericalShells::maps_list
Initial value:
tmpl::append<tmpl::list<domain::CoordinateMap<
typename sphere::TimeDependentMapOptions::maps_list>
A coordinate map or composition of coordinate maps.
Definition CoordinateMap.hpp:314
Identity map from .
Definition Identity.hpp:28
Maps in the 1D interval to in the interval according to a domain::CoordinateMaps::Distribution.
Definition Interval.hpp:82
Product of two codimension=0 CoordinateMaps.
Definition ProductMaps.hpp:35
Pfaffian transformation from spherical to Cartesian coordinates.
Definition SphericalToCartesianPfaffian.hpp:50
Definition IndexType.hpp:42
Definition IndexType.hpp:46

◆ options

template<typename Metavariables>
using domain::creators::SphericalShells::options
Initial value:
tmpl::conditional_t<
domain::BoundaryConditions::has_boundary_conditions_base_v<
typename Metavariables::system>,
tmpl::push_back<
basic_options,
typename Metavariables::system>>,
typename Metavariables::system>>>,
basic_options>
typename detail::get_boundary_conditions_base< T >::type get_boundary_conditions_base
Returns T::boundary_condition_base or a placeholder class.
Definition GetBoundaryConditionsBase.hpp:32

◆ TimeDepOptionType

Initial value:
This holds all options related to the time dependent maps of the domain::creators::Sphere domain crea...
Definition Sphere.hpp:42

Member Function Documentation

◆ block_groups()

std::unordered_map< std::string, std::unordered_set< std::string > > domain::creators::SphericalShells::block_groups ( ) const
overridevirtual

The block groups are Shell0, Shell1, ..., starting with the innermost Block.

Reimplemented from DomainCreator< 3 >.

◆ block_names()

std::vector< std::string > domain::creators::SphericalShells::block_names ( ) const
overridevirtual

The block names are Shell0, Shell1, ..., starting with the innermost Block.

Reimplemented from DomainCreator< 3 >.

◆ create_domain()

Domain< 3 > domain::creators::SphericalShells::create_domain ( ) const
overridevirtual

Implements DomainCreator< 3 >.

◆ external_boundary_conditions()

std::vector< DirectionMap< 3, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > domain::creators::SphericalShells::external_boundary_conditions ( ) const
overridevirtual

The set of external boundary condition for every block in the domain.

Implements DomainCreator< 3 >.

◆ functions_of_time()

auto domain::creators::SphericalShells::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

Retrieve the functions of time used for moving meshes.

Reimplemented from DomainCreator< 3 >.

◆ grid_anchors()

std::unordered_map< std::string, tnsr::I< double, 3, Frame::Grid > > domain::creators::SphericalShells::grid_anchors ( ) const
overridevirtual

A single grid anchor "Center" at the origin.

Reimplemented from DomainCreator< 3 >.

◆ initial_extents()

std::vector< std::array< size_t, 3 > > domain::creators::SphericalShells::initial_extents ( ) const
overridevirtual

Obtain the initial grid extents of the Elements in each block.

Implements DomainCreator< 3 >.

◆ initial_refinement_levels()

std::vector< std::array< size_t, 3 > > domain::creators::SphericalShells::initial_refinement_levels ( ) const
overridevirtual

Obtain the initial refinement levels of the blocks.

Implements DomainCreator< 3 >.

Member Data Documentation

◆ help

Options::String domain::creators::SphericalShells::help
staticconstexpr
Initial value:
{
"A set of concentric spherical shells centered at the origin."}

The documentation for this class was generated from the following file:
  • src/Domain/Creators/SphericalShells.hpp