Welcome to my website.

I am a Research Associate in the Computational Geoscience and Energy division of the Department of Earth Science and Engineering at Imperial College London.

My research focuses on mesh adaptation strategies for transient simulations and coastal ocean modelling. I have a broader interests for Computational Fluids Dynamic, meshing techniques and High Performance Computing.

I am currently involved in several open-source software projects:

See my gallery for examples of recent and less recent works.

Mesh adaptation

Anisotropic mesh adaptation has demonstrated over the past 30 years its efficiency to improve the accuracy of numerical simulations while reducing their CPU cost. It consists in optimising the position and the orientation of the elements of an instructured mesh in order to minimise a certain quantity. My research on mesh adaptation spans from a mathematical and physical analysis of the equations at stake, to define appropriately this quantity to minimize, to the practical implentation of the resulting algoritms and development of appropriate software. Real life processes are time-dependent, so I focus on time-dependent simulations, which raises new challenges for mesh adaptation.

Error models

To make the most of mesh adaptation, one needs to have an appropriate representation of the variations of the solution and of the numerical error, in order to impose just the right sizes and orientations to the mesh elements.

In my work, I consider the interpolation error, which is a natural candidate to represent the quality of the representation of a solution field onto a mesh. This interpolation error can be approximated by the second derivatives of the solution, its Hessian, (practical experience shows that this approximation, rigourously established in some cases, remains valid in general). The continous mesh framework, developed at INRIA a decade ago, offers a correspondance between discrete meshes and continuous Riemanian metric fields that enables the derivation of error estimates for Hessian-based adaptivity. An optimal multiscale metric is found, that is fed to the meshing software to generate an optimal mesh.

During my PhD, I have notably studied error models for time-dependant simulations, and contributed to the derivation of an optimal multiscale metric based on the average of the Hessian over sub-intervals of the simulation.

Related to the question of the error estimate formulation is the question of the quantity driving the adaptation: which (physical) quantities should I use in my error model ? This question is highly dependent on the problems considered, and there is, to my knowledge, no rigorously established answer to that question. In engineering applications, such as some considered below, picking the right sensor is crucial to improve the resolution of the phenomenom of interest.

Goal Oriented error models

When a clear goal is identified (drag on an airfoil, inundation of a certain geographic area, power of tiadal turbine arrays, etc.) on can derive an adjoint problem with respect to this goal. The solution of this problem contains sensitivity information of the initial problem, and can be used to build goal-oriented error models. The challenge of the method lies in the computation of the adjoint, which often require automatic differentiation of the initial problem.


Error models and adaptation algorithms are deeply entangled: an error model is designed for certain algorithm specifications, and conversely the error model dictates some aspects of the final algorithm. The design of these algorithms is crucial for time-dependent simulations, to avoid classic drawbacks of adaptation (loss of conservation, diffusion of the solution, etc.).

I consider two kinds of algorithms for unsteady simulations, whose performance depend on the type of situation and the gain expected. The first, and simpler algoritm consists in adapting every few time-steps. Despite obvious limitations, the algorithm performs reasonably well very long simulation times are considered, and when conservation is not essential. More advanced, fixed-point algorithms address the issue of the convergence of the mesh/solution couple by iteratively adapt the mesh and recompute the solution. For time advancing problems, they require fewer solution tranfers, and allow the emergence of multiscale features that are hard to capture with other approaches, but can result in higher CPU costs if inappropriately implemented.


The implementation of a full mesh adaptation algorithm requires several blocks of specialized software, for every step of the algorithm. Combining these blocks is often seen as off-putting. At Imperial College, I have been working on "all-in-one" solutions, hiding the complex machinery behind user-friendly interfaces in PETSc and Firedrake.

An essential step in the adptation process is the generation of adapted meshes. I contribute to the open source remeshing code Pragmatic, that generates an adapted mesh from an initial mesh through a series of meshing operations (vertex addition/deletion, edge swaps, vertex smoothing). The code is benchmarked against other similar codes in the Unstructured Grid Adaptation Working Group.

Moving meshes

Moving meshes (a.k.a. r-adaptation) is another kind of mesh adaptation strategy, where the position of the vertices evolves continiously in time and the mesh topology is kept constant. I have worked on moving meshes following the displacement of moving geometries, as well as moving meshes following a solution field. Ultimately, these strategies would be coupled to anisotropic adaptation to reduce the number of remeshings.

Coastal ocean modelling

I have been applying mesh adaptation techniques to coastal engineering problems with the coastal model Thetis. I am interested in tidal turbine modelling (either tidal stream or tidal range turbines). A substantial part of the British energy mix could come from tidal renewable energy. For obvious reasons, life size experimentation is difficult, which makes numerical experimentation essential to make good use of the technology. Optimisation of the structures to produce maximal power is challenge, but the economic sustainability also needs to be assessed, as well as the environmental impact. In particular, turbines modify local sedimentology, notably due to seabed scour effects. Due to the high vorticity near the turbines, the water quality can be impacted. At a larger scale, large tidal structures can modify tidal patterns. These are examples of problems that I intend to study, both on idealized geometries for a better understanding of the physics involved and on realistic test cases. These simulations can benefit from mesh adaptation, both when a specific goal is considered, and when large multiscale simulations are run.

Tsunami propagation can also benefit from mesh adaptation: the adaptive meshes can track the wavefronts at a reduced cost, and goal-based strategies reduce considerably the CPU cost when only a small geographic area is of interest.

Software development and HPC

Through my work with mesh adaptivity, I am involved in the development of several codes, notably Pragmatic, PETSc/DMPlex and Thetis (see above). I am interested in modern software engineering methods, including modern languages, code generation and distributed version control.

I am also interested in parallel programming, and making the most of our modern computing infrastructures.

Disclaimer: some pages of these web pages require javascript to display all the content.