VLE

Our works with VLE take place in the context of the Modeling and Simulation (M&S) theory defined by B. P. Zeigler. M&S theory tends to be as general as possible. It addresses major issues of computer sciences: from artificial intelligence to model design and distributed simulations. M&S theory aims to develop a common framework (formal and operational) for the specification of dynamical systems.

DEVS defines an atomic model as a set of input and output ports and a set of state transition functions. Every atomic model can be coupled with one or several other atomic model in order to build a coupled model. This operation can be repeated to form a hierarchy of coupled models. The set of atomic and coupled models and their connections is named the structure of the model. One important point is that DEVS is an operational formalism, i.e. it provides the algorithms (the abstract simulators) that implement the formal models.

In VLE, we have implemented the DSDE abstract simulator developed by Fernando J. Barros which enable parallelization of atomic models and dynamic structure changes during simulation. We also introduced an observation framework in the DEVS kernel simulator of VLE.

VLE proposes a lot of formalisms called DEVS extensions:
 * Difference equation.
 * Differential equation for the resolution of differential equation systems with QSS, Euler, Runge Kutta methods
 * Finite State Automate:
 * FD DEVS,
 * UML State-chart,
 * Moore, Mealy,
 * High level Petri net.
 * CellDEVS: cellular automata.
 * CellQSS: association of CellDEVS and QSS for the resolution of spatialized differential equation systems.
 * Decision.

Based on the DEVS theory, we ensure the compatibility of models and DEVS extensions at formal and operational levels.

VLE provides complete libraries named VLE Foundation Libraries (VFL) and tools for models design and simulation:
 * GVLE is a graphical user interface. It provides tools to visually construct a hierarchy of coupled models. A modelling plug-in can be use to define and to modify the behaviour of atomic models displaying a text editor where DEVS functions can be coded. Moreover, GVLE enables the definition of experimental frames. Results of the modeling activity (structure and dynamics of the models) are stored in a particular XML format call VPZ (Virtual laboratory Project Zip).
 * VLE is the core of the environment. The four other applications depend on VLE (that is why the name of this application is the same as the general framework). VLE implements the DEVS abstracts simulators and the extensions cited in the previous section. To perform simulations, VLE records the experimental frame generated by GVLE and then dynamically loads simulation and visualisation components of EOV and finally connect them to the DEVS-Bus. The Simulation plug-ins simulate the behaviours of the DEVS atomic models and VLE coordinates the simulation.
 * RVLE (R for VLE) is a R-Package to build experimental frames, to edit VPZ, to launch the simulation and to get the results of the simulation within the R environment.
 * PyVLE (Python for VLE) is a Python package to build experimental frames, to edit VPZ, to launch the simulation and to get the results of the simulation within the R environment.

In addition to the structure and the dynamic of models, the VPZ format stores the experimental frame. In the experimental design phase, the modeller chooses the states to observe and how to look at their evolution over time, i.e. the visualization component to use. Moreover, the modeller defines the initial conditions and the duration of the simulation. The modeller can define the variation domain for the initial parameters. Thereafter, VLE computes the number of simulations needed to achieve the experimental plan. The default behavior is an exhaustive experimental plan (i.e. the cross product of initials conditions). Starting from this stage, tools as RVLE and PyVLE are very useful since they provide tools to parameterize experimental designs, display results, edit VPZ.

The VLE framework is written in the standardized C++ programming language. C++ ensures the compatibility with a large number of operating systems and the interoperability with the major programming languages as Java, Fortran or Python for instance. We increase the portability of VLE using the portable libraries provided by the GNU Project and the Boost library. The choices of C++, the GNU libraries and the concepts of components have made the VLE an efficient and portable environment, easily modifiable and fast to develop.

VLE is a free environment of multi-modelling and simulation developed under the licence GPL v3.0. All source code are availabled on Sourceforge website.