SpECTRE
v2024.12.16
|
Create a 3D Domain consisting of eight rotated Blocks. More...
#include <RotatedBricks.hpp>
Classes | |
struct | BoundaryCondition |
struct | InitialGridPoints |
struct | InitialRefinement |
struct | IsPeriodicIn |
struct | LowerBound |
struct | Midpoint |
struct | UpperBound |
Public Member Functions | |
RotatedBricks (typename LowerBound::type lower_xyz, typename Midpoint::type midpoint_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) | |
RotatedBricks (typename LowerBound::type lower_xyz, typename Midpoint::type midpoint_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, const Options::Context &context={}) | |
RotatedBricks (const RotatedBricks &)=delete | |
RotatedBricks (RotatedBricks &&)=default | |
RotatedBricks & | operator= (const RotatedBricks &)=delete |
RotatedBricks & | operator= (RotatedBricks &&)=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. More... | |
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::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. More... | |
virtual std::vector< DirectionMap< VolumeDim, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > | external_boundary_conditions () const=0 |
The set of external boundary condition for every block in the domain. More... | |
virtual std::vector< std::string > | block_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, double > &initial_expiration_times={}) 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 |
Static Public Attributes inherited from DomainCreator< 3 > | |
static constexpr size_t | volume_dim |
Create a 3D Domain consisting of eight rotated Blocks.
The orientations of the blocks are described in two different ways:
For reference, this is the notation used:
For reference, D, L, and B ("down", "left", and "back") are the inverse rotation to the aforementioned ones, respectively. Note: Whereas Rubik's cube rotations rotate a layer of the 3x3 puzzle cube, we are adopting the notation to apply to rotations of the cube itself.
This DomainCreator is useful for testing code that deals with unaligned blocks.
|
overridevirtual |
Implements DomainCreator< 3 >.
|
overridevirtual |
The set of external boundary condition for every block in the domain.
Implements DomainCreator< 3 >.
|
overridevirtual |
Obtain the initial grid extents of the Elements in each block.
Implements DomainCreator< 3 >.
|
overridevirtual |
Obtain the initial refinement levels of the blocks.
Implements DomainCreator< 3 >.
|
staticconstexpr |