SpECTRE  v2024.05.11
control_system::metafunctions Namespace Reference

Metafunctions associated with the control systems. More...


struct  control_systems_with_measurement
 Given a list of control systems, extract those using a given measurement. More...
struct  event_from_submeasurement
struct  measurement
 Extract the measurement alias from a control system struct. More...
struct  measurements
 Given a list of control systems, obtain a list of distinct control system measurement structs used by them. More...
struct  submeasurements
 Given a measurement, obtain a list of its submeasurements (i.e., Measurement::submeasurements). More...


template<typename ControlSystems >
using interpolation_target_tags = tmpl::flatten< tmpl::transform< measurements_t< ControlSystems >, tmpl::lazy::transform< submeasurements< tmpl::_1 >, tmpl::defer< detail::interpolation_target_tags_for_submeasurement< tmpl::_1, control_systems_with_measurement< tmpl::pin< ControlSystems >, tmpl::parent< tmpl::_1 > > > > > > >
 Extract the interpolation_target_tag aliases from all submeasurements for the list of control systems. This is intended for use in constructing the global list of interpolation target tags in the metavariables.
template<typename Metavariables >
using all_control_components = tmpl::filter< detail::all_not_mocked_components< Metavariables >, tt::is_a< ControlComponent, tmpl::_1 > >
 Get all ControlComponents from the metavariables, even if they are mocked.
template<typename ControlSystems , typename Submeasurement >
using event_from_submeasurement_t = typename event_from_submeasurement< ControlSystems, Submeasurement >::type
template<typename ControlSystems >
using control_system_events = tmpl::flatten< tmpl::transform< metafunctions::measurements_t< ControlSystems >, detail::events_from_measurement< tmpl::pin< ControlSystems >, tmpl::_1 > > >
 The list of events needed for measurements for a list of control systems.
template<typename ControlSystems >
using measurements_t = typename measurements< ControlSystems >::type
template<typename ControlSystems , typename Measurement >
using control_systems_with_measurement_t = typename control_systems_with_measurement< ControlSystems, Measurement >::type
template<typename Measurement >
using submeasurements_t = typename submeasurements< Measurement >::type

Detailed Description

Metafunctions associated with the control systems.