Skip to content

TheOpenScienceNerd/sim-tools

 
 

Repository files navigation

Sim-tools

Tools to support Discrete-Event Simulation (DES) and Monte-Carlo Simulation education and practice

Binder DOI PyPI version fury.io Anaconda-Server Badge Anaconda-Server Badge Read the Docs License: MIT Python 3.10+

HELLO!!! TEST TEST TEST

sim-tools is being developed to support Discrete-Event Simulation (DES) and Monte-Carlo Simulation education and applied simulation research. It is MIT licensed and freely available to practitioners, students and researchers via PyPi and conda-forge

Vision for sim-tools

  1. Deliver high quality reliable code for DES and Monte-Carlo Simulation education and practice with full documentation.
  2. Provide a simple to use pythonic interface.
  3. To improve the quality of simulation education using FOSS tools and encourage the use of best practice.

👥 Authors

  • Thomas Monks    ORCID: Monks

  • Amy Heather    ORCID: Heather

  • Alison Harper    ORCID: Harper

Features:

  1. Implementation of classic Optimisation via Simulation procedures such as KN, KN++, OBCA and OBCA-m
  2. Theoretical and empirical distributions module that includes classes that encapsulate a random number stream, seed, and distribution parameters.
  3. An extendable Distribution registry that provides a quick reproduible way to parameterise simulation models.
  4. Implementation of Thinning to sample from Non-stationary Poisson Processes (time-dependent) in a DES.
  5. Automatic selection of the number of replications to run via the Replications Algorithm.
  6. EXPERIMENTAL: model trace functionality to support debugging of simulation models.

Installation

Pip and PyPi

pip install sim-tools

Conda-forge

conda install -c conda-forge sim-tools

Mamba

mamba is a FOSS alternative to conda that is also quicker at resolving and installing environments.

mamba install sim-tools

Binder

Binder

Learn how to use sim-tools

Citation

If you use sim-tools for research, a practical report, education or any reason please include the following citation.

Monks, T., Heather, A., Harper, A. (2025). sim-tools: fundamental tools to support the simulation process in python. Zenodo. https://doi.org/10.5281/zenodo.4553641.

@software{sim_tools,
  author       = {Thomas Monks and Amy Heather and Alison Harper},
  title        = {sim-tools: fundamental tools to support the simulation process in python},
  year         = {2025},
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.4553641},
  url          = {https://doi.org/10.5281/zenodo.4553641}
}

Online Tutorials

  • Optimisation Via Simulation Colab

Contributing to sim-tools

Please fork Dev, make your modifications, run the unit tests and submit a pull request for review.

Development environment:

  • conda env create -f binder/environment.yml

  • conda activate sim_tools

All contributions are welcome!

Tips

Once in the sim_tools environment, you can run tests using the following command:

pytest

To view the documentation, navigate to the top level directory of the code repository in your terminal and issue the following command to build the Jupyter Book:

jb build docs/

To lint the repository, run:

bash lint.sh

NumPy style docstrings are used.

About

Tools to support the Discrete-Event Simulation process for education and practice.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Shell 0.1%