Trixi is compatible with the SciML ecosystem for ordinary differential equations. In particular, explicit Runge-Kutta methods from OrdinaryDiffEq.jl are tested extensively. Interesting classes of time integration schemes are
Some common options for solve
from OrdinaryDiffEq.jl
are the following. Further documentation can be found in the
SciML docs.
- If you use a fixed time step method like
CarpenterKennedy2N54
, you need to pass a time step asdt=...
. If you use aStepsizeCallback
, the value passed asdt=...
is irrelevant since it will be overwritten by theStepsizeCallback
. - You should usually set
save_everystep=false
. Otherwise, OrdinaryDiffEq.jl will (try to) save the numerical solution after every time step in RAM (until you run out of memory or start to swap). - You can set the maximal number of time steps via
maxiters=...
. - SSP methods and 2N low-storage methods from OrdinaryDiffEq.jl support
stage_limiter!
s andstep_limiter!
s, e.g.PositivityPreservingLimiterZhangShu
from Trixi.
!!! note "Number of rhs!
calls"
If you use explicit Runge-Kutta methods from OrdinaryDiffEq.jl,
the total number of rhs!
calls can be (slightly) bigger than the number of steps times the number
of stages, e.g. to allow for interpolation (dense output), root-finding for continuous callbacks,
and error-based time step control. In general, you often should not need to worry about this if you
use Trixi.