SpECTRE  2021.08.02
domain::creators::Rectangle Class Reference

Create a 2D Domain consisting of a single Block. More...

#include <Rectangle.hpp>

Classes

struct  BoundaryCondition
 
struct  InitialGridPoints
 
struct  InitialRefinement
 
struct  IsPeriodicIn
 
struct  LowerBound
 
struct  TimeDependence
 
struct  UpperBound
 

Public Types

using maps_list = tmpl::list< domain::CoordinateMap< Frame::Logical, Frame::Inertial, CoordinateMaps::ProductOf2Maps< CoordinateMaps::Affine, CoordinateMaps::Affine > > >
 
using common_options = tmpl::list< LowerBound, UpperBound, InitialRefinement, InitialGridPoints >
 
using options_periodic = tmpl::list< IsPeriodicIn >
 
template<typename Metavariables >
using options = tmpl::append< common_options, tmpl::conditional_t< domain::BoundaryConditions::has_boundary_conditions_base_v< typename Metavariables::system >, tmpl::list< BoundaryCondition< domain::BoundaryConditions::get_boundary_conditions_base< typename Metavariables::system > > >, options_periodic >, tmpl::list< TimeDependence > >
 

Public Member Functions

 Rectangle (typename LowerBound::type lower_xy, typename UpperBound::type upper_xy, typename InitialRefinement::type initial_refinement_level_xy, typename InitialGridPoints::type initial_number_of_grid_points_in_xy, typename IsPeriodicIn::type is_periodic_in_xy, std::unique_ptr< domain::creators::time_dependence::TimeDependence< 2 > > time_dependence=nullptr) noexcept
 
 Rectangle (typename LowerBound::type lower_xy, typename UpperBound::type upper_xy, typename InitialRefinement::type initial_refinement_level_xy, typename InitialGridPoints::type initial_number_of_grid_points_in_xy, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > boundary_condition, std::unique_ptr< domain::creators::time_dependence::TimeDependence< 2 > > time_dependence, const Options::Context &context={})
 
 Rectangle (const Rectangle &)=delete
 
 Rectangle (Rectangle &&) noexcept=default
 
Rectangleoperator= (const Rectangle &)=delete
 
Rectangleoperator= (Rectangle &&) noexcept=default
 
Domain< 2 > create_domain () const noexcept override
 
std::vector< std::array< size_t, 2 > > initial_extents () const noexcept override
 Obtain the initial grid extents of the Elements in each block. More...
 
std::vector< std::array< size_t, 2 > > initial_refinement_levels () const noexcept override
 Obtain the initial refinement levels of the blocks. More...
 
auto functions_of_time () const noexcept -> 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< 2 >
 DomainCreator (const DomainCreator< VolumeDim > &)=delete
 
 DomainCreator (DomainCreator< VolumeDim > &&) noexcept=default
 
DomainCreator< VolumeDim > & operator= (const DomainCreator< VolumeDim > &)=delete
 
DomainCreator< VolumeDim > & operator= (DomainCreator< VolumeDim > &&) noexcept=default
 

Static Public Attributes

static constexpr Options::String help {"Creates a 2D rectangle."}
 

Detailed Description

Create a 2D Domain consisting of a single Block.

Member Function Documentation

◆ create_domain()

Domain< 2 > domain::creators::Rectangle::create_domain ( ) const
overridevirtualnoexcept

Implements DomainCreator< 2 >.

◆ functions_of_time()

auto domain::creators::Rectangle::functions_of_time ( ) const -> std::unordered_map< std::string, std::unique_ptr<domain::FunctionsOfTime::FunctionOfTime>>
overridevirtualnoexcept

Retrieve the functions of time used for moving meshes.

Reimplemented from DomainCreator< 2 >.

◆ initial_extents()

std::vector< std::array< size_t, 2 > > domain::creators::Rectangle::initial_extents ( ) const
overridevirtualnoexcept

Obtain the initial grid extents of the Elements in each block.

Implements DomainCreator< 2 >.

◆ initial_refinement_levels()

std::vector< std::array< size_t, 2 > > domain::creators::Rectangle::initial_refinement_levels ( ) const
overridevirtualnoexcept

Obtain the initial refinement levels of the blocks.

Implements DomainCreator< 2 >.