SpECTRE
v2022.05.05
|
Trigger for control system measurements. More...
#include <Trigger.hpp>
Public Types | |
using | is_triggered_argument_tags = tmpl::list<::Tags::Time, control_system::Tags::MeasurementTimescales > |
using | is_ready_argument_tags = tmpl::list<::Tags::Time > |
Public Member Functions | |
Result | is_triggered (const double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &measurement_timescales) |
void | pup (PUP::er &p) override |
![]() | |
template<typename DbTags > | |
Result | is_triggered (const db::DataBox< DbTags > &box) |
Check whether the trigger fires. | |
template<typename DbTags , typename Metavariables , typename ArrayIndex , typename Component > | |
bool | is_ready (const db::DataBox< DbTags > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const Component *const component) const |
Check whether all data required to evaluate the trigger is available. The trigger is not responsible for checking whether dense output of the evolved variables is possible, but may need to check things such as the availability of FunctionOfTime data. | |
std::optional< double > | previous_trigger_time () const |
Reports the value of Tags::Time when the trigger most recently fired, except for the most recent call of is_triggered . More... | |
void | pup (PUP::er &p) override |
Static Public Member Functions | |
template<typename Metavariables , typename ArrayIndex , typename Component > | |
static bool | is_ready (Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const Component *component, const double time) |
Static Public Attributes | |
static constexpr bool | factory_creatable = false |
Trigger for control system measurements.
This trigger is only intended to be used with the control_system::Event
event. A specialization of this trigger will be created during control system initialization for each unique measurement.
These triggers must be added to the factory_creation struct in the metavariables, even though they cannot be created from the input file. The control_system::control_system_triggers
metafunction provides the list of triggers to include.