SpECTRE  2021.08.02
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 = Parallel::get_initialization_tags< Parallel::get_initialization_actions_list< phase_dependent_action_list >, array_allocation_tags >
 

Static Public Member Functions

static void allocate_array (Parallel::CProxy_GlobalCache< Metavariables > &global_cache, const tuples::tagged_tuple_from_typelist< initialization_tags > &initialization_items) noexcept
 
static void execute_next_phase (const typename Metavariables::Phase next_phase, Parallel::CProxy_GlobalCache< Metavariables > &global_cache) noexcept
 

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.