SpECTRE  v2026.06.30
Loading...
Searching...
No Matches
domain::creators::Hypertorus< Dim > Class Template Reference

Create a domain consisting of a single Block with the topology of a hypertorus in Dim dimensions. More...

#include <Hypertorus.hpp>

Classes

struct  InitialMaximumModeNumber
 Initial maximum mode number \(M\) retained in the Fourier basis in each dimension. More...
struct  LowerBound
 Lower coordinate bound in each dimension. More...
struct  TimeDependence
 Time dependence for the domain. Specify None for no time dependent maps. More...
struct  UpperBound
 Upper coordinate bound in each dimension. More...

Public Types

using maps_list
template<typename Metavariables>
using options

Public Member Functions

 Hypertorus (const std::array< double, Dim > &lower_bounds, const std::array< double, Dim > &upper_bounds, const std::array< size_t, Dim > &initial_max_modes, std::unique_ptr< domain::creators::time_dependence::TimeDependence< Dim > > time_dependence=nullptr, const Options::Context &context={})
 Hypertorus (const Hypertorus &)=delete
 Hypertorus (Hypertorus &&)=default
Hypertorusoperator= (const Hypertorus &)=delete
Hypertorusoperator= (Hypertorus &&)=default
Domain< Dim > create_domain () const override
std::vector< DirectionMap< Dim, 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, Dim > > initial_extents () const override
 Obtain the initial grid extents of the Elements in each block.
std::vector< std::array< size_t, Dim > > initial_refinement_levels () const override
 Obtain the initial refinement levels of the blocks.
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 > > override
 Retrieve the functions of time used for moving meshes.
std::vector< std::stringblock_names () const override
 A human-readable name for every block, or empty if the domain creator doesn't support block names (yet).
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.
Public Member Functions inherited from DomainCreator< Dim >
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.

Static Public Member Functions

static std::string name ()

Static Public Attributes

static constexpr Options::String help {"A periodic rectilinear domain."}
Static Public Attributes inherited from DomainCreator< Dim >
static constexpr size_t volume_dim

Detailed Description

template<size_t Dim>
class domain::creators::Hypertorus< Dim >

Create a domain consisting of a single Block with the topology of a hypertorus in Dim dimensions.

Details

The domain will have topology S1 (i.e. is periodic) in each dimension. Therefore the domain has no external boundaries. The domain cannot be refined, and is intended for using DG with a Fourier basis in each dimension. If you want to h-refine a periodic domain, use one of the rectilinear domain creators (i.e. Interval, Rectangle, or Brick).

Member Typedef Documentation

◆ maps_list

template<size_t Dim>
using domain::creators::Hypertorus< Dim >::maps_list
Initial value:
tmpl::conditional_t<Dim == 1, Affine,
tmpl::conditional_t<Dim == 2, Affine2D, Affine3D>>>>
A coordinate map or composition of coordinate maps.
Definition CoordinateMap.hpp:314
Definition IndexType.hpp:42
Definition IndexType.hpp:46

◆ options

template<size_t Dim>
template<typename Metavariables>
using domain::creators::Hypertorus< Dim >::options
Initial value:
Initial maximum mode number retained in the Fourier basis in each dimension.
Definition Hypertorus.hpp:89
Lower coordinate bound in each dimension.
Definition Hypertorus.hpp:74
Time dependence for the domain. Specify None for no time dependent maps.
Definition Hypertorus.hpp:96
Upper coordinate bound in each dimension.
Definition Hypertorus.hpp:80

Member Function Documentation

◆ block_groups()

template<size_t Dim>
std::unordered_map< std::string, std::unordered_set< std::string > > domain::creators::Hypertorus< Dim >::block_groups ( ) const
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< Dim >.

◆ block_names()

template<size_t Dim>
std::vector< std::string > domain::creators::Hypertorus< Dim >::block_names ( ) const
inlineoverridevirtual

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

Reimplemented from DomainCreator< Dim >.

◆ create_domain()

template<size_t Dim>
Domain< Dim > domain::creators::Hypertorus< Dim >::create_domain ( ) const
overridevirtual

Implements DomainCreator< Dim >.

◆ external_boundary_conditions()

template<size_t Dim>
std::vector< DirectionMap< Dim, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > domain::creators::Hypertorus< Dim >::external_boundary_conditions ( ) const
overridevirtual

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

Implements DomainCreator< Dim >.

◆ functions_of_time()

template<size_t Dim>
auto domain::creators::Hypertorus< Dim >::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>>
overridevirtual

Retrieve the functions of time used for moving meshes.

Reimplemented from DomainCreator< Dim >.

◆ initial_extents()

template<size_t Dim>
std::vector< std::array< size_t, Dim > > domain::creators::Hypertorus< Dim >::initial_extents ( ) const
overridevirtual

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

Implements DomainCreator< Dim >.

◆ initial_refinement_levels()

template<size_t Dim>
std::vector< std::array< size_t, Dim > > domain::creators::Hypertorus< Dim >::initial_refinement_levels ( ) const
overridevirtual

Obtain the initial refinement levels of the blocks.

Implements DomainCreator< Dim >.


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