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.

I did my Ph.D. studies at the Max-Planck-Institut für Plasmaphysik in Applied Mathematics, under the supervision of Éric Sonnendrücker.

**Github:**Follow @lasofivec**Email:**laura.mendoza@inria.fr**GoogleScholar:**my scholar page**LinkedIn:**laura-s-mendoza**Phone:**(+33) 07.68.86.59.42**Address:**7 rue René Descartes, Strasbourg, France

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.

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 !
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.

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.

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

graduated with honors in 2012

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

graduated with honors in 2010

With major in Applied Mathematics and minor in Computer Science

**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

**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.

**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).

**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.

**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.

**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

**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.

Seminars

**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

Proceedings

**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

Reports

**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.

Language Skills

DevOps Skills

Mathematical languages

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.