libsbml icon indicating copy to clipboard operation
libsbml copied to clipboard

Add piecewise-to-events translators

Open luciansmith opened this issue 1 year ago • 1 comments

We found a model that didn't work correctly on roadrunner, since there was a piecewise equation that only changed for a window of time that wasn't checked by the CVODE algorithm. Translating the logic to events worked fine, however. It might be nice to have a translator in libsbml that would convert piecewise equations to events, something like (in Antimony)

...piecewise(x, cond1, y, cond2, z)...

changes to:

...piecewise_var1...

piecewise_var1 = z at cond1, t0=false: piecewise_var1 = x at cond2 && !cond1, t0=false: piecewise_var1 = y at !cond2 && !cond1, t0=false: piecewise_var1 = z

luciansmith avatar Jan 19 '24 23:01 luciansmith

good idea, that is also what COPASI does.

fbergmann avatar Jan 20 '24 10:01 fbergmann