X-Point Gyrokinetic Code (XGC)
XGC: the X-point Gyrokinetic Code for Transport in Tokamaks
Near the edge of tokamak plasmas, strong particle and energy sources and sinks (e.g. radiation, contact with a material wall,...) drive the plasma away from thermal equilibrium, thus invalidating the assumptions underpinning fluid theories. The XGC, gyrokinetic, particle-in-cell (PIC) suite-of-codes, XGC1, XGCa and XGC0, were developed to provide a comprehensive description of kinetic transport phenomena in this complicated region; including: heating and cooling, radiation losses, neutral particle recycling and impurity transport.
A particle's “state” is described by the position, x, and velocity, v; constituting a a six-dimensional phase space. Gyrokinetic codes average over the very-fast, “gyromotion” of charged particles in strong magnetic fields, B, and phase space becomes five-dimensional, X≡(x,v∥,μ)𝑋≡(𝑥,𝑣∥,𝜇), where x is the position of the “guiding center”, v∥𝑣∥ is the velocity parallel to B, and μ𝜇 is the “magnetic moment”. The density of particles is given by a distribution function, f(X,t)𝑓(𝑋,𝑡); the evolution of which, including collisions, is formally described by the “Vlasov-Maxwell” equation: f𝑓 evolves along “characteristics”, which are the dynamical trajectories of the guiding centers [1],
x˙v˙∥==[v∥b+v2∥∇B×b+B×(μ∇B−E)/B2]/D,−(B+v∥∇B×b)⋅(μ∇B−E),𝑥˙=[𝑣∥𝑏+𝑣∥2∇𝐵×𝑏+𝐵×(𝜇∇𝐵−𝐸)/𝐵2]/𝐷,𝑣˙∥=−(𝐵+𝑣∥∇𝐵×𝑏)⋅(𝜇∇𝐵−𝐸),
where E is the electric field, b=B/|B|𝑏=𝐵/|𝐵|, and D≡1+v∥b⋅∇×b/B𝐷≡1+𝑣∥𝑏⋅∇×𝑏/𝐵 ensures the conservation of phase-space volume (Liouville theorem). The non-thermal-equilibrium demands that gyrokinetic codes must evolve the full distribution function, by applying classical “full-f” [2,3] and noise-reducing, “total-f” techniques [4]. (This is in contrast to so-called “δf𝛿𝑓” methods, which evolve only a small perturbation to an assumed-static, usually-Maxwellian distribution.) As full-f codes, XGC can include heat and torque input, radiation cooling; and neutral particle recycling [5].Multiple particle-species (e.g. ions and electrons, ions and impurities) are included; and XGC uses a field-alligned, unstructured mesh in cylindrical coordinates, and so can easily accommodate the irregular magnetic fields in the plasma edge (e.g. the “X-point”, “separatrix”). XGC calculates transport in the entire plasma volume; from the “closed-flux-surface”, good-confinement region (near the magnetic axis) to the “scrape-off layer” (where magnetic fieldlines intersect the wall and confinement is lost). Collisions between ions, electrons and impurities are evaluated using either (i) a linear, Monte-Carlo operator [6] for test-particles, and the Hirshman-Sigmar operator [7] for field-particle collisions; or (ii) a fully-nonlinear, Fokker-Planck-Landau collision operator [8,9]. XGC codes efficiently exploit massively-parallel computing architecture.