|
Dynamical System Framework
|
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.
The library is available on PyPI:
To check the installation you can simply run
The project requires C++20 or greater, cmake, tbb simdjson, spdlog, csv-parser and SQLiteCpp. To install requirements on Ubuntu:
To install requirements on macOS:
The library can be installed using CMake. To build and install the project in the default folder run:
Otherwise, it is possible to customize the installation path:
then building and installing it (eventually in sudo mode) with:
If you want to use the library from Python, you can build the Python bindings using pybind11. Make sure you have tbb installed:
Then, the installation is automatic via uv:
or you can just use the classic pip:
After installation, you should be able to import the module in Python:
If you encounter issues, ensure that the installation path is in your PYTHONPATH environment variable.
This project as a pre-commit configuration. To use it properly, please install:
This project uses Doctest for testing.
If the project is compiled in Debug or Coverage mode, tests are always built. Otherwise, you can add the -DDSF_TESTS=ON flag to enable test build.
To run the tests use the command:
Some functionalities of the library have been benchmarked in order to assess their efficiency.
The benchmarks are performed using Google Benchmarks. To build the benchmarks add the flag -DDSF_BENCHMARKS=ON :
To run all the benchmarks together use the command: