SpECTRE
v2022.06.14
|
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 |
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_t
s can be passed to the allocate_array
function which represents physical processors to avoid placing elements on.