JuliaDynamics / ConcurrentSim.jl

A discrete event process oriented simulation framework written in Julia. Formerly named SimJulia!
MIT License
177 stars 35 forks source link

Add Iain's blog post example as a test case #9

Closed ViralBShah closed 9 years ago

ViralBShah commented 10 years ago

Would be nice to have @IainNZ 's code from his blog post as a test case: http://iaindunning.com/2013/simulation-study-of-a-laundry-room.html`

BenLauwens commented 9 years ago

Hi @ViralBShah, @IainNZ

During the first half of 2015 (only two courses to lecture ...;), I will implement the next version of SimJulia based on the SimPy3.x release. The main modification will be a more uniform "event-driven" approach, limiting the number of special functions to call and I will integrate a try/catch approach for failed events. The continuous time feature will also be adapted to allow transparently other ODE solvers (main issue remains that integrating with ODE.jl is cumbersome because I need high-quality interpolated values between time steps, ... I think the api of ODE.jl needs a refresh to make the integration possible). Another novelty will be the simultaneous solution of SDEs (stochastic differential equations) to simulated generic diffusion processes. I have already played a little bit with the Brownian.jl package but again it is fairly limited for what I intend to do. Another useful thing linked with SDE is to run the several simulations in parallel on a cluster to allow MonteCarlo evaluation of the performance measure that are evaluated during the simulation. The automatic production of useful data out of the simulations is something that can be explored. I have already one PhD student working on blackbox variance reduction methods for discrete-event simulations. I will also try to eliminate all the code that is already provided in another way, e.g. binary heaps, ... One of the main reasons why I really want to make SimJulia more easy to use, is the difficulty that my students have to start programming a discrete event simulation or to solve an ODE. Having one package that can do both in a uniform way allows for some nice applications as the continuous_5.jl example in which the phase speed of falling domino blocks is optimized. Engineering is often The study of the laundry room is a nice case to introduce some special features and I will keep it in mind when writing the documentation. So if you know people interested to help the development of SimJulia, I am very willing to make it a collaborative effort!