The BEAM Project: An Open-Source Leap in Physics Research

The BEAM Project: An Open-Source Leap in Physics Research

Joel Adams, PhD student in Fusion Power, School of Physics, Engineering and Technology, joel.adams@york.ac.uk

ORCID: https://orcid.org/0009-0005-4889-5231 , GitHub: https://github.com/JoelLucaAdams  

BEAM logo (© Oscar Adams, distributed under a Creative Commons Attribution CC BY 4.0 International licence - source)

Overview:

A new collection of three open-source tools, sdf-xarray, epyscan, and epydeck, have been developed to form the Broad EPOCH Analysis Modules (BEAM) suite. These tools are designed to significantly streamline simulation workflows in EPOCH, a widely used plasma physics code. BEAM’s components are intentionally small and modular, allowing researchers to adopt only the tools they need. They enhance crucial aspects of the simulation process, including efficient data extraction, parameter scanning, and simplified input file management for high-performance computing simulations. In line with the FAIR principles, these libraries and their comprehensive documentation are openly shared on GitHub, promoting transparency and collaboration within the scientific community. The BEAM suite’s utility has been officially recognised, leading to its direct integration into the main EPOCH documentation, making it readily accessible to a broader user base.

Case Study:

During the early stages of my PhD studies in plasma physics at the York Plasma Institute (YPI), I noticed a significant gap in the tools available for working with simulation data from the widely used EPOCH framework. As someone with a software development background, I wanted to fix this by creating Python packages to make workflows in laser-plasma physics smoother. With guidance and support from Peter Hill, a research software engineer at YPI, we developed the Broad EPOCH Analysis Modules (BEAM) suite. This collection includes three tools; sdf-xarray, epyscan, and epydeck, all designed to improve data extraction, parameter scanning, and input file management for high-performance computing simulations.

When I first started looking into building a solid pipeline for EPOCH simulations, I quickly ran into a major problem. It became clear that there was a real void in the community; either no one was actively developing such a pipeline, or any existing efforts weren't open-source for others to use. This lack of open-source options meant researchers often had to start from scratch, leading to fragmented and inefficient ways of working.

Additionally, dealing with EPOCH's output files was particularly challenging. The main tool for this wasn't well-maintained and, frustratingly, didn't work well with newer Python versions. This specific issue directly led to building sdf-xarray, a core BEAM tool designed to handle EPOCH's output data in a reliable, modern way. It's important to understand that while SDF stands for Self-Describing-File format, this specific version is only used by EPOCH; other scientific programs often have their own SDF versions that work very differently. Plus, sdf-xarray translates these output files into the powerful Xarray library, which connects smoothly with other external packages for great visualisations, only loading data when it's actually needed (saving memory and speeding things up), and data analysis.

Beyond data output, efficient setup and exploration of simulations were also critical areas for improvement. This is where the other BEAM components come in: epydeck is responsible for precisely parsing the input files required to run EPOCH simulations, ensuring accuracy and consistency. Meanwhile, epyscan provides the functionality to perform automated parameter scans, allowing researchers to systematically explore a wide range of simulation conditions without tedious manual adjustments.

These two big challenges, (the lack of open-source pipeline tools and the difficulties with EPOCH's outputs), plus how much I enjoy building and looking after scientific software - and especially fostering communities that help the wider scientific world - were the main driving force behind BEAM. This blend of seeing a clear need and my past experience in open development is how these new tools came to be.

Right from the start, open research principles were key to BEAM's development. By putting these tools online on GitHub, my goal was to make computational plasma physics research more reproducible and collaborative. This approach will help the research community to analyse simulation results using the same setup, cutting down on duplicated effort and making sure everyone handles data consistently. Using GitHub to manage different versions and track issues has also really opened the door for the community to help improve the tools, with both users and developers being able to contribute. And clear instructions - like easy-to-read documentation, examples, and tutorials - have been just as important to help people pick up and use the tools easily.

A key lesson from this has been the value of designing software that's modular and interoperable. By building BEAM as separate but connected tools, researchers can simply choose the components they need, without being forced into a rigid system. This flexibility has significantly boosted the suite’s adoption and its usefulness across many different research projects. 

In recognition of the growing importance of open-source tools in computational plasma physics, the developers of the new EPOCH approached me, and we’ve now incorporated BEAM directly into EPOCH’s documentation. This collaboration will provide native Python support within EPOCH, further enhancing accessibility and integration for users across different programming paradigms. This opportunity underscores the broader impact of open research tools like BEAM and highlights the importance of fostering collaboration between diverse communities.

Engaging with open research practices has clearly shown me how vital collaboration and transparency are in computational science. Balancing the demands of maintaining open-source software - including addressing user issues and constantly improving documentation, which don't always directly contribute to my physics PhD progress - alongside the already heavy workload of doctoral research is a significant challenge. However, I genuinely enjoy this work, and the benefits - like sharing knowledge, making results easier to reproduce, and seeing a growing user base - have made all that effort incredibly rewarding. This journey has reinforced that open research isn't just about sharing code; it's about building a strong and supportive environment for scientific discovery.

Other contributors:

  • Peter Hill (York Plasma Institute) - Primary Developer (RSE)

  • Shaun Doherty (York Plasma Institute) - Contributor (PhD researcher)

  • Lawrence Dior (York Plasma Institute) - Contributor (PhD researcher)

  • Liam Pattinson (York Plasma Institute) - Contributor (Postdoc, RSE)

  • Chris Ridgers (York Plasma Institute) - Supervisor

Citable Links:

Funding acknowledged:

We would like to thank PlasmaFAIR team, who significantly aided in the initial development of this suite of packages under the EPSRC Grant EP/V051822/1

Licensing Information

Except where otherwise noted copyright in this work belongs to the author(s), licensed under a Creative Commons Attribution-NonCommercial 4.0 International Licence