Skip to content

Speeding up non-stiff models ​

Default PEtabODEProblem options are tuned for stiff biological ODE models based on [1]. For non-stiff models, the default gradient method is often still a good choice (it mainly depends on the number of estimated parameters), but changing the ODE solver can substantially reduce runtime.

Explicit solvers are typically fastest for non-stiff models since they avoid solving a nonlinear system at each solver step. However, often during parameter estimation the optimizer explores parameter regions where an otherwise non-stiff model becomes stiff [1]. A robust compromise is therefore to use a composite solver that automatically switches between non-stiff and stiff methods, for example:

julia
petab_prob = PEtabODEProblem(model;
    odesolver = ODESolver(AutoVern7(Rodas5P())),
)

For more details on explicit and composite solvers, see the OrdinaryDiffEq.jl solver documentation.

References ​

  1. S. Persson, F. Fröhlich, S. Grein, T. Loman, D. Ognissanti, V. Hasselgren, J. Hasenauer and M. Cvijovic. PEtab. jl: advancing the efficiency and utility of dynamic modelling. Bioinformatics 41, btaf497 (2025).