dsorokin / aivika

A multi-method simulation library
Other
79 stars 4 forks source link

The project has been moved to https://gitflic.ru/project/dsorokin/aivika

The old web site URL has another owner now

A multi-method simulation library

Aivika is a discrete event simulation (DES) framework with support of activity-oriented, event-oriented and process-oriented paradigms. It supports resource preemption and other improved simulation techniques. There is also a partial support of system dynamics and agent-based modelling. All the complexity is hidden under easy-to-use computations.

The represented aivika package is a basic simulation library optimized for sequential execution. There are also packages for nested and parallel distributed simulation. All they are licensed under BSD3.

The library has the following features:

The simulation engine itself has minimal dependencies. However, there are additional packages aivika-experiment and aivika-experiment-chart that offer the following features:

The charting package has two interchangeable back-ends aivika-experiment-cairo and aivika-experiment-diagrams, where the former uses Cairo and it creates small PNG images, while the latter creates more detailed SVG files and it can be used on Windows.

There are also additional packages that allow saving the results of simulation in SQL databases. Then the results can be accessed from other software applications. For example, it can be useful when creating flight simulators in other programming languages such as C# or Java.

Moreover, the method was generalized in package aivika-transformers and applied to nested simulation, package aivika-branches, and parallel distributed simulation, package aivika-distributed.

The libraries were tested on Linux, Windows and OS X.

P.S. Aivika is actually a genuine female Mari name which is pronounced with stress on the last syllable.