Simulator for Causal Block Diagrams

rparedis 7f76e9060d Tested PlotManager against PlotBlocks 5 rokov pred
doc 68eb930531 first commit 5 rokov pred
examples 7f76e9060d Tested PlotManager against PlotBlocks 5 rokov pred
src 7f76e9060d Tested PlotManager against PlotBlocks 5 rokov pred
.gitignore bc7c902103 Code Cleanup 5 rokov pred
README.md 4934896dad Fixed simple examples with new library + added live plotting possibilities. 5 rokov pred
requirements.txt 7f76e9060d Tested PlotManager against PlotBlocks 5 rokov pred
test.sh ec562b52c7 Swapped src/CBD directory names to allow for setup.py 5 rokov pred
whishlist.txt ec562b52c7 Swapped src/CBD directory names to allow for setup.py 5 rokov pred

README.md

CBD Simulator Framework

 Copyright the Modelling, Simulation and Design Lab (MSDL)
           http://msdl.cs.mcgill.ca/

 Author(s): Marc Provost
            Hans Vangheluwe
            Joachim Denil
            Claudio Gomes
            Randy Paredis
  
 Purpose: simulates CBD models in Python.

 Requires Python version >= 3.6

 Uses the following Python libraries 
  unittest
  math 
  collections (for collections.namedtuple)
  os
  sys
  re
  datetime
  bokeh (https://bokeh.org/) for plotting
  Graphviz to display the dependency structure of the CBD

How to use the Simulator Framework:

Prerequisites

For plotting, the code uses the Bokeh library. To install bokeh for Python, if it is not already installed, follow the instructions in: https://bokeh.pydata.org/en/latest/docs/user_guide/quickstart.html#installation

To display dependencies between CBD blocks, the Graphviz library is used. To install Graphviz, if it is not already, follow the steps:

  1. Download and install Graphviz: https://www.graphviz.org/download/
  2. Make sure the Graphviz binaries are accessible in the PATH environment variable. For example, on windows there should be an entry in the PATH with: C:\Graphviz2.38\bin

Running the tests

From the root directory of the CBD Simulator Framework (i.e., where this README file resides).

python3 -m unittest discover -v CBD.test "*.py"

testDerivatorBlock and testIntegratorBlock will fail while working on the Discrete-Time CBD simulator.

Running examples

Make sure that PYTHONPATH includes the root directory of the CBD Simulator Framework.

cd examples/EvenNumberGen/
python3 EvenNumberGen.py
cd examples/Fibonacci/
python3 Fibonacci.py

Both will generate an HTML document containing a bokeh plot in the current directory.