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

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

#include <Brick.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::BlockLogical, Frame::Inertial, CoordinateMaps::ProductOf3Maps< CoordinateMaps::Affine, 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

 Brick (typename LowerBound::type lower_xyz, typename UpperBound::type upper_xyz, typename InitialRefinement::type initial_refinement_level_xyz, typename InitialGridPoints::type initial_number_of_grid_points_in_xyz, typename IsPeriodicIn::type is_periodic_in_xyz, std::unique_ptr< domain::creators::time_dependence::TimeDependence< 3 > > time_dependence=nullptr)
 
 Brick (typename LowerBound::type lower_xyz, typename UpperBound::type upper_xyz, typename InitialRefinement::type initial_refinement_level_xyz, typename InitialGridPoints::type initial_number_of_grid_points_in_xyz, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > boundary_condition=nullptr, std::unique_ptr< domain::creators::time_dependence::TimeDependence< 3 > > time_dependence=nullptr, const Options::Context &context={})
 
 Brick (const Brick &)=delete
 
 Brick (Brick &&)=default
 
Brickoperator= (const Brick &)=delete
 
Brickoperator= (Brick &&)=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...
 
auto functions_of_time () 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::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 {"Creates a 3D brick."}
 

Detailed Description

Create a 3D Domain consisting of a single Block.

Member Function Documentation

◆ create_domain()

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

Implements DomainCreator< 3 >.

◆ functions_of_time()

auto domain::creators::Brick::functions_of_time ( ) 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::Brick::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::Brick::initial_refinement_levels ( ) const
overridevirtual

Obtain the initial refinement levels of the blocks.

Implements DomainCreator< 3 >.


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