Open source

Open source

Research software, libraries and teaching resources developed at GeM and freely available. Most of them are hosted on the GeM GitLab, on GitHub or on the Nantes Université GitLab.

Numerical methods and finite elements

PY_XFEM icon: meshed plate with a hole, displacement field in colour

PY_XFEM

Python · finite elements · X-FEM

Python library of finite element and related tools, including the extended finite element method (X-FEM), for research and teaching.

Developers: Nicolas Chevaugeon

Reference: N. Chevaugeon, py_XFEM, software deposited in HAL (2024) – HAL record →

Source code (GitLab) →  ·  Documentation →

TwoScale

C++ · FEniCSx · PETSc · LGPL-3.0 licence

Distributed implementation of the two-scale method (Salzman & Moës) for the FEniCSx finite element library, with PETSc.

Developers: Alexis Salzman

Reference: A. Salzman, N. Moës, “A two-scale solver for linear elasticity problems in the context of parallel message passing”, Computer Methods in Applied Mechanics and Engineering, 407, 2023 – article → · HAL →

Source code (GitHub) →  ·  Documentation →

eXlibris

C++ · GPL licence

Set of C++ libraries for the extended finite element method (X-FEM) and the Thick Level Set (TLS) damage method, with applications to fracture and cohesive zones.

Developers: Nicolas Moës and the GeM Models and simulation team (A. Salzman, N. Chevaugeon, G. Legrain, B. Lé, G. Marckmann, K. Moreau…)

Source code (GeM GitLab) →

lip2d

Python · damage · Lip-field

Python implementation of the Lip-field method for brittle damage, a Lipschitz regularization of softening models.

Developers: Nicolas Chevaugeon

Reference: N. Moës, N. Chevaugeon, “Lipschitz regularization for softening material models: the Lip-field approach”, Comptes Rendus. Mécanique, 2021 – article → · HAL →
N. Chevaugeon, N. Moës, “Lipschitz regularization for fracture: the Lip-field approach”, Computer Methods in Applied Mechanics and Engineering, 2022 – article → · HAL →

Source code (GeM GitLab) →

Dynamics and vibrations

OSCILATE logo: wavy snake, "a symbolic solver for nonlinear dynamics"

OSCILATE

Python · SymPy · Apache-2.0 licence

Symbolic solution of systems of coupled nonlinear oscillators with the method of multiple scales, using SymPy.

Developers: Vincent Mahé

Reference: V. Mahé, OSCILATE, software deposited in HAL (2026) – HAL record →

Source code (GitHub) →  ·  Documentation →

Equal[iseR]

MATLAB · Python · Apache-2.0 licence

Frequency-domain solver for the vibration analysis of structures subject to unilateral contact and friction: an adaptation of the harmonic balance method based on a weighted residual formulation.

Developers: Mathias Legrand, Christophe Pierre, Sebastian McDonald, Arash Hashemi

Reference: M. Legrand, C. Pierre, Journal of Structural Dynamics, 2024 – article → · HAL →
A. Hashemi, C. Pierre, M. Legrand, Journal of Structural Dynamics, 2025 – article → · HAL →

Source code (GitHub) →  ·  HAL record →

Materials and constitutive models

MatLib

C++ · Python interface

Library of numerical constitutive models for nonlinear thermo-mechanics and other dissipative coupled behaviours, usable from various solvers. A light version and Jupyter notebooks are used for teaching.

Developers: Laurent Stainier

Source code (GeM GitLab) →  ·  Jupyter notebooks →

concrete-deep-segmentation

Python · deep learning

Modular deep learning segmentation algorithm for concrete microscopic images: two convolutional neural networks detect pores and aggregates.

Developers: Benoît Hilloulin

Reference: B. Hilloulin, I. Bekrine, E. Schmitt, “Modular deep learning segmentation algorithm for concrete microscopic images”, Construction and Building Materials, 2022 – article → · HAL →

Source code (GeM GitLab) →

Teaching resources

simpleTruss

Python · trusses

Small Python code to solve linear truss problems (2D), with plots of the deformed configuration and normal forces.

Developers: Grégory Legrain

Repository (Koda GitLab) →

Immersion BSc : essai de traction

Data · lab work

Data from a uniaxial tensile test on a PMMA specimen (real and synthetic data) and assignment, for the Bachelor of Science in Engineering immersion.

Developers: Grégory Legrain

Repository (GeM GitLab) →

MecaPix

Python · Django · GPL-3.0 licence

Web application for image-based measurements in experimental mechanics: digital image correlation (Pyxel, PyDIC, pyvale), point tracking in videos and camera testing, available from a web browser.

Developers: Gilles Marckmann

Source code (GeM GitLab) →  ·  Online application →

Shiny Phys

Python · Shiny · browser

Interactive teaching applications in numerical analysis and mechanics (numerical integration, forced oscillations…), running directly in the browser with Shinylive.

Developers: Nicolas Chevaugeon

Repository (Université de Nantes GitLab) →

Miscellaneous

Biblio Harvester

Python · bibliometrics

Harvesting and consolidation of the publications and theses of a laboratory from several sources (HAL, Scopus, OpenAlex, Google Scholar, theses.fr…), then generation of a static website. It feeds the publication lists of this website.

Developers: Gilles Marckmann

WordPress plugin: Biblio Harvester – Publications displays the file produced by the harvester in a WordPress site: filters, search, CSV export, lists by team or by author. Gilles Marckmann, with Claude (Anthropic) – download version 1.0.0 (zip) →

Source code (GeM GitLab) →

Publications HAL

PHP · WordPress plugin

WordPress plugin displaying the publications of a HAL collection or query, with type and year filters, search, pagination and thumbnails. Usable by any laboratory; French and English interface.

Developers: Gilles Marckmann, with Claude (Anthropic)

Download version 2.0.1 (zip) →

Cite and deposit software

When you use one of these tools, please cite its reference article or its HAL record. GeM members can deposit their own software in HAL (archived in Software Heritage) so that it can be cited and found: see the Open science page.

Comments are closed.