Visualization schema for HPC gyrokinetic data

Project reference: 1922

Gyrokinetic simulations are essential for better understanding of the plasma turbulence. For that purpose, a variety of non-linear gyrokinetic codes are being used and further developed, such as GENE, GYRO, ELMFIRE etc. These codes differ in numerics, physics, parallel scalability, and public availability. The emphasis in this project is on GENE code.

GENE (Gyrokinetic Electromagnetic Numerical Experiment) is an open-source code designed for numerical investigations of plasma microturbulence. It is freely available on and is being further developed by an international collaboration. GENE allows efficient computation of gyroradius-scale fluctuations and the resulting transport coefficients in magnetized fusion/astrophysical plasmas. GENE has been used, among other things, to address both fundamental issues in plasma turbulence research and to perform comparisons with tokamak and stellarator experiments.

The code itself can be run on a large number of different computer architectures, including Linux HPC clusters and various massively parallel systems, using anything between a single and tens of thousands of processors. The code itself is written in Fortran2008.

For easier user access to the GENE code, a graphical user interface, written in Python 2.6 and Tkinter Python library,  is available that allows convenient reading, editing and writing ’parameter’ files, while providing consistency checks to prevent common errors.

The code package includes also a custom IDL based plotting utilities for data visualization analysis and a python user interface for setting up simulations. The IDL tool for data visualization analysis is commercial software, found on,  and thus not publicly available. Other visualization tools for visualisation of GENE code calculation results are not known. This is inconvenient for GENE users, who do not have access to IDL software and are in need of open source solutions.

The aim of this project is to reproduce GENE benchmark cases and provide a set of visualization utilities for the output data using Python (version 3.6 or higher), an open source programming language. This is to be achieved by developing interactive Graphical User Interfaces (GUI), provided by Python library PyQt5 (, and encompassed plotting utilities developed using pyqtgraph (, a graphics and user interface library for Python that provides functionality commonly required in engineering and science applications. Its primary goals are a) to provide fast, interactive graphics for displaying data (plots, video, etc.) and b) to provide tools to aid in rapid application development.

Example of GENE: a) data visualization GUI using IDL (bottom left),  b) simulation results analysis (bottom right) and c) simulation of turbulent fluctuations in an actual tokamak discharge (top right) (Note: Source of the top right image:

Project Mentor: MSc. Dejan Penko

Project Co-mentor: Doc. Dr. Leon Kos

Site Co-ordinator: Doc. Dr. Leon Kos

Learning Outcomes:
The student will obtain/improve their skills and knowledge in the use of:

  • Python 3.x (and possibly Fortran90 – 2008) programming language
  • Linux OS
  • GIT version control system
  • Makefiles
  • visualization utilities
  • graphical user interface (GUI) development
  • HPC
  • basics of fusion physics
  • IDL data visualization tool
  • document generation utilities (Sphinx, ReStructured Text)

Student Prerequisites (compulsory):

  • Intermediate programming skills in Python (version 3.x)
  • OOP (Object-oriented Programming)

Student Prerequisites (desirable):

Familiar with:

  • Linux OS
  • GIT version control system
  • Basic programming skills in Fortran
  • Python PyQt5 library

Training Materials:




  • Videos:
  • Articles:
  • The global version of the gyrokinetic turbulence code GENE:


  • W1: Introductory week
  • W2: Learning GENE (creating, running case, analysis of results using IDL etc.)
  • W3-5: GUI and plotting utility development
  • W6: Project finalization
  • W7: Final report and video recording
  • W8: Wrap up

Final Product Description:

  • An interactive graphical user interface for GENE data visualization and analysis
  • Full technical report, including tutorial (including in video form), manual etc.
  • Visualization and brief analysis of a GENE computation case (should be included in the tutorial too)

Adapting the Project: Increasing the Difficulty:
Involve hierarchical tree data-structures for archiving and retrieval of GENE related data (parameters, calculation results etc.)

Adapting the Project: Decreasing the Difficulty:
Skip GUI development. Make simple plotting scripts in Python3.


  • It is recommended for the student to bring his own laptop.
  • HPC cluster at the University of Ljubljana, Faculty of Mechanical Engineering, and other available HPCs.

University of Ljubljana


Please follow and like us:
Tagged with: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.