Motivation. Trajectories of charged particles in electro-magnetic fields are modelled by the Lorentz equations, a system of ordinary differential equations with particle position and velocity as unknowns. The Boris method, a variant of the Verlet scheme, is the most popular time stepping method for solving them and is widely used in plasma physics. It is cheap, has good conservation properties and is second order accurate.
Recently, a combination of the Boris method with spectral deferred correction (BSDC) was proposed and shown to outperform Boris in certain situations. However, all these tests only used steady (though inhomogeneous) fields. EM fields that vary over time pose specific challenges to numerical integrators, so comparing performance of BSDC and Boris is needed.
Methodology. The project will use Python as programming language and start by developing and verifying a prototype implementation of both Boris and Boris-SDC. A literature search will identify suitable test problems with time dependent EM-fields. Using numerical experiments and, where possible, analytical techniques, the performance of Boris and Boris-SDC will be compared with respect to metrics like accuracy, long-time energy error, and computational work.
Aims and deliverables.
- To develop a good understanding of the Lorentz equations, the Boris method and the Boris-SDC algorithm.
- To implement the Boris-SDC (BSDC) algorithm in Python.
- To identify suitable benchmark problems featuring time-dependent electric and/or magnetic fields
- To perform a comparison of the performance of BSDC and Boris for these problems.