The DREAM.Settings.Equations.ColdElectronTemperature.ColdElectronTemperature
holds settings for the (cold) electron temperature. The unknown quantity is
called T_cold
and can be evolved either according to a prescribed function,
or according to an energy balance equation.
The electron temperature and electron thermal energy are related through
Page overview
The temperature can be prescribed in both space and time. The full syntax for prescribing the electron temperature is
ds.eqsys.T_cold.setPrescribedData(temperature=T_cold, radius=T_cold_r, times=T_cold_t)
where T_cold
is an array of shape (nt, nr)
specifying the cold electron
temperature in space and time, T_cold_r
is a vector with nr
elements
representing the radial grid on which the temperature is prescribed, and
T_cold_t
is a vector with nt
elements representing the time grid on
which the temperature is prescribed.
For convenience, it is possible to prescribe a constant and radially uniform temperature by only specifying it as a scalar:
ds.eqsys.T_cold.setPrescribedData(1000)
This will cause the temperature to be \(T_{\rm cold} = 1\,\mathrm{keV}\) at every radius, in every time step, during the simulation.
The temperature can be evolved self-consistently, i.e. by calculating the energy loss of the plasma through various processes. In its most general form, the energy balance equation solved by DREAM is
Here, the terms included in the most complete form of the energy balance equation are
\(\frac{j_\Omega}{B}\langle\boldsymbol{E}\cdot\boldsymbol{B}\rangle\): Ohmic heating (energy transferred to the plasma from the electric field).
\(\langle n_{\rm cold} \rangle\sum_i\sum_{j=0}^{Z_i-1} n_i^{(j)} L_i^{(j)}\): Energy loss by inelastic atomic processes. The rate coefficient \(L_i^{(j)}\) is given by \(L_i^{(j)} = L_{\rm line} + L_{\rm free} + \Delta W_i^{(j)}(I_i^{(j)} - R_i^{(j)})\), where \(L_{\rm line}\) is the radiated power by line emission, \(L_{\rm free}\) is the radiated power by recombination emission and bremsstrahlung, \(\Delta W_i^{(j)}\) is the ionization threshold (taken from NIST), and \(I_i^{(j)}\) and \(R_i^{(j)}\) are the rates of ionization and recombination for the given ion charge state. Unless otherwise specified, coefficients are taken from OpenADAS.
\(\langle Q_c \rangle\): Collisional heat transfer to the cold electrons, from hot and runaway electrons, as well as ions:
Radial transport of heat. DREAM uses and advection-diffusion heat transport model with either arbitrary coefficients \(A_W\) and \(D_W\), or a Rechester-Rosenbluth diffusion model requiring the magnetic perurbation level \(\delta B/B\) to be specified.
To solve for the electron temperature self-consistently, the user should call
the method setType()
with the argument TYPE_SELFCONSISTENT
.
Additionally, the temperature profile at \(t=0\) must be specified:
import DREAM.Settings.Equations.ColdElectronTemperature as Tcold
ds = DREAMSettings()
...
ds.eqsys.T_cold.setType(Tcold.TYPE_SELFCONSISTENT)
ds.eqsys.T_cold.setInitialProfile(temperature=T0, radius=T0_r)
If a uniform initial temperature profile is desired, the parameter
temperature
in the call to setInitialProfile()
can be a scalar, in which
case the parameter radius
can also be omitted.
By default, radiation due to recombination is neglected in the energy balance
equation (1) (i.e. the coefficient \(L_{\rm free}\) contains
only the contribution from bremsstrahlung, and the coefficient \(R_i^{(j)}\)
is dropped altogether). To account for radiation due to recombination, the user
must call the method setRecombinationRadiation
with the option
RECOMBINATION_RADIATION_INCLUDED
or True
.
import DREAM.Settings.Equations.ColdElectronTemperature as Tcold
ds = DREAMSettings()
...
ds.eqsys.T_cold.setRecombinationRadiation(Tcold.RECOMBINATION_RADIATION_INCLUDED)
# or...
ds.eqsys.T_cold.setRecombinationRadiation(True)
DREAM.Settings.Equations.ColdElectronTemperature.
ColdElectronTemperature
(settings, ttype=1, temperature=None, radius=0, times=0, recombination=False)¶Bases: DREAM.Settings.Equations.PrescribedParameter.PrescribedParameter
, DREAM.Settings.Equations.PrescribedInitialParameter.PrescribedInitialParameter
, DREAM.Settings.Equations.UnknownQuantity.UnknownQuantity
__init__
(settings, ttype=1, temperature=None, radius=0, times=0, recombination=False)¶Constructor.
fromdict
(data)¶setInitialProfile
(temperature, radius=0)¶Sets the initial temperature profile T=T(r) for when the temperature is evolved self-consistently.
temperature – Scalar or vector giving the initial temperature profile.
radius – If temperature
is a vector, contains the corresponding radial grid on which temperature
is defined.
setPrescribedData
(temperature, radius=0, times=0)¶Prescribes a temperature evolution in time and space.
temperature – Scalar, vector or matrix giving the temperature throughout the simulation.
radius – If temperature
is a function of radius, contains the radial grid on which it is defined.
times – If temperature
is a function of time, contains the time grid on which it is defined.
setRecombinationRadiation
(recombination=False)¶Specify whether or not to include recombination radiation when evolving the temperature self-consistently.
setType
(ttype)¶Specifies whether to evolve the electron temperature according to a prescribed function, or self-consistently.
ttype – Type of evolution. Can take one of the following values:
TYPE_PRESCRIBED
: Evolve according to prescribed function.
TYPE_SELFCONSISTENT
: Evolve self-consistently.
todict
()¶Returns a Python dictionary containing all settings of this ColdElectrons object.
verifySettings
()¶Verify that the settings of this unknown are correctly set.
verifySettingsPrescribedData
()¶verifySettingsPrescribedInitialData
()¶