Dynamical system model
Loading...
Searching...
No Matches
DynamicalSystemFramework

Standard TBB codecov Latest Release

The aim of this project is to rework the original Traffic Flow Dynamics Model. This rework consists of a full code rewriting, in order to implement more features (like intersections) and get advantage from the latest C++ updates.

Table of Contents

  • Requirements
  • Installation
  • Testing
  • Benchmarking
  • Citing
  • Bibliography

Requirements

The project requires C++20 or greater, cmake and tbb. To install requirements on Ubuntu:

sudo apt install libtbb-dev cmake

To install requirements on macOS:

brew install tbb cmake

Utilities are written in python. To install their dependencies:

pip install -r ./requirements.txt

Installation

The library can be installed using CMake. To build and install the project in the default folder run:

cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build
sudo cmake --install build

Otherwise, it is possible to customize the installation path:

cmake -B build -DCMAKE_INSTALL_PREFIX=/path/to/install

then building and installing it (eventually in sudo mode) with:

cmake --build build
cmake --install build

Testing

This project uses Doctest for testing.

To compile tests run:

cd test
cmake -B build && make -C build

To run all the tests together use the command:

./dsm_tests.out

Benchmarking

Some functionalities of the library have been benchmarked in order to assess their efficiency.
The benchmarks are performed using a small toolkit developed by @sbaldu, in order to keep them simple and without needing to rely on large external libraries.
To compile the benchmarks use the commands:

cd benchmark
cmake -B build && make -C build

To run all the benchmarks together use the command:

for f in ./*.out ; do ./$f ; done

Citing

@misc{DSM,
author = {Berselli, Gregorio and Balducci, Simone},
title = {Framework for modelling dynamical complex systems.},
year = {2023},
url = {https://github.com/physycom/DynamicalSystemFramework},
publisher = {GitHub},
howpublished = {\url{https://github.com/physycom/DynamicalSystemFramework}}
}

Bibliography

  • Berselli, Gregorio (2022) Modelli di traffico per la formazione della congestione su una rete stradale. University of Bologna, Bachelor's Degree in Physics [L-DM270]. Link to Thesis.
  • Berselli, Gregorio (2024) Advanced queuing traffic model for accurate congestion forecasting and management. University of Bologna, Master's Degree in Physics [LM-DM270]. Link to Thesis.
  • Mungai, Veronica (2024) Studio dell'ottimizzazione di una rete semaforica. University of Bologna, Bachelor's Degree in Physics [L-DM270]. Link to Thesis.