Difference between revisions of "ONELAB"

From ONELAB
Jump to: navigation, search
(Geuzaine moved page ONELAB to ONELAB Project)
 
Line 1: Line 1:
#REDIRECT [[ONELAB Project]]
+
[[File:Onelab_partners.png|frame|250px|right|ONELAB ([http://recherche-technologie.wallonie.be/projets/index.html?IDD=17018 WIST3 grant n° 1017086]) consortium]]
 +
 
 +
__NOTOC__
 +
 
 +
ONELAB is a lightweight interface to finite element software for engineering applications. It allows calling sequences of independent clients (e.g. mesh generators, finite element solvers and other related tools) and have them share parameters and modeling information. The parameters can be controlled and displayed interactively using [http://geuz.org/gmsh Gmsh].
 +
 
 +
The ONELAB project was funded by the Walloon Region under [http://recherche-technologie.wallonie.be/projets/index.html?IDD=17018 WIST3 grant n° 1017086].
 +
 
 +
[[File:onelab_srm.png|thumb|250px|right|Switched reluctance motor]]
 +
[[File:onelab_microstrip.png|thumb|250px|right|Microstrip antenna]]
 +
 
 +
== Getting started ==
 +
 
 +
=== For users ===
 +
 
 +
Try out native ONELAB clients:
 +
 
 +
* [[GetDP]]: a finite element solver for electromagnetism, heat transfer, acoustics and generic PDEs
 +
* [[Gmsh]]: a mesh generator and post-processor (Gmsh also plays the role of ONELAB server)
 +
* [[Mobile|Onelab/Mobile]]: a finite element package for iPhone, iPad and Android devices based on GetDP and Gmsh
 +
 
 +
Other clients (non-native) are interfaced with ONELAB by a system of input file pre-processing. The different steps of a simulation (meshing, solving, post-processing) are controlled by a python script. See worked-out examples with:
 +
<!-- I think this is too long for the homepage:
 +
(metamodel)  that maintains a database of parameters shared by the clients and successively calls them.
 +
Data communication is done in-memory with native clients, and by preprocessing input files instrumented
 +
with specific ONELAB directives for non-native clients.
 +
-->
 +
* [[Elmer]]: a finite element solver for multi-physic problems developed by CSC
 +
* [[OpenFOAM]]: an open source CFD software package developed by OpenCFD
 +
 
 +
Other clients can be interfaced readily by following the above examples.
 +
 
 +
Finally, find here some useful [[Hints|hints]] to use efficiently the graphical front-end of ONELAB.
 +
 
 +
=== For developers ===
 +
 
 +
Implement your own native ONELAB clients:
 +
 
 +
* [[Python|With Python]]: any Python code can become a native ONELAB client
 +
* [[C++|With C++]]: how to create a native C++ ONELAB client
 +
 
 +
<!--
 +
* [[Interfaced|Examples for legacy codes]]:
 +
* [[Tutorial|Introduction to the ONELAB scripting syntax]]: A tutorial example
 +
* [[Elmer|Examples for Elmer (interfaced client)]]: fluid dynamics, mechanics
 +
Technical information on how ONELAB works for [[Clients encapsulés|native clients]] and for [[Clients intefacés|interfaced clients]]
 +
The complete ONELAB scripting syntax is available here : [[Clients intefacés|ONELAB scripting syntax]].
 +
-->
 +
 
 +
== Technical information ==
 +
 
 +
The ONELAB interface is based on an abstraction of the interface to finite element solvers and related tools: for geometry modeling and meshing, for the definition of physical properties, constraints and other solver parameters, and for post-processing.
 +
 
 +
The implementation is based on a client-server model, with a server-side database and (optional) graphical front-end (implemented in [http://geuz.org/gmsh Gmsh]), and local or remote clients communicating in-memory or through TCP/IP sockets. Contrary to most available solver interfaces, the ONELAB server has no ''a priori'' knowledge about any specifics (input file format, syntax, ...) of the clients. In practice, 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.
 +
 
 +
Native ONELAB clients can be written in C++ or Python. For native clients the specification of which data to share is completely dynamic. For non-native clients, the ONELAB server can act as a pre-processor of their input files, which should be instrumented to specify the information to be shared. In all cases 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.

Revision as of 11:46, 16 April 2015

Error creating thumbnail: Unable to save thumbnail to destination
ONELAB (WIST3 grant n° 1017086) consortium


ONELAB is a lightweight interface to finite element software for engineering applications. It allows calling sequences of independent clients (e.g. mesh generators, finite element solvers and other related tools) and have them share parameters and modeling information. The parameters can be controlled and displayed interactively using Gmsh.

The ONELAB project was funded by the Walloon Region under WIST3 grant n° 1017086.

Switched reluctance motor
Microstrip antenna

Getting started

For users

Try out native ONELAB clients:

  • GetDP: a finite element solver for electromagnetism, heat transfer, acoustics and generic PDEs
  • Gmsh: a mesh generator and post-processor (Gmsh also plays the role of ONELAB server)
  • Onelab/Mobile: a finite element package for iPhone, iPad and Android devices based on GetDP and Gmsh

Other clients (non-native) are interfaced with ONELAB by a system of input file pre-processing. The different steps of a simulation (meshing, solving, post-processing) are controlled by a python script. See worked-out examples with:

  • Elmer: a finite element solver for multi-physic problems developed by CSC
  • OpenFOAM: an open source CFD software package developed by OpenCFD

Other clients can be interfaced readily by following the above examples.

Finally, find here some useful hints to use efficiently the graphical front-end of ONELAB.

For developers

Implement your own native ONELAB clients:

  • With Python: any Python code can become a native ONELAB client
  • With C++: how to create a native C++ ONELAB client


Technical information

The ONELAB interface is based on an abstraction of the interface to finite element solvers and related tools: for geometry modeling and meshing, for the definition of physical properties, constraints and other solver parameters, and for post-processing.

The implementation is based on a client-server model, with a server-side database and (optional) graphical front-end (implemented in Gmsh), and local or remote clients communicating in-memory or through TCP/IP sockets. Contrary to most available solver interfaces, the ONELAB server has no a priori knowledge about any specifics (input file format, syntax, ...) of the clients. In practice, 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.

Native ONELAB clients can be written in C++ or Python. For native clients the specification of which data to share is completely dynamic. For non-native clients, the ONELAB server can act as a pre-processor of their input files, which should be instrumented to specify the information to be shared. In all cases 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.