Sawtooth models in TRANSP

The namelist variable NLSAW=.TRUE. turns on the TRANSP sawtooth model.

The times of sawteeth can be set in the UFILE that is specified using TRDAT namelist variables PRESAW and EXTSAW. This UFILE can generated by pattern recognition analysis on a timetrace of x-ray or ECE data, using the program SAWTOO.

All input UFILES may be expected to show discontinuities at all sawtooth event times. For the sawtooth analysis to make sense these measured discontinuities must be preserved in the smoothing process. The sawtooth event times UFILE may be read in in the smoothing codes (GSMOO1/GSMOO2) to define define discontinuous breaks (interior endpts) as an aid to preserving sawteeth while smoothing the temperature, density, and other input data required by TRANSP.

If the sawtooth discontinuities are smoothed through in the input data, NLSAWD needs to be set to .FALSE. in TRANSP namelist. The effect of this switch is to interpolate all input data ignoring the sawtooth events, as in a normal run. The sawtooth mixing will effect J, Ti, and fast ions, but will not effect Te, or any specie densities in this case, since quasi-neutrality relative to the input electron density data needs to be maintained. This mode of operation is not recommended. If good sawtooth analysis is required, the input data should be prepared accordingly.

The output of the sawtooth model is a comparison of energy transfers as predicted by the Kadomtsev model (cf e.g. KDSAW module in the NTCC library) with measured energy transfers (in the case of electrons); or simulations in accordance with the Kadomtsev model, in the case of ions and the plasma current profile.

As with pellets, a data "safety interval" must be set around each event, specifying that the input UFILES data are not to be used directly but extrapolated forward/back from nearby data to the event time itself, in this time interval. The half-duration of this interval is specified by the namelist input DTSAWD

switches-- default .TRUE., set .FALSE. to turn off sawtooth model for...
NLSAWE: electrons (checked if Te is being predicted)
NLSAWI: ions
NLSAWB: beam fast ions
NLSAWF: fusion product fast ions
NLSAWIC: ICRF minority fast ions

Here is the list of of other TRANSP namelist variables that control the sawtooth parameters:

Variable name Default value Description
NLSAW_TRIGGER .FALSE. .TRUE ==> sawtooth crash will be triggered by appropriate conditions computed in sbrtn sawtooth_trigger
NLSAW_DIAGNOSTIC .FALSE. TRUE ==> no crash will be triggered but sawtooth crash conditions will be computed as a diagnostic in sbrtn sawtooth_trigger
MODEL_SAWTRIGGER 0 Controls the sawtooth trigger model
= -1 (set by TRANSP if needed) -- sawteeth prescribed by input data
= 0 Prescribed sawtooth period starting at t_sawtooth_on(j) and continuing with sawtooth_period
= 1 Park-Monticello model (1990)
= 2 Porcelli model (1996)
= 100 (set by TRANSP if needed) -- sawteeth triggered by F2222SP client
T_SAWTOOTH_ON -1.0D34, 1.0D34 Time to start testing for sawtooth crashes (sec)
As many as 100 times can be specified to start testing for sawtooth crashes. If model_sawtrigger = 0, then a sawtooth crash will be triggered at ta = t_sawtooth_on(j) and at ta = t_sawtooth_on(j) + i * sawtooth_period, i=1,...
Note: t_sawtooth_on(1) is initialized to -1.0e34 and t_sawtooth_on(j) is initialized to 1.0e34 for j=2,100
SAWTOOTH_PERIOD 0. Prescribed sawtooth period (sec) when model_sawtrigger = 0 = Minimum sawtooth period when model_sawtrigger > 0
T_SAWTOOTH_OFF 1.0D34 Time to stop testing for sawtooth crashes (sec)
L_SAWTOOTH 0 Integer switches to control sawtooth trigger
C_SAWTOOTH 0.00 Floating point switches control sawtooth trigger
NLSAW .FALSE. .TRUE. to turn on sawtooth modeling
NMIX_KDSAW 1 Kadomtsev/Porcelli mixing option (KDSAW module)
=1 -- standard Kadomtsev
=2 -- Kadomtsev but with full particle mixing (instead of Helical flux matching method); predicted densities fully flattened.
=3 -- Porcelli (see fporcelli) with two mixing regions, one for the "island" around q=1, and a second one for the axial region inside the island annulus.
=4 -- Porcelli (see fporcelli) but with a single mixing region for predicted plasma species, covering both the q=1 island and the axial region.
Kadomtsev mixing yields q>=1 everywhere; Porcelli mixing generally leaves a region with q<1 near the axis.
FPORCELLI 1. Porcelli fraction -- island width fraction
=1.0 means q=1 island extends all the way to the magnetic axis XI=0 and the mixing region is as big as it is for the Kadomtsev model;
<1.0 means island reaches into (1-FPORCELLI)*XI(q=1). There are two separate mixed regions, one being the magnetic island around q=1 of width controlled by FPORCELLI (extends to both sides of the pre-sawtooth q=1 surface), and the other being the axial region inside the annular region taken up by the q=1 island. See KDSAW NTCC MODULE, kdsaw_pre_init subroutine.
NLSAWD .TRUE. .TRUE. If input data prepared with sawtooth breaks
NLSAWE .TRUE. .TRUE. to apply model to electrons (Te prediction)
NLSAWI .TRUE. .TRUE. to apply model to thermal ions (Ti prediction)
NLSAWB .TRUE. .TRUE. to apply model to beam ions
NLSAWF .TRUE. .TRUE. to apply model to fusion product ions
NLSAWS .FALSE. .TRUE. TO APPLY A SIMPLE (AS PER STEVE JARDIN) SAWTOOTH MODEL to the resistivity: in core region, q < QSAW
NLRESIS_FLATTEN .FALSE. Flatten resistivity for x < XRESIS_FLATTEN (independent of q profile); x=sqrt(normalized toroidal flux) as usual.
XRESIS_FLATTEN 0.075 Flatten resistivity from this value of x on in, if NLRESIS_FLATTEN = .TRUE.
DTSAWD 0. Extrapolate data w i.e. do not trust interpolation btw. time pts. this close to a sawtooth event
XSWFRAC_DUB_TE 0. Fraction of sawtooth delta(poloidal_field_energy) to add to electron energy density, if Te is predicted (if poloidal field energy density increases through the sawtooth, Te is reduced by this option).
XSWFRAC_ALLFAST 1. Fraction multiplier -- fast ions participating in Kadomtsev mixing
XSWFRAC_BEAM 1. Fraction multiplier -- beam ions participating in Kadomtsev mixing: net XSWFRAC_ALLFAST*XSWFRAC_BEAM
XSWFRAC_FUSN 1. Fraction multiplier -- fusion product ions participating in Kadomtsev mixing: net XSWFRAC_ALLFAST*XSWFRAC_FUSN
XSWFRAC_RFMIN 1. Fraction multiplier -- rm minority ions participating in Kadomtsev mixing (not yet implemented)
NLSAWIC .TRUE. .TRUE. to turn on ICRF minority ion sawtooth model. Flattens the mi dist. func. (use with NICRF=1) RCG.

XSWID1 (default value: 0.0) controls the prediction of the response of ion temperature after the sawtooth. For XSWID1=0.0, use the Kadomtsev or Porcelli prediction to compute the change in the ion energy density profile. Then divide out by the actual post sawtooth ion density (determined by measured data, not Kadomtsev/Porcelli theory) to yield the new ion temperature profile. XSWID1=0.0 conserves total ion energy. However, the new ion temperature profile can have an odd shape if the measured density change is different from what the Kadomtsev/Porcelli model would have predicted, or if the size of the sawtooth modeled by TRANSP is different from what actually happened in the experiment. As an alternative, set XSWID1=1.0 to use the Kadomtsev/Porcelli prediction for change of ion temperature and the data for change of ion density; XSWID1=1.0 does not strictly conserve ion energy. Values of XSWID1 between 0.0 and 1.0 give a sliding control between these two model extrema.

XSWID2 (default value: 0.0) controls the prediction of the response of the plasma current profile to the sawtooth event. The default, XSWID2=0.0, gives the full Kadomtsev/Porcelli predicted change in the current profile, i.e. (for full Kadomtsev) q=1 on axis and q>1 off axis, after the sawtooth. Setting XSWID2=1.0 causes there to be no current mixing, i.e. the current and q profile are modeled as unchanged by the sawtooth event. Setting XSWID2 between 0 and 1 gives a sliding control to select a model that "averages" between these two model extrema.

XSWIDQ (default value: 0.05) The Kadomtsev and Porcelli mixing models produce current sheets which shows up as discontinuities in the Q profile. This can cause the equilibrium solver to fail. The XSWIDQ option sets a finite thickness to the current sheet width in units of sqrt(normalized toroidal flux) and is restricted to the range 0.0 < XSWIDQ < 0.10.

XSWFRAC_DUB_TE (default value: 0.0) controls what fraction of the change in poloidal field energy density (due to the sawtooth) to apply to the thermal electrons. This is of importance only if Te is being predicted; Notes: (1) the change in (para/diamagnetic) toroidal field energy should perhaps also be taken into account, but this is not available at the sawtooth time (because the MHD equilibrium is not immediately recalculated); (2) if XSWFRAC_DUB_TE=1.0, and if the ad hoc current mixing somehow produces a field that contains more energy than before the sawtooth, this will reduce the electron temperature. In one very low density case it actually caused the temperature to go negative, crashing the code.