The Virtual Laboratory Environment is a multi-modeling and simulation platform. It is a powerful modeler and simulator supporting the use of different formalisms for models specification and simulation.
VLE is particularly well adapted for complex models where the coupling of different formalisms is required. In addition to the classical use of one single formalism for modeling and simulation, VLE can integrate, i.e. couple, heterogeneous formalisms in one coherent simulation model.
For instance, VLE supports, and is not limited to, the modeling and simulation of the following formalisms (stand alone or coupled together):
- Discrete Event Specifications
- Differential equations
- Difference equations
- Petri net
- Finite State Automata
VLE supports the following modeling and simulation paradigms:
- System Dynamics
- Multi-Agent Systems, Multi-Agent Simulation
- Decision support systems
- Learning systems
VLE is based on the theory of modeling and simulation initially developed by B.P. Zeigler in the 70’s and continuously enriched until now by an active international community.
VLE is based on the DEVS formalism (Discrete Event systems Specification). VLE provides a set of C++ libraries, the VFL (VLE Foundation Libraries) and a lot of programs like a simulator, a graphical user interface to model and develop models and tools to analyse and visualize simulation outputs. The VFL are sufficiently well designed to allow the development of new simulators, models or new programs for modeling and analysis.
Our goal with VLE is to provide powerful tools for modeling, simulating and analysing complex dynamics systems. We hope build an easy to use software. Our development are complying with the [DEVS] specification [DEVS] and works made by the simulation community. We are also pursuing the objective to develop and maintain a community of users and developers using an open, agile and community oriented development.
VLE is a free environment of multi-modelling and simulation developed under the [licence GPL v3.0]. All source code are available on Github.
DEVS, Discrete Event System Specification is a modular and hierarchic formalism for modelling, simulation and study of complex systems. These system can be discrete event systems describe by state transition functions or continuous systems describe by differential equation for instance or hybrid systems.
In VLE, we have implemented the DSDE abstract simulator developed by Fernando J. Barros which enables parallelization of atomic models and dynamic structure changes during simulation. We also introduced an observation framework in the DEVS kernel simulator of VLE.
With VLE, a model or an extension is a system plug-in (dll or so) which is obtained from compiling a C++ code. Thus, it is necessary to know the part of the VLE’s C++ API corresponding to the model or extension. Since VLE2, it is possible to develop VLE and GVLE with the Qt Creator IDE.
VLE packages are standard Unix tar archives optionally compressed with gzip or bzip2 which can store the source code of the models, documentation and data. The accepted program for handling these packages are the command line interface of VLE, GVLE, RVLE and PyVLE.
VLE provides several packages to simplify the development of atomic models. These packages are called extensions and provides behaviour like: finite state automaton, ordinary differential equation solver, Petri net, planning and decision making… Some extensions also provide graphical interfaces and C++ code generators.
Package distributions are sets of VLE packages available through http. You can either use a distribution which is already available or provide your own distribution. VLE offers the possibility to automatically download and install packages from distributions. The modelling extension and tools developed by the VLE development team are thus provided into the VLE package distribution.
Programs and ports : VLE provides the VFL (VLE Foundation Library). This library is used to develop:
- VLE: the command line interface. It can be used in particular for simulating models, installing packages.
- GVLE: the graphical user interface. It is required for developing models.
- MVLE: a program to run simulations in a parallel way; it requires a MPI library.
- RVLE: the R package. This port allows to use VLE Into a R session.
- PYVLE: the python package. This port allows to use VLE Into a python session.