ONELAB

Open Numerical Engineering LABoratory


ONELAB is an open-source, lightweight interface to finite element software. It is completely free: the default ONELAB software bundle contains the mesh generator Gmsh, the finite element solver GetDP and the optimization library conveks. Many other codes (free or not) can be easily interfaced as well.

Getting started

  1. Download the ONELAB software bundle:
  2. Launch the app
  3. Open a model:
  4. Press Run
  5. ... then explore other models, or learn how to create your own with the tutorials

Additional information

ONELAB can interface finite element and related software (ONELAB clients) in several ways:

  1. By using the ONELAB C++ library or the ONELAB Python module to communicate with the Gmsh ONELAB server over TCP/IP or Unix sockets. This is what is done by GetDP; any C++ and Python code can do the same with minimal code modifications.
  2. By using the Gmsh API in C++, C, Python or Julia to comunicate with the ONELAB server over TCP/IP or Unix sockets, or directly in-memory. This allows complete flexibility over how the client interacts with ONELAB (e.g. by pre-processing its input files) and has been successfully used with e.g. Elmer, OpenFOAM, Code_Aster, Abaqus, CalculiX, Safir, ...

The ONELAB interface allows to interact with clients and have them share parameters and modeling information. Contrary to most solver interfaces, the ONELAB server has no a priori knowledge about any specifics (input file format, syntax, ...) of the clients. This is made possible by having any simulation preceded by an analysis phase, during which the clients are asked to upload their parameter set to the server. The issues of completeness and consistency of the parameter sets are completely dealt with on the client side: the role of ONELAB is limited to data centralization, modification and re-dispatching.

See this general presentation for more information and the tutorials for examples.

Sponsors

The ONELAB project was funded by the Walloon Region under WIST3 grant n° 1017086 and Fonds de maturation grant n° 1217742 (AWE), and was sponsored by GDTech and Audaxis. Additional funding has been provided by the Belgian Science Policy under grant IAP P7/02.