SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
domain::creators::CartoonCylinder Class Reference

Create a 3D Domain with its computational domain being the \(x-y\) plane. The third dimension uses a Cartoon basis with Killing vector along the \(\phi\) direction. More...

#include <CartoonCylinder.hpp>

Classes

struct  BoundaryConditions
struct  Distributions
struct  InitialGridPoints
struct  InitialRefinement
struct  LowerBounds
struct  LowerUpperBoundaryCondition
struct  TimeDependence
struct  UpperBounds

Public Types

using maps_list
using basic_options
template<typename Metavariables>
using options

Public Member Functions

 CartoonCylinder (std::array< double, 2 > lower_bounds, std::array< double, 2 > upper_bounds, std::array< size_t, 2 > initial_refinement_levels, std::array< size_t, 2 > initial_num_points, std::array< CoordinateMaps::Distribution, 2 > distributions={}, std::unique_ptr< domain::creators::time_dependence::TimeDependence< 3 > > time_dependence=nullptr, std::array< std::array< std::unique_ptr< domain::BoundaryConditions::BoundaryCondition >, 2 >, 2 > boundary_conditions={}, const Options::Context &context={})
template<typename BoundaryConditionsBase>
 CartoonCylinder (std::array< double, 2 > lower_bounds, std::array< double, 2 > upper_bounds, std::array< size_t, 2 > initial_refinement_levels, std::array< size_t, 2 > initial_num_points, std::array< CoordinateMaps::Distribution, 2 > distributions={}, std::unique_ptr< domain::creators::time_dependence::TimeDependence< 3 > > time_dependence=nullptr, std::array< std::variant< std::unique_ptr< BoundaryConditionsBase >, LowerUpperBoundaryCondition< BoundaryConditionsBase > >, 2 > boundary_conditions={}, const Options::Context &context={})
 CartoonCylinder (const CartoonCylinder &)=delete
 CartoonCylinder (CartoonCylinder &&)=default
CartoonCylinderoperator= (const CartoonCylinder &)=delete
CartoonCylinderoperator= (CartoonCylinder &&)=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::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.
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 Member Functions

static std::string name ()
template<typename BoundaryConditionsBase>
static auto transform_boundary_conditions (std::array< std::variant< std::unique_ptr< BoundaryConditionsBase >, LowerUpperBoundaryCondition< BoundaryConditionsBase > >, 2 > boundary_conditions) -> std::array< std::array< std::unique_ptr< domain::BoundaryConditions::BoundaryCondition >, 2 >, 2 >

Static Public Attributes

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

Detailed Description

Create a 3D Domain with its computational domain being the \(x-y\) plane. The third dimension uses a Cartoon basis with Killing vector along the \(\phi\) direction.

Member Typedef Documentation

◆ basic_options

using domain::creators::CartoonCylinder::basic_options
Initial value:
Time dependence of the domain.
Definition AngularCylinder.hpp:182
Definition CartoonCylinder.hpp:75
Definition CartoonCylinder.hpp:51
Definition CartoonCylinder.hpp:57

◆ maps_list

using domain::creators::CartoonCylinder::maps_list
Initial value:
A coordinate map or composition of coordinate maps.
Definition CoordinateMap.hpp:314
Identity map from .
Definition Identity.hpp:28
Maps in the 1D interval to in the interval according to a domain::CoordinateMaps::Distribution.
Definition Interval.hpp:82
Product of three one-dimensional CoordinateMaps.
Definition ProductMaps.hpp:92
Definition IndexType.hpp:42
Definition IndexType.hpp:46

◆ options

template<typename Metavariables>
using domain::creators::CartoonCylinder::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>
Domain support for applying boundary conditions
Definition BoundaryCondition.hpp:14
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

Member Function Documentation

◆ block_groups()

std::unordered_map< std::string, std::unordered_set< std::string > > domain::creators::CartoonCylinder::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::CartoonCylinder::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::CartoonCylinder::create_domain ( ) const
overridevirtual

Implements DomainCreator< 3 >.

◆ external_boundary_conditions()

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

Obtain the initial refinement levels of the blocks.

Implements DomainCreator< 3 >.

Member Data Documentation

◆ help

Options::String domain::creators::CartoonCylinder::help
staticconstexpr
Initial value:
{
"A cylinder domain that requires/enforces axial symmetry. The "
"computational domain is the x-y plane, with Cartoon partial derivatives "
"being used for the z direction."}

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