SpECTRE  v2024.08.03
Parallel::Actions::CreateElementCollection< Dim, Metavariables, PhaseDepActionList, SimpleTagsFromOptions > Struct Template Reference

Creates the DgElementArrayMembers on the (node)group component. More...

#include <CreateElementCollection.hpp>

Public Types

using simple_tags = tmpl::list< Parallel::Tags::ElementCollection< Dim, Metavariables, PhaseDepActionList, SimpleTagsFromOptions >, Parallel::Tags::ElementLocations< Dim >, Tags::NumberOfElementsTerminated >
 
using compute_tags = tmpl::list<>
 
using const_global_cache_tags = tmpl::list<::domain::Tags::Domain< Dim >, ::domain::Tags::ElementDistribution >
 
using return_tag_list = tmpl::append< simple_tags, compute_tags >
 

Static Public Member Functions

template<typename DbTagsList , typename... InboxTags, typename ArrayIndex , typename ActionList , typename ParallelComponent >
static Parallel::iterable_action_return_t apply (db::DataBox< DbTagsList > &box, const tuples::TaggedTuple< InboxTags... > &, Parallel::GlobalCache< Metavariables > &local_cache, const ArrayIndex &, const ActionList, const ParallelComponent *const)
 

Detailed Description

template<size_t Dim, class Metavariables, class PhaseDepActionList, typename SimpleTagsFromOptions>
struct Parallel::Actions::CreateElementCollection< Dim, Metavariables, PhaseDepActionList, SimpleTagsFromOptions >

Creates the DgElementArrayMembers on the (node)group component.

First the distribution of elements is computed using Parallel::create_elements_using_distribution(), they are inserted on each (node)group element. A reduction is done over the (node)group before initializing the DgElementArrayMembers themselves, since they are allowed to communicate with each other during their initialization. The reduction target is Parallel::Actions::SpawnInitializeElementsInCollection.

Uses:

DataBox changes:


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