SpECTRE  v2022.06.14
DgElementArray< Metavariables, PhaseDepActionList > Struct Template Reference

The parallel component responsible for managing the DG elements that compose the computational domain. More...

#include <DgElementArray.hpp>

Public Types

using chare_type = Parallel::Algorithms::Array
 
using metavariables = Metavariables
 
using phase_dependent_action_list = PhaseDepActionList
 
using array_index = ElementId< volume_dim >
 
using const_global_cache_tags = tmpl::list< domain::Tags::Domain< volume_dim > >
 
using array_allocation_tags = tmpl::list< domain::Tags::InitialRefinementLevels< volume_dim > >
 
using initialization_tags = tmpl::append< Parallel::get_initialization_tags< Parallel::get_initialization_actions_list< phase_dependent_action_list >, array_allocation_tags >, tmpl::list< Parallel::Tags::AvoidGlobalProc0 > >
 

Static Public Member Functions

static void allocate_array (Parallel::CProxy_GlobalCache< Metavariables > &global_cache, const tuples::tagged_tuple_from_typelist< initialization_tags > &initialization_items, const std::unordered_set< size_t > &procs_to_ignore={})
 
static void execute_next_phase (const typename Metavariables::Phase next_phase, Parallel::CProxy_GlobalCache< Metavariables > &global_cache)
 

Static Public Attributes

static constexpr size_t volume_dim = Metavariables::volume_dim
 

Detailed Description

template<class Metavariables, class PhaseDepActionList>
struct DgElementArray< Metavariables, PhaseDepActionList >

The parallel component responsible for managing the DG elements that compose the computational domain.

This parallel component will perform the actions specified by the PhaseDepActionList.

The element assignment to processors is performed by domain::BlockZCurveProcDistribution (using a Morton space-filling curve), unless static constexpr bool use_z_order_distribution = false; is specified in the Metavariables, in which case elements are assigned to processors via round-robin assignment. In both cases, an unordered set of size_ts can be passed to the allocate_array function which represents physical processors to avoid placing elements on.


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