zoomy_core.symsolver.discretization.time#
Time discretization of the solver templates: the SSP-RK stages, the IMEX Runge-Kutta tableaux and the CFL step size.
Module Contents#
Classes#
How a step treats the SystemModel’s implicit slots: |
|
Where the CFL step takes its wave speeds. |
|
Double Butcher tableau: explicit |
Functions#
CFL step |
|
Max |
|
The CFL step from the face wave speeds |
|
Adaptive CFL step, or a constant step that warns when above it. |
|
|
|
|
Data#
API#
- zoomy_core.symsolver.discretization.time.SSP_RK#
None
- class zoomy_core.symsolver.discretization.time.Imex#
Bases:
zoomy_core.misc.options.OptionHow a step treats the SystemModel’s implicit slots:
liesplits them off after the SSP-RK step (first order),ssp2solves the implicit source in every stage of IMEX-SSP2(2,2,2).Initialization
Initialize self. See help(type(self)) for accurate signature.
- lie#
‘lie’
- ssp2#
‘ssp2’
- class zoomy_core.symsolver.discretization.time.CflWaveSpeed#
Bases:
zoomy_core.misc.options.OptionWhere the CFL step takes its wave speeds.
Initialization
Initialize self. See help(type(self)) for accurate signature.
- faces#
‘faces’
- cells#
‘cells’
- class zoomy_core.symsolver.discretization.time.ImexTableau#
Bases:
typing.NamedTupleDouble Butcher tableau: explicit
(At, wt, ct)and diagonally implicit(A, w, c).References
Pareschi, Russo 2005, https://doi.org/10.1007/s10915-004-4636-4
- At: tuple#
None
- wt: tuple#
None
- ct: tuple#
None
- A: tuple#
None
- w: tuple#
None
- c: tuple#
None
- zoomy_core.symsolver.discretization.time.IMEX_RK#
None
- zoomy_core.symsolver.discretization.time.cfl_dt(nsm, Q, Qaux, p, mesh, cfl, dimension)#
CFL step
cfl * 2 r_f / (d |lambda|_f), min over faces, from the wave speeds of the cell states of each face and capped bydt_max.References
Audusse et al. 2004, https://doi.org/10.1137/S1064827503431090
- zoomy_core.symsolver.discretization.time.cell_wavespeed(nsm, Q, Qaux, p, mesh)#
Max
|eigenvalue|per face over the cell states of its two cells.
- zoomy_core.symsolver.discretization.time.face_dt(nsm, speed, mesh, cfl, dimension)#
The CFL step from the face wave speeds
speed, capped bydt_max.References
Audusse et al. 2004, https://doi.org/10.1137/S1064827503431090
- zoomy_core.symsolver.discretization.time.step_size(nsm, Q, Qaux, p, mesh, cfl, dimension, dt_constant, time, check_every=10)#
Adaptive CFL step, or a constant step that warns when above it.
- zoomy_core.symsolver.discretization.time.face_rule(nsm, mesh, cfl, dimension, dt_constant, time, cap, check_every=10)#
dt_ruletaking the step from the first stage’s face wave speeds (no eigensolve of its own), capped bycap.
- zoomy_core.symsolver.discretization.time.checked(dt, time, every, dt_cfl)#
dt, warning once if it exceeds the CFL stepdt_cfl(); tested everyeverysteps (1: each step, 0: never).