Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
domain::creators::AlignedLattice< VolumeDim, TargetFrame > Class Template Reference

Create a Domain consisting of multiple aligned Blocks arrayed in a lattice. More...

#include <AlignedLattice.hpp>

Classes

struct  BlockBounds
 
struct  BlocksToExclude
 
struct  InitialGridPoints
 
struct  InitialRefinement
 
struct  IsPeriodicIn
 

Public Types

using options = tmpl::list< BlockBounds, IsPeriodicIn, InitialRefinement, InitialGridPoints, BlocksToExclude >
 
- Public Types inherited from DomainCreator< VolumeDim, TargetFrame >
using creatable_classes = typename DomainCreators_detail::domain_creators< VolumeDim >::template creators< TargetFrame >
 

Public Member Functions

 AlignedLattice (typename BlockBounds::type block_bounds, typename IsPeriodicIn::type is_periodic_in, typename InitialRefinement::type initial_refinement_levels, typename InitialGridPoints::type initial_number_of_grid_points, typename BlocksToExclude::type blocks_to_exclude) noexcept
 
 AlignedLattice (const AlignedLattice &)=delete
 
 AlignedLattice (AlignedLattice &&) noexcept=default
 
AlignedLatticeoperator= (const AlignedLattice &)=delete
 
AlignedLatticeoperator= (AlignedLattice &&) noexcept=default
 
Domain< VolumeDim, TargetFrame > create_domain () const noexcept override
 
std::vector< std::array< size_t, VolumeDim > > initial_extents () const noexcept override
 Obtain the initial grid extents of the block with the given index.
 
std::vector< std::array< size_t, VolumeDim > > initial_refinement_levels () const noexcept override
 Obtain the initial refinement levels of the blocks.
 
- Public Member Functions inherited from DomainCreator< VolumeDim, TargetFrame >
 DomainCreator (const DomainCreator< VolumeDim, TargetFrame > &)=delete
 
 DomainCreator (DomainCreator< VolumeDim, TargetFrame > &&) noexcept=default
 
DomainCreator< VolumeDim, TargetFrame > & operator= (const DomainCreator< VolumeDim, TargetFrame > &)=delete
 
DomainCreator< VolumeDim, TargetFrame > & operator= (DomainCreator< VolumeDim, TargetFrame > &&) noexcept=default
 

Static Public Attributes

static constexpr OptionString help
 

Detailed Description

template<size_t VolumeDim, typename TargetFrame>
class domain::creators::AlignedLattice< VolumeDim, TargetFrame >

Create a Domain consisting of multiple aligned Blocks arrayed in a lattice.

This is useful for setting up problems with piecewise smooth initial data, problems that specify different boundary conditions on distinct parts of the boundary, or problems that need different length scales initially.

Note
Adaptive mesh refinement can never join Blocks, so use the fewest number of Blocks that your problem needs. More initial Elements can be created by specifying a larger InitialRefinement.

Member Data Documentation

◆ help

template<size_t VolumeDim, typename TargetFrame >
constexpr OptionString domain::creators::AlignedLattice< VolumeDim, TargetFrame >::help
static
Initial value:
= {
"AlignedLattice creates a regular lattice of blocks whose corners are\n"
"given by tensor products of the specified BlockBounds. Each Block in\n"
"the lattice is identified by a VolumeDim-tuple of zero-based indices\n"
"Supplying a list of these tuples to BlocksToExclude will result in\n"
"the domain having the corresponding Blocks excluded. See the Domain\n"
"Creation tutorial in the documentation for more information on Block\n"
"numberings in rectilinear domains. Note that if any Blocks are\n"
"excluded, setting the option IsPeriodicIn to `true` in any dimension\n"
"will trigger an error, as periodic boundary\n"
"conditions for this domain with holes is not supported."}

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