|
1 | | -SimJulia |
2 | | -======== |
| 1 | +# SimJulia |
3 | 2 |
|
4 | | -**SimJulia** is a discrete event process oriented simulation framework written in [Julia](http://julialang.org/) inspired by the Python library [SimPy](https://simpy.readthedocs.io/). |
| 3 | +A discrete event process oriented simulation framework written in [Julia](http://julialang.org/) inspired by the Python library [SimPy](https://simpy.readthedocs.io/). |
5 | 4 |
|
6 | | -#### Build Status |
| 5 | +## Build Status |
7 | 6 |
|
8 | 7 | [](https://travis-ci.org/BenLauwens/SimJulia.jl) |
9 | 8 | [](https://ci.appveyor.com/project/BenLauwens/simjulia-jl) |
10 | 9 |
|
11 | 10 |
|
12 | | -#### Coverage |
| 11 | +## Coverage |
13 | 12 |
|
14 | 13 | [](https://coveralls.io/r/BenLauwens/SimJulia.jl?branch=master) |
15 | 14 | [](http://codecov.io/github/BenLauwens/SimJulia.jl?branch=master) |
16 | 15 |
|
17 | 16 |
|
18 | | -#### Installation |
| 17 | +## Installation |
19 | 18 |
|
20 | | -SimJulia.jl is a [registered package](http://pkg.julialang.org), and is simply installed by running |
| 19 | +SimJulia.jl is a [registered package](http://pkg.julialang.org), and is installed by running |
21 | 20 |
|
22 | 21 | ```julia |
23 | 22 | julia> Pkg.add("SimJulia") |
24 | 23 | ``` |
25 | 24 |
|
26 | 25 |
|
27 | | -#### Package Evaluator |
| 26 | +## Package Evaluator |
28 | 27 |
|
29 | 28 | [](http://pkg.julialang.org/?pkg=SimJulia&ver=0.3) |
30 | 29 | [](http://pkg.julialang.org/?pkg=SimJulia&ver=0.4) |
31 | 30 | [](http://pkg.julialang.org/?pkg=SimJulia&ver=0.5) |
32 | 31 | [](http://pkg.julialang.org/?pkg=SimJulia&ver=0.6) |
33 | 32 |
|
34 | | -#### Documentation |
| 33 | +## Documentation |
35 | 34 |
|
36 | 35 | [](https://BenLauwens.github.io/SimJulia.jl/stable) |
37 | 36 | [](https://BenLauwens.github.io/SimJulia.jl/latest) |
38 | 37 |
|
39 | 38 |
|
40 | | -#### Release Notes |
| 39 | +## Release Notes |
41 | 40 |
|
42 | | -* 2017: Version 0.5 does no longer integrate a continuous time solver. A continuous time solver using SimJulia as its discrete event engine can be found in the repository [QuantizedStateSystems](https://github.com/BenLauwens/QuantizedStateSystems.jl.git): |
43 | | - * Documentation is automated with [Documenter.jl](https://github.com/JuliaDocs/Documenter.jl). (WIP) |
44 | | -* 2017: Version 0.4.1, [ResumableFunctions](https://github.com/BenLauwens/ResumableFunctions.jl.git) is a separate package exporting the `resumable` and `yield` macro and it is a dependency for `SimJulia`. Users have to take into account the following syntax change: |
45 | | - * `@yield return arg` is replaced by `@yield arg` |
46 | | -* 2017: Version 0.4 only supports Julia v0.6 and above. It is a complete rewrite: more julian and less pythonic. The discrete event features are on par with version 0.3 and following features are added: |
| 41 | +* 2017: v0.5 does no longer integrate a continuous time solver. A continuous time solver based on the standalone [QSS](https://sourceforge.net/projects/qssengine/) solver using SimJulia as its discrete event engine can be found in the repository [QuantizedStateSystems](https://github.com/BenLauwens/QuantizedStateSystems.jl.git): |
| 42 | + * Documentation is automated with [Documenter.jl](https://github.com/JuliaDocs/Documenter.jl). |
| 43 | +* 2017: v0.4.1, the `resumable` and `yield` macro are put in a seperate package [ResumableFunctions](https://github.com/BenLauwens/ResumableFunctions.jl.git): |
| 44 | + * Users have to take into account the following syntax change: `@yield return arg` is replaced by `@yield arg`. |
| 45 | +* 2017: v0.4 only supports Julia v0.6 and above. It is a complete rewrite: more julian and less pythonic. The discrete event features are on par with v0.3 (SimPy v3) and following features are added: |
47 | 46 | * Scheduling of events can be done with `Base.Dates.Datetime` and `Base.Dates.Period`: |
48 | 47 | ```julia |
49 | 48 | using SimJulia |
@@ -95,22 +94,24 @@ julia> Pkg.add("SimJulia") |
95 | 94 | @coroutine fibonnaci(sim) |
96 | 95 | run(sim, 10) |
97 | 96 | ``` |
98 | | -* 2015: Version 0.3 synchronizes the API with SimPy v3 and is Julia v0.3, v0.4 and v0.5 compatible: |
99 | | - * Documentation is available at [readthedocs](http://simjuliajl.readthedocs.org/en/latest/) |
100 | | -* 2014: Version 0.2 introduces a continuous time solver and is Julia v0.2 and v0.3 comptabile. |
101 | | -* 2013: Version 0.1 is a Julia clone of SimPy v2 and is Julia v0.2 compatible. |
| 97 | + * A continuous time solver based on the standalone [QSS](https://sourceforge.net/projects/qssengine/) solver is implemented. Only non-stiff systems can be solved efficiently. |
| 98 | +* 2015: v0.3 synchronizes the API with SimPy v3 and is Julia v0.3, v0.4 and v0.5 compatible: |
| 99 | + * Documentation is available at [readthedocs](http://simjuliajl.readthedocs.org/en/latest/). |
| 100 | + * The continuous time solver is not implemented. |
| 101 | +* 2014: v0.2 introduces a continuous time solver inspired by the Simula library [DISCO](http://www.akira.ruc.dk/~keld/research/DISCO/) and is Julia v0.2 and v0.3 compatible. |
| 102 | +* 2013: v0.1 is a Julia clone of SimPy v2 and is Julia v0.2 compatible. |
102 | 103 |
|
103 | | -#### Todo |
| 104 | +## Todo |
104 | 105 |
|
105 | 106 | * Transparent output processing. |
106 | 107 | * Automatically running a large number of simulations (over a parameter space) on a cluster to do simulation based optimisation. |
107 | 108 |
|
108 | 109 |
|
109 | | -#### Authors |
| 110 | +## Authors |
110 | 111 |
|
111 | | -* Ben Lauwens, Royal Military Academy, Brussels, Belgium |
| 112 | +* Ben Lauwens, Royal Military Academy, Brussels, Belgium. |
112 | 113 |
|
113 | 114 |
|
114 | | -#### License |
| 115 | +## License |
115 | 116 |
|
116 | 117 | [](LICENSE.md) |
0 commit comments