Laura S. Mendoza

Ph.D. in Applied Mathematics
Contact me
I am a post-doc at INRIA in the TONUS group.
I did my Ph.D. studies at the Max-Planck-Institut für Plasmaphysik in Applied Mathematics, under the supervision of Éric Sonnendrücker.

About me

I was born in Strasbourg, France, but was raised in Guatemala city where I went to a French school. I did my undergraduated degree in the University of Strasbourg, where I obtained a bachelor degree in Mathematics with minor in Computer Science followed by a Master degree in Applied Mathematics specialized in Scientific Computing and Computer Science Security. I was a Ph.D. student at the Max Planck Institute of Plasma Physics (IPP) in Numerical Methods for Plasma Physics.
I moved back to France, for a 2 year Post-doc fellowship at IRMA. Currently, I obtained a 3-year Eurofusion engineering grant to work on the development and optimisation of a machine-independent open-source python library for synthetic tomography diagnostics and inversions. I am based at INRIA, and collaborating with the CEA of Cadarache, France and the IPP of Garching, Germany.

My current work

Currently, I am working on the development and optimization of the ToFu library as a Research Engineering at the INRIA institute. This research is being funded by a 3-year Engineering grant of EUROFUSION obtained in June 2018. The ToFu library is an open-source machine-independent python library for Tomography for Fusion. More precisely, the library provides the user with a series of python classes for creating, handling and visualizing synthetic diagnostics for fusion devices (such as ITER, West/Tore-Supra, ASDEX Upgrade, etc.).
My first mission was to optimize the main functions of the geometry module. Starting with the ray-tracing algorithm really helpful for visualizing cameras inside a Tokamak. The original version of the code needed almost 9 hours to trace a million lines. The difficulties came from different factors: the number of structures inside the vessel, the different scales between the smallest details and the size of the machine, etc. By taking advantage of the symmetry of the vessel, mathematically improving the original algorithm and using different computational tricks, I managed to optimize the code such that for the same simulation, we obtained the results in under 30 seconds ! A speed up of 1174 . Last but not least, I parallelized the code (OpenMP), and the same simulation now run in under 3 seconds in 32 threads.

My Ph.D. Research

The GYSELA code is a non-linear 5D global gyrokinetic code which performs flux-driven simulations to solve the gyrokinetic Vlasov equation coupled with the Poisson equation. Its 3D spatial representation is limited to circular toroidal geometry (r, theta, phi). Currently the poloidal plane, a circular cross-section, is discretized with a polar mesh. Due to the singularity of this mapping on its origin, the geometry is discontinuous (with a hole in the center).
Thus our aim is to generalise GYSELA’s geometry definition using IGA so that any geometry, however complex, can be simulated by mapping one or multiple patches. We decided to study two different approaches to solve this problem: on the one hand, Non-Uniform Rational B-Splines (NURBS), which provide an exact representation of complex shapes; on the other hand, using a regular equilateral triangle mesh of hexagonal form on which we will work with Box-Splines.
The GYSELA code is one of many examples of why we need Semi- Lagrangian codes adapted to complex geometries. Other examples from plasma physics (and further goals) are the X-point, the scrape-off layer or edge plasma, 3D representation of a Tokamak and Stellarator, etc.


PhD in Numerical Methods for Plasma physics

Technische Universität München (TUM), Germany, 2012-2016,
supervisor: Eric Sonnedrücker, (IPP & TUM, Germany)
co-supervisor: Virginie Grandgirard (CEA, France)

A new approach discretizing the 2D poloidal plane of fusion devices. (Manuscript)

Master degree in Applied Mathematics

University of Strasbourg,
graduated with honors in 2012

With major in Scientific Calculus and minor in Computer Science Security (Report and Memoire)

Bachelor's degree of Mathematics

University of Strasbourg,
graduated with honors in 2010

With major in Applied Mathematics and minor in Computer Science

Work Experience

Research Engineer (fellowship)

INRIA, France

  • Period: 2018-2021
  • Reference:Didier Vezinet, CEA
  • Context: Eurofusion engineering grant in collaboration with the CEA of Cadarache, France and Max-Planck Institute IPP, in Garching, Germany.
  • Development and optimisation of a machine-independent open-source python library for synthetic tomography diagnostics and inversions.
  • Code optimisation using Cython, and parallelization based on OpenMP.
  • Packaging of code using Anaconda, continuous integration using Travis

Post-doctoral Fellow

INRIA, France

  • Period: 2017-2018
  • Reference: Philippe Helluy
  • Creation of a python Multi Patch Semi Lagrangian Library (Slappy) parallelized using OpenCL for GPU and CPU parallelization
  • Adaptation of the Slappy library to solve Diffusion and circular advection models using the Lattice Boltzman scheme.

Post-doctoral Fellow

University of Strasbourg, France

  • Period: 2016-2017
  • Reference: Philippe Helluy
  • Implementation of an explicit Discontinuous Galerkin method in the Schnaps library to solve the transport equation. The code is parallelized in a hybrid fashion (CPU/GPU) using the MPI version of the StarPU task manager.
  • Creation of more realistic geometries of fusion devices using GMsh. Upgrading and adapting the mesh interface of the Schnaps code.
  • Development of a high order transport SUPG solver on a mesh with non matching patches. Parallelization using the MPI version of StarPU. Study for the kinetic and MHD models on curved meshes (tokamaks).

Computer Science teacher

Lycée Kléber, Strasbourg France

  • Period: 2016-2018 (120h per year)

Teaching of the programming language Scilab and introduction to algorithmic to first year students in Economics. Lectures and Practical classes.

Internship in a research laboratory on A.I.

Quantup research laboratory

  • Period: Ferbruary - July 2012
  • Job type: Internship
  • Supervisor: Maxime Pierson

Optimization of the Bin Packaging Problem in 2D with polygons using genetics algorithms and exploring new solutions using evolutionary algorithms.

  • Work in small groups of 2 to 4, as well as individual work;
  • Worked on common optimization problems;
  • Introduced to evolutionary algorithms;
  • Develeoped a user-friendly application.

Computer science security Analyst Intern

Strasbourg's teaching hospital, Computer Science's department

  • Period: June 2011 - August 2011
  • Job type: Internship
  • References: Fabrice Stalter

Determinate the risks linked to applications' development and their integration in an information system. Analyzed the best utilities to improve an information system's security level, specifically for a big organization like Strasbourg's Research Hospital.

  • Work mostly done independently;
  • Familiarization with the most common security's weakness;
  • Integration and analyze of a big code;
  • Development of security's application for I.S.

Conferences and Seminars

  • Development of a parallelized open-source python library for synthetic diagnostics and inversions for fusion devices

    International Congress For Industrial And Applied Mathematics (ICIAM), Valencia, Spain, July 2019, Beamer, ICIAM 2019 program

  • Application of the approximated BGK method on a Semi-Lagrangian parallel python solver on non-conforming patches

    Numkin Conference, Garching, Germany, 2018

  • Introducing the IGA approach in plasma physics

    Third International Conference on Isogeometric Analysis (IGA 2015), Trondheim, Norway, June 2015, Beamer, IGA 2015 program.

  • Modelling Vlasov equations on complex geometries using the Semi-Lagrangian scheme

    Deutsche Physikalische Gesellschaft (DPG), Bochum, Germany, March 2015, Beamer, Abstract in DPG website, or Abstract as PDF.

  • Solving Vlasov-like equations using the Semi-Lagrangian scheme on a 2D hexagonal mesh

    NUMKIN workshop, Garching, Germany, October 2014, Beamer, Numkin.

  • Solving the guiding center model using the Semi-Lagrangian scheme on a 2D hexagonal mesh (SelHex)

    CEMRACS Summer School, Marseille, France, August 2014, Beamer.

  • Application of the approximated BGK method on a Semi-Lagrangian parallel python solver on non-conforming patches

    Eucor International Workshop, Breitenbach, France, 2019

  • ToFu: Update on latest advances and IMAS compatibility

    Iter: Diagnostic Division Weekly Meeting, ITER, Cadarache, France, 2018

  • ToFu Numerical Advances: a 3-year roadmap

    IRFM RST Meeting, CEA, Cadarache, France, 2017

  • A new approach discretizing the 2D poloidal plane of fusion devices

    Seminar, IRMA, Strasbourg, France, 2016

  • Solving the Guiding Center model using the Semi-Lagrangian scheme on a 2D hexagonal mesh

    Theory Seminar, Ringberg, Germany, November 2014, Beamer, Film.

  • Solving the Vlasov equation using the Semi-Lagrangian method on a hexagonal mesh

    HEPP Seminar, Garching, Germany, June 2014, Beamer.

  • Solving the Vlasov equation using the Semi-Lagrangian method on multiple patches for the GYSELA code

    HEPP Colloquium at Strausberg, Germany, September 2013, Poster.


Journal papers
  • Optimization of a discontinus finite element solver with OpenCL and StarPU International

    B. Bramas, P. Helluy, L. Mendoza, B. Weber, Journal on Finite Volumes, submitted 2019

  • Finite Volume Scheme with Local High Order Discretization of the Hydrostatic Equilibrium for the Euler Equations with External Forces

    E. Franck, L. Mendoza, Journal of Scientific Computing, October 2016, Vol. 69, Issue 1, p. 314-354

  • Task-based parallelization of an implicit kinetic scheme

    J. Badwaik, M. Boileau, D. Coulette, E. Franck, P. Helluy, L. Mendoza, H. Oberlin, ESAIM: Proceedings and Surveys, June 2018, Vol. 63, p. 60-77

  • Solving the guiding-center model on a regular hexagonal mesh

    L. Mendoza, M. Mehrenberger, C. Prouveur, E. Sonnendrücker, March 2016, ESAIM: Proceedings and Surveys, Vol. 53, p. 149 - 17

  • A new approach discretising the 2D poloidal plane of fusion devices

    Ph.D. Thesis, Laura S. Mendoza, 2017

  • Modelling of a storage water heater

    S. Eberhard, M. Ferreira, L. Mendoza et al., 26-th ECMI Modelling Week at Dresden, Germany, August 2012, Project Report.

Computer skills

Language Skills

Python (+ Cython)






Object Oriented (C++ / Java)

DevOps Skills








Mathematical languages



Scipy/ Scilab / Mathematica


R / Statistical computing




Some code samples and scripts

I have written a couple of scripts that I think could be useful to more than one person. So I put them online free to public access. Feel free to ask me any questions about them or to update them as you feel necessary. I have only chosen a couple to publish on this website but I should put some more in the near future.
  • Doxygen headings python script

    After coding for a library for a few months the library decided to add Doxygen documentation to every piece of code on the library. As I had already written a few thousands of lines of code, the task was terribly repetitive and time consuming. Thus, I decided to create a quick script that will add the headers to every function, subroutine and model. It has worked quite well and I was able to work more efficiently since I created it. The code is available at this site for Python versions < 3.0: Python Script, or here for Python versions >=3.0: Python3 Script.

  • Correcting grammar in TeX files

    I started writing (pieces of) my Thesis from the first year. Even if I think this was a great decision, I realized by the end of my thesis that what I wrote at the beginning was not always as well written as I would have hoped. Since my Thesis is 150+ pages divided into several files, the process of proof-reading was a nightmare. Furthermore, there are not that many tools to correct Grammar for LaTeX. I found a couple, but they all needed some kind of tweeking (convert LaTeX to PDF, html, plain text...) and since I used XeLaTex, it got even harder. Fortunately, I found a great web-app: Lyx-gc. The problem was that the result had many errors that weren't really errors and polluted my output file. So I created a small script to take out this errors. Is 100% adapted to my thesis, but I think someone could find it useful. You can get it here.

  • Optimizing a Cython code: some tips and tricks

    While optimizing the ToFu code, and writing or re-writing many functions on Cython, I discovered many tips and tricks that are not that known in the community. I have written a notebook, with some examples. You can see it here: My notebook.