Peano
Loading...
Searching...
No Matches
exahype2.api.rungekutta.ButcherTableau.ButcherTableau Class Reference

Butcher tableau of an explicit Runge-Kutta scheme. More...

Public Member Functions

 __init__ (self, int order)
 
int order (self)
 
int number_of_stages (self)
 
List[float] relative_time_step_sizes (self)
 The \( c_k \), i.e.
 
List[List[float]] weight_matrix (self)
 The \( a_{kj} \) as number_of_stages x number_of_stages matrix.
 
List[float] final_estimate_weights (self)
 The \( b_k \), i.e.
 

Protected Attributes

 _order
 

Detailed Description

Butcher tableau of an explicit Runge-Kutta scheme.

An explicit Runge-Kutta scheme with s stages advances

\( \\partial _t Q = F(t,Q) \)

from \( Q^n \) to \( Q^{n+1} \) through

\( K_k = F \\left( t^n + c_k \\Delta t, Q^n + \\Delta t \\sum _{j<k} a_{kj} K_j \\right) \)

\( Q^{n+1} = Q^n + \\Delta t \\sum _k b_k K_k \)

The tableau holds the coefficients:

  • relative_time_step_sizes(): the \( c_k \), i.e. the left column of the classic tableau.
  • weight_matrix(): the \( a_{kj} \), i.e. the strictly lower triangular matrix in the middle of the classic tableau. Row k holds the weights of the estimates which make up the input of stage k.
  • final_estimate_weights(): the \( b_k \), i.e. the bottom row of the classic tableau.

We support the orders one to four with one stage per order:

Order Scheme
1 explicit Euler
2 explicit midpoint rule
3 Kutta's third-order scheme
4 Kutta's 3/8 rule

The tableau does not know anything about the discretisation in space, so Finite Differences (exahype2.api.rkfd4) and Discontinuous Galerkin schemes alike can build on it.

Ported from the legacy python/exahype2/solvers/ButcherTableau.py, which remains in place, as the legacy Runge-Kutta solvers import it.

Definition at line 6 of file ButcherTableau.py.

Constructor & Destructor Documentation

◆ __init__()

exahype2.api.rungekutta.ButcherTableau.ButcherTableau.__init__ (   self,
int  order 
)
Parameters
orderint Order of the Runge-Kutta scheme. Has to be between one and four. It equals the number of stages.

Definition at line 49 of file ButcherTableau.py.

Member Function Documentation

◆ final_estimate_weights()

List[float] exahype2.api.rungekutta.ButcherTableau.ButcherTableau.final_estimate_weights (   self)

The \( b_k \), i.e.

the weights of the stages' estimates within the final linear combination which yields \( Q^{n+1} \).

Definition at line 114 of file ButcherTableau.py.

References solvers.aderdg.ADERDG.ADERDG._order, solvers.ButcherTableau.ButcherTableau._order, and exahype2.api.rungekutta.ButcherTableau.ButcherTableau._order.

◆ number_of_stages()

int exahype2.api.rungekutta.ButcherTableau.ButcherTableau.number_of_stages (   self)

◆ order()

int exahype2.api.rungekutta.ButcherTableau.ButcherTableau.order (   self)

◆ relative_time_step_sizes()

List[float] exahype2.api.rungekutta.ButcherTableau.ButcherTableau.relative_time_step_sizes (   self)

The \( c_k \), i.e.

the time stamp of stage k relative to the time step size: Stage k evaluates the right-hand side at \( t^n + c_k \\Delta t \).

Definition at line 71 of file ButcherTableau.py.

References solvers.aderdg.ADERDG.ADERDG._order, solvers.ButcherTableau.ButcherTableau._order, and exahype2.api.rungekutta.ButcherTableau.ButcherTableau._order.

◆ weight_matrix()

List[List[float]] exahype2.api.rungekutta.ButcherTableau.ButcherTableau.weight_matrix (   self)

The \( a_{kj} \) as number_of_stages x number_of_stages matrix.

The matrix is strictly lower triangular, as the scheme is explicit.

Definition at line 86 of file ButcherTableau.py.

References solvers.aderdg.ADERDG.ADERDG._order, solvers.ButcherTableau.ButcherTableau._order, and exahype2.api.rungekutta.ButcherTableau.ButcherTableau._order.

Field Documentation

◆ _order


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