Contacts: Orso Meneghini, Phil Snyder
Run the ELITE ideal MHD stability code
ELITE is an MHD stability (eigenvalue) code. It is designed to efficiently evaluate the stability of the edge (or “pedestal”) region of tokamak plasmas, for intermediate to high toroidal mode number instabilities (n~4-50). These instabilities, driven by edge pressure and current gradients, cause Edge Localized Modes (ELMs) and constrain the pressure (or “height”) of the pedestal. The ELITE formalism is derived via an expansion in 1/n to high order, enabling a very efficient and accurate treatment of n>4 instabilities. It is a key component of the EPED model, which is used to predict the pedestal height and width in existing and future tokamaks. ELITE can include compression and toroidal rotation, but is most frequently run without these effects. It is a single fluid code (which typically includes diamagnetic stabilization via analytic models or fits to two fluid calculations). The present version of ELITE (5.9) requires n>~4, but a version for low n is in progress.
The input to ELITE is a 2D Grad-Shafranov equilibrium solution which can be generated by one of several equilibrium codes. Most often equilibria come from EFIT (experimental cases) or toq/corsica/helena (model equilibria). Equilibria must be sufficiently high resolution (minimum 129x129 for EFIT), be highly converged Grad-Shafranov solutions (error <~1e-5), and have well resolved pedestal region profiles (including current, usually evaluated with bootstrap models or NEO) in order to be useful to ELITE. ELITE can be used on sets of equilibria (known as “VARYPEDS” as they vary key pedestal parameters). ELITE is used as part of the EPED model to determine the peeling-ballooning constraint (one of two constraints in EPED).
ELITE is a set of three executables (eliteeq, elitevac, elite) that are typically run in sequence. These are f90 codes that typically runs in a few seconds to a minute on modern CPUs. Efficiency is much higher for updown symmetric equilibria and when only a yes/no on stability is required (rather than a growth rate). In most applications (construction of a peeling-ballooning diagram, EPED model) ELITE is run 100s to 1000s of times, and this can be done in parallel on large numbers of cores.
Run (parallel) ELITE scan for different modes
Batch scripts allow multiple (parallel) ELITE runs for multiple modes and different equilibrium variations generated with VARYPED module
Plotting of s-alpha stability diagrams (interactive, click to see eigenfunction of most unstable mode)
Parsing and plotting of eigenfunction
Tutorial for DIII-D (Google docs)
Plotting example (Youtube video)
Snyder, P.; Wilson, H.; Ferron, J.; Lao, L.; Leonard, A.; Osborne, T. & Turnbull, A. Edge localized modes and the pedestal: A model based on coupled peeling-ballooning modes; Physics of Plasmas, 9, 2037 (2002)
Wilson, H. R., Snyder, P. B., Huysmans, G. T. A., & Miller, R. L. (2002). Numerical studies of edge localized instabilities in tokamaks. Physics of Plasmas, 9(4), 1277-1286
Official webpage: https://fusion.gat.com/THEORY/elite/
Practical guide: https://www.dropbox.com/s/e3d4t605d5rvtyr/ELITE_doc_rev4.pdf?dl=0
is basically the same as gamma/omega_A. It is the growth rate normalized to the Alfven frequency. Note however that gamma/omega_A contains R/B and one must be sure to use the same value of R/B to compare growth rates across different codes.
is the growth rate normalized to half the ion diamagnetic drift frequncy (where the half_max value in the pedestal is used as a typical value). This is the most important number - the one that is plotted in the stability contour plots. When its value exceeds 1. the plasma is unstable (in the presence of a simple model of diamagnetic stabilization).
is an input to ELITE. outputting this is useful if you want to use it as an input to start a similar run.
is the edge resonance parameter set by setdel and delfix.
is the value that is iterated to zero to calculate the growth rate. Its value should be very small or the run has not converged.
is like gamr, but calculated in a different way (without forcing a matrix that is supposed to be Hermitian to actually be Hermitian). It should be small (but not as small as gamr). If it is not small while gamr is small then there is likely a problem with the equilibrium files (eg not high enough resolution efit, or not well enough converged).
is a measure of the non-Hermiticity of a matrix that is supposed to be Hermitian (if the equilibrium were a perfect Grad-Shafranov solution). Again, it should be fairly small or there are problems with the equilibrium.
On successful completion, provided igam>1 and the growth rate is converged, ELITE will output a number of definitions of growth rate, as follows:
The square of the growth rate normalised to the Alfven frequency at the plasma edge, A=B/(R(0a)1/2). For R we take the average of the innermost and outermost R values on the outer surface. The value of B used is then calculated by dividing f=RBtor on the outer surface by that value of R. (note that this numerical value of R/B is also output for easy conversion)
The square root of the value above
The ratio of the definitions of R and B as defined above
- Growth rate for rho=1kgm**3
The actual growth rate, assuming an edge mass density of 1kgm3. Note that constant density is assumed when no density information is input.
- Growth rate
The true growth rate in s1, output only if density information is available (dens=.t.).
List of contributors sorted by number of lines authored:
569 Orso Meneghini 264 Samuli Saarelma 203 Joseph McClenaghan 88 Nikolas Logan 87 Fusion Bot 9 Gustavo Canal 4 Theresa Wilks 2 Ryan Chaban
List of usernames sorted by number of module imports: wangy, knolkerm, orlov, wilkstm, nelsonand, ashourvana, lizeyu, meneghini, wilcoxr, wanghuiqian, pankin, chenji, likai, mcclenaghanj, saarelma, huqiming, chenxi, lig, solomon, kongd, grierson, jianx, soukhan, wangqi, chenj, lyonsbc, marinoni, kleinera, paz-soldan, victorb, aashourv, haskeysr, inyong, wuyifan, cotet, guowf, halfmoonm, izacardo, saarelmas, sungc, wangzw, chenjia, churchillr, evans, halpernf, shaskey, smithsp, sunap, thomek, turnbull, weisbergd, wingen, abramst, baradakk, canalg, cuil, duttas, halfmoon, hengl, laggnerf, luoyiming, nazikian, psinha, renq, vailp, yfwang, zhuyiren