SpECTRE
v2024.09.29
|
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) |
Creates a new element in an ArrayAlgorithm whose id is child_id
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