|
template<typename Metavariables , typename ControlSystems > |
using | control_components = tmpl::transform< ControlSystems, tmpl::bind< ControlComponent, tmpl::pin< Metavariables >, tmpl::_1 > > |
| List of control components to be added to the component list of the metavars.
|
|
template<typename ControlSystems > |
using | inputs = tmpl::transform< ControlSystems, tmpl::bind< OptionTags::ControlSystemInputs, tmpl::_1 > > |
| Alias to get all the option holders from a list of control systems. This is useful in the option_tags alias of simple tags for getting all the options from control systems.
|
|
template<typename ControlSystems > |
using | control_system_triggers = tmpl::transform< metafunctions::measurements_t< ControlSystems >, tmpl::bind< Trigger, metafunctions::control_systems_with_measurement< tmpl::pin< ControlSystems >, tmpl::_1 > > > |
| The list of triggers needed for measurements for a list of control systems.
|
|
|
template<size_t DerivOrder, bool AllowDecrease> |
DataVector | calculate_measurement_timescales (const ::Controller< DerivOrder > &controller, const ::TimescaleTuner< AllowDecrease > &tuner, const int measurements_per_update) |
| Calculate the measurement timescale based on the damping timescale, update fraction, and DerivOrder of the control system. More...
|
|
template<typename ListOfControlSystems > |
const std::string & | combined_name () |
| Given a tmpl::list of control systems, returns a string which is a sorted concatenation of all the control systems' names. More...
|
|
template<typename ControlSystems > |
std::unordered_map< std::string, std::string > | system_to_combined_names () |
| Given a tmpl::list of control systems, this returns a map between the name of each control system, and the control_system::combined_name of all control systems with the same measurement. More...
|
|
double | function_of_time_expiration_time (const double time, const DataVector &old_measurement_timescales, const DataVector &new_measurement_timescales, const int measurements_per_update) |
| Calculate the next expiration time for the FunctionsOfTime. More...
|
|
double | measurement_expiration_time (const double time, const DataVector &old_measurement_timescales, const DataVector &new_measurement_timescales, const int measurements_per_update) |
| Calculate the next expiration time for the MeasurementTimescales. More...
|
|
template<size_t Dim, typename... OptionHolders> |
std::unordered_map< std::string, double > | initial_expiration_times (const double initial_time, const int measurements_per_update, const std::unique_ptr<::DomainCreator< Dim > > &domain_creator, const OptionHolders &... option_holders) |
| Construct the initial expiration times for functions of time that are controlled by a control system. More...
|
|
bool | operator!= (const FutureMeasurements &lhs, const FutureMeasurements &rhs) |
|
template<typename ControlSystem , typename Metavariables > |
void | write_components_to_disk (const double time, Parallel::GlobalCache< Metavariables > &cache, const std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > &function_of_time, const std::array< DataVector, 2 > &q_and_dtq, const DataVector ×cales) |
| Writes all components of a function of time to disk at a specific time from a control system after it updates the functions of time. More...
|
|
Control systems and related functionality.
template<typename ListOfControlSystems >
Given a tmpl::list
of control systems, returns a string which is a sorted concatenation of all the control systems' names.
Details
As an example, if ListOfControlSystems
is tmpl::list<Rotation, Expansion, Translation>
, this function would return ExpansionRotationTranslation
. Sorting is done using std::sort
.
- Template Parameters
-
ListOfControlSystems | tmpl::list of control systems |
template<typename ControlSystems >
Given a tmpl::list
of control systems, this returns a map between the name of each control system, and the control_system::combined_name
of all control systems with the same measurement.
Details
All control systems have a type alias measurement
corresponding to a control_system::protocols::Measurement
. Some control systems can have the same measurement, while some have different ones. This function splits the template list of control systems into a tmpl::list
of tmpl::list
s where each inner list holds control systems with the same measurement. Each of these inner lists is used in control_system::combined_name
to get the concatenated name for those control systems. This combined name is then used as the value in the resulting map for they key of each control system in the inner list.
- Template Parameters
-
ControlSystems | tmpl::list of control systems |