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

A set of non-conforming concentric spherical shells. More...

#include <NonconformingSphericalShells.hpp>

Classes

struct  InitialCubeGridPoints
struct  InitialCubeRefinement
struct  InitialSHGridPoints
struct  InitialSHRefinement
struct  InnerRadius
struct  InterfaceRadius
struct  Interior
struct  OuterBoundaryCondition
struct  OuterRadius
struct  RadialDistribution
struct  RadialPartitioning
struct  TimeDependentMaps
struct  UseEquiangularMap

Public Types

using maps_list
using Excision = detail::Excision
using InnerCube = detail::InnerCube
using TimeDepOptionType
using basic_options
template<typename Metavariables>
using options

Public Member Functions

 NonconformingSphericalShells (double inner_radius, double interface_radius, double outer_radius, std::variant< Excision, InnerCube > interior, const typename InitialCubeRefinement::type &initial_cube_refinement, const typename InitialSHRefinement::type &initial_sh_refinement, const typename InitialCubeGridPoints::type &initial_cube_grid_points, const typename InitialSHGridPoints::type &initial_sh_grid_points, std::array< std::vector< double >, 2 > radial_partitioning={}, std::array< std::vector< domain::CoordinateMaps::Distribution >, 2 > radial_distribution={std::vector< domain::CoordinateMaps::Distribution >{ domain::CoordinateMaps::Distribution::Linear}, std::vector< domain::CoordinateMaps::Distribution >{ domain::CoordinateMaps::Distribution::Linear}}, bool use_equiangular_map=true, std::optional< TimeDepOptionType > time_dependent_options=std::nullopt, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > outer_boundary_condition=nullptr, const Options::Context &context={})
 NonconformingSphericalShells (const NonconformingSphericalShells &)=delete
 NonconformingSphericalShells (NonconformingSphericalShells &&)=default
NonconformingSphericalShellsoperator= (const NonconformingSphericalShells &)=delete
NonconformingSphericalShellsoperator= (NonconformingSphericalShells &&)=default
Domain< 3 > create_domain () const override
std::unordered_map< std::string, tnsr::I< double, 3, Frame::Grid > > grid_anchors () const override
 A set of named coordinates in the grid frame, like the center of the domain or the positions of specific objects in a domain.
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::stringblock_names () const override
 A human-readable name for every block, or empty if the domain creator doesn't support block names (yet).
std::unordered_map< std::string, std::unordered_set< std::string > > block_groups () const override
 Labels to refer to groups of blocks. The groups can overlap, and they don't have to cover all blocks in the domain. The groups can be used to refer to multiple blocks at once when specifying input-file options.
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.
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 non-conforming concentric spherical shells.

Details

The inner spherical shells are decomposed into six wedges surrounding an optionally excised interior region. The outer spherical shells will use a spherical harmonic basis which cannot be used with subcell.

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

Member Typedef Documentation

◆ basic_options

using domain::creators::NonconformingSphericalShells::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:52
Definition CartoonSphere2D.hpp:156
Definition NonconformingSphericalShells.hpp:142
Definition NonconformingSphericalShells.hpp:123
Definition NonconformingSphericalShells.hpp:153
Definition NonconformingSphericalShells.hpp:134
Definition NonconformingSphericalShells.hpp:98
Definition NonconformingSphericalShells.hpp:195

◆ maps_list

using domain::creators::NonconformingSphericalShells::maps_list
Initial value:
tmpl::list<
Equiangular3D>,
typename sphere::TimeDependentMapOptions::maps_list>
A coordinate map or composition of coordinate maps.
Definition CoordinateMap.hpp:314
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
Product of two codimension=0 CoordinateMaps.
Definition ProductMaps.hpp:32
Pfaffian transformation from spherical to Cartesian coordinates.
Definition SphericalToCartesianPfaffian.hpp:49
Map from a square or cube to a wedge.
Definition Wedge.hpp:799
Definition IndexType.hpp:42
Definition IndexType.hpp:46

◆ options

template<typename Metavariables>
using domain::creators::NonconformingSphericalShells::options
Initial value:
tmpl::conditional_t<
domain::BoundaryConditions::has_boundary_conditions_base_v<
typename Metavariables::system>,
tmpl::push_back<
basic_options,
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

Member Function Documentation

◆ block_groups()

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

Labels to refer to groups of blocks. The groups can overlap, and they don't have to cover all blocks in the domain. The groups can be used to refer to multiple blocks at once when specifying input-file options.

Reimplemented from DomainCreator< 3 >.

◆ block_names()

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

A human-readable name for every block, or empty if the domain creator doesn't support block names (yet).

Reimplemented from DomainCreator< 3 >.

◆ create_domain()

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

Implements DomainCreator< 3 >.

◆ external_boundary_conditions()

std::vector< DirectionMap< 3, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > domain::creators::NonconformingSphericalShells::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::NonconformingSphericalShells::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::NonconformingSphericalShells::grid_anchors ( ) const
overridevirtual

A set of named coordinates in the grid frame, like the center of the domain or the positions of specific objects in a domain.

Reimplemented from DomainCreator< 3 >.

◆ initial_extents()

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

Obtain the initial refinement levels of the blocks.

Implements DomainCreator< 3 >.

Member Data Documentation

◆ help

Options::String domain::creators::NonconformingSphericalShells::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/NonconformingSphericalShells.hpp