Skip to content
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

Interface for specifying what mathematical level to resolve a reaction at #1112

Open
isaacsas opened this issue Nov 11, 2024 · 1 comment
Open

Comments

@isaacsas
Copy link
Member

Given https://github.com/SciML/ModelingToolkit.jl/pull/3181/files we need to now add an interface here for hybrid models. It seems natural to allow a way for users to tag a mathematical representation that a reaction should be realized in (for the static models we will initially support -- later we can allow dynamic models).

This seems like something that could be added as Reaction metadata, and then overloaded with an appropriate input kwarg when generating a problem (so one can easily change up a given reaction's representation). We also need an appropriate problem workflow for people to call for hybrid systems -- we have JumpInputs already that could be reused, but perhaps a HybridInputs type makes sense that is basically the same but handles all types of mixing equations. For the kwarg we need a way to map a reaction to what representation to use (just a dict of Reactions as keys to an enum type for values? Or should we add integer tags to reactions for use as keys?)

@isaacsas
Copy link
Member Author

isaacsas commented Nov 11, 2024

Note: as part of this interface we need to make sure to update the jump classification code to resolve jumps at the right level (i.e. if an ODE/SDE modifies a variable any jumps that depend on that variable must be made VariableRateJump).

And the interface should also be fine-grained enough to allow a user to manually specify something as variable rate too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant