SpECTRE  v2026.09.05
Loading...
Searching...
No Matches
domain::creators::AngularCartoonSphere2D Class Reference

An axisymmetric Cartoon domain covering the half-plane \(x \ge 0\) with annular blocks that use a half-Fourier basis in the azimuthal direction. More...

#include <AngularCartoonSphere2D.hpp>

Classes

struct  BoundaryConditions
 Boundary conditions group. More...
struct  InitialGridPoints
 Initial number of \([r, \phi]\) grid points in each shell. More...
struct  InitialRefinementInR
 Initial refinement level in the radial direction of each shell. More...
struct  InnerBoundaryCondition
 Boundary condition at the inner (excision) radius. More...
struct  InnerRadius
 Radius of the excised region at the center of the domain. More...
struct  OuterBoundaryCondition
 Boundary condition at the outer radius. More...
struct  OuterRadius
 Radius of the outer edge of the domain. More...
struct  RadialDistribution
 Distribution of grid points in each radial block. More...
struct  RadialPartitioning
 Radial coordinates of the boundaries splitting the shells. More...
struct  TimeDependence
 Time dependence of the domain. More...

Public Types

using maps_list
using basic_options
template<typename Metavariables>
using options

Public Member Functions

 AngularCartoonSphere2D (typename InnerRadius::type inner_radius, typename OuterRadius::type outer_radius, typename RadialPartitioning::type radial_partitioning, typename RadialDistribution::type radial_distribution, typename InitialGridPoints::type initial_grid_points, typename InitialRefinementInR::type initial_refinement_in_r, std::unique_ptr< domain::creators::time_dependence::TimeDependence< 3 > > time_dependence=nullptr, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > inner_boundary_condition=nullptr, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > outer_boundary_condition=nullptr, const Options::Context &context={})
 AngularCartoonSphere2D (const AngularCartoonSphere2D &)=delete
 AngularCartoonSphere2D (AngularCartoonSphere2D &&)=default
AngularCartoonSphere2D & operator= (const AngularCartoonSphere2D &)=delete
AngularCartoonSphere2D & operator= (AngularCartoonSphere2D &&)=default
Domain< 3 > create_domain () const override
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::string > block_names () const override
 Block names are Shell0, Shell1, ...
std::unordered_map< std::string, std::unordered_set< std::string > > block_groups () const override
 Block groups are Shells.
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
virtual std::unordered_map< std::string, tnsr::I< double, VolumeDim, Frame::Grid > > grid_anchors () const
 A set of named coordinates in the grid frame, like the center of the domain or the positions of specific objects in a domain.

Static Public Attributes

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

Detailed Description

An axisymmetric Cartoon domain covering the half-plane \(x \ge 0\) with annular blocks that use a half-Fourier basis in the azimuthal direction.

Details

This is the polar-coordinate counterpart of domain::creators::CartoonSphere2D. Where CartoonSphere2D tiles the half-plane with three Legendre wedges per shell, this creator uses a single annular block per shell whose azimuthal direction is spanned by the Spectral::Basis::HalfFourier basis.

To match the symmetry to allowed solution, \(\phi\) sweeps counterclockwise from the \(-y\) axis, through \(+x\), to the \(+y\) axis. The symmetry axis \(x = 0\) is not an external boundary: it is handled internally by the parity of the half-Fourier basis. See Spectral::make_component_parity_array and Spectral::HalfFourier.

Note
The origin must be excised as the radial topology is I1.

Member Typedef Documentation

◆ basic_options

using domain::creators::AngularCartoonSphere2D::basic_options
Initial value:
Initial number of grid points in each shell.
Definition AngularCartoonSphere2D.hpp:116
Initial refinement level in the radial direction of each shell.
Definition AngularCartoonSphere2D.hpp:126
Radius of the excised region at the center of the domain.
Definition AngularCartoonSphere2D.hpp:81
Radius of the outer edge of the domain.
Definition AngularCartoonSphere2D.hpp:89
Distribution of grid points in each radial block.
Definition AngularCartoonSphere2D.hpp:105
Radial coordinates of the boundaries splitting the shells.
Definition AngularCartoonSphere2D.hpp:96
Time dependence of the domain.
Definition AngularCartoonSphere2D.hpp:136

◆ maps_list

using domain::creators::AngularCartoonSphere2D::maps_list
Initial value:
A coordinate map or composition of coordinate maps.
Definition CoordinateMap.hpp:314
A CoordinateMap that swaps/negates the coordinate axes.
Definition DiscreteRotation.hpp:31
Identity map from .
Definition Identity.hpp:27
Maps in the 1D interval to in the interval according to a domain::CoordinateMaps::Distribution.
Definition Interval.hpp:81
Transformation from polar to Cartesian coordinates.
Definition PolarToCartesian.hpp:33
Product of two codimension=0 CoordinateMaps.
Definition ProductMaps.hpp:32
Product of three one-dimensional CoordinateMaps.
Definition ProductMaps.hpp:88
Definition IndexType.hpp:42
Definition IndexType.hpp:46

◆ options

template<typename Metavariables>
using domain::creators::AngularCartoonSphere2D::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
Boundary condition at the inner (excision) radius.
Definition AngularCartoonSphere2D.hpp:152
Boundary condition at the outer radius.
Definition AngularCartoonSphere2D.hpp:162

Member Function Documentation

◆ block_groups()

std::unordered_map< std::string, std::unordered_set< std::string > > domain::creators::AngularCartoonSphere2D::block_groups ( ) const
inlineoverridevirtual

Block groups are Shells.

Reimplemented from DomainCreator< 3 >.

◆ block_names()

std::vector< std::string > domain::creators::AngularCartoonSphere2D::block_names ( ) const
inlineoverridevirtual

Block names are Shell0, Shell1, ...

Reimplemented from DomainCreator< 3 >.

◆ create_domain()

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

Implements DomainCreator< 3 >.

◆ external_boundary_conditions()

std::vector< DirectionMap< 3, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > domain::creators::AngularCartoonSphere2D::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::AngularCartoonSphere2D::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 >.

◆ initial_extents()

std::vector< std::array< size_t, 3 > > domain::creators::AngularCartoonSphere2D::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::AngularCartoonSphere2D::initial_refinement_levels ( ) const
overridevirtual

Obtain the initial refinement levels of the blocks.

Implements DomainCreator< 3 >.

Member Data Documentation

◆ help

Options::String domain::creators::AngularCartoonSphere2D::help
staticconstexpr
Initial value:
{
"An axisymmetric Cartoon domain covering the half-plane x >= 0 with "
"annular blocks that use a half-Fourier basis in the azimuthal "
"direction."}

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