|
SpECTRE
v2025.08.19
|
A Parallel::protocols::ArrayElementsAllocator that creates array elements to cover the initial computational domain.
More...
#include <DgElementArray.hpp>
Public Types | |
| template<typename ParallelComponent > | |
| using | array_allocation_tags = tmpl::list<> |
Static Public Member Functions | |
| template<typename ParallelComponent , typename Metavariables , typename... InitializationTags> | |
| static void | apply (Parallel::CProxy_GlobalCache< Metavariables > &global_cache, const tuples::TaggedTuple< InitializationTags... > &initialization_items, const tuples::tagged_tuple_from_typelist< typename ParallelComponent::array_allocation_tags > &={}, const std::unordered_set< size_t > &procs_to_ignore={}) |
A Parallel::protocols::ArrayElementsAllocator that creates array elements to cover the initial computational domain.
An element is created for every element ID in every block, determined by the initial_element_ids function and the option-created domain::Tags::Domain and domain::Tags::InitialRefinementLevels. The elements are distributed on processors using the domain::BlockZCurveProcDistribution. 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. Elements are distributed to processors according to their computational costs determined by the number of grid points.