|
SpECTRE
v2025.08.19
|
StepChoosers suggest upper bounds on step sizes. See TimeStepRequest for details on how the results are used.
More...
#include <StepChooser.hpp>
Public Member Functions | |
| 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... | |
StepChoosers suggest upper bounds on step sizes. See TimeStepRequest for details on how the results are used.
Concrete StepChoosers should define operator() returning the desired step and taking the last_step and arguments specified by the class's argument_tags type alias.
Derived classes must indicate whether the chooser is usable as a step chooser, slab chooser, or both by inheriting from StepChooser with the appropriate StepChooserUse template argument.
|
pure virtual |
Whether the result can be applied with a delay.
StepChoosers setting the .end or .end_hard_limit fields of TimeStepRequest must return false here.
Implemented in StepChoosers::ByBlock< Dim >, StepChoosers::Cfl< Frame, System >, StepChoosers::Constant, StepChoosers::ElementSizeCfl< Dim, System >, StepChoosers::ErrorControl< StepChooserUse, EvolvedVariableTag, ErrorControlSelector >, StepChoosers::FixedLtsRatio, StepChoosers::LimitIncrease, StepChoosers::Maximum, StepChoosers::PreventRapidIncrease< VariablesTag >, StepChoosers::Random< VolumeDim >, and StepChoosers::StepToTimes.
|
inline |
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.
The optional template parameter StepChoosersToUse may be used to indicate a subset of the constructable step choosers to use for the current application of ChangeStepSize. Passing AllStepChoosers (default) indicates that any constructible step chooser may be used. This option is used when multiple components need to invoke ChangeStepSize with step choosers that may not be compatible with all components.
|
pure virtual |
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. Implemented in StepChoosers::ByBlock< Dim >, StepChoosers::Cfl< Frame, System >, StepChoosers::Constant, StepChoosers::ElementSizeCfl< Dim, System >, StepChoosers::ErrorControl< StepChooserUse, EvolvedVariableTag, ErrorControlSelector >, StepChoosers::FixedLtsRatio, StepChoosers::LimitIncrease, StepChoosers::Maximum, StepChoosers::PreventRapidIncrease< VariablesTag >, StepChoosers::Random< VolumeDim >, and StepChoosers::StepToTimes.