SciML / SciML/JumpProcesses.jl
Support for marked point processes
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 150
- Forks
- 41
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 28
Description
Following the discussion at https://discourse.julialang.org/t/differentialequations-jl-marked-point-processes-or-storing-user-data/19453, I suggest adding support for marked point processes. Specifically, for simulating the process alongside an SDE affected by it, and retrieving times and marks from the solution.
As a suggested interface (slightly different than the one I suggested in the discourse thread above), the constructors for VariableRateJump and ConstantRateJump can have an additional optional (keyword?) argument mark specifying a mark sampling function. The affect! function would then take an additional argument for the mark.
total_rate(u,p,t) = ...
sample_mark(u,p,t) = ...
affect!(du,u,p,t,y) = ...
mpp = VariableRateJump( total_rate, affect!, mark=sample_mark )
prob = JumpProblem( ode_or_sde, mpp )
sol = solve(prob)
times, marks = get_point_events(sol)
which would mean something like
function _affect!(du,u,p,t)
y = sample_mark(u,p,t)
store_time_and_mark_somewhere!(t,y,somewhere)
affect!(du,u,p,t,y)
end
jump = VariableRateJump( total_rate, _affect! )
prob = JumpProblem( ode_or_sde, jump )
Mathematically, this is enough to support equations of the form
du_t=<drift and diffusion terms> +∫_y h(u_t,p,t,y)N(dt,dy)
where N is a MPP with an intensity kernel of the form λₜ(dy)=λ(u_t,p,t,dy) (total_rate is ∫λₜ(dy), sample_mark samples y from λₜ(dy)/∫λₜ(dy))
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names VariableRateJump, ConstantRateJump, JumpProblem, solve, and get_point_events but gives no repository file or test path. Start by tracing those constructors and solution event handling; done means marked sampling reaches affect! and times and marks can be retrieved for ODE/SDE jump simulations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100