GithubHelp home page GithubHelp logo

zhangliye / simjulia.jl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from juliadynamics/concurrentsim.jl

0.0 2.0 0.0 1.15 MB

Combined continuous time / discrete event process oriented simulation framework written in Julia

License: MIT License

Julia 100.00%

simjulia.jl's Introduction

SimJulia

A discrete event process oriented simulation framework written in Julia inspired by the Python library SimPy.

Build Status & Coverage

Build Status Build status Coverage Status codecov

Installation

SimJulia SimJulia SimJulia SimJulia SimJulia SimJulia

SimJulia.jl is a registered package, and is installed by running

julia> Pkg.add("SimJulia")

Documentation

License

License

Authors

  • Ben Lauwens, Royal Military Academy, Brussels, Belgium.

Contributing

  • To discuss problems or feature requests, file an issue. For bugs, please include as much information as possible, including operating system, julia version, and version of the dependencies: DataStructures and ResumableFunctions.
  • To contribute, make a pull request. Contributions should include tests for any new features/bug fixes.

Release Notes

  • v0.7 (2018)
    • adds support for Julia v1.0
  • v0.6 (2018)
    • adds support for Julia v0.7.
    • the @oldprocess macro and the produce / consume functions are removed because they are no longer supported.
  • v0.5 (2018)
    • The old way of making processes is deprecated in favor of the semi-coroutine approach as implemented in ResumableFunctions. The @process macro replaces the @coroutine macro. The old @process macro is temporarily renamed @oldprocess and will be removed when the infrastructure supporting the produce and the consume functions is no longer available in Julia. (DONE)
    • This version no longer integrates a continuous time solver. A continuous simulation framework based on DISCO and inspired by the standalone QSS solver using SimJulia as its discrete-event engine can be found in the repository QuantizedStateSystems (WIP):
    • Documentation is automated with Documenter.jl (WIP: Overview and Tutorial OK).
  • v0.4.1 (2017)
    • the @resumable and @yield macros are put in a seperate package ResumableFunctions:
    • Users have to take into account the following syntax change: @yield return arg is replaced by @yield arg.
  • v0.4 (2017) 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:
    • Scheduling of events can be done with Base.Dates.Datetime and Base.Dates.Period
    • Two ways of making Processes are provided:
      • using the existing concept of Tasks
      • using a novel finite-statemachine approach
    • A continuous time solver based on the standalone QSS solver is implemented. Only non-stiff systems can be solved efficiently.
  • v0.3 (2015) synchronizes the API with SimPy v3 and is Julia v0.3, v0.4 and v0.5 compatible:
    • Documentation is available at readthedocs.
    • The continuous time solver is not implemented.
  • v0.2 (2014) introduces a continuous time solver inspired by the Simula library DISCO and is Julia v0.2 and v0.3 compatible.
  • v0.1 (2013) is a Julia clone of SimPy v2 and is Julia v0.2 compatible.

Todo

  • Transparent statistics gathering for resources.
  • Update of documentation.

simjulia.jl's People

Contributors

benlauwens avatar iainnz avatar ajkeith avatar femtocleaner[bot] avatar scls19fr avatar tkelman avatar staticfloat avatar zhangliye avatar fbastin avatar leozhangsg avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.