29 #ifndef OOMPH_EXPLICIT_TIMESTEPPERS
30 #define OOMPH_EXPLICIT_TIMESTEPPERS
34 #include <oomph-lib-config.h>
120 virtual double&
time();
154 const double& dt) = 0;
185 template<
unsigned ORDER>
211 template<
unsigned ORDER>
258 const double& dtnm2);
A vector in the mathematical sense, initially developed for linear algebra type applications....
=========================================================== An explicit version of BDF3 (i....
void timestep(ExplicitTimeSteppableObject *const &object_pt, const double &dt)
Function that is used to advance the solution by time dt.
EBDF3()
Constructor, set the type.
void operator=(const EBDF3 &)=delete
Broken assignment operator.
void set_weights(const double &dtn, const double &dtnm1, const double &dtnm2)
Calculate the weights for this set of step sizes.
EBDF3(const EBDF3 &)=delete
Broken copy constructor.
=========================================================== Simple first-order Euler Timestepping
void operator=(const Euler &)=delete
Broken assignment operator.
Euler()
Constructor, set the type.
Euler(const Euler &)=delete
Broken copy constructor.
void timestep(ExplicitTimeSteppableObject *const &object_pt, const double &dt)
Overload function that is used to advance time in the object reference by object_pt by an amount dt.
Class for objects than can be advanced in time by an Explicit Timestepper. WARNING: For explicit time...
virtual void add_to_dofs(const double &lambda, const DoubleVector &increment_dofs)
Function that adds the values to the dofs.
ExplicitTimeSteppableObject()
Empty constructor.
virtual ~ExplicitTimeSteppableObject()
Empty destructor.
virtual void get_dofs(DoubleVector &dofs) const
Function that gets the values of the dofs in the object.
virtual void actions_after_explicit_timestep()
Empty virtual function that can be overloaded to do anything needed after an explicit step.
virtual double & time()
Broken virtual function that should be overloaded to return access to the local time in the object.
virtual Time * time_pt() const
Virtual function that should be overloaded to return a pointer to a Time object.
virtual void actions_before_explicit_stage()
Empty virtual function to do anything needed before a stage of an explicit time step (Runge-Kutta ste...
virtual void set_dofs(const DoubleVector &dofs)
Function that sets the values of the dofs in the object.
void operator=(const ExplicitTimeSteppableObject &)=delete
Broken assignment operator.
virtual void get_dvaluesdt(DoubleVector &minv_res)
A single virtual function that returns the residuals vector multiplied by the inverse mass matrix.
virtual void actions_after_explicit_stage()
Empty virtual function that should be overloaded to update any dependent data or boundary conditions ...
virtual void actions_before_explicit_timestep()
Empty virtual function that can be overloaded to do anything needed before an explicit step.
static double Dummy_time_value
Dummy value of time always set to zero.
ExplicitTimeSteppableObject(const ExplicitTimeSteppableObject &)=delete
Broken copy constructor.
A Base class for explicit timesteppers.
ExplicitTimeStepper(const ExplicitTimeStepper &)=delete
Broken copy constructor.
ExplicitTimeStepper()
Empty Constructor.
virtual ~ExplicitTimeStepper()
Empty virtual destructor — no memory is allocated in this class.
std::string Type
String that indicates the type of the timestepper (e.g. "RungeKutta", etc.)
virtual void timestep(ExplicitTimeSteppableObject *const &object_pt, const double &dt)=0
Pure virtual function that is used to advance time in the object.
void operator=(const ExplicitTimeStepper &)=delete
Broken assignment operator.
=========================================================== Runge Kutta Timestepping that uses low st...
LowStorageRungeKutta(const LowStorageRungeKutta &)=delete
Broken copy constructor.
void operator=(const LowStorageRungeKutta &)=delete
Broken assignment operator.
LowStorageRungeKutta()
Constructor, set the type.
void timestep(ExplicitTimeSteppableObject *const &object_pt, const double &dt)
Function that is used to advance the solution by time dt.
=========================================================== Standard Runge Kutta Timestepping
RungeKutta(const RungeKutta &)=delete
Broken copy constructor.
void operator=(const RungeKutta &)=delete
Broken assignment operator.
RungeKutta()
Constructor, set the type.
void timestep(ExplicitTimeSteppableObject *const &object_pt, const double &dt)
Function that is used to advance time in the object.
Class to keep track of discrete/continous time. It is essential to have a single Time object when usi...
std::string string(const unsigned &i)
Return the i-th string or "" if the relevant string hasn't been defined.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...