SpECTRE
v2025.03.17
|
Sets a goal based on time-stepper truncation error. More...
#include <ErrorControl.hpp>
Classes | |
struct | AbsoluteTolerance |
struct | MaxFactor |
struct | MinFactor |
struct | RelativeTolerance |
struct | SafetyFactor |
Public Types | |
using | options = implementation defined |
using | simple_tags = implementation defined |
using | compute_tags = implementation defined |
using | argument_tags = implementation defined |
Public Member Functions | |
ErrorControl (const double absolute_tolerance, const double relative_tolerance, const double max_factor, const double min_factor, const double safety_factor) | |
TimeStepRequest | operator() (const typename ::Tags::StepperErrors< EvolvedVariableTag >::type &errors, const double) const |
bool | uses_local_data () const override |
Whether the result can differ on different elements, so requiring communication to synchronize the result across the domain. This is ignored for LTS step changing. More... | |
bool | can_be_delayed () const override |
Whether the result can be applied with a delay. More... | |
StepperErrorTolerances | tolerances () const override |
void | pup (PUP::er &p) override |
![]() | |
WRAPPED_PUPable_abstract (StepChooser) | |
virtual bool | uses_local_data () const =0 |
Whether the result can differ on different elements, so requiring communication to synchronize the result across the domain. This is ignored for LTS step changing. More... | |
virtual bool | can_be_delayed () const =0 |
Whether the result can be applied with a delay. More... | |
template<typename StepChoosersToUse = AllStepChoosers, typename DbTags > | |
TimeStepRequest | desired_step (const double last_step, const db::DataBox< DbTags > &box) const |
The last_step parameter describes the step size to be adjusted. It may be the step size or the slab size, or may be infinite if the appropriate size cannot be determined. More... | |
Static Public Member Functions | |
static std::string | name () |
Static Public Attributes | |
static constexpr Options::String | help |
Sets a goal based on time-stepper truncation error.
The suggested step is calculated via a simple specialization of the scheme suggested in [87]. We first compute the aggregated error measure from the stepper error:
where
and
When choosing a step size for LTS or when no record of previous error is available, the step has size:
where
When controlling slab size, after the first error calculation, the error
where
ErrorControlSelector
is used to disambiguate in the input-file options between ErrorControl
step choosers that are based on different variables. This is needed if multiple systems are evolved in the same executable. The name used for the input file includes ErrorControlSelector::name()
if it is provided.
|
inlineoverridevirtual |
Whether the result can be applied with a delay.
StepChoosers setting the .end
or .end_hard_limit
fields of TimeStepRequest
must return false here.
Implements StepChooser< StepChooserUse >.
|
inlineoverridevirtual |
Whether the result can differ on different elements, so requiring communication to synchronize the result across the domain. This is ignored for LTS step changing.
last_step
passed to the call operator is not considered local data. Implements StepChooser< StepChooserUse >.
|
staticconstexpr |