SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
control_system::Tags::MeasurementTimescales Struct Reference

The measurement timescales associated with domain::Tags::FunctionsOfTime. More...

#include <MeasurementTimescales.hpp>

Public Types

using type
template<typename Metavariables>
using option_holders
template<typename Metavariables>
using option_tags

Static Public Member Functions

template<typename Metavariables, typename... OptionHolders>
static type create_from_options (const int measurements_per_update, const bool delay_update, const std::unique_ptr<::DomainCreator< Metavariables::volume_dim > > &domain_creator, const double initial_time, const double initial_time_step, const Options::Auto< OptionHolders, Options::AutoLabel::None > &... option_holders)
template<typename Metavariables, typename... OptionHolders>
static type create_from_options (const int measurements_per_update, const bool delay_update, const std::unique_ptr<::DomainCreator< Metavariables::volume_dim > > &domain_creator, const double initial_time, const double initial_time_step, const std::optional< OptionHolders > &... option_holders)

Static Public Attributes

static constexpr bool pass_metavariables = true

Detailed Description

The measurement timescales associated with domain::Tags::FunctionsOfTime.

We group measurement timescales by the control_system::protocols::Measurement that their corresponding control systems use. This is because one measurement may be used to update many functions of time. Each group of functions of time associated with a particular measurement has a corresponding timescale here, represented as PiecewisePolynomial<0> with a single entry. That single entry is the minimum of all control_system::calculate_measurement_timescales for every control system in that group.

The name of a measurement timescale is calculated using control_system::system_to_combined_names for every group of control systems with the same measurement.

If all control systems that use the same measurement aren't active, then the measurement timescale and expiration time are std::numeric_limits<double>::infinity().

Member Typedef Documentation

◆ option_holders

template<typename Metavariables>
using control_system::Tags::MeasurementTimescales::option_holders
Initial value:
tmpl::transform<tmpl::filter<typename Metavariables::component_list,
tmpl::bind<tmpl::back, tmpl::_1>>>
tmpl::transform< ControlSystems, tmpl::bind< OptionTags::ControlSystemInputs, tmpl::_1 > > inputs
Alias to get all the option holders from a list of control systems. This is useful in the option_tags...
Definition OptionTags.hpp:186
detail::wrapped_is_a< detail::is_a_wrapper< U >, T > is_a
Check if type T is a template specialization of U
Definition IsA.hpp:58

◆ option_tags

template<typename Metavariables>
using control_system::Tags::MeasurementTimescales::option_tags
Initial value:
tmpl::push_front<
option_holders<Metavariables>,
The initial time step taken by the time stepper. This may be overridden by an adaptive stepper.
Definition InitialTimeStep.hpp:14
The time at which to start the simulation.
Definition InitialTime.hpp:13
Option tag on whether to delay FunctionOfTime updates by one measurement to improve parallelization.
Definition OptionTags.hpp:160
Option tag that determines how many measurements will occur per control system update.
Definition OptionTags.hpp:147
The input file tag for the DomainCreator to use.
Definition OptionTags.hpp:22

◆ type


The documentation for this struct was generated from the following file:
  • src/ControlSystem/Tags/MeasurementTimescales.hpp