# Simulating Continuous Time Models in Julia

**URL:** <https://discourse.julialang.org/t/simulating-continuous-time-models-in-julia/131846>\
**Category:** General Usage\
**Tags:** economics, packages, simulations\
**Created:** [August 25, 2025, 5:27pm UTC](https://discourse.julialang.org/t/simulating-continuous-time-models-in-julia/131846 "2025-08-25T17:27:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![GregCamp](https://avatars.discourse-cdn.com/v4/letter/g/0ea827/32.png) [@GregCamp](https://discourse.julialang.org/u/GregCamp)\
**Post date:** [August 25, 2025, 5:27pm UTC](https://discourse.julialang.org/t/simulating-continuous-time-models-in-julia/131846/1 "2025-08-25T17:27:40Z")

</div>

I’m interested in simulating a relatively simple continuous-time model in Julia. The model is a variation of the Diamond-Mortensen-Pissarides (DMP) framework with the following elements:

- Agents are either employed at a firm, where they receive a wage, or unemployed.

- With a fixed Poisson arrival rate λ, employed agents receive productivity shocks that can either increase or decrease their wage.

- With a fixed Poisson arrival rate γ, both employed and unemployed agents receive job offers from other firms and decide whether to accept them.

My question is: are there any Julia packages that can simulate agents and their decisions in a continuous-time model like this? In particular, I’m interested in using a package that correctly handles the arrival rates of the multiple Poisson processes.

I’m aware that I could implement the model in discrete time, but I’m not sure if packages exist for continuous-time simulation. By “simulate” I mean tracking the sequence of decisions agents make in the model (e.g., remain unemployed or accept a new job).

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [August 25, 2025, 6:40pm UTC](https://discourse.julialang.org/t/simulating-continuous-time-models-in-julia/131846/2 "2025-08-25T18:40:41Z")

</div>

I am not aware of any Julia package that does this.

However overall, I highly encourage you to write the model in continuous time and then use a value function iteration approach to solve for all quantities.

That is, if your model doesn’t have closed-form solutions. The beauty of vanilla DMP model (as described in Pissaredes’ textbook) is that there are closed form solutions for all equilibrium values, more or less.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [August 25, 2025, 6:51pm UTC](https://discourse.julialang.org/t/simulating-continuous-time-models-in-julia/131846/3 "2025-08-25T18:51:33Z")

</div>

See JumpProcesses.jl

---

<div class="post-metadata">

**Author:** ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)\
**Post date:** [August 25, 2025, 8:55pm UTC](https://discourse.julialang.org/t/simulating-continuous-time-models-in-julia/131846/4 "2025-08-25T20:55:15Z")

</div>

Agents.jl has full support for continuous time processes interlaced with traditional agent based modelling infrastructure via it’s `EventQueueABM`. See here for a tutorial: [Spatial rock-paper-scissors (event based) · Agents.jl](https://juliadynamics.github.io/Agents.jl/stable/examples/event_rock_paper_scissors/)

---

<div class="post-metadata">

**Author:** ![GregCamp](https://avatars.discourse-cdn.com/v4/letter/g/0ea827/32.png) [@GregCamp](https://discourse.julialang.org/u/GregCamp)\
**Post date:** [August 26, 2025, 6:38pm UTC](https://discourse.julialang.org/t/simulating-continuous-time-models-in-julia/131846/5 "2025-08-26T18:38:42Z")

</div>

My model should have a closed-form solution. I’ll be sure to check my simulations with the values I get via value function iteration. Thank you for the suggestion @pdeffebach !

---

<div class="post-metadata">

**Author:** ![GregCamp](https://avatars.discourse-cdn.com/v4/letter/g/0ea827/32.png) [@GregCamp](https://discourse.julialang.org/u/GregCamp)\
**Post date:** [August 26, 2025, 6:40pm UTC](https://discourse.julialang.org/t/simulating-continuous-time-models-in-julia/131846/6 "2025-08-26T18:40:40Z")

</div>

This is exactly what I’m looking for! I cannot thank you enough @ChrisRackauckas!
