SpECTRE  v2024.09.29
DomainCreator< VolumeDim > Class Template Referenceabstract

Base class for creating Domains from an option string. More...

#include <DomainCreator.hpp>

Public Member Functions

 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::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, 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 size_t volume_dim = VolumeDim
 

Detailed Description

template<size_t VolumeDim>
class DomainCreator< VolumeDim >

Base class for creating Domains from an option string.

Member Function Documentation

◆ block_groups()

template<size_t VolumeDim>
virtual std::unordered_map< std::string, std::unordered_set< std::string > > DomainCreator< VolumeDim >::block_groups ( ) const
inlinevirtual

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 in domain::creators::BinaryCompactObject< UseWorldtube >, domain::creators::Cylinder, domain::creators::CylindricalBinaryCompactObject, and domain::creators::Sphere.

◆ block_names()

template<size_t VolumeDim>
virtual std::vector< std::string > DomainCreator< VolumeDim >::block_names ( ) const
inlinevirtual

A human-readable name for every block, or empty if the domain creator doesn't support block names (yet).

Reimplemented in domain::creators::BinaryCompactObject< UseWorldtube >, domain::creators::Cylinder, domain::creators::CylindricalBinaryCompactObject, domain::creators::Rectilinear< Dim >, and domain::creators::Sphere.

◆ external_boundary_conditions()

◆ functions_of_time()

template<size_t VolumeDim>
virtual auto DomainCreator< VolumeDim >::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>>
inlinevirtual

◆ grid_anchors()

template<size_t VolumeDim>
virtual std::unordered_map< std::string, tnsr::I< double, VolumeDim, Frame::Grid > > DomainCreator< VolumeDim >::grid_anchors ( ) const
inlinevirtual

A set of named coordinates in the grid frame, like the center of the domain or the positions of specific objects in a domain.

Reimplemented in domain::creators::BinaryCompactObject< UseWorldtube >, domain::creators::CylindricalBinaryCompactObject, and domain::creators::Sphere.

◆ initial_extents()

◆ initial_refinement_levels()


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