Skip to content

add ismassaction and get rid of some temp arrays #369

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

Merged
merged 5 commits into from
May 18, 2020

Conversation

isaacsas
Copy link
Member

@isaacsas isaacsas commented May 17, 2020

@TorkelE Mind taking a look that this looks ok to you? ismassaction is so useful I've found that I wanted a separate routine for it; we can drop it from DEBio now. This also re-arranges a bit so that the ratelaw calculation is only called for non-mass action jumps. On a big system that should help system construction time.

@isaacsas
Copy link
Member Author

@ChrisRackauckas I think with this we are done with ReactionSystems and their conversions over here, modulo we should add a RegularJump system and conversion with the new leaping code coming online.

@isaacsas
Copy link
Member Author

but let me know if you see anything we've missed.

@ChrisRackauckas
Copy link
Member

Looks good. Could a follow up PR flesh out the docs for JumpSystem and ReactionSystem?

We need to think about how we want to do the conversions there to regular jump problems. I think full_regular_jump or something like that would be to get to standard tau-leaping, and we want to leave open things like hybrid_regular that have double ups with extra parameters etc.

@isaacsas
Copy link
Member Author

Yup, doc updates are on the TODO list next over here. I didn't want to advertise all this stuff till we had it working / somewhat finalized, but we are there now.

Hybrid systems will need a bit of thought, but I can go ahead with the basic RegularJumpSystem to start at least. If we later allow RegularJumpSystems to be hybrids instead of making a separate HybridJumpSystem we can update over here as necessary.

@isaacsas
Copy link
Member Author

Should hybrid be working at the DiffEqJump / StochasticDiffEq level already?

@ChrisRackauckas
Copy link
Member

Should hybrid be working at the DiffEqJump / StochasticDiffEq level already?

Yes, you just can't mix that hybrid with actual SDEs/ODEs yet, which is my next goal.

Hybrid systems will need a bit of thought, but I can go ahead with the basic RegularJumpSystem to start at least. If we later allow RegularJumpSystems to be hybrids instead of making a separate HybridJumpSystem we can update over here as necessary.

It would be good to keep hybrid separate for SimpleTauLeaping.

One thing that would be interesting too would be a static splitting, but it might be difficult to choose which jumps go where.

Then dynamic would be a bigger goal down the line, which is possible by making every jump part of both and adding parameters, but we'd need solvers to "know about it" in a sensible way.

@ChrisRackauckas
Copy link
Member

https://travis-ci.org/github/SciML/ModelingToolkit.jl/builds/688124601#L570

That tolerance should be made higher since it seems reliant on compiler optimization levels.

@isaacsas
Copy link
Member Author

I'm away from my computer the next few hours, but will bump that up (and double check the generated code) later tonight.

@TorkelE
Copy link
Member

TorkelE commented May 17, 2020

Good stuff.

@ChrisRackauckas ChrisRackauckas merged commit c926e49 into SciML:master May 18, 2020
@isaacsas isaacsas deleted the rs-cleanup branch May 18, 2020 01:24
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

Successfully merging this pull request may close these issues.

3 participants