Public Types | Public Member Functions | List of all members
TimeStepper Class Referenceabstract

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 DerivVars >
void 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, this must be called before the step is completed but after any intermediate substeps have been taken. The value of *u before this function is called should be the value at the last substep.
 
virtual uint64_t number_of_substeps () const noexcept=0
 Number of substeps in this TimeStepper.
 
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 &current_id, const TimeDelta &time_step) const noexcept=0
 The TimeStepId after the current substep.
 
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.
 

Detailed Description

Abstract base class for TimeSteppers.


The documentation for this class was generated from the following file: