SpECTRE  v2021.11.01
domain::creators::Sphere Class Reference

Create a 3D Domain in the shape of a sphere consisting of six wedges and a central cube. For an image showing how the wedges are aligned in this Domain, see the documentation for Shell. More...

#include <Sphere.hpp>

Classes

struct  BoundaryCondition
 
struct  InitialGridPoints
 
struct  InitialRefinement
 
struct  InnerRadius
 
struct  OuterRadius
 
struct  UseEquiangularMap
 

Public Types

using maps_list = tmpl::list< domain::CoordinateMap< Frame::BlockLogical, Frame::Inertial, CoordinateMaps::ProductOf3Maps< CoordinateMaps::Affine, CoordinateMaps::Affine, CoordinateMaps::Affine > >, domain::CoordinateMap< Frame::BlockLogical, Frame::Inertial, CoordinateMaps::ProductOf3Maps< CoordinateMaps::Equiangular, CoordinateMaps::Equiangular, CoordinateMaps::Equiangular > >, domain::CoordinateMap< Frame::BlockLogical, Frame::Inertial, CoordinateMaps::Wedge< 3 >, CoordinateMaps::EquatorialCompression, CoordinateMaps::ProductOf2Maps< CoordinateMaps::Affine, CoordinateMaps::Identity< 2 > > > >
 
using basic_options = tmpl::list< InnerRadius, OuterRadius, InitialRefinement, InitialGridPoints, UseEquiangularMap >
 
template<typename Metavariables >
using options = tmpl::conditional_t< domain::BoundaryConditions::has_boundary_conditions_base_v< typename Metavariables::system >, tmpl::push_back< basic_options, BoundaryCondition< domain::BoundaryConditions::get_boundary_conditions_base< typename Metavariables::system > > >, basic_options >
 

Public Member Functions

 Sphere (typename InnerRadius::type inner_radius, typename OuterRadius::type outer_radius, typename InitialRefinement::type initial_refinement, typename InitialGridPoints::type initial_number_of_grid_points, typename UseEquiangularMap::type use_equiangular_map, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > boundary_condition=nullptr, const Options::Context &context={})
 
 Sphere (const Sphere &)=delete
 
 Sphere (Sphere &&)=default
 
Sphereoperator= (const Sphere &)=delete
 
Sphereoperator= (Sphere &&)=default
 
Domain< 3 > create_domain () const override
 
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::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, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > >
 Retrieve the functions of time used for moving meshes. More...
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

Create a 3D Domain in the shape of a sphere consisting of six wedges and a central cube. For an image showing how the wedges are aligned in this Domain, see the documentation for Shell.

Member Function Documentation

◆ create_domain()

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

Implements DomainCreator< 3 >.

◆ initial_extents()

std::vector< std::array< size_t, 3 > > domain::creators::Sphere::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::Sphere::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::Sphere::help
staticconstexpr
Initial value:
{
"Creates a 3D Sphere with seven Blocks.\n"
"Only one refinement level for all dimensions is currently supported.\n"
"The number of gridpoints in the radial direction can be set\n"
"independently of the number of gridpoints in the angular directions.\n"
"The number of gridpoints along the dimensions of the cube is equal\n"
"to the number of gridpoints along the angular dimensions of the "
"wedges.\n"
"Equiangular coordinates give better gridpoint spacings in the angular\n"
"directions, while equidistant coordinates give better gridpoint\n"
"spacings in the center block."}

The documentation for this class was generated from the following file: