libroadRunner C API dense output.

17 views
Skip to first unread message

Tacio Camba Espí

unread,
Apr 17, 2020, 3:55:43 AM4/17/20
to tellurium-discuss
Hi all,

I'm using libroadRunner C API and I need the solution of my system at additional times between the values at which the solver computes the solution. All SUNDIALS integrators provide dense output functions like CVodeGetDky (CVODE). Is this functionality accesible from libroadRunner C API? Thank you in advance.

Greetings.

Matthias König

unread,
Apr 17, 2020, 4:28:01 AM4/17/20
to tellurium-discuss
Hi Tacio,

You can set the
Integrator.variable_step_size
to true on the integrator object. You can get the integrator object from the roadrunner model via model.getIntegrator()
This will return variable time steps with the timepoints corresponding to the solver timepoints (these are not equidistant!).
These time points are the timepoints which guarantee the absolute and relative solver tolerances.

There are options to get denser timepoints:
1. make the tolerances more strict, which will produce more time points
2. perform interpolation on the variable timepoints timecourse.

I am mainly doing the option 2. when needing additional time points, e.g. for parameter fitting.
I.e. I am doing a variable time course simulation and then interpolate the time points I need.
(internally roadrunner is also interpolating the variable timecourse to get the equidistant time courses.

Best Matthias

Tacio Camba Espí

unread,
Apr 17, 2020, 5:53:22 AM4/17/20
to tellurium-discuss
Thank you Matthias for your clarifying answer.

Best regards,

Tacio
Reply all
Reply to author
Forward
0 new messages