SpECTRE  2021.08.02
domain::creators::RotatedIntervals Class Reference

Create a 1D Domain consisting of two rotated Blocks. The left block has its logical \(\xi\)-axis aligned with the grid x-axis. The right block has its logical \(\xi\)-axis opposite to the grid x-axis. This is useful for testing code that deals with unaligned blocks. More...

#include <RotatedIntervals.hpp>

Classes

struct  BoundaryConditions
 
struct  InitialGridPoints
 
struct  InitialRefinement
 
struct  IsPeriodicIn
 
struct  LowerBound
 
struct  LowerBoundaryCondition
 
struct  Midpoint
 
struct  UpperBound
 
struct  UpperBoundaryCondition
 

Public Types

using maps_list = tmpl::list< domain::CoordinateMap< Frame::Logical, Frame::Inertial, domain::CoordinateMaps::DiscreteRotation< 1 >, CoordinateMaps::Affine > >
 
using common_options = tmpl::list< LowerBound, Midpoint, UpperBound, InitialRefinement, InitialGridPoints >
 
using options_periodic = tmpl::list< IsPeriodicIn >
 
template<typename System >
using options_boundary_conditions = tmpl::list< LowerBoundaryCondition< domain::BoundaryConditions::get_boundary_conditions_base< System > >, UpperBoundaryCondition< domain::BoundaryConditions::get_boundary_conditions_base< System > > >
 
template<typename Metavariables >
using options = tmpl::append< common_options, tmpl::conditional_t< domain::BoundaryConditions::has_boundary_conditions_base_v< typename Metavariables::system >, options_boundary_conditions< typename Metavariables::system >, options_periodic > >
 

Public Member Functions

 RotatedIntervals (typename LowerBound::type lower_x, typename Midpoint::type midpoint_x, typename UpperBound::type upper_x, typename InitialRefinement::type initial_refinement_level_x, typename InitialGridPoints::type initial_number_of_grid_points_in_x, typename IsPeriodicIn::type is_periodic_in) noexcept
 
 RotatedIntervals (typename LowerBound::type lower_x, typename Midpoint::type midpoint_x, typename UpperBound::type upper_x, typename InitialRefinement::type initial_refinement_level_x, typename InitialGridPoints::type initial_number_of_grid_points_in_x, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > lower_boundary_condition, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > upper_boundary_condition, const Options::Context &context={})
 
 RotatedIntervals (const RotatedIntervals &)=delete
 
 RotatedIntervals (RotatedIntervals &&) noexcept=default
 
RotatedIntervalsoperator= (const RotatedIntervals &)=delete
 
RotatedIntervalsoperator= (RotatedIntervals &&) noexcept=default
 
Domain< 1 > create_domain () const noexcept override
 
std::vector< std::array< size_t, 1 > > initial_extents () const noexcept override
 Obtain the initial grid extents of the Elements in each block. More...
 
std::vector< std::array< size_t, 1 > > initial_refinement_levels () const noexcept override
 Obtain the initial refinement levels of the blocks. More...
 
- Public Member Functions inherited from DomainCreator< 1 >
 DomainCreator (const DomainCreator< VolumeDim > &)=delete
 
 DomainCreator (DomainCreator< VolumeDim > &&) noexcept=default
 
DomainCreator< VolumeDim > & operator= (const DomainCreator< VolumeDim > &)=delete
 
DomainCreator< VolumeDim > & operator= (DomainCreator< VolumeDim > &&) noexcept=default
 
virtual auto functions_of_time () const noexcept -> 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 1D Domain consisting of two rotated Blocks. The left block has its logical \(\xi\)-axis aligned with the grid x-axis. The right block has its logical \(\xi\)-axis opposite to the grid x-axis. This is useful for testing code that deals with unaligned blocks.

Member Function Documentation

◆ create_domain()

Domain< 1 > domain::creators::RotatedIntervals::create_domain ( ) const
overridevirtualnoexcept

Implements DomainCreator< 1 >.

◆ initial_extents()

std::vector< std::array< size_t, 1 > > domain::creators::RotatedIntervals::initial_extents ( ) const
overridevirtualnoexcept

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

Implements DomainCreator< 1 >.

◆ initial_refinement_levels()

std::vector< std::array< size_t, 1 > > domain::creators::RotatedIntervals::initial_refinement_levels ( ) const
overridevirtualnoexcept

Obtain the initial refinement levels of the blocks.

Implements DomainCreator< 1 >.

Member Data Documentation

◆ help

constexpr Options::String domain::creators::RotatedIntervals::help
staticconstexpr
Initial value:
= {
"A DomainCreator useful for testing purposes.\n"
"RotatedIntervals creates the interval [LowerX,UpperX] from two\n"
"rotated Blocks. The outermost index to InitialGridPoints is the\n"
"dimension index (of which there is only one in the case of\n"
"RotatedIntervals), and the innermost index is the block index\n"
"along that dimension."}