SLOWS (and neoC library)

A shock-bubble interaction (RD scheme + Crank-Nicholson in time)

neoC is a C- platform for the solution of unsteady hyperbolic and parabolic flow models on unstructured grids. It consists of a common kernel taking care of temporal, nonlinear (Newton) and elemental (mesh) loops, geometry pre-processing etc., plus a number of model and scheme dependent functions. Finite volume and residual distribution schemes can be used to discrete the PDEs in space. Three time marching strategies are implemented: (conditionally) positivity preserving implicit schemes, (unconditionally) positivity preserving space-time schemes, and (conditionally) positivity preserving genuinely explicit methods, including new genuinely explicit residual based methods I develop. Available models include 1D and 2D ideal gases and equilibrium single pressure two-fluids (with stiffened gas EOS).

Long and short waves diffracting on a circular shoal (click to enlarge)

SLOWS (Shallow-water fLOWS, APP in finalisation,  Antepedia-Deposit-2016-04-13-16-02-05is a dedicated implementation (based on neoC) for the simulation of free surface flows. It uses depth models. Both hydrostatic (shallow water equations) and non hydrostatic (Enhanced Boussinesq equations and Green-Naghdi equations) flows can be simulated. Arbitrary bathymetries are allowed, defined either by some complex piecewise analytical expression, or by xy-z data files, and classical models are used for friction, and sediment transport (Manning and Exner).

Wave diffraction on an elliptic shoal (click to enlarge)


SLOWS uses MUMPS  to  invert  the sparse algebraic linear systems  arising from the finite element discretisation of the elliptic components of  Boussinesq models (or/and in Newton iterations). Some parallel capabilities are obtained with OpenMP. SLOWS features a mass conservative r-adaptive mesh movement method, which is being exported into the FMG library (see below). The explicit RD schemes developed in SLOWS (and neoC) are now available in EDF’s TELEMAC (see release 7.2), while some of the implicit and explicit RD schemes will be soon available in the UnRunOff and HydroSimM models of BGS IT&E (web sites in German). If you want to know more, or interested in trying a (reduced version of) SLOWS (or neoC), please contact me.

NOAA’s Monai valley benchmark: water height in gauge 5 (fully explicit RD)

NOAA’s Monai valley benchmark (fully explicit RD, click to enlarge animation)





 FMG library

Initial mesh

Adapted mesh

FMG is a C++ library deforming an input  mesh (composed of triangles or tetrahedra) w.r.t. a given smoothness error monitor (function gradient or  Hessian),  metric field, or given mesh size distribution.  It is an enhanced version of the r-adaptation method initially implemented in SLOWS. Displacements are computed by solving  an elliptic Laplacian type equation with a continuous finite element method. The library returns an adapted mesh with a corresponding projected solution, obtained by either a second order L2 projection, or by an ALE finite element remap.

NOAA Monai Vallei benchmark (explicit RD + r-adaptation): meshes (left); water height contours (middle) and time history close to max runup (top-right); conservation error (bottom-right)


2D and 3D grids can be adapted. The new mass conservative adaptation technique, developed ad-hoc for shallow water flows in SLOWS,  is under implementation. FMG will be  soon included in  mmg tools.





Mini-composite fibres (broken ones highlighted)

Triangulation of a transversal crack of a mini-composite


Result of the collaboration with the LCTS lab in Bordeaux. SH-COMP is a Fortran90 platform solving a set of asymptotic PDEs and ODEs modelling  the physicochemical behaviour of a class self-healing ceramic matrix composite  materials (CMCs) developed by HERAKLES. These models involve crack averaged transport equations (Fick’s law) and a crack averaged potential equation for the oxide velocity (volume conservation). These equations are coupled to oxide sources related to the chemistry of the interaction of the composite matrix with external agents (mainly oxygen,  and vapour).

Healing dynamics after fibre breaking (click to enlarge animation)


The partial differential equations are discretised with a continuous finite element method, and integrated in time with an implicit backward differencing strategy. The sparse linear systems rising from the finite element discretisation of the elliptic PDEs of the model are solved using MUMPS.  The code has been weakly coupled (via simple bash scripting) with  the structural solver of LCTS to  predict the failure of a so-called  mini-composite  (one fibre tow).

Detail of the triangulation of a transversal crack of a single fibre tow (mini-








C++ finite element library developed by the Cardamom and Cagire Inria teams.  It is designed as a library containing an ensemble of functional blocks which can be assembled to produce a code which solves any of the available models with any of the available schemes.  The code design has been carried for being able to perform efficient computations, with continuous and discontinuous finite element methods on hybrid and possibly curvilinear meshes. This modularity is achieved by means of template abstraction for keeping good performances. Dedicated efficient implementation, based on the different data locality of the continuous and discontinuous Galerkin methods has been developed. Furthermore, AEROSol is designed using a layered architecture allowing a parallel data management transparent for the model developer. In particular, AEROSol is built on the library PaMPA (currently developed in the TADaaM Inria team), which takes care of all the distributed memory management (based on an enriched  mesh graph partitioned with SCOTCH).  This architecture also allows shared memory (and possibly hybrid) parallelism by interfacing with a task management library such as StarPU (Inria team STORM), or  PaRSEC (University of Tennessee). Details on the design of AEROSol, and initial test on shared memory parallelisation can be found in D. Genet’s PhD.   For allowing a good collaborative work and a functional library, a strong emphasis has been put on the use of modern collaborative tools for developing the software. This includes the active use of a repository, the use of CMake for the compilation, the constant development of unitary and functional tests for all the parts of the library, as well as the use of  continuous integration (based on Jenkins: ci.inria, see also jenkins-ci)  to improve probability and robustness,  and an effort in easing and documenting the installation and compilation of the platform. Current available models include compressible perfect gas Euler and Navier-Stokes equations, shallow water equations,  and a number of simpler scalar model (advection-diffusion, Burger’s equation, Poisson’s equation, etc.).  These models can be discretised in space with discontinuous Galerkin methods or stabilized continuous finite elements (SUPG), and evolved in time using several standard SSP-RK schemes, as well as implicit backward differencing schemes.


Contributions to other platforms