GBODE solver: is it relevant?

Going through OpenModelica’s user guide I stumbled upon one of its default integration methods: GBODE.

I was surprised to not find a Julia implementation/port of it e.g. available via DifferentialEquations.jl.

I wonder why that is? Is the method considered outdated or outperformed by other methods?


it looks like a method that takes a tableu and returns the corresponding explicit method. while we don’t have it, I think we do have very solid implementations of the explicit methods that are relevant.

Thanks a lot for the reply!

Is it possible to mention some of the similar methods that Julia has?

I am particularly interested about the “bi-rate” mode of GBODE, as this sounds relevant to my application.

Sorry if these seem obvious, I am just starting on ODEs, and any advice is greatly appreciated!

We do have ExplicitRK and such, but they don’t have tuned PI controller values and predictors, and they also don’t get all of the loop fusion the handwritten methods get. So the generic tableau methods end up really only useful for research.

Besides the ability to use a generic tableau, GBODE can work in a “bi-rate” mode with associated options (gbratio) to consider a portion of the states as “fast”.

Is there such a “bi-rate” mode available via e.g. DifferentialEquations.jl/ModelingToolkit.jl?

If not, are there other approaches to efficiently deal with models that have some fast and slow states in e.g. ModelingToolkit.jl?


What does it mean by a bi-rate mode here?

I can only quote OpenModelica’s documentation at this point:

The bi-rate mode can be utilized using the simulation flag gbratio. This flag determines the percentage of fast states with respect to all states. These states will then be automatically detected during integration based on the estimated approximation error and afterwards refined using an appropriate inner step-size control and interpolated values of the slow states.

Frustrantigly I could not find a paper or some other detailed reference for GBODE.

But I found out the PR that added this solver to OpenModelica - it was only added three months ago.

If it’s a multirate solver, then the way that they are doing it is odd at best.

1 Like