Catalyst.jl
Catalyst.jl copied to clipboard
alias elimination
Ideally we would have a way to eliminate algebraic coupling constraints so users could define couplings like
sys1.A ~ sys2.B
and we can then eliminate one of those species from a combined system (making it an observable). Obviously this can be done on generated ODEs already via structural_simplify
, but having this for composed ReactionSystem
s would be super useful too in building composed models.
With https://github.com/SciML/Catalyst.jl/pull/423, we have flattening of systems and can start to think about this. I think it makes sense to look at in two-steps:
- Support simple equations like
sys1.A ~ sys2.B
as mentioned above. This should hopefully be relatively straightforward since it is just going through, identifying such equations in the constraints of a flattened system, and then making appropriate substitutions. - Supporting reduction for more general linear constraints. This would enable elimination of conservation laws, but seems more complicated. See also https://github.com/SciML/Catalyst.jl/pull/340.