SpECTRE
v2025.03.17
|
Check if any triggers are activated, and perform phase changes as needed. More...
#include <ExecutePhaseChange.hpp>
Public Types | |
using | const_global_cache_tags = implementation defined |
Static Public Member Functions | |
template<typename DbTags , typename... InboxTags, typename Metavariables , typename ArrayIndex , typename ActionList , typename ParallelComponent > | |
static Parallel::iterable_action_return_t | apply (db::DataBox< DbTags > &box, const tuples::TaggedTuple< InboxTags... > &, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const ActionList, const ParallelComponent *const) |
Check if any triggers are activated, and perform phase changes as needed.
This action is intended to be executed on every component that repeatedly runs iterable actions that would need to halt during a phase change. This action sends data to the Main chare via a reduction.
This action iterates over the Tags::PhaseChangeAndTriggers
, sending reduction data for the phase decision for each triggered PhaseChange
, then halts the algorithm execution so that the Main
chare can make a phase decision if any were triggered.
Uses:
Tags::PhaseChangeAndTriggers
PhaseChange
option-created objects.PhaseChange
objects are permitted to perform mutations on the DataBox to store persistent state information.