GENE Details
What is GENE for?
GENE is a plasma microturbulence code which can be used to efficiently compute
gyroradius-scale fluctuations and the resulting transport coefficients in
magnetized fusion/astrophysical plasmas. To this aim, it solves the nonlinear
gyrokinetic equations on a fixed grid in five-dimensional phase space (plus
time).
What is the physics basis of GENE?
The code is physically quite comprehensive, including, e.g.:
- an arbitrary number of fully gyrokinetic particle species (magnetically
trapped and passing, active or passive)
- electric as well as (perpendicular and parallel) magnetic field fluctuations
- various collision models from a linearized Landau-Boltzmann operator involving both pitch angle and energy
scattering between any pair of species to a gyrokinetic exact operator
- interfaces to various MHD equilibrium codes (using no approximations), for
both tokamak and stellarator geometries, e.g., to CHEASE, GIST, GVEC, via tracing g-eqdsk files etc.
- sub-ion-gyroradius scales (i.e., GENE can be used
for two-scale simulations involving ion and electron spatio-temporal scales
self-consistently)
- external ExB shear flows (including parallel flow shear)
- toroidal rotation (both Coriolis and centrifugal) effects
- sub-ion-gyroradius scales (i.e., GENE can be used
for two-scale simulations involving ion and electron spatio-temporal scales
self-consistently)
- nonlocal effects (i.e., GENE can be used for global - i.e., full-torus - simulations)
- the option to study neoclassical transport
These features make GENE one of the leading gyrokinetic turbulence codes available
today.
What are some other noteworthy features of GENE?
The code:
- has a large and growing user base around the world
- is being (further) developed as an open source project - carried by an international collaboration
of physicists and computational scientists - which is always open for
new contributers
- may be modified and extended by any user or co-developer
- is part of the "Unified European Application Benchmark Suite" by PRACE, running
on most present-day HPC and cluster architectures
- runs very efficiently, because it is parallelized over all phase space coordinates, adapts
to the given hardware and problem size, and chooses the timestep in an optimal way
- has been carefully benchmarked both in the local as well as in the global mode of operation
- can be run linearly (in local as well as in global mode) both as an initial value and as
an eigenvalue solver, allowing to compute the properties of subdominant modes
- comes with a set of useful tools (graphical user interfaces) for pre- and post-processing -
including a launcher to set up runs, a scan script to do parameter scans, MHD equilibium interfaces
(for both tokamaks and stellarators), and an extensive set of diagnostics - as well as with good
documentation
On which computer architectures can GENE be run?
GENE runs on a large number of computer architectures, using between only a few
and tens of thousands of cores and exhibiting an excellent - almost linear -
scaling. Presently, some of the most commonly
used systems are IBM Power systems (also incl. NVIDIA GPUs),
AMD-based HPE Cray EX systems, Lenovo based ThinkSystems
and various Bull and Intel based clusters.
For small problem sizes, GENE can even be run on laptops.
Which software is required to compile and run GENE?
Mandatory software packages:
- an MPI-3 standard conform MPI environment
- a Fortran2008 conform compiler and a C compiler
- the BLAS and
LAPACK libraries
(often already included in the compiler wrappers or other libraries)
- one of the following FFT libraries: FFTW or
MKL
- for the use of GPUs, a corresponding API (e.g., CUDA,HIP,etc) known to the corresponding gtensor productivity and portability library employed in GENE
Optional software packages:
- for eigenvalue computations and a precise determination of the maximum linear time step,
the complex versions of PETSc and
SLEPc (highly recommended!)
- for full eigenvalue spectra, ScaLAPACK
- for HDF5 output format the corresponding library