CGYRO
Brief description
CGYRO is a global-spectral gyrokinetic code.
Core developers
Emily Belli, General Atomics
Jeff Candy, General Atomics
Klaus Hallatschek, IPP
Igor Sfiligoi, SDSC
Notable publications
Title |
Link |
---|---|
A high-accuracy Eulerian gyrokinetic solver for collisional plasmas |
[CBB16] |
Implications of advanced collision operators for gyrokinetic simulation |
[BC17] |
Spectral treatment of gyrokinetic shear flow |
[CB18] |
Spectral treatment of gyrokinetic profile curvature |
[CBS20] |
Paradigm for global gyrokinetic turbulence |
[CDB25] |
Title |
Link |
---|---|
Multiscale-optimized plasma turbulence simulation on petascale architechtures |
[CSB+19] |
Comparing single-node and multi-node performance of an important fusion HPC code benchmark |
|
Optimization and portability of a fusion OpenACC-based HPC code from NVIDIA to AMD GPUs |
[SBCB23] |
GitHub source repository
Released under Apache2 license:
$ git clone git@github.com:gafusion/gacode.git
Input parameters
Normalization
Quantity |
Unit |
Description |
---|---|---|
length |
minor radius |
|
mass |
deuterium mass = |
|
density |
electron density |
|
temperature |
electron temperature |
|
velocity |
deuterium sound speed |
|
time |
minor radius over sound speed |
Tabular list
input.cgyro parameter |
Short description |
Default |
---|---|---|
Geometry model selector |
2 |
|
Normalized minor radius |
0.5 |
|
Normalized major radius |
3.0 |
|
Shafranov shift |
0.0 |
|
Elongation |
1.0 |
|
Elongation shear |
0.0 |
|
Triangularity |
0.0 |
|
Triangularity shear |
0.0 |
|
Squareness |
0.0 |
|
Squareness shear |
0.0 |
|
Elevation |
0.0 |
|
Gradient of elevation |
0.0 |
|
Safety factor |
2.0 |
|
Magnetic shear |
1.0 |
|
Field orientation |
-1.0 |
|
Current orientation |
-1.0 |
|
Enforce up-down symmetry |
1 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Tilt |
0.0 |
|
Tilt shear |
0.0 |
|
Ovality |
0.0 |
|
Ovality shear |
0.0 |
|
2nd antisymmetric moment |
0.0 |
|
2nd antisymmetric moment shear |
0.0 |
|
3rd antisymmetric moment |
0.0 |
|
3rd antisymmetric moment shear |
0.0 |
|
3rd symmetric moment |
0.0 |
|
3rd symmetric moment shear |
0.0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Profile input selector |
1 |
|
Toggle quasineutrality |
1 |
|
Toggle nonlinear simulation |
0 |
|
Control zonal flow testing |
0 |
|
Toggle silent output |
0 |
|
Initial |
0.1 |
|
Initial |
0.0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Number of fields to evolve |
1 |
|
Electron beta |
0.0 |
|
Electron beta scaling parameter |
0.0 |
|
Pressure gradient scaling factor |
1.0 |
|
Debye length |
0.0 |
|
Debye length scaling factor |
0.0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Number of radial |
4 |
|
Radial domain size |
1 |
|
Number of binormal |
1 |
|
Binormal wavenumber or domain size |
0.3 |
|
Number of poloidal |
24 |
|
Number of pitch angle |
16 |
|
Number of energy |
8 |
|
Maximum energy |
8.0 |
|
Use FP64 or FP32 math for nonlinear term |
0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Radial spectral upwind scaling |
1.0 |
|
Poloidal upwind scaling |
1.0 |
|
Binormal spectral upwind scaling |
0.0 |
|
Radial spectral upwind order |
3 |
|
Poloidal upwind order |
3 |
|
Binormal spectral upwind order |
3 |
|
Use reduced precision communication |
0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Time integrator selection |
0 |
|
Time step |
0.01 |
|
Error tolerance |
1e-4 |
|
Simulation time |
1.0 |
|
Error tolerance for frequency |
0.001 |
|
Data output interval |
100 |
|
Restart data output interval |
10 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Number of GK species (ions plus electrons) |
1 |
|
Species charge |
1 |
|
Species mass |
1.0 |
|
Species density |
1.0 |
|
Species temperature |
1.0 |
|
Species density gradient |
1.0 |
|
Species temperature gradient |
1.0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Electron-electron collision frequency |
0.1 |
|
Collision model selector |
4 |
|
Toggle self-consistent field update |
1 |
|
Toggle momentum conservation |
1 |
|
Toggle energy conservation |
1 |
|
Toggle energy diffusion |
1 |
|
Toggle so-called FLR term |
0 |
|
Reduce Sugama memory use |
0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Rotation model selector |
1 |
|
Dopper shearing rate ( |
0.0 |
|
Rotation shearing rate |
0.0 |
|
Rotation speed (Mach number) |
0.0 |
|
Doppler shearing rate scaling factor |
1.0 |
|
Rotation shearing rate scaling factor |
1.0 |
|
Rotation speed scaling factor |
1.0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Global output resolution |
4 |
|
Source rate |
15.0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
Output of electromagnetic field components |
0 |
|
Output of density and energy moments |
0 |
|
Output of global flux profiles |
0 |
|
Output of distribution (single-mode only) |
0 |
input.cgyro parameter |
Short description |
Default |
---|---|---|
How many toroidal harmonics per MPI process |
1 |
|
Use FP64 or FP32 constants for the cmat constants |
0 |
|
Use FP64 or FP32 math for nonlinear term |
0 |
|
Relative ordering of MPI ranks |
2 |
|
What internal velocity order to use |
1 |
|
Enable GPU offload when possible |
1 |
Profile data: input.gacode.
Output data
Files
It is not recommended to read these files directly. Rather, we encourage the use of the CGYRO python data interface.
Filename |
Short description |
---|---|
out.cgyro.egrid |
Energy mesh and various weights |
out.cgyro.equilibrium |
Physics input data |
out.cgyro.grids |
Mesh dimensions and coordinates |
out.cgyro.hosts |
MPI ranks and hostnames |
out.cgyro.info |
Human-readable description of simulation |
out.cgyro.memory |
Memory usage statistics |
out.cgyro.mpi |
Recommendations for choosing MPI tasks and OMP threads |
out.cgyro.version |
Version information and timestamp for simulation |
bin.cgyro.geo |
GK equation coefficients versus |
Filename |
Short description |
Switch |
---|---|---|
out.cgyro.time |
Time and error vector |
|
out.cgyro.timing |
Kernel timer data |
|
bin.cgyro.freq |
Mode frequency vector |
|
bin.cgyro.kxky_phi |
||
bin.cgyro.kxky_apar |
FIELD_PRINT_FLAG = 1 |
|
bin.cgyro.kxky_bpar |
FIELD_PRINT_FLAG = 1 |
|
bin.cgyro.kxky_n |
||
bin.cgyro.kxky_e |
||
bin.cgyro.kxky_v |
||
bin.cgyro.ky_flux |
||
bin.cgyro.ky_cflux |
Filename |
Short description |
---|---|
out.cgyro.tag |
Restart tag file (contains time index and value) |
bin.cgyro.restart |
Binary restart file |
Normalization
Ion sound gyroradius
Ion sound speed
gyroBohm particle flux
gyroBohm momentum flux
gyroBohm energy flux
Python interface
It is suggested that users use the python interface to read CGYRO output data.
Simulation images
Simulation data courtesy Nathan Howard (MIT)




FAQ
What is
How does adaptive time-stepping work?
Why did you start over with CGYRO?
How do you run a simple linear case?
How do I run a pre-existing template case?
How do I submit a batch job?