GYRO_GACODE

Contacts: Sterling Smith, Arash Ashouvan

Short Description

Runs the GYRO and CGYRO gyrokinetic turbulence simulation

Keywords

Gyrokinetics, eulerian, turbulence, transport, GACODE

Long Description

GYRO/CGYRO are nonlinear tokamak microturbulence package designed to run on nearly all modern computing platforms. Developed at General Atomics, GYRO/CGYRO use a fixed (Eulerian) grid to solve the 5-D gyrokinetic-Maxwell equations.

GYRO/CGYRO can be run as a standalone solver using (a) local parameters, (b) local parameters automatically generated from global equilibrium and profiles, (c) global profiles. GYRO/CGYRO can be run as a hybrid MPI/OpenMP component (with an MPI communicator passed to it) with inputs shared via a well-documented interface. The same interface syntax is also used by NEO and TGLF, and TGYRO communicate with GYRO/NEO/TGLF via this interface.

Both the MPI implementation, and the more recent OpenMP directives, are highly optimized in GYRO/CGYRO. The OpenMP in particular was reoptimized by IBM and the changes that improved performance at NERSC were retained. Sensible GYRO/CGYRO runs required at most 20K cores, but typically (say for ITER) will probably use about 512-2048 cores. The direct coupling scheme in TGYRO can use about 16*4=64 instances, which brings the TGYRO core count to over 100K cores.

Operation is flexible, with the capability to treat
  • A local (flux-tube) or global radial domain, in a full or partial torus

  • General (shaped) or simple circular plasmas

  • Adiabatic, drift-kinetic or gyrokinetic electrons

  • Electrostatic, transverse and compressional electromagnetic fluctuations

  • Experimental or user-defined physical parameters

Typical workflows

  1. Run benchmark/regression/template cases

    • Use gyro/cgyro to generate a template (linear,nonlinear)

    • Edit simulation paramters

    • Run GYRO/CGYRO

    • View simulation output

    • Compare output from multiple simulations

  2. Run experimental cases

    • Load experimental inputs

    • Load templates defined in OMFIT

    • Edit simulation paramters

    • Run GYRO/CGYRO

    • View output

    • Compare output from multiple simulations

Supported devices

  • Device independent with templates for DIII-D like experimental conditions

Tutorials

Contributors

List of contributors sorted by number of lines authored:

2103 Brian Grierson
 528 Fusion Bot
 117 Sterling Smith
 111 Orso Meneghini
  19 Tom Neiser
   4 Joseph McClenaghan

Users

List of usernames sorted by number of module imports: grierson, mcclenaghanj, bgriers, ashourvana, jianx, aashourv, bgrierson, callahank, pereze, wuyifan, meneghini, holland, stephanet, stewarts, tang31, wangy, wgutten, neisert, nelsonand, patelb, lig, sciortinof, jlchen, orlov, dingsiye, marinoni, tneiser, tsingh, carterb, guttenfe, hallj, liyongliang, saarelma, shisy, smithsp, ssmith, bilgilis, gavdeeva, sungc, tangt, wanghuiqian, avdeevag, bassem, cxzhou, edeshaze, fusionbot, hongrongjie, howardnt, jmcclena, jparisi, kimsang, leekuanwei, lizeyu, luoyiming, prattq, solokhav, tomas, vaezip, wuxh, yanjie.yang, abbatej, bpatel2, deshazere, fernandezp, jorge, ligq, molesworths, normandy, odstrcilt, renyang, smithdr, staebler, sunpengjun, thomek, victorb, wfguo, andreavergara, anelson, bernardt, brookmanmw, chenxi, galinaavdeeva, ghiozzia, guizzos, hasan, idesjard, johnsonj, kimkyungjin, kyungjin, leem, lijx, lyonsbc, majorm, parisij, qinx, saarelmas, sdstewart3, shinan, shis, slendebroekt, xuemiao, yuguanying, yuze.yu, zhaixm, zhanghaiping