Reference documentation for deal.II version Git 5b8b897cb2 2021-04-22 22:24:19 -0400
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Classes | Enumerations
TimeStepping Namespace Reference

Classes

class  EmbeddedExplicitRungeKutta
 
class  ExplicitRungeKutta
 
class  ImplicitRungeKutta
 
class  LowStorageRungeKutta
 
class  RungeKutta
 
class  TimeStepping
 

Enumerations

enum  runge_kutta_method {
  FORWARD_EULER, RK_THIRD_ORDER, SSP_THIRD_ORDER, RK_CLASSIC_FOURTH_ORDER,
  LOW_STORAGE_RK_STAGE3_ORDER3, LOW_STORAGE_RK_STAGE5_ORDER4, LOW_STORAGE_RK_STAGE7_ORDER4, LOW_STORAGE_RK_STAGE9_ORDER5,
  BACKWARD_EULER, IMPLICIT_MIDPOINT, CRANK_NICOLSON, SDIRK_TWO_STAGES,
  HEUN_EULER, BOGACKI_SHAMPINE, DOPRI, FEHLBERG,
  CASH_KARP, invalid
}
 
enum  embedded_runge_kutta_time_step { DELTA_T, MIN_DELTA_T, MAX_DELTA_T }
 

Detailed Description

Namespace containing the time stepping methods.

Enumeration Type Documentation

◆ runge_kutta_method

The following Runge-Kutta methods are available:

  • Explicit methods (see ExplicitRungeKutta::initialize):
    • FORWARD_EULER (first order)
    • RK_THIRD_ORDER (third order Runge-Kutta)
    • SSP_THIRD_ORDER (third order SSP Runge-Kutta)
    • RK_CLASSIC_FOURTH_ORDER (classical fourth order Runge-Kutta)
  • Low-storage (explicit) Runge-Kutta methods
    • LOW_STORAGE_RK_STAGE3_ORDER3 (Three stages and third order)
    • LOW_STORAGE_RK_STAGE5_ORDER4 (Five stages and fourth order)
    • LOW_STORAGE_RK_STAGE7_ORDER4 (Seven stages and fourth order)
    • LOW_STORAGE_RK_STAGE9_ORDER5 (Nine stages and fifth order)
  • Implicit methods (see ImplicitRungeKutta::initialize):
    • BACKWARD_EULER (first order)
    • IMPLICIT_MIDPOINT (second order)
    • CRANK_NICOLSON (second order)
    • SDIRK_TWO_STAGES (second order)
  • Embedded explicit methods (see EmbeddedExplicitRungeKutta::initialize):
    • HEUN_EULER (second order)
    • BOGACKI_SHAMPINE (third order)
    • DOPRI (Dormand-Prince method, fifth order; this is the method used by ode45 in MATLAB)
    • FEHLBERG (fifth order)
    • CASH_KARP (fifth order)
Enumerator
FORWARD_EULER 

Forward Euler method, first order.

RK_THIRD_ORDER 

Third order Runge-Kutta method.

SSP_THIRD_ORDER 

Third order Strong Stability Preserving (SSP) Runge-Kutta method (SSP time discretizations are also called Total Variation Diminishing (TVD) methods in the literature, see [46]).

RK_CLASSIC_FOURTH_ORDER 

Classical fourth order Runge-Kutta method.

LOW_STORAGE_RK_STAGE3_ORDER3 

Three-stage scheme of order three by Kennedy et al. [64]. Its stability region is significantly smaller than the higher order schemes, but due to three stages only, it is very competitive in terms of the work per stage.

LOW_STORAGE_RK_STAGE5_ORDER4 

Five-stage scheme of order four, defined in the paper by Kennedy et al. [64].

LOW_STORAGE_RK_STAGE7_ORDER4 

Seven-stage scheme of order four defined in the paper by Tselios and Simos [90].

LOW_STORAGE_RK_STAGE9_ORDER5 

Nine-stage scheme of order five defined in the paper by Kennedy et al. [64].

BACKWARD_EULER 

Backward Euler method, first order.

IMPLICIT_MIDPOINT 

Implicit midpoint method, second order.

CRANK_NICOLSON 

Crank-Nicolson method, second order.

SDIRK_TWO_STAGES 

Two stage SDIRK method (short for "singly diagonally implicit Runge-Kutta"), second order.

HEUN_EULER 

Heun's method (improved Euler's method), second order.

BOGACKI_SHAMPINE 

Bogacki–Shampine method, third-order.

DOPRI 

Dormand-Prince method, fifth order; this is the method used by ode45 in MATLAB.

FEHLBERG 

Fehlberg method, fifth order.

CASH_KARP 

Cash–Karp method, fifth order.

invalid 

Invalid.

Definition at line 60 of file time_stepping.h.

◆ embedded_runge_kutta_time_step

Reason for exiting evolve_one_time_step when using an embedded method: DELTA_T, MIN_DELTA_T, MAX_DELTA_T.

Enumerator
DELTA_T 

The time step is in the valid range.

MIN_DELTA_T 

The time step was increased to the minimum acceptable time step.

MAX_DELTA_T 

The time step was reduced to the maximum acceptable time step.

Definition at line 152 of file time_stepping.h.