SpECTRE  2021.08.02
PhaseControl::Actions::ExecutePhaseChange< PhaseChangeRegistrars > Struct Template Reference

Check if any triggers are activated, and perform phase changes as needed. More...

#include <ExecutePhaseChange.hpp>

Static Public Member Functions

template<typename DbTags , typename... InboxTags, typename Metavariables , typename ArrayIndex , typename ActionList , typename ParallelComponent >
static std::tuple< db::DataBox< DbTags > &&, Parallel::AlgorithmExecutionapply (db::DataBox< DbTags > &box, const tuples::TaggedTuple< InboxTags... > &, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const ActionList, const ParallelComponent *const) noexcept
 

Detailed Description

template<typename PhaseChangeRegistrars>
struct PhaseControl::Actions::ExecutePhaseChange< PhaseChangeRegistrars >

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: