Skip to content
rtrepos edited this page May 20, 2014 · 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 :

Applications

VLE provides three applications : vle, gvle and mvle. vle is required to simulate the models, gvle is the gui interface for designing 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)

VPZ files

The VPZ (VLE Project file Zipped) is an XML file format use in VLE to represent:

  • the structure of a model: hierachy of coupled models, atomic models, connections, inputs and outputs port
  • the experimental conditions: how to initialize atomic models, multiple values can be given in order to perform multiple simulations.
  • the observation: how to observe atomic models, output file format, observation policy (constant timed observation, by event or at the end of the simulation).

The detail of the format is given into this page : [XML format of VPZ files](XML-format-of-VPZ-files-for-vle 1.1). The VPZ files are generally located into the exp directory of a [VLE package](VLE-Packages-for-vle 1.1).

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.

VLE 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 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 and pyvle.

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.

Specific documentation for C++ developpers

Some tools are provided and used all over the code of VLE and its models. If you intend to handle different languages, have a look at the gettext page. You can also have a look to the [doxygen documentation] (http://www.vle-project.org/doxygen/dev/).

Release 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

For the VFL (VLE Foundation Libraries) API :

  glibmm (>= 2.22)
  libxml2 (>= 2.8)
  libarchive (>= 2.0)
  boost (>= 1.41)
  cmake (>= 2.8.0)
  make (>= 1.8)
  c++ compiler (gcc >= 4.4, clang >= 3.1, intel icc (>= 11.0)

For the MPI command line:

  Any MPI 2 library as OpenMpi, mpich

For the GUI:

  gtkmm (>= 2.22.0)