SpECTRE  2021.08.02
StepChooser< StepChooserUse > Class Template Reference

StepChoosers suggest upper bounds on step sizes. More...

Detailed Description

template<typename StepChooserUse>
class StepChooser< StepChooserUse >

StepChoosers suggest upper bounds on step sizes.

Concrete StepChoosers should define operator() returning the magnitude of the desired step (as a double).

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. A class cannot inherit from both base classes simultaneously; if both uses are supported the use must be chosen using a template parameter. If a derived class is usable as a step chooser (i.e., inherits from StepChooser<StepChooserUse::LtsStep>), it must specify type aliases argument_tags and return_tags for the arguments to the call operator. If it is usable only for slab choosing (i.e., unconditionally inherits from StepChooser<StepChooserUse::Slab>), it need only specify argument_tags, as slab choosers are not permitted mutable access to the DataBox.

For the class interface, see the specializations StepChooser<StepChooserUse::LtsStep> and StepChooser<StepChooserUse::Slab>.