SpECTRE  v2023.12.08
control_system::metafunctions Namespace Reference

Metafunctions associated with the control systems. More...

Classes

struct  compute_tags_for_observation_box
 Given a measurement, obtain a list of compute tags for the ObservationBox from the compute_tags_for_observation_box type alias of all submeasurements of that measurement. More...
 
struct  compute_tags_for_observation_box_from_submeasurements
 
struct  control_systems_with_measurement
 Given a list of control systems, extract those using a given measurement. More...
 
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...
 

Typedefs

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 >
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
 
template<typename Measurement >
using compute_tags_for_observation_box_t = typename compute_tags_for_observation_box< Measurement >::type
 

Detailed Description

Metafunctions associated with the control systems.