Application of Java Technology to Simulation of Transient Effects in Accelerator Magnets
Superconducting magnets are one of the key building blocks of modern high-energy particle accelerators. Operating at extremely low temperatures (1.9 K), superconducting magnets produce high magnetic field needed to control the trajectory of beams travelling at nearly the speed of light. With high performance comes considerable complexity represented by several coupled physical domains characterized by multi-rate and multi-scale behaviour. The full exploitation of the LHC, as well as the design of its upgrades and future accelerators calls for more accurate simulations. With such a long-term vision in mind, the STEAM (Simulation of Transient Effects in Accelerator Magnets) project has been establish and is based on two pillars: (i) models developed with optimised solvers for particular sub-problems, (ii) coupling interfaces allowing to exchange information between the models.
In order to tackle these challenges and develop a maintainable and extendable simulation framework, a team of developers implemented a set of coding conventions and software development infrastructure based on well-established Java technology (gitlab, CI, SonarQube, Docker, and JFrog artifactory). In this contribution, we present the STEAM project architecture, consisting of a set of optimized workflows generating in an automated way both superconducting magnet and circuit models, and a co-simulation interface managing the coupling process. The resulting hierarchy of models will be implemented as an abstract state machine allowing to select a subset of models and a desired coupling scheme. The hierarchical co-simulation is illustrated by means of a co-simulation of a superconducting magnet.
Michał Maciejewski graduated from Automatic Control and Robotics at Lodz University of Technology.
Additionally, he attended short-term executive education programmes at Stanford, MIT, and Harvard.
Throughout his career he got acquainted with various software development aspects, from a PLC industrial software developer at ABB, through robotics and FPGA academic projects with LabVIEW, to a C# developer at Raytheon BBN Technologies.
Now, he is a PhD student at CERN and a member of a team developing a co-simulation framework for Simulation of Transient Effects in Accelerator Magnets (STEAM). The team has introduced an integrated software development process based on Java technology with an emphasis on bringing consistent mathematical formulation to code and a vision that better software is better research.