SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
domain::creators::FrustalCloak Class Reference

Create a 3D cubical domain with two equal-sized abutting excised cubes in the center. This is done by combining ten frusta. More...

#include <FrustalCloak.hpp>

Classes

struct  BoundaryCondition
struct  InitialGridPoints
struct  InitialRefinement
struct  LengthInnerCube
struct  LengthOuterCube
struct  OriginPreimage
struct  ProjectionFactor
struct  UseEquiangularMap

Public Types

using maps_list
using basic_options
template<typename Metavariables>
using options

Public Member Functions

 FrustalCloak (typename InitialRefinement::type initial_refinement_level, typename InitialGridPoints::type initial_number_of_grid_points, typename UseEquiangularMap::type use_equiangular_map=false, typename ProjectionFactor::type projection_factor=1.0, typename LengthInnerCube::type length_inner_cube=0.0, typename LengthOuterCube::type length_outer_cube=0.0, typename OriginPreimage::type origin_preimage={{0.0, 0.0, 0.0}}, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > boundary_condition=nullptr, const Options::Context &context={})
 FrustalCloak (const FrustalCloak &)=delete
 FrustalCloak (FrustalCloak &&)=default
FrustalCloakoperator= (const FrustalCloak &)=delete
FrustalCloakoperator= (FrustalCloak &&)=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.
std::vector< std::array< size_t, 3 > > initial_extents () const override
 Obtain the initial grid extents of the Elements in each block.
std::vector< std::array< size_t, 3 > > initial_refinement_levels () const override
 Obtain the initial refinement levels of the blocks.
Public Member Functions inherited from DomainCreator< 3 >
DomainCreator< VolumeDim > & operator= (const DomainCreator< VolumeDim > &)=delete
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.
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).
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.
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.

Static Public Attributes

static constexpr Options::String help
Static Public Attributes inherited from DomainCreator< 3 >
static constexpr size_t volume_dim

Detailed Description

Create a 3D cubical domain with two equal-sized abutting excised cubes in the center. This is done by combining ten frusta.

A slice through the frustal cloak.

Member Typedef Documentation

◆ basic_options

using domain::creators::FrustalCloak::basic_options

◆ maps_list

using domain::creators::FrustalCloak::maps_list
Initial value:
A coordinate map or composition of coordinate maps.
Definition CoordinateMap.hpp:314
A reorientable map from the cube to a frustum.
Definition Frustum.hpp:261
Definition IndexType.hpp:42
Definition IndexType.hpp:46

◆ options

template<typename Metavariables>
using domain::creators::FrustalCloak::options
Initial value:
tmpl::conditional_t<
domain::BoundaryConditions::has_boundary_conditions_base_v<
typename Metavariables::system>,
tmpl::push_back<
basic_options,
typename Metavariables::system>>>,
basic_options>
typename detail::get_boundary_conditions_base< T >::type get_boundary_conditions_base
Returns T::boundary_condition_base or a placeholder class.
Definition GetBoundaryConditionsBase.hpp:32
Boundary condition to impose on outer side.
Definition AngularDisk.hpp:102

Member Function Documentation

◆ create_domain()

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

Implements DomainCreator< 3 >.

◆ external_boundary_conditions()

std::vector< DirectionMap< 3, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > domain::creators::FrustalCloak::external_boundary_conditions ( ) const
overridevirtual

The set of external boundary condition for every block in the domain.

Implements DomainCreator< 3 >.

◆ initial_extents()

std::vector< std::array< size_t, 3 > > domain::creators::FrustalCloak::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::FrustalCloak::initial_refinement_levels ( ) const
overridevirtual

Obtain the initial refinement levels of the blocks.

Implements DomainCreator< 3 >.

Member Data Documentation

◆ help

Options::String domain::creators::FrustalCloak::help
staticconstexpr
Initial value:
{
"Creates a cubical domain with two equal-sized abutting excised cubes\n"
"in the center. This is done by combining ten frusta. The parameter\n"
"`UseEquiangularMap` can be used to apply a tangent mapping to the xi\n"
"and eta logical coordinates of each frustum, while the parameter\n"
"`ProjectionFactor` can be used to apply a projective map to the zeta\n"
"logical coordinate of each frustum. Increasing the\n"
"`ProjectionFactor` value can give better gridpoint spacings in the\n"
"z direction. The user also specifies values for `LengthInnerCube` and\n"
"`LengthOuterCube`. This will create a cubical Domain of side"
"length `LengthOuterCube` with the center excised. The size of the\n"
"excised region is determined by the value set for `LengthInnerCube`.\n"
"`OriginPreimage` moves the blocks such that the origin preimage is\n"
"mapped to the origin. Note that the abutting excised cubes share a\n"
"face in the x-direction. This Domain is primarily for testing the\n"
"frustal cloak in the BinaryCompactObject Domain."}

The documentation for this class was generated from the following file:
  • src/Domain/Creators/FrustalCloak.hpp