SpECTRE
v2024.12.16
|
The measurement timescales associated with domain::Tags::FunctionsOfTime. More...
#include <MeasurementTimescales.hpp>
Public Types | |
using | type = std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > |
template<typename Metavariables > | |
using | option_holders = control_system::inputs< tmpl::transform< tmpl::filter< typename Metavariables::component_list, tt::is_a< ControlComponent, tmpl::_1 > >, tmpl::bind< tmpl::back, tmpl::_1 > > > |
template<typename Metavariables > | |
using | option_tags = implementation defined |
Static Public Member Functions | |
template<typename Metavariables , typename... OptionHolders> | |
static type | create_from_options (const int measurements_per_update, const std::unique_ptr<::DomainCreator< Metavariables::volume_dim > > &domain_creator, const double initial_time, const double initial_time_step, const OptionHolders &... option_holders) |
Static Public Attributes | |
static constexpr bool | pass_metavariables = true |
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()
.