Skip to content
rtrepos edited this page Nov 23, 2013 · 41 revisions

This is the home page for technical documentation of vle-1.1. For the other versions, see the home page.

Get VLE

You can get vle from :

External documentation

Applications

VLE provides three applications : vle, gvle and mvle. vle is required to simulate the models, gvle is the gui interface for dsigning models and mvle is required to use mpi for parallelising simulations. Note that a mpi library should be available for building mvle (see the building options of the build page)

VLE packages and distribution

VLE provides packages for models, extensions, external libraries. See the [VLE packages page](VLE-Packages-for-vle 1.1). For users, modeling consists in developping its own package.

In order to distribute your own packages you can provide a distribution. VLE offers the possibility to automatically download and install packages from distributions. The modeling extension and tools developped by the VLE development team are thus provided into the VLE package distribution.

VLE ports

VLE provides port to other languages R, python. Works around matlab and java ports have been coducted but are not distributed for the moment. See pages [rvle](wiki/rvle for vle 1.1) and [pyvle](wiki/pyvle for vle 1.1)

VLE home

The [VLE_HOME](VLE-Home-for-vle 1.1) is a directory that contains log files, binaries of VLE packages and configuration file. You should not modify directly this directory unless you know what you are doing.

Relaese highlights

  • From VLE 1.1, the extension (FSA, Petri net, Difference Equation, etc.) are provided into packages. A package can provides simulators, data, documentation, headers and static libraries. A package can depends of another package to be build and to be use at runtime of the simulation.

  • The package can now be installed from remote repositories with the command line interface or via GVLE. Packages and thiers build dependencies and runtime dependencies are automatically downloaded and builded.

  • To improve the stability of VLE, We merge all shared libraries of vle (libvleutils, libvlevpz, libvledevs etc.) into an unique shared library called '''libvle-1.1.so''' or '''vle-1.1.dll'''. We provide a archive called '''vle-1.1.a''' or '''vle-1.1.lib'''.

  • We remove the Eov program and the libvleeov shared library. Now, graphical output are available into the GVLE application.

  • Add a dependency to the Boost::Asio library. Now, VLE depends on Asio library to download data over http protocol.

  • Add a dependency to the libarchive library (http://libarchive.github.com/) to extract gzip, bzip2 tarball and Zip archives from the remote repositories.

  • Add an MPI mode with the command line interface MPI. For MPI, VLE depends of an MPI library.

  • We replace the init and finalize functions in old libvleutils, libvlevalue, libvlemanager with a new classical object.

  • Add a new RemoteMananger class to access remote repositories. The command line interface is inspirited from the apt-get debian's command:

       vle --remote update
       vle --remote install glue
       vle --remote search '*gl*'
       vle --remote show glue
    
  • Change the packages directory name. To allow the use of VLE 1.0 and 1.1 on the same '''$VLE_HOME''' directory, we need to clearly split the packages from the two versions. We add in the VLE's version.hpp file, a macro '''VLE_ABI_VERSION''' equal to '''VLE_VERSION_MAJOR.VLE_VERSION_MINOR'''. We use this macro to define the name of the pkgs directory. For example, in VLE 1.1, the package directory is defined as '''vle/pkgs-1.1''' and in VLE 1.2, the package directory is defined as '''vle/pkgs-1.2'''. The current stable version of VLE is not change and use packages in '''vle/pkgs''' directory.

  • Remove Socket and Hosts classes. In VLE 1.1, we remove distant access to OOV and EOV. Thus, the utils::Socket and utils::Hosts are useless.

  • Rewrite the Manager system: Add a new Manager class to improve the stability of the API. The manager class allows to run in thread and MPI mode the experimental frames. ** Add a Simulation class to replace JustRun and Run classes. ** Update the Types available in Manager. We prefer use the Matrix value instead of the OutputMatrix of the Oov namespace. Add operator and, or, xor, equal and different between SimulationOptions and LogOptions to ensure correct type casting.

  • VPZ : Remove any reference to distant and local dynamics plugins and merge the libgraph.

  • extension, geometry, eov and graph are removed.

Compiler support

Operating Systems supported by VLE are Linux/Unix and Windows. Compilers used to build VLE and VLE Packages are :

  • g++ on Linux/Unix
  • mingw on windows

Requirements

The dependencies of VLE are :

  • c++ compiler g++
  • CMake cross plateform make
  • boost libraries (date-time, serialization, filesystem, test, thread, program-options, regex, chrono, asio)
  • gtkmm libraries
  • libarchive