SpECTRE  v2025.08.19
domain::creators::NonconformingSphericalShells Class Reference

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

#include <NonconformingSphericalShells.hpp>

Classes

struct  InitialAngularRefinementOfWedges
 
struct  InitialNumberOfAngularGridPointsOfWedges
 
struct  InitialNumberOfRadialGridPoints
 
struct  InitialRadialRefinement
 
struct  InitialSphericalHarmonicL
 
struct  InnerBoundaryCondition
 
struct  InnerRadius
 
struct  InterfaceRadius
 
struct  OuterBoundaryCondition
 
struct  OuterRadius
 

Public Types

using maps_list = tmpl::list< domain::CoordinateMap< Frame::BlockLogical, Frame::Inertial, domain::CoordinateMaps::ProductOf2Maps< domain::CoordinateMaps::Affine, domain::CoordinateMaps::Identity< 2 > >, domain::CoordinateMaps::SphericalToCartesianPfaffian >, domain::CoordinateMap< Frame::BlockLogical, Frame::Inertial, CoordinateMaps::Wedge< 3 > > >
 
using basic_options = tmpl::list< InnerRadius, InterfaceRadius, OuterRadius, InitialRadialRefinement, InitialAngularRefinementOfWedges, InitialNumberOfRadialGridPoints, InitialSphericalHarmonicL, InitialNumberOfAngularGridPointsOfWedges >
 
template<typename Metavariables >
using options = tmpl::conditional_t< domain::BoundaryConditions::has_boundary_conditions_base_v< typename Metavariables::system >, tmpl::push_back< basic_options, InnerBoundaryCondition< domain::BoundaryConditions::get_boundary_conditions_base< typename Metavariables::system > >, OuterBoundaryCondition< domain::BoundaryConditions::get_boundary_conditions_base< typename Metavariables::system > > >, basic_options >
 

Public Member Functions

 NonconformingSphericalShells (double inner_radius, double interface_radius, double outer_radius, size_t initial_radial_refinement, size_t initial_angular_refinement, size_t initial_number_of_radial_grid_points, size_t initial_spherical_harmonic_l, size_t initial_number_of_angular_grid_points_of_wedges, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > inner_boundary_condition=nullptr, 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. More...
 
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. More...
 
std::vector< std::array< size_t, 3 > > initial_extents () const override
 Obtain the initial grid extents of the Elements in each block. More...
 
std::vector< std::array< size_t, 3 > > initial_refinement_levels () const override
 Obtain the initial refinement levels of the blocks. More...
 
- Public Member Functions inherited from DomainCreator< 3 >
 DomainCreator (const DomainCreator< VolumeDim > &)=delete
 
 DomainCreator (DomainCreator< VolumeDim > &&)=default
 
DomainCreator< VolumeDim > & operator= (const DomainCreator< VolumeDim > &)=delete
 
DomainCreator< VolumeDim > & operator= (DomainCreator< VolumeDim > &&)=default
 
virtual Domain< VolumeDim > create_domain () const=0
 
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. More...
 
virtual std::vector< DirectionMap< VolumeDim, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > external_boundary_conditions () const=0
 The set of external boundary condition for every block in the domain. More...
 
virtual std::vector< std::stringblock_names () const
 A human-readable name for every block, or empty if the domain creator doesn't support block names (yet). More...
 
virtual std::unordered_map< std::string, std::unordered_set< std::string > > block_groups () const
 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. More...
 
virtual std::vector< std::array< size_t, VolumeDim > > initial_extents () const=0
 Obtain the initial grid extents of the Elements in each block. More...
 
virtual std::vector< std::array< size_t, VolumeDim > > initial_refinement_levels () const=0
 Obtain the initial refinement levels of the blocks. 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 > >
 Retrieve the functions of time used for moving meshes. More...
 

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 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 Function Documentation

◆ 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 >.

◆ 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

constexpr 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: