Software

PlasmaFAIR Supported and Assessed Software

Epoch Containers

Epoch is a particle-in-cell (PIC) code widely used within plasma physics, particularly in the regime of laser-plasma interactions. PIC codes aim to self-consistently solve Maxwell’s equations in the presence of a large number of charged particles, many of which travel at relativistic velocities. Epoch and similar codes are often used to provide insight into the physics of matter interacting with extremely intense radiation, such as the conditions observed in inertial-confinement fusion (ICF) experiments or many astrophysical phenomena.

ACT

The Mega Ampere Spherical Tokamak Upgrade (MAST-U) project generates a lot of data. After each ‘shot’, the raw data from sensors within the tokamak is made available to researchers via the Universal Data Access (UDA) system, with each signal represented by a three letter code. For example, ‘RCC’ is the signal for Celeste-3, which measures emission spectra from impurities in the plasma. MAST-U data is processed further using a scheduler system that automatically processes raw data into more useful diagnostics once those signals become available. This processed data is itself made available via UDA as a three letter signal code, and this may, in turn, be used to generate higher level diagnostics via the scheduler.

FreeQDSK

FreeQDSK is a Python library for reading/writing EQDSK files. These file formats are widely used within tokamak plasma research, but each code that uses them tends to include it’s own reader/writer functionality, and the availability of reliable open-source documentation is lacking. We hope that FreeQDSK can provide an easier way for plasma scientists to use these files in their own work.

Python Packaging

Due to its ease of use, expressiveness, and thriving open-source ecosystem, Python has become one of the most popular programming languages in modern research. It is commonly used as a scripting language, meaning researchers write their code as a series of expressions in a single file, which is then executed by the Python runtime. However, there are many limitations to this scripting model, and it can be more sustainable in the long run to structure Python code into libraries instead of scripts. The benefits of doing so include:

FEDM

The Finite Element Discharge Modelling code (FEDM) is a collection of functions to assist in the simulation of electric discharges using finite element methods, created by Aleksandar Jovanovic at the Leibniz Institute for Plasma Science and Technology. Utilising the FEniCS finite element library and its Python API Dolfin, FEDM is able to simulate a large number of particle species and the reactions that may occur between them during an electrical discharge. These systems can involve a large number of source terms, some of which may be stiff in nature, and coding these by hand can be very laborious and error-prone. FEDM aims to simplify the development of these models.