SpECTRE
v2022.05.05
|
Create a 3D Domain in the shape of a cylinder where the cross-section is a square surrounded by four two-dimensional wedges (see Wedge
).
More...
#include <Cylinder.hpp>
Classes | |
struct | BoundaryConditions |
struct | DistributionInZ |
struct | InitialGridPoints |
struct | InitialRefinement |
struct | InnerRadius |
struct | IsPeriodicInZ |
struct | LowerZBound |
struct | LowerZBoundaryCondition |
struct | MantleBoundaryCondition |
struct | OuterRadius |
struct | PartitioningInZ |
struct | RadialDistribution |
struct | RadialPartitioning |
struct | UpperZBound |
struct | UpperZBoundaryCondition |
struct | UseEquiangularMap |
Public Member Functions | |
Cylinder (double inner_radius, double outer_radius, double lower_z_bound, double upper_z_bound, bool is_periodic_in_z, const typename InitialRefinement::type &initial_refinement, const typename InitialGridPoints::type &initial_number_of_grid_points, bool use_equiangular_map, std::vector< double > radial_partitioning={}, std::vector< double > partitioning_in_z={}, std::vector< domain::CoordinateMaps::Distribution > radial_distribution={domain::CoordinateMaps::Distribution::Linear}, std::vector< domain::CoordinateMaps::Distribution > distribution_in_z={domain::CoordinateMaps::Distribution::Linear}, const Options::Context &context={}) | |
Cylinder (double inner_radius, double outer_radius, double lower_z_bound, double upper_z_bound, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > lower_z_boundary_condition, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > upper_z_boundary_condition, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > mantle_boundary_condition, const typename InitialRefinement::type &initial_refinement, const typename InitialGridPoints::type &initial_number_of_grid_points, bool use_equiangular_map, std::vector< double > radial_partitioning={}, std::vector< double > partitioning_in_z={}, std::vector< domain::CoordinateMaps::Distribution > radial_distribution={domain::CoordinateMaps::Distribution::Linear}, std::vector< domain::CoordinateMaps::Distribution > distribution_in_z={domain::CoordinateMaps::Distribution::Linear}, const Options::Context &context={}) | |
Cylinder (const Cylinder &)=delete | |
Cylinder (Cylinder &&)=default | |
Cylinder & | operator= (const Cylinder &)=delete |
Cylinder & | operator= (Cylinder &&)=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... | |
std::vector< std::string > | block_names () const override |
A human-readable name for every block, or empty if the domain creator doesn't support block names (yet). More... | |
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. More... | |
![]() | |
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::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 |
Create a 3D Domain in the shape of a cylinder where the cross-section is a square surrounded by four two-dimensional wedges (see Wedge
).
The outer shell can be split into sub-shells and the cylinder can be split into disks along its height. The block numbering starts at the inner square and goes counter-clockwise, starting with the eastern wedge (+x-direction), through consecutive shells, then repeats this pattern for all layers bottom to top.
|
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 >.
|
inlineoverridevirtual |
A human-readable name for every block, or empty if the domain creator doesn't support block names (yet).
Reimplemented from DomainCreator< 3 >.
|
overridevirtual |
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 |