-
Notifications
You must be signed in to change notification settings - Fork 32
Refactor rateOf handling #3036
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor rateOf handling #3036
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3036 +/- ##
==========================================
- Coverage 77.41% 77.38% -0.03%
==========================================
Files 311 311
Lines 20594 20597 +3
Branches 1500 1499 -1
==========================================
- Hits 15942 15940 -2
- Misses 4642 4647 +5
Partials 10 10
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
5a5a64f to
0eea980
Compare
GitHub Action runners run out of disk space when installing petab-sciml with all its huge dependencies. Don't install that for now. So far, it's not used anywhere for the documentation build as far as I can see. This won't prevent enabling intersphinx later on.
| if rate_ofs := ae.get_val().find(rate_of_func): | ||
| # Not implemented | ||
| raise SBMLException( | ||
| "rateOf() is not supported in algebraic equations." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
include name of ae?, why is this necessary in given is_ode check below?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
include name of ae?
👍
why is this necessary in given
is_odecheck below?
Currently, no substitution is even attempted for any ae. Therefore, that check will never trigger. Will add a comment.
Pull rateOf-handling out of DEModel and keep it along other SBML processing where it belongs. This is easier to follow and prevents some lingering issues with the old approach due to the xdot / w interdependencies. This also handles rateOf expressions in some additional, previously unsupported places like event assignments.
0eea980 to
e7b4896
Compare
* doc: Skip petab-sciml for now GitHub Action runners run out of disk space when installing petab-sciml with all its huge dependencies. Don't install that for now. So far, it's not used anywhere for the documentation build as far as I can see. This won't prevent enabling intersphinx later on. * Refactor rateOf handling Pull rateOf-handling out of DEModel and keep it along other SBML processing where it belongs. This is easier to follow and prevents some lingering issues with the old approach due to the xdot / w interdependencies. This also handles rateOf expressions in some additional, previously unsupported places like event assignments.
* doc: Skip petab-sciml for now GitHub Action runners run out of disk space when installing petab-sciml with all its huge dependencies. Don't install that for now. So far, it's not used anywhere for the documentation build as far as I can see. This won't prevent enabling intersphinx later on. * Refactor rateOf handling Pull rateOf-handling out of DEModel and keep it along other SBML processing where it belongs. This is easier to follow and prevents some lingering issues with the old approach due to the xdot / w interdependencies. This also handles rateOf expressions in some additional, previously unsupported places like event assignments.
With AMICI-dev#3036, the ordering of symbols and expressions has changed. This is not a problem per se, but would require recreating the test oracles for the models in `models/`. Therefore, don't do any unnecessary reordering.
With AMICI-dev#3036, the ordering of symbols and expressions has changed. This is not a problem per se, but would require recreating the test oracles for the models in `models/`. Therefore, don't do any unnecessary reordering.
With AMICI-dev#3036, the ordering of `w` symbols and expressions has changed. This is not a problem per se, but would require recreating the test oracles for the models in `models/`. Therefore, don't do any unnecessary reordering.
Pull rateOf-handling out of DEModel and keep it along other SBML processing where it belongs.
This is easier to follow and prevents some lingering issues with the old approach due to the xdot / w interdependencies.
This also handles rateOf expressions in some additional, previously unsupported places like event assignments.
I think this also fixes a potential bug in the
wreordering in_process_hybridizationthat might otherwise trigger in combination with conservations laws, because they might end up at the beginning ofw.A minor downside is that in xdot rateOf expressions are replaced by the respective xdot equations where previously xdot symbols were used, but I prefer the reduced complexity. If this becomes a performance problem, this can easily be addressed by shifting rateOf into
wby adding an extra assignment rule to the model.