Codes & Softwares
Read more about the scientific computing codes I made or participated in.
WaveBox - Multi-models C++ numerical platform for water-waves equations
Keywords. DG, HDG, Saint-Venant, Boussinesq, Green-Naghdi, Finite-Volume subcells methods.
Language. C++, Python (visualization).
WaveBox is a multi-models numerical platform created by Fabien Marche, dedicated to the approximations of the solutions of several shallow water asymptotics in the surface dimension d = 2 with efficient combined Hybridized Discontinuous Galerkin (HDG), Hybrid High Order (HHO), Monolithic DG-FV subcells and DG methods on general unstructured meshes (for Saint-Venant, Boussinesq and Green-Naghdi equations). Main features are:
- Sub-models CPU-GPU co-processing;
- Arbitrary order of accuracy (h and p-adaptivity);
- Robust treatment of the run-up and flooding processes (strict maximum-principle enforcement);
- Well-balancing for motionless steady states;
- Unstructured meshes & mesh subdivision;
- Wave breaking treatment with dynamic switching strategy.
During my Ph.D., I developed a new high-order monolithic DG-FV framework, based on grid subdivisions, for one- and two-dimensional multi-physics numerical models for the simulation of nonlinear wave-structure interactions. These models also involve advanced discretizations for elliptic problems, such as SWIP-DG and HHO methods. I also developed several Python visualization tools.
Some numerical simulations:
- $\mathbb{P}^3$ 1D Green-Naghdi dam-break with dispersive shock (GIF)
- $\mathbb{P}^3$ 1D wave generator (GIF)
- $\mathbb{P}^6$ 1D wave interacting with a fixed object and topography (GIF)
- $\mathbb{P}^6$ 2D interaction between a collapsing wave and a rock (MP4)
- $\mathbb{P}^2$ 2D interaction between a tidal wave and a rock (AVI_1 & AVI_2)
- $\mathbb{P}^4$ 2D dam-break on a wet bed (AVI)
- $\mathbb{P}^3$ 2D circular dam-break on a wet bed (AVI)
- $\mathbb{P}^2$ 2D Carrier-Greenspan periodic solution (AVI)
- $\mathbb{P}^2$ 2D tsunami on three conical islands (MP4)
- $\mathbb{P}^2$ 2D single wave on a partly immersed stationnary pontoon obstacle (AVI)
- $\mathbb{P}^2$ 2D wave generator (AVI)
- $\mathbb{P}^5$ 2D single wave on a freely moving pontoon obstacle (AVI)
- $\mathbb{P}^2$ 2D shock-wave on a freely moving pontoon obstacle (AVI)
- $\mathbb{P}^2$ 2D single wave on a partly immersed stationnary cylinder obstacle (AVI)
- $\mathbb{P}^1$ 2D single wave on a stationnary cylinder obstacle and a beach (AVI)
- $\mathbb{P}^2$ ALE 2D mesh motion around an oscillating cylinder: Laplacian smoothing (GIF) and pseudo-elasticity (GIF)
- $\mathbb{P}^1$ ALE 2D wave run-up over a sloping beach generated by an impulsively stopped piston (AVI)
- $\mathbb{P}^2$ ALE 2D periodic wave generation by an oscillating piston (MP4)
- $\mathbb{P}^1$ ALE 2D translating and oscillating cylinder in a shallow-water flow (AVI_1 & AVI_2)

DG4SCL - Compact and student friendly code for DG methods on 1D SCL
Keywords. Discontinuous Galerkin, Scalar Conservation Laws.
Language. C++.
During the early stages of my internship with F. Vilar and F. Marche, I embarked on the development of a compact C++ code focused on addressing Discontinuous Galerkin (DG) schemes for 1D conservation laws. This code is a work in progress, far from being complete or flawless. Its creation was driven by my commitment to simplicity and understandability. I strived to ensure that the code’s structure and implementation were as straightforward as possible, enabling users to grasp the underlying concepts with ease. By expanding its functionality and making it more comprehensive, I aim to create a valuable resource for students seeking a simplified example of DG schemes. This endeavor stems from my own experiences as a student, where access to such a resource would have greatly facilitated my understanding and learning process.
Contact me to get the source.

