SciML / SciML/JumpProcesses.jl

CHV / True Jump method implementation discussion

Open
#291 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
150
Forks
41
Avg merge
1d 9h
Merged PRs (30d)
28

Description

I've started working on an implementation of Romain's true jump method / CHV method, but some issues have cropped up. @ChrisRackauckas any thoughts about the following:

There is a design decision for how to handle constant rate type jumps. We can either

  1. Treat them via CHV (i.e. in the generated ODEs).
  2. Treat them via an existing aggregator, but then have to add a continuous time callback to rootfind where the physical time (which is now an ODE variable) equals the next jump time.

I am leaning towards the former, but we then give up all the optimizations we have for selecting the next jump via the different constant rate aggregators.

Another issue is I'm not sure how to handle the user interface. Since the method uses a rescaled "simulation" time, s, it seems like we need to return some kind of custom solution object to users so they can get the solution / index the solution at physical times, t(s) (t(s) is itself solved for in the ODE). Likewise, we need to intercept calls to solve to add continuous callbacks for hitting physical stopping times and such. Wrapping the user provided f(du,u,p,t) function to take t(s) is no problem, but the input/output boundaries seem more challenging.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files or tests. Start by reviewing the proposed CHV/True Jump implementation discussion, focusing on constant-rate jump handling and the rescaled simulation time s. Done requires settled behavior for physical-time solution indexing, stopping-time callbacks, and the choice between aggregators and generated ODEs.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.