|
SpECTRE
2021.08.02
|
Abstract base class for TimeSteppers. More...
#include <TimeStepper.hpp>
Public Types | |
| using | Inherit = TimeStepper_detail::FakeVirtualInherit_can_change_step_size< TimeStepper_detail::FakeVirtualInherit_dense_update_u< TimeStepper_detail::FakeVirtualInherit_update_u< TimeStepper > > > |
| using | creatable_classes = tmpl::list< TimeSteppers::AdamsBashforthN, TimeSteppers::DormandPrince5, TimeSteppers::RungeKutta3, TimeSteppers::RungeKutta4 > |
Public Member Functions | |
| WRAPPED_PUPable_abstract (TimeStepper) | |
| template<typename Vars , typename DerivVars > | |
| void | update_u (const gsl::not_null< Vars * > u, const gsl::not_null< TimeSteppers::History< Vars, DerivVars > * > history, const TimeDelta &time_step) const noexcept |
| Add the change for the current substep to u. | |
| template<typename Vars , typename ErrVars , typename DerivVars > | |
| bool | update_u (const gsl::not_null< Vars * > u, const gsl::not_null< ErrVars * > u_error, const gsl::not_null< TimeSteppers::History< Vars, DerivVars > * > history, const TimeDelta &time_step) const noexcept |
| Add the change for the current substep to u; report the error measure when available. More... | |
| template<typename Vars , typename DerivVars > | |
| bool | dense_update_u (const gsl::not_null< Vars * > u, const TimeSteppers::History< Vars, DerivVars > &history, const double time) const noexcept |
| Compute the solution value at a time between steps. To evaluate at a time within a given step, call this method at the start of the step containing the time. The function returns true on success, otherwise the call should be retried after the next substep. | |
| virtual size_t | order () const noexcept=0 |
| The convergence order of the stepper. | |
| virtual size_t | error_estimate_order () const noexcept=0 |
| The convergence order of the stepper error measure. | |
| virtual uint64_t | number_of_substeps () const noexcept=0 |
| Number of substeps in this TimeStepper. | |
| virtual uint64_t | number_of_substeps_for_error () const noexcept=0 |
| Number of substeps in this TimeStepper when providing an error measure for adaptive time-stepping. More... | |
| virtual size_t | number_of_past_steps () const noexcept=0 |
| Number of past time steps needed for multi-step method. | |
| virtual double | stable_step () const noexcept=0 |
| Rough estimate of the maximum step size this method can take stably as a multiple of the step for Euler's method. | |
| virtual TimeStepId | next_time_id (const TimeStepId ¤t_id, const TimeDelta &time_step) const noexcept=0 |
| The TimeStepId after the current substep. | |
| virtual TimeStepId | next_time_id_for_error (const TimeStepId ¤t_id, const TimeDelta &time_step) const noexcept=0 |
| The TimeStepId after the current substep when providing an error measure for adaptive time-stepping. More... | |
| template<typename Vars , typename DerivVars > | |
| bool | can_change_step_size (const TimeStepId &time_id, const TimeSteppers::History< Vars, DerivVars > &history) const noexcept |
| Whether a change in the step size is allowed before taking a step. | |
Abstract base class for TimeSteppers.
|
pure virtualnoexcept |
The TimeStepId after the current substep when providing an error measure for adaptive time-stepping.
Certain substep methods (e.g. embedded RK4(3)) require additional steps when providing an error measure of the integration.
|
pure virtualnoexcept |
Number of substeps in this TimeStepper when providing an error measure for adaptive time-stepping.
Certain substep methods (e.g. embedded RK4(3)) require additional steps when providing an error measure of the integration.
|
inlinenoexcept |
Add the change for the current substep to u; report the error measure when available.
For a substep method, the error measure will only be available on full steps. For a multistep method, the error measure will only be available when a sufficient number of steps are available in the history to compare two orders of step. Whenever the error measure is unavailable, u_error is unchanged and the function return is false.