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

Featured models

Additional information

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

  1. By directly embedding the ONELAB C++ library or the ONELAB Python module. This is what GetDP (a finite element solver for electromagnetism, heat transfer, acoustics and generic PDEs), Gmsh (a mesh generator with built-in CAD engine and post-processor) and the ONELAB mobile app do. Any C++ and Python code can do the same.
  2. By preprocessing the input files of any software. The different steps of a simulation (meshing, solving, post-processing) are then controlled by a python script, which dynamically regenerates the input files. Elmer, OpenFOAM, Code_Aster, Abaqus or CalculiX can for example be readily interfaced this way.

The ONELAB interface allows to call such clients and have them share parameters and modeling information. The implementation is based on a client-server model, with a server-side database, an (optional) graphical front-end, and local or remote clients communicating in-memory or through TCP/IP sockets. 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 the tutorials for examples.


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.