SpECTRE  v2024.04.12
amr::Actions::CreateChild Struct Reference

Creates a new element in an ArrayAlgorithm whose id is child_id More...

#include <CreateChild.hpp>

Static Public Member Functions

template<typename ParallelComponent , typename DbTagList , typename Metavariables , typename ElementProxy >
static void apply (db::DataBox< DbTagList > &, Parallel::GlobalCache< Metavariables > &cache, const int, ElementProxy element_proxy, ElementId< Metavariables::volume_dim > parent_id, std::vector< ElementId< Metavariables::volume_dim > > children_ids, const size_t index_of_child_id, const std::unordered_map< Parallel::Phase, size_t > parent_phase_bookmarks)
 

Detailed Description

Creates a new element in an ArrayAlgorithm whose id is child_id

Details

This action is meant to be initially invoked by amr::Actions::AdjustDomain on the amr::Component. This action inserts a new element with id children_ids[index_of_child_id] in the array referenced by element_proxy. A Parallel::SimpleActionCallback is passed to the constructor of the new DistributedObject. If index_of_child_id is that of the last element of children_ids, the Parallel::SimpleActionCallback will invoke amr::Actions::SendDataToChildren on the element with id parent_id. Otherwise, it will invoke amr::Actions::CreateChild on the next element of children_ids.

This action does not modify anything in the DataBox


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