SpECTRE  v2024.04.12
elliptic::DefaultElementsAllocator< Dim > Struct Template Reference

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={})
 

Detailed Description

template<size_t Dim>
struct elliptic::DefaultElementsAllocator< Dim >

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.


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