SpECTRE  v2022.12.02
domain Namespace Reference

Holds entities related to the computational domain. More...

Namespaces

namespace  BoundaryConditions
 Domain support for applying boundary conditions
 
namespace  CoordinateMaps
 Contains all coordinate maps.
 
namespace  creators
 Defines classes that create Domains.
 
namespace  FunctionsOfTime
 Contains functions of time to support the dual frame system.
 
namespace  Tags
 Tags for the domain.
 

Classes

class  BlockId
 Index a block of the computational domain. More...
 
struct  BlockZCurveProcDistribution
 Distribution strategy for assigning elements to CPUs using a Morton ('Z-order') space-filling curve to determine placement within each block. More...
 
struct  CheckFunctionsOfTimeAreReadyPostprocessor
 check that functions of time are up-to-date. More...
 
class  CoordinateMap
 A coordinate map or composition of coordinate maps. More...
 
class  CoordinateMapBase
 Abstract base class for CoordinateMap. More...
 
struct  ExpandOverBlocks
 Produce a distribution of type T over all blocks and dimensions in the domain, based on values T of variable isotropy and homogeneity. More...
 
struct  make_faces_tag
 Wrap Tag in domain::Tags::Faces, unless Tag is in the VolumeTags list. More...
 

Typedefs

template<typename T >
using is_map_time_dependent_t = tt::is_callable_t< T, std::array< std::decay_t< T >, std::decay_t< T >::dim >, double, std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > >
 Check if the calls to the coordinate map and its inverse map are time-dependent.
 
template<typename Map , typename T >
using is_jacobian_time_dependent_t = detail::is_jacobian_callable_t< Map, std::array< std::decay_t< T >, std::decay_t< Map >::dim >, double, std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > >
 Check if the calls to the Jacobian and inverse Jacobian of the coordinate map are time-dependent.
 
template<size_t Dim, typename TagsList , typename VolumeTags = tmpl::list<>>
using make_faces_tags = tmpl::transform< TagsList, make_faces_tag< tmpl::pin< tmpl::size_t< Dim > >, tmpl::_1, tmpl::pin< VolumeTags > > >
 Wrap all tags in TagsList in domain::Tags::Faces, except those in the VolumeTags list.
 

Functions

template<typename SourceFrame , typename TargetFrame , typename... Maps>
auto make_coordinate_map (Maps &&... maps) -> CoordinateMap< SourceFrame, TargetFrame, std::decay_t< Maps >... >
 Creates a CoordinateMap of maps...
 
template<typename SourceFrame , typename TargetFrame , typename... Maps>
auto make_coordinate_map_base (Maps &&... maps) -> std::unique_ptr< CoordinateMapBase< SourceFrame, TargetFrame, CoordinateMap< SourceFrame, TargetFrame, std::decay_t< Maps >... >::dim > >
 Creates a std::unique_ptr<CoordinateMapBase> of maps...
 
template<typename SourceFrame , typename TargetFrame , typename Arg0 , typename... Args>
auto make_vector_coordinate_map_base (Arg0 &&arg_0, Args &&... remaining_args) -> std::vector< std::unique_ptr< CoordinateMapBase< SourceFrame, TargetFrame, std::decay_t< Arg0 >::dim > > >
 Creates a std::vector<std::unique_ptr<CoordinateMapBase>> containing the result of make_coordinate_map_base applied to each argument passed in.
 
template<typename SourceFrame , typename TargetFrame , size_t Dim, typename Map , typename... Maps>
auto make_vector_coordinate_map_base (std::vector< Map > maps, const Maps &... remaining_maps) -> std::vector< std::unique_ptr< CoordinateMapBase< SourceFrame, TargetFrame, Dim > > >
 Creates a std::vector<std::unique_ptr<CoordinateMapBase>> containing the result of make_coordinate_map_base applied to each element of the vector of maps composed with the rest of the arguments passed in.
 
template<typename SourceFrame , typename TargetFrame , typename... Maps, typename NewMap >
CoordinateMap< SourceFrame, TargetFrame, Maps..., NewMap > push_back (CoordinateMap< SourceFrame, TargetFrame, Maps... > old_map, NewMap new_map)
 Creates a CoordinateMap by appending the new map to the end of the old maps.
 
template<typename SourceFrame , typename TargetFrame , typename... Maps, typename NewMap >
CoordinateMap< SourceFrame, TargetFrame, NewMap, Maps... > push_front (CoordinateMap< SourceFrame, TargetFrame, Maps... > old_map, NewMap new_map)
 Creates a CoordinateMap by prepending the new map to the beginning of the old maps.
 
template<size_t Dim, typename Metavariables >
std::string diagnostic_info (const Domain< Dim > &domain, const Parallel::GlobalCache< Metavariables > &cache, const std::vector< size_t > &elements_per_core, const std::vector< size_t > &elements_per_node, const std::vector< size_t > &grid_points_per_core, const std::vector< size_t > &grid_points_per_node)
 Returns a std::string with diagnostic information about how elements and grid points are distributed on the nodes and cores.
 
template<typename CacheTag , typename Metavariables , typename ArrayIndex , typename Component , size_t N = 0>
bool functions_of_time_are_ready (Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const Component *, const double time, const std::array< std::string, N > &functions_to_check=std::array< std::string, 0 >{})
 Check that functions of time are up-to-date. More...
 
bool operator== (const BlockId &lhs, const BlockId &rhs)
 
bool operator!= (const BlockId &lhs, const BlockId &rhs)
 
std::ostreamoperator<< (std::ostream &os, const BlockId &block_id)
 
template<size_t Dim, typename T >
void remove_nonexistent_neighbors (const gsl::not_null< FixedHashMap< maximum_number_of_neighbors(Dim), std::pair< Direction< Dim >, ElementId< Dim > >, T, boost::hash< std::pair< Direction< Dim >, ElementId< Dim > > > > * > map_to_trim, const Element< Dim > &element)
 Remove entries in map_to_trim that aren't face neighbors of the element
 
Spectral::ChildSize child_size (const SegmentId &child_segment_id, const SegmentId &parent_segment_id)
 Size of a child segment relative to its parent. More...
 
template<size_t Dim>
std::array< Spectral::ChildSize, Dim > child_size (const std::array< SegmentId, Dim > &child_segment_ids, const std::array< SegmentId, Dim > &parent_segment_ids)
 Size of a child segment relative to its parent. More...
 

Variables

template<typename T >
constexpr bool is_map_time_dependent_v = is_map_time_dependent_t<T>::value
 Check if the calls to the coordinate map and its inverse map are time-dependent.
 
template<typename Map , typename T >
constexpr bool is_jacobian_time_dependent_v
 Check if the calls to the Jacobian and inverse Jacobian of the coordinate map are time-dependent. More...
 

Detailed Description

Holds entities related to the computational domain.

Function Documentation

◆ child_size() [1/2]

Spectral::ChildSize domain::child_size ( const SegmentId child_segment_id,
const SegmentId parent_segment_id 
)

Size of a child segment relative to its parent.

Determines which part of the parent_segment_id is covered by the child_segment_id: The full segment, its lower half or its upper half.

◆ child_size() [2/2]

template<size_t Dim>
std::array< Spectral::ChildSize, Dim > domain::child_size ( const std::array< SegmentId, Dim > &  child_segment_ids,
const std::array< SegmentId, Dim > &  parent_segment_ids 
)

Size of a child segment relative to its parent.

Determines which part of the parent_segment_id is covered by the child_segment_id: The full segment, its lower half or its upper half.

Variable Documentation

◆ is_jacobian_time_dependent_v

template<typename Map , typename T >
constexpr bool domain::is_jacobian_time_dependent_v
constexpr
Initial value:
=
detail::is_jacobian_callable_t< Map, std::array< std::decay_t< T >, std::decay_t< Map >::dim >, double, std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > > is_jacobian_time_dependent_t
Check if the calls to the Jacobian and inverse Jacobian of the coordinate map are time-dependent.
Definition: TimeDependentHelpers.hpp:41

Check if the calls to the Jacobian and inverse Jacobian of the coordinate map are time-dependent.