|
SpECTRE
v2025.08.19
|
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 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 | |
| SphericalShells & | operator= (const SphericalShells &)=delete |
| SphericalShells & | operator= (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. 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... | |
| std::vector< std::string > | block_names () const override |
| The block names are Shell0, Shell1, ..., starting with the innermost Block. More... | |
| 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. 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 |
| Retrieve the functions of time used for moving meshes. 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::string > | block_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 |
A set of concentric spherical shells.
This domain creator offers one grid anchor "Center" at the origin.
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.
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.
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.
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.
|
overridevirtual |
The block groups are Shell0, Shell1, ..., starting with the innermost Block.
Reimplemented from DomainCreator< 3 >.
|
overridevirtual |
The block names are Shell0, Shell1, ..., starting with the innermost Block.
Reimplemented from DomainCreator< 3 >.
|
overridevirtual |
Implements DomainCreator< 3 >.
|
overridevirtual |
The set of external boundary condition for every block in the domain.
Implements DomainCreator< 3 >.
|
overridevirtual |
Retrieve the functions of time used for moving meshes.
Reimplemented from DomainCreator< 3 >.
|
overridevirtual |
A single grid anchor "Center" at the origin.
Reimplemented from DomainCreator< 3 >.
|
overridevirtual |
Obtain the initial grid extents of the Elements in each block.
Implements DomainCreator< 3 >.
|
overridevirtual |
Obtain the initial refinement levels of the blocks.
Implements DomainCreator< 3 >.
|
staticconstexpr |