My main interests are the geometric description of field theories from plasma physics (e.g., kinetic and gyrokinetic theory, ideal and reduced magnetohydrodynamics) and structure preserving discretisation methods for these problems. More recently, I am also working on particle integrators (guiding centre dynamics), particle-in-cell schemes (Vlasov-Maxwell and gyrokinetics) and stochastic problems like collisions and geometric dissipation mechanisms.
Many of our problems are similar to problems from fluid dynamics, with the added complication of electromagnetic fields. This means we have all the fluid waves, plus electromagnetic waves, plus the plethora of phenomena that arises when the two talk to each other. So if you think fluid dynamics is too boring, you should consider working in plasma physics.
Due to this complexity it is nontrivial to develop reliable computer codes. Standard methods often fail, either due to stability problems or because they do not capture critical features of the underlying physics. In order to obtain a more accurate discrete representation of the physical systems we use information from their geometric description. When developing new discretisation schemes we try to preserve as much of the geometric structure of the continuous equations as possible. Most often, this leads to more stable, more reliable numerical schemes than traditional methods.
- GeometricIntegrators.jl: Geometric Integrators for ODEs and DAEs
- ChargedParticleDynamics.jl: Geometric Integrators for Charged Particle and Guiding Centre Dynamics
- MagneticEquilibria.jl: Common Interface for Analytical and Numerical Magnetic Equilibria
- viVorticity2D: Variational Integrators for the Vorticity Equation in 2D
- viRMHD2D: Variational Integrators for Reduced Magnetohydrodynamics in 2D
- viIMHD2D: Variational Integrators for Ideal Magnetohydrodynamics in 2D
- viVlasov1D: Variational Integrators for the Vlasov-Poisson System in 1D1V
- Open Science, Open Access, Open Source
- Scientific Computing with Julia
- High Performance Computing with Python
- Polyglot Programming with Python
- Automated Testing in Scientific Computing
- Reproducibility in Scientific Computing