Loïc Gouarin

Loïc Gouarin

Research engineer in scientific computing

PDF, classic layoutPDF of this page

Professional experience

  1. Since 2018

    CNRS

    Research engineer · CMAP - École polytechnique

  2. 2010 - 2018

    CNRS

    Research engineer · LMO - Université Paris-Saclay

  3. 2005 - 2010

    CNRS

    Research engineer · LAGA - Université Paris 13

  4. 2001 - 2005

    ONERA (French Aerospace Lab)

    PhD · Châtillon

    • Development of a code for modelling three-dimensional reactive turbulent flows in the High Performance Computing department, as part of a PhD in applied mathematics supervised by L. Halpern and J. Ryan

Skills

Mathematics

classical numerical methods, lattice Boltzmann schemes, mesh adaptation, domain decomposition

Programming languages

C++, Python, Julia, JavaScript, C, Fortran, LaTeX

DevOps

Kubernetes, Docker, Terraform, Ansible

Software engineering

version control, unit testing (pytest, GoogleTest), packaging (PyPI, conda), formatting (black, clang-format), continuous integration

Project management

writing scientific and technical proposals, running meetings, assigning and tracking tasks, setting objectives, hiring and supervision

Event organisation

training courses and scientific or technical days, choice of topics, funding applications, negotiation with suppliers, registration management, financial and scientific reports

Languages

French, English

Education

  1. 2000 - 2001

    Université d’Aix-Marseille II

    Master’s degree (DEA) in fluid mechanics · Marseille

  2. 1998 - 2001

    ISITV (Toulon engineering school)

    Engineering degree · La Garde

    • major in modelling and scientific computing
  3. 1997 - 1998

    Université de Cergy-Pontoise

    Bachelor’s degree in pure mathematics · Cergy-Pontoise

Open-source projects

  1. Since 2015

    Samurai

    Project lead · github.com/hpc-maths/samurai

    • Samurai is a new generation of data structures for mesh adaptation methods.
    • The library is written in C++ and relies heavily on xtensor.
    • It lets users benefit from the latest advances in mesh adaptation transparently in their numerical simulations.
    • Samurai is used and developed by PhD students and postdocs of the laboratory.
    • Several external collaborations are emerging (ONERA, École centrale, …).
  2. Since 2015

    pylbm

    Project lead · github.com/pylbm/pylbm

    • pylbm is a Python package for running numerical simulations with lattice Boltzmann methods easily.
    • It is aimed at mathematicians, physicists and computer scientists.
    • The strength of pylbm is to generate numerical code from symbolic mathematics according to what the user asks for. Several back ends are available: Cython, NumPy or Loo.py. pylbm supports MPI through mpi4py.
    • It is used in a project funded by ESA (the European Space Agency) in partnership with CENAERO, the Von Karman Institute and the Orsay mathematics laboratory.
    • We see 300 downloads per month.
  3. Since 2019

    SCoPI

    Project lead · github.com/hpc-maths/scopi

    SCoPI, written in C++, is designed for the simulation of interacting particle collections. It simulates 2D and 3D particles (with convex regular shapes) interacting with their surroundings (obstacles of various kinds, moving or not, gravity, optional coupling with a fluid solver) and with other particles (inter-particle forces, contacts). The contact model can be dry (inelastic, with or without friction) or viscous (modelling lubrication forces in a viscous fluid). The algorithms are implicit and reduce, at each time step, to solving a constrained convex problem.

  4. Since 2017

    xeus-cling

    Lead developer · github.com/jupyter-xeus/xeus-cling

    • The project was started to make learning C++ easier for students and in continuing education courses.
    • It runs in Jupyter notebooks, now widely used for teaching and reproducible research.
    • It was downloaded more than 100,000 times in two and a half years.
  5. Since 2015

    CAFES

    Project lead · github.com/gouarin/cafes

    CAFES (CArtesian Finite Element Solvers) is written in C/C++ and parallelised with MPI. It relies heavily on PETSc for finite element matrices and solvers. Its goal is to solve problems that need a solver on a Cartesian grid, such as fluid - rigid particle interactions, the influence of cilia on flows (for example bronchial cilia) or micro-swimmers moving in a viscous fluid. In each case, a constrained problem is written by solving several Stokes problems with a right-hand side that accounts for the particles, the cilia, … The software is used in the ANR project RheoSuNN.

  6. Since 2018

    GenEO

    Project lead · github.com/gouarin/GenEO

    • GenEO implements a new generation of domain decomposition solvers that remain efficient when the matrix of the linear system varies strongly.
    • The library is written in Python.
    • Several papers presenting the method and its use cases are in preparation.
  7. Since 2020

    xtensor-sparse

    Project co-lead · github.com/xtensor-stack/xtensor-sparse

    • The library is written in C++ and describes N-dimensional sparse tensors easily.
    • It is built on xtensor.
    • Development is carried out in collaboration with the company QuantStack.

Other responsibilities

  1. Since 2022Co-head, HPC@Maths team at CMAPÉcole polytechnique
  2. Since 2020Head, working group for a modern teaching platformÉcole polytechnique
  3. 2013 - 2019Director, GdR Calcul (CNRS research network)National
  4. 2010 - 2018Co-head, MITI network: CalculNational
  5. Since 2019Member, gender parity and professional equality committeeCMAP
  6. 2020 and 2021Member, CNRS internal promotion panelsNational
  7. Since 2019Member, laboratory councilCMAP
  8. Since 2017In-house trainer, CNRSNational
  9. 2016Head, working group on the REFERENS II job profiles for scientific computing requested by the CNRS OMESNational
  10. 2013 - 2023Member, steering committee of the LoOPS networkParis-Saclay

Teaching

Degree programmes

  1. Since 2022Engineering school, Algorithms and software design principles for applied mathematics in modern C++École polytechnique
  2. 2010 - 20183rd-year mathematics degree, Algorithms and programming in CUniversité Paris-Saclay
  3. 2001 - 2007Engineering school, Supervised projects in C and MatlabUniversité Paris 13

Continuing education

  1. 2023 - 2024Workshop, Development framework and automation for open sourceCNRS
  2. 2017 - 2019, 2024In-house trainer, Development process of a Python applicationCNRS
  3. 2017Workshop, Advanced Python for scientific computingParis
  4. 2013Equip@meso, Introductory PETSc workshopSaclay
  5. 2013ANF, Advanced Python in scientific computingFréjus
  6. 2011Thematic school, Domain decomposition methods: from theory to practiceFréjus
  7. 2010ANGD, Python in scientific computingAutrans

Publications

  1. 2026

    samurai/ponio: two complementary software libraries for the efficient implementation of adaptive space/time numerical schemes

    Sébastien Dubois, Loïc Gouarin, Alexandre Hoffmann, Josselin Massot, Marc Massot, Pierre Matalon, Laurent Séries

    HAL

  2. 2025

    High Performance Parallel Solvers for the time-harmonic Maxwell Equations

    Élise Fressart, Sébastien Dubois, Loïc Gouarin, Marc Massot, Michel Nowak, Nicole Spillane

    arXiv

  3. 2024

    A new modeling approach of Myxococcus xanthus bacteria using polarity-based reversals

    Hélène Bloch, Vincent Calvez, Benoît Gaudeul, Loïc Gouarin, Aline Lefebvre-Lepot, Tâm Mignot, Michèle Romanos, Jean-Baptiste Saulnier

    ESAIM Proceedings and Surveys

  4. 2024

    Fully algebraic domain decomposition preconditioners with adaptive spectral bounds

    Loïc Gouarin, Nicole Spillane

    ETNA - Electronic Transactions on Numerical Analysis

  5. 2022

    Does the multiresolution lattice Boltzmann method allow to deal with waves passing through mesh jumps?

    Thomas Bellotti, Loïc Gouarin, Benjamin Graille, Marc Massot

    Comptes Rendus Mathématique

  6. 2022

    High accuracy analysis of adaptive multiresolution-based lattice Boltzmann schemes via the equivalent equations

    Thomas Bellotti, Loïc Gouarin, Benjamin Graille, Marc Massot

    SMAI Journal of Computational Mathematics

  7. 2022

    Multidimensional fully adaptive lattice Boltzmann methods with error control based on multiresolution analysis

    Thomas Bellotti, Loïc Gouarin, Benjamin Graille, Marc Massot

    Journal of Computational Physics

  8. 2022

    Multiresolution-Based Mesh Adaptation and Error Control for Lattice Boltzmann Methods with Applications to Hyperbolic Conservation Laws

    Thomas Bellotti, Loïc Gouarin, Benjamin Graille, Marc Massot

    SIAM Journal on Scientific Computing

  9. 2015

    Optimized Schwarz waveform relaxation for advection reaction diffusion equations in two dimensions

    Daniel Bennequin, Martin J. Gander, Loïc Gouarin, Laurence Halpern

    Numerische Mathematik

  10. 2013

    A smooth extension method

    Benoît Fabrèges, Loïc Gouarin, Bertrand Maury

    Comptes Rendus Mathématique

  11. 2013

    Pourquoi une structuration des mésos-centres en France ?

    Loïc Gouarin, Romaric David, Laurent Séries, O. Politano, Pierre Gay

    HAL

  12. 2012

    Linear lattice Boltzmann schemes for acoustic: Parameter choices and isotropy properties

    Adeline Augier, François Dubois, Loïc Gouarin, Benjamin Graille

    Computers & Mathematics with Applications

  13. 2010

    3D Direct Simulation of a Nonpremixed Hydrogen Flame with Detailed Models

    Gordon Fru, Dominique Thévenin, C. Zistl, Gábor Janiga, L. Gouarin, A. Laverdant

    ERCOFTAC series

  14. 2010

    Optimized Schwarz Waveform Relaxation Methods: A Large Scale Numerical Study

    Martin J. Gander, Loïc Gouarin, Laurence Halpern

    Lecture notes in computational science and engineering

  15. 2007

    Interaction of a Gaussian acoustic wave with a turbulent non-premixed flame

    A. Laverdant, L. Gouarin, Dominique Thévenin

    Combustion Theory and Modelling

Interests

Reading, hiking, gardening and DIY