ClassicalTransport
- class plasmapy.formulary.braginskii.ClassicalTransport(T_e: ~astropy.units.quantity.Quantity, n_e: ~astropy.units.quantity.Quantity, T_i: ~astropy.units.quantity.Quantity, n_i: ~astropy.units.quantity.Quantity, ion, m_i: ~astropy.units.quantity.Quantity = None, Z=None, B: ~astropy.units.quantity.Quantity = <Quantity 0. T>, model='Braginskii', field_orientation='parallel', coulomb_log_ei=None, V_ei=None, coulomb_log_ii=None, V_ii=None, hall_e=None, hall_i=None, mu=None, theta: float | None = None, coulomb_log_method='classical')[source]
Bases:
object
Classical transport coefficients (e.g. Braginskii, 1965).
Attention
This functionality is under development. Backward incompatible changes might occur in future releases.
Notes
Given that many of the transport variables share a lot of the same computation and many are often needed to be calculated simultaneously, this class can be initialized once with all of the variables necessary for calculation. It then provides all of the functionality as methods (please refer to their documentation).
- Parameters:
T_e (
Quantity
) – Electron temperature in units of temperature or energy per particle.n_e (
Quantity
) – The electron number density in units convertible to per cubic meter.T_i (
Quantity
) – Ion temperature in units of temperature or energy per particle.n_i (
Quantity
) – The ion number density in units convertible to per cubic meter.ion (
str
) – Representation of the ion species (e.g.,'p'
for protons,'e-'
for electrons,'D+'
for deuterium, or'He-4 +1'
for singly ionized helium-4). If no charge state information is provided, then the particles are assumed to be singly charged.Z (
int
ornumpy.inf
, optional) – The ion charge state. Overrides particle charge state if included. Different theories support different values ofZ
. For the original Braginskii model,Z
can be any of [1, 2, 3, 4, infinity]. The Ji-Held model supports arbitraryZ
. Average ionization statesZ_mean
can be input using this input and the Ji-Held model, although doing so may neglect effects caused by multiple ion populations.B (
Quantity
, optional) – The magnetic field strength in units convertible to tesla. Defaults to zero.model (
str
) –Indication of whose formulation from literature to use. Allowed values are:
"Braginskii"
[Braginskii, 1965]"Spitzer-Harm"
[Spitzer, 1962, Spitzer and Härm, 1953]"Epperlein-Haines"
(not yet implemented) [Epperlein and Haynes, 1986]"Ji-Held"
[Ji and Held, 2013]
field_orientation (
str
, defaults to'parallel'
) – Either of'parallel'
,'par'
,'perpendicular'
,'perp'
,'cross'
, or'all'
, indicating the cardinal orientation of the magnetic field with respect to the transport direction of interest. Note that'perp'
refers to transport perpendicular to the field direction (in the direction of the temperature gradient), while'cross'
refers to the direction perpendicular to B and the gradient of temperature (\(B × ∇T\)). The option'all'
will return anumpy.array
of all three,np.array((par, perp, cross))
. Does not apply to viscosities.coulomb_log_ei (
float
or dimensionlessQuantity
, optional) – Force a particular value to be used for the electron-ion Coulomb logarithm (test electrons on field ions). IfNone
,Coulomb_logarithm
will be used. Useful for comparing calculations.V_ei (
Quantity
, optional) – The relative velocity between particles. Supplied toCoulomb_logarithm
function, not otherwise used. If not provided, thermal velocity is assumed: \(μ V^2 \sim 2 k_B T\) where \(μ\) is the reduced mass.coulomb_log_ii (
float
or dimensionlessQuantity
, optional) – Force a particular value to be used for the ion-ion Coulomb logarithm (test ions on field ions). IfNone
, the PlasmaPy functionCoulomb_logarithm
will be used. Useful for comparing calculations.V_ii (
Quantity
, optional) – The relative velocity between particles. Supplied toCoulomb_logarithm
function, not otherwise used. If not provided, thermal velocity is assumed: \(μ V^2 \sim 2 k_B T\) where :math`μ` is the reduced mass.hall_e (
float
or dimensionlessQuantity
, optional) – Force a particular value to be used for the electron Hall parameter. IfNone
,Hall_parameter
will be used. Useful for comparing calculations.hall_i (
float
or dimensionlessQuantity
, optional) – Force a particular value to be used for the ion Hall parameter. IfNone
,Hall_parameter
will be used. Useful for comparing calculations.mu (
float
or dimensionlessQuantity
, optional) – Ji-Held model only, may be used to include ion-electron effects on the ion transport coefficients. Defaults to zero, thus disabling these effects.theta (
float
or dimensionlessQuantity
, optional) – Ji-Held model only, may be used to include ion-electron effects on the ion transport coefficients. Defaults to \(T_e / T_i\). Only has effect ifmu
is non-zero.coulomb_log_method (
str
, optional) – The method by which to compute the Coulomb logarithm. The default method is the classical straight-line Landau-Spitzer method ("classical"
or"ls"
). The other 6 supported methods are"ls_min_interp"
,"ls_full_interp"
,"ls_clamp_mininterp"
,"hls_min_interp"
,"hls_max_interp"
, and"hls_full_interp"
. Please refer to the docstring ofCoulomb_logarithm
for more information about these methods.
- Raises:
ValueError – On incorrect or unknown values of arguments.
PhysicsError – If input or calculated values for Coulomb logarithms are nonphysical.
Examples
>>> import astropy.units as u >>> t = ClassicalTransport(1 * u.eV, 1e20 / u.m**3, 1 * u.eV, 1e20 / u.m**3, "p") >>> t.resistivity <Quantity 0.0003670... Ohm m> >>> t.thermoelectric_conductivity <Quantity 0.71108...> >>> t.ion_thermal_conductivity <Quantity 0.01552... W / (K m)> >>> t.electron_thermal_conductivity <Quantity 0.38064... W / (K m)> >>> t.ion_viscosity <Quantity [4.621297...e-07, 4.607248...e-07, 4.607248...e-07, 0.000000...e+00, 0.000000...e+00] Pa s> >>> t.electron_viscosity <Quantity [5.822738...e-09, 5.820820...e-09, 5.820820...e-09, 0.000000...e+00, 0.000000...e+00] Pa s>
Attributes Summary
Return all transport variables as a dictionary.
Calculate the thermal conductivity for electrons.
Calculate the electron viscosity.
Calculate the thermal conductivity for ions.
Calculate the ion viscosity.
Calculate the resistivity.
Calculate the thermoelectric conductivity.
Attributes Documentation
- electron_thermal_conductivity
Calculate the thermal conductivity for electrons.
The electron thermal conductivity (\(κ\)) of a plasma is defined by
\[κ = \hat{κ} \frac{n_e k_B^2 T_e τ_e}{m_e}\]where \(\hat{κ}\) is the non-dimensional electron thermal conductivity of the plasma, \(n_e\) is the electron number density of the plasma, \(k_B\) is the Boltzmann constant, \(T_e\) is the electron temperature of the plasma, \(τ_e\) is the fundamental electron collision period of the plasma, and \(m_e\) is the mass of an electron.
Notes
This is quite similar to the ion thermal conductivity, except that it’s for the plasma electrons. In a typical unmagnetized plasma, the electron thermal conductivity is much higher than the ions and will dominate, due to the electrons’ low mass and fast speeds.
In a strongly magnetized plasma, following the classical transport analysis, you calculate that the perpendicular-field thermal conductivity becomes greatly reduced for the ions and electrons, with the electrons actually being restrained even more than the ions due to their low mass and small gyroradius. In reality, the electrons and ions are pulling on each other strongly due to their opposing charges, so you have the situation of ambipolar diffusion.
This situation has been likened to an energetic little child (the electrons) not wanting to be pulled away from the playground (the magnetic field) by the parents (the ions).
The ultimate rate must typically be in between the individual rates for electrons and ions, so at least you can get some bounds from this type of analysis.
- Return type:
See also
- electron_viscosity
Calculate the electron viscosity.
Notes
This is the dynamic viscosity that you find for electrons in the classical plasma, similar to the viscosity of air or water or honey. The big effect is the \(T^{5/2}\) dependence, so as classical plasmas get hotter they become dramatically more viscous. The ion viscosity typically dominates over the electron viscosity.
- Return type:
See also
- ion_thermal_conductivity
Calculate the thermal conductivity for ions.
The ion thermal conductivity (\(κ\)) of a plasma is defined by
\[κ = \hat{κ} \frac{n_i k_B^2 T_i τ_i}{m_i}\]where \(\hat{κ}\) is the non-dimensional ion thermal conductivity of the plasma, \(n_i\) is the ion number density of the plasma, \(k_B\) is the Boltzmann constant, \(T_i\) is the ion temperature of the plasma, \(τ_i\) is the fundamental ion collision period of the plasma, and \(m_i\) is the mass of an ion of the plasma.
Notes
This is the classical plasma ions’ ability to conduct energy and heat, defined similarly to other materials. The result is a conductivity in units of W / m / K, so if you assume you know where the heat is flowing (temperature gradient, cross-sectional area) you can calculate the energy transport in watts as conductivity × cross-sectional area × temperature gradient. In lab plasmas, typically the energy is flowing out of your high-temperature plasma to something else, like the walls of your device, and you are sad about this.
- Return type:
See also
- ion_viscosity
Calculate the ion viscosity.
Notes
This is the dynamic viscosity that you find for ions in the classical plasma, similar to the viscosity of air or water or honey. The big effect is the \(T^{5/2}\) dependence, so as classical plasmas get hotter they become dramatically more viscous. The ion viscosity typically dominates over the electron viscosity.
- Return type:
See also
- resistivity
Calculate the resistivity.
The resistivity (\(α\)) of a plasma is defined by
\[α = \frac{\hat{α}}{n_e e^2 \frac{τ_e}{m_e}}\]where \(\hat{α}\) is the non-dimensional resistivity of the plasma, \(n_e\) is the electron number density of the plasma, \(e\) is Euler’s number, \(τ_e\) is the fundamental electron collision period of the plasma, and \(m_e\) is the mass of an electron.
Notes
The resistivity here is defined similarly to solid conductors, and thus represents the classical plasmas’ property to resist the flow of electrical current. The result is in units of ohm meters, so if you assume where the current is flowing in the plasma (length and cross-sectional area), you could calculate a DC resistance of the plasma in ohms as resistivity × length / cross-sectional area.
Experimentalists with plasma discharges may observe different \(V = IR\) Ohm’s law behavior than suggested by the resistance calculated here, for reasons such as the occurrence of plasma sheath layers at the electrodes or the plasma not satisfying the classical assumptions.
- Return type: