SpECTRE  v2022.09.02
control_system::Trigger< ControlSystems > Class Template Reference

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 next_check_time_argument_tags = tmpl::list<::Tags::Time, control_system::Tags::MeasurementTimescales >
 

Public Member Functions

template<typename Metavariables , typename ArrayIndex , typename Component >
std::optional< bool > is_triggered (Parallel::GlobalCache< Metavariables > &, const ArrayIndex &, const Component *, const double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &measurement_timescales)
 
template<typename Metavariables , typename ArrayIndex , typename Component >
std::optional< double > next_check_time (Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const Component *component, const double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &measurement_timescales)
 
void pup (PUP::er &p) override
 
- Public Member Functions inherited from DenseTrigger
template<typename DbTags , typename Metavariables , typename ArrayIndex , typename Component >
std::optional< bool > is_triggered (const db::DataBox< DbTags > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const Component *const component)
 Check whether the trigger fires. Returns std::nullopt if insufficient data is available to make the decision. 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.
 
template<typename DbTags , typename Metavariables , typename ArrayIndex , typename Component >
std::optional< double > next_check_time (const db::DataBox< DbTags > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index, const Component *component)
 Obtain the next time to check the trigger, or std::nullopt if the trigger is not ready to report yet.
 
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 Attributes

static constexpr bool factory_creatable = false
 

Detailed Description

template<typename ControlSystems>
class control_system::Trigger< ControlSystems >

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.


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