Skip to content
Snippets Groups Projects
To learn more about this project, read the wiki.
README.md 6.27 KiB

Turbulence and zonal flows in a Z-pinch, with (r,z) cylindrical coordinates

GYACOMO (Gyrokinetic Advanced Collision Moment solver) Copyright (C) 2022 EPFL

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Author: Antoine C.D. Hoffmann

Contact: antoine.hoffmann@epfl.ch

Citing GYACOMO

If you use GYACOMO in your work, please cite at least the following paper:

  • Hoffmann, A.C.D., Frei, B.J. & Ricci, P. (2023). Gyrokinetic moment-based simulations of the Dimits shift. Journal of Plasma Physics, 89(6), 905890611. doi:10.1017/S0022377823001320

You can also find results and application with kinetic electrons in a simplified geometry here:

  • Hoffmann, A.C.D., Frei, B.J. & Ricci, P. (2023). Gyrokinetic simulations of plasma turbulence in a Z-pinch using a moment-based approach and advanced collision operators. Journal of Plasma Physics, 89(2), 905890214. doi:10.1017/S0022377823000284

What is GYACOMO ?

GYACOMO is the Gyrokinetic Advanced Collision Moment solver which solves the gyrokinetic Boltzmann equation in the delta-f flux-tube limit based on a projection of the velocity distribution function onto a Hermite-Laguerre velocity basis.

It can be coupled with precomputed matrices from the code Cosolver (B.J. Frei) to incorporate advanced collision operators up to the gyro-averaged linearized exact coulomb interaction (GK Landau operator).

This repository contains the solver source code (in /src) but also my personnal post-processing Matlab scripts, which are less documented. I would recommend the user to write their own post-processing scripts based on the H5 files the code outputs.

GYACOMO can

  • run in parallel using MPI (mpirun -np N ./path_to_exec Np Ny Nz, where N = Np x Ny x Nz is the number of processes and Np Ny Nz are the parallel dimensions in Hermite polynomials, binormal direction, and parallel direction, respectively).
  • run in single precision.
  • evolve kinetic electrons and ions.
  • use an adiabatic electrons model.
  • include perpendicular magnetic fluctuations.
  • use Z-pinch, s-alpha, circular and Miller geometry model.
  • use various experimental closures for the linear and nonlinear terms.
  • use linear GK Landau, Sugama, Lorentz collision operators. (requires precomputed matrix files, ask them!)
  • add background ExB shear flow. (Hammett's method)
  • use an adiabatic ion model. (not verified)

GYACOMO cannot (I wish it could...)

  • include parallel magnetic field fluctuations. (easy)
  • include finite rhostar effects. (hard)
  • run without the futils library. (easy but boring, ask the zip file!)
  • Use shared memory parallelization. (okish)
  • run global simulations. (for another code)