Time-splitting methods for the cold-plasma model using Finite Element Exterior Calculus
Elena Moral Sánchez, Martin Campos Pinto, Yaman Güçlü, Omar Maj
TL;DR
The paper tackles accurate, long-time simulation of time-domain EM wave propagation in magnetized plasmas by developing a high-order, structure-preserving FEEC discretization using B-splines for the cold-plasma model. It introduces two stable time-splitting geometric integrators (Poisson-splitting and Hamiltonian-splitting) and compares them to Crank-Nicolson, establishing long-time stability and superior cost-accuracy for the Poisson approach. Through O- and X-mode benchmarks and 2D turbulent-density tests, the authors demonstrate second-order convergence, good conservation of energy and charge, and robustness on complex geometries, with the Poisson-splitting method delivering the best performance. The methods are implemented in the Psydac library to enable memory-efficient, scalable, essentially three-dimensional simulations on curvilinear domains, highlighting practical impact for full-wave plasma simulations in fusion contexts.
Abstract
In this work we propose a high-order structure-preserving discretization of the cold plasma model which describes the propagation of electromagnetic waves in magnetized plasmas. By utilizing B-Splines Finite Elements Exterior Calculus, we derive a space discretization that preserves the underlying Hamiltonian structure of the model, and we study two stable time-splitting geometrical integrators. We approximate an incoming wave boundary condition in such a way that the resulting schemes are compatible with a time-harmonic / transient decomposition of the solution, which allows us to establish their long-time stability. This approach readily applies to curvilinear and complex domains. We perform a numerical study of these schemes which compares their cost and accuracy against a standard Crank-Nicolson time integrator, and we run realistic simulations where the long-term behaviour is assessed using frequency-domain solutions. Our solvers are implemented in the Python library Psydac which makes them memory-efficient, parallel and essentially three-dimensional.
