SpECTRE
v2024.09.29
|
Simple action that updates the appropriate UpdateAggregator
for the templated ControlSystem
.
More...
#include <UpdateFunctionOfTime.hpp>
Static Public Member Functions | |
template<typename ParallelComponent , typename DbTags , typename Metavariables , typename ArrayIndex > | |
static void | apply (db::DataBox< DbTags > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &, const DataVector &new_measurement_timescale, const double old_measurement_expiration_time, const double new_measurement_expiration_time, DataVector control_signal, const double old_fot_expiration_time, const double new_fot_expiration_time) |
Simple action that updates the appropriate UpdateAggregator
for the templated ControlSystem
.
The new_measurement_timescale
, new_measurement_expiration_time
, control_signal
, and new_fot_expiration_time
are passed along to the UpdateAggregator::insert
function. The old_measurement_expiration_time
and old_fot_expiration_time
are only used when the UpdateAggregator::is_ready
in order to update the functions of time and the measurement timescale.
When the UpdateAggregator::is_ready
, the measurement timescale is mutated with UpdateSingleFunctionOfTime
and the functions of time are mutated with UpdateMultipleFunctionsOfTime
, both using Parallel::mutate
.
The "appropriate" UpdateAggregator
is chosen from the control_system::Tags::SystemToCombinedNames
for the templated ControlSystem
.