Code Camp 2025: Line Research Software Engineering Summary

Michael Gordon

IFN-1, FZJ

27. November 2025

Talks

  • Application of Software Engineering Tools during development of ModCR
    • Michael Gordon
  • Scalable Domain-decomposed Monte Carlo Neutral Transport for Nuclear Fusion
    • Oskar Lappi
  • Bivariate(CX) neutrals + ERO2.0 SDTrimpSP database
    • Sebastian Rode
  • Recent ERO2 Activities
    • Christoph Baumann
  • Adaptation of IMAS-Datamodell to EIRENE
    • Piotr Chmielewski
  • Where are we with Eirene? An ITER view
    • Xavier Bonnin
  • Adaptation of IMAS-Datamodell to EIRENE and open-sourcing
    • Olivier Hoennen, Xavier Bonnin

Advancements and Further Plans by Topic

Application of Software Engineering Tools during development of ModCR

  • introduction of UML documentation via PlantUML
  • endevours to make usage of JSON code cleaner
    • development of json-fortran based library JSONFortranSerializtion

Further Plans

  • continue usage of PlantUML in ModCR and new fortran projects
  • development of JSONFortranSerializtion should be continues
  • possible exchange with STYX2.0
  • open sourcing of JSONFortranSerializtion with notificaiton of Jacob Williams (author of json-fortran) planned
  • further collection of use-cases
    • so called “user stories” to advance requirements in accordance to wishes of community

Scalable Domain-decomposed Monte Carlo Neutral Transport for Nuclear Fusion

  • Introduction of novel, asynchronous Domain Decompositon (DD) Algorithm in reduced Model EIROn
    • alternative to resource intensive domain duplication and slow shared memory based parellelzation in EIRENE
  • measurement of strong scaling efficency and weak scaling efficency
    • good strong scaling for small grids due to low L3 cache misses
    • weak scaling results are good for high core counts

Further Plans

  • further investigation of drops in weak scaling drop at 4 and 64 cores
  • implement more collision rate models, starting with AMJUEL
  • implement elastic collisions and cell-wise BGK collisions
  • implement 3D-grid based domain decompostion
    • low priority
  • implement DD in EIRENE
    • support from experienced EIRNE dev from within TSVV needed
  • gpu port
  • potentially investigate scalability of asynchron vs synchronized approach
    • low priority

Guest Talks by ERO2.0 Team

Bivariate(CX) neutrals + ERO2.0 SDTrimpSP database

  • overview of data flow in an ERO2.0 workflow
  • overview of the history of charge exchange neutrals in ERO2
  • use case for bivariate CXN: modelling of diagnostic ports

What can EIRENE learn from this?

  • update PSI data using data also employed in ERO
  • update reflection and sputtering database inside EIRENE
    • EIRENE provides sputtering sources so good data is needed
  • ero tabulized themselfs
  • ero calculations sputtering distributions
    • conditional distribution of output angles dependant input angles
    • resolves fully for impurities
    • for plasma based on simple assumtions
  • sdtrimsp data of ero2 in theory addable to eirene
    • trim data should be addable directly
    • data file format is still dynamic
    • data contents - quality of data - is also evolving
      • this is partially due to evolutions in stdripsp
  • plan of action
    • investigate if new sdtrim sp files are compatible with the old ones in eirene
    • if compatible update
    • investigate if further code additions such as performed in ero are also needed in eirene

Recent Acitivites in Ero2.0

  • Erosion by CXN
  • usage of W-Spectra

what can eirene learn from this?

  • calculation of CXN with high enough statistics in EIRENE is expensive
  • legendre polynomial based interpolation has been implemented
    • save computational costs
    • use preexisting statistics rather then increase number of CXN
  • sampling from the CXN distribution not implemented in EIRENE currently
    • high fidelity run (as a postprocessing) with high statistics not possible currently
  • need new feature for eirne to add CXN distribution from legendre polynomial as a source
    • use precalculated statisics for EIRENE runs where CXN are of interest

development of iterative ero2-eirene workflow

  • very longterm plan
  • wish: more consistent simulation between all different independant codes
  • currently: workflow is eirene + solpsiter = inout for ero2
  • proposed: iterate between eirene and ero2

Due to very large amout of work this will most likely be it’s own project.

Adaptation of IMAS-Datamodel to EIRENE

  • done
    • imas-eirene interface done on set of input tallies
    • consistency of soledg3x plasma data from imas with eirne verified
    • installed on new eurofusion gateway
    • published to eurofusion gitlab
  • ongoing
    • test standalone eirene with geometry files on new gateway
    • example case of the interface for users(soledg3x)
    • documentation of interface
  • remaining
    • code parameters JSON file (definition of code parameters)
    • Dockerization
      • not much worked on yet. other container tech will be considered due to Docker security concerns

Further Plans

  • plan for 2026
    • extension of plasma data for input tallies
    • output tallies (which EIRENE variables should be IMASified?)
  • imas interface developers responsibility of versioning
    • make sure to be clear to document which version of fusion code is supported
    • imas provides interoperability between different imas data dictionary versions
    • interface developer has to make sure to provide interfaces which map a certain imas version to the code version

Where are we with Eirene? An ITER view

  • iter work towards merging their version of EIRENE into the FZJ main repo
  • 6 branches have been developed which are subject to become merge requests
    • seperated by topic
    • close work with FZJ (Derek Harting) to resolve CI issues to allow for merging

Further plans

  • number of further feature branches are being developed on ITER side
  • endevours to unify EMC3-ERINE based on the version of Heinke (eelab version)
  • ITER signed a special version EIRENE Public License
    • standard B2 Form does not match ITER licence
    • potentially a new specific B2 form will be given to ITER
  • consult Yannick for help in EIRENE coupling
    • refere to plan from 2024 code camp which deals with trajectories in EIRENE

Adaptation of IMAS-Datamodell to EIRENE and open-sourcing

  • all of Iter code must interface with IMAS
    • all inputs and outputs must be savable in IMAS
  • IMAS Data Dictionary will evolve during interface development of various plasma codes
  • ‘edge_’ and ‘core_’ IDS will be merged into ‘plasma_’
  • MUSCLE3 persistent actor framework will enable independant MPI Eirne runs
  • new AMNS metadata needs EIRENE to update its Databases
  • STYX2.0 looks like a promising way to develop IMAS interfaces
    • STYX2.0 is a plasma code interface to EIRNE

Open Sourcing of EIRENE

  • tarball of EIRENE has been available at www.eirene.de
  • SOLPS Iter version planned to be open sourced ASAP
    • hosted at https://github.com/iterorganization/EIRENE
    • currently mirror of FZJ EIRENE

Many thanks for your attention