|
Peano
|
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 | |
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:
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.
| exahype2.api.rungekutta.ButcherTableau.ButcherTableau.__init__ | ( | self, | |
| int | order | ||
| ) |
| order | int 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.
| 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.
| int exahype2.api.rungekutta.ButcherTableau.ButcherTableau.number_of_stages | ( | self | ) |
Definition at line 68 of file ButcherTableau.py.
References solvers.aderdg.ADERDG.ADERDG._order, solvers.ButcherTableau.ButcherTableau._order, and exahype2.api.rungekutta.ButcherTableau.ButcherTableau._order.
| int exahype2.api.rungekutta.ButcherTableau.ButcherTableau.order | ( | self | ) |
Definition at line 64 of file ButcherTableau.py.
References solvers.aderdg.ADERDG.ADERDG._order, solvers.ButcherTableau.ButcherTableau._order, and exahype2.api.rungekutta.ButcherTableau.ButcherTableau._order.
Referenced by solvers.LagrangeBasisWithDiagonalMassMatrix.LagrangeBasisWithDiagonalMassMatrix.init_dictionary_with_default_parameters().

| 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.
| 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.
|
protected |
Definition at line 61 of file ButcherTableau.py.
Referenced by solvers.aderdg.ADERDG.ADERDG._init_dictionary_with_default_parameters(), solvers.aderdg.ADERDG.ADERDG.add_kernel_optimisations(), solvers.aderdg.ADERDG.ADERDG.create_readme_descriptor(), solvers.ButcherTableau.ButcherTableau.final_estimate_weights(), exahype2.api.rungekutta.ButcherTableau.ButcherTableau.final_estimate_weights(), exahype2.api.rungekutta.ButcherTableau.ButcherTableau.number_of_stages(), solvers.aderdg.ADERDG.ADERDG.order(), exahype2.api.rungekutta.ButcherTableau.ButcherTableau.order(), exahype2.api.rungekutta.ButcherTableau.ButcherTableau.relative_time_step_sizes(), solvers.ButcherTableau.ButcherTableau.time_step_sizes(), solvers.ButcherTableau.ButcherTableau.weight_matrix(), and exahype2.api.rungekutta.ButcherTableau.ButcherTableau.weight_matrix().