About
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.