ebisim.plasma module¶
This module contains functions for computing collission rates and related plasma parameters.
- @numba.vectorizeebisim.plasma.clog_ei(Ni, Ne, kbTi, kbTe, Ai, qi)¶
The coulomb logarithm for ion electron collisions [CLOGEI].
- Parameters
Ni (float or numpy.ndarray) – <1/m^3> Ion density.
Ne (float or numpy.ndarray) – <1/m^3> Electron density.
kbTi (float or numpy.ndarray) – <eV> Ion temperature.
kbTe (float or numpy.ndarray) – <eV> Electron temperature.
Ai (float or numpy.ndarray) – Ion mass number.
qi (int or numpy.ndarray) – Ion charge state.
- Returns
float or numpy.ndarray – Ion electron coulomb logarithm.
References
- CLOGEI
“NRL Plasma Formulary”, J. D. Huba, Naval Research Laboratory (2019), https://www.nrl.navy.mil/ppd/sites/www.nrl.navy.mil.ppd/files/pdfs/NRL_Formulary_2019.pdf
Notes
\[\lambda_{ei} = 23 - \ln\left(N_e^{1/2} (T_e)^{-3/2} q_i\right) \quad\text{if } T_i m_e/m_i < T_e < 10 q_i^2\text{ eV}\]\[\lambda_{ei} = 24 - \ln\left(N_e^{1/2} (T_e)^{-1}\right) \quad\text{if } T_i m_e/m_i < 10 q_i^2\text{ eV} < T_e\]\[\lambda_{ei} = 16 - \ln\left(N_i^{1/2} (T_i)^{-3/2} q_i^2 \mu_i\right) \quad\text{if } T_e < T_i m_e/m_i\]\[\left[\lambda_{ei} = 24 - \ln\left(N_e^{1/2} (T_e)^{-1/2}\right) \quad\text{else (fallback)} \right]\]In these formulas N and T are given in cm^-3 and eV respectively. As documented, the function itself expects the density to be given in 1/m^3.
- @numba.vectorizeebisim.plasma.clog_ii(Ni, Nj, kbTi, kbTj, Ai, Aj, qi, qj)¶
The coulomb logarithm for ion ion collisions [CLOGII].
- Parameters
Ni (float or numpy.ndarray) – <1/m^3> Ion species “i” density.
Nj (float or numpy.ndarray) – <1/m^3> Ion species “j” density.
kbTi (float or numpy.ndarray) – <eV> Ion species “i” temperature.
kbTj (float or numpy.ndarray) – <eV> Ion species “j” temperature.
Ai (float or numpy.ndarray) – Ion species “i” mass number.
Aj (float or numpy.ndarray) – Ion species “j” mass number.
qi (int or numpy.ndarray) – Ion species “i” charge state.
qj (int or numpy.ndarray) – Ion species “j” charge state.
- Returns
float or numpy.ndarray – Ion ion coulomb logarithm.
References
- CLOGII
“NRL Plasma Formulary”, J. D. Huba, Naval Research Laboratory (2019), https://www.nrl.navy.mil/ppd/sites/www.nrl.navy.mil.ppd/files/pdfs/NRL_Formulary_2019.pdf
Notes
\[\lambda_{ij} = \lambda_{ji} = 23 - \ln \left( \frac{q_i q_j(\mu_i+\mu_j)}{\mu_i T_j+\mu_j T_i} \left( \frac{n_i q_i^2}{T_i} + \frac{n_j q_j^2}{T_j} \right)^{1/2} \right)\]In these formulas N and T are given in cm^-3 and eV respectively. As documented, the function itself expects the density to be given in 1/m^3.
- @numba.vectorizeebisim.plasma.collisional_escape_rate(nui, w)¶
Generic escape rate - to be called by axial and radial escape
- Parameters
nui (float or numpy.ndarray) – <1/s> Vector of total ion ion collision rates for each charge state.
w (float or numpy.ndarray) – <1/s> Vector of trap (loss) frequencies.
- Returns
float or numpy.ndarray – <1/s> Vector of ion loss rates for each charge state.
Notes
\[\dfrac{3}{\sqrt{2}} \nu_i \dfrac{e^{-\omega_i}}{\omega_i}\]
- @numba.vectorizeebisim.plasma.collisional_thermalisation(kbTi, kbTj, Ai, Aj, nuij)¶
Computes the collisional energy transfer rates for species “i” with respect to species “j”.
- Parameters
kbTi (float or numpy.ndarray) – <eV> Vector of ion species “i” temperatures.
kbTj (float or numpy.ndarray) – <eV> Vector of ion species “j” temperatures.
Ai (float or numpy.ndarray) – Ion species “i” mass number.
Aj (float or numpy.ndarray) – Ion species “j” mass number.
nuij (float or numpy.ndarray) – <1/s> Collision rate matrix for the ions (cf. ion_coll_mat).
- Returns
float or numpy.ndarray – <eV/s> Vector of temperature change rate for each charge state.
Notes
\[\left(\dfrac{d k_B T_i}{d t}\right)_j = 2 \nu_{ij} \dfrac{m_i}{m_j} \dfrac{k_B T_j - k_B T_i}{(1 + m_i k_B T_j / m_j k_B T_i)^{3/2}}\]
- @numba.vectorizeebisim.plasma.coulomb_xs(Ni, Ne, kbTi, Ee, Ai, qi)¶
Computes the Coulomb cross section for elastic electron ion collisions
- Parameters
Ni (float or numpy.ndarray) – <1/m^3> Ion density.
Ne (float or numpy.ndarray) – <1/m^3> Electron density.
kbTi (float or numpy.ndarray) – <eV> Ion temperature.
Ee (float or numpy.ndarray) – <eV> Electron kinetic energy.
Ai (float or numpy.ndarray) – Ion mass number.
qi (int or numpy.ndarray) – Ion charge state.
- Returns
float or numpy.ndarray – <m^2> Coulomb cross section.
Notes
\[\sigma_i = 4 \pi \left( \dfrac{q_i q_e^2}{4\pi\epsilon_0 m_e} \right)^2 \dfrac{\ln \Lambda_{ei}}{v_e^4}\]
- @numba.jitebisim.plasma.electron_velocity(e_kin)[source]¶
Computes the electron velocity corresponding to a kinetic energy.
- Parameters
e_kin (float or numpy.ndarray) – <eV> Kinetic energy of the electron.
- Returns
float or numpy.ndarray – <m/s> Speed of the electron.
Notes
\[v_e = c\sqrt{1-\left(\dfrac{m_e c^2}{m_e c^2 + E_e}\right)^2}\]
- @numba.vectorizeebisim.plasma.ion_coll_rate(Ni, Nj, kbTi, kbTj, Ai, Aj, qi, qj)¶
Collision rates for ions species “i” and target species “j”
- Parameters
Ni (float or numpy.ndarray) – <1/m^3> Ion species “i” density.
Nj (float or numpy.ndarray) – <1/m^3> Ion species “j” density.
kbTi (float or numpy.ndarray) – <eV> Ion species “i” temperature.
kbTj (float or numpy.ndarray) – <eV> Ion species “j” temperature.
Ai (float or numpy.ndarray) – Ion species “i” mass number.
Aj (float or numpy.ndarray) – Ion species “j” mass number.
qi (int or numpy.ndarray) – Ion species “i” charge state.
qj (int or numpy.ndarray) – Ion species “j” charge state.
- Returns
float or numpy.ndarray – <1/s> Ion ion collision rate.
See also
ebisim.plasma.ion_coll_rate_mat
Similar method for all charge states.
Notes
\[\nu_{ij} = \dfrac{1}{(4\pi\epsilon_0)^2}\dfrac{4\sqrt{2\pi}}{3}N_j\left( \dfrac{q_i q_j q_e^2}{m_i} \right)^2 \left(\dfrac{m_i}{k_B T_i}\right)^{3/2} \ln \Lambda_{ij}\]
- @numba.vectorizeebisim.plasma.spitzer_heating(Ni, Ne, kbTi, Ee, Ai, qi)¶
Computes the heating rates due to elastic electron ion collisions (‘Spitzer Heating’)
- Parameters
Ni (float or numpy.ndarray) – <1/m^3> Vector of ion densities.
Ne (float or numpy.ndarray) – <1/m^3> Electron density.
kbTi (float or numpy.ndarray) – <eV> Vector of ion temperatures.
Ee (float or numpy.ndarray) – <eV> Electron kinetic energy.
Ai (float or numpy.ndarray) – Ion mass number.
- Returns
float or numpy.ndarray – <eV/s> Vector of electron heating rate (temperature increase) for each charge state.
Notes
\[\left(\dfrac{d k_B T_i}{d t}\right)^{\text{Spitzer}} = \dfrac{2}{3} N_e v_e \sigma_i 2 \dfrac{m_e}{m_i} E_e\]where sigma_i is the cross section for Coulomb collisions (cf. ebisim.plasma.coulomb_xs).
- @numba.vectorizeebisim.plasma.trapping_strength_axial(kbTi, qi, V)¶
Computes the axial trapping strenghts.
- Parameters
kbTi (float or numpy.ndarray) – <eV> Vector of ion temperatures.
qi (int or numpy.ndarray) – Ion species “i” charge state.
V (float or numpy.ndarray) – <V> Trap depth.
- Returns
float or numpy.ndarray – <1/s> Vector of axial ion trapping strenghts for each charge state.
Notes
\[\omega_i^{ax} = \dfrac{q_i V_{ax}}{k_B T_i}\]
- @numba.vectorizeebisim.plasma.trapping_strength_radial(kbTi, qi, Ai, V, B, r_dt)¶
Radial trapping strenghts.
- Parameters
kbTi (float or numpy.ndarray) – <eV> Vector of ion temperatures.
qi (int or numpy.ndarray) – Ion species “i” charge state.
Ai (float or numpy.ndarray) – Ion mass number.
V (float or numpy.ndarray) – <V> Trap depth.
B (float or numpy.ndarray) – <T> Axial magnetic flux density.
r_dt (float or numpy.ndarray) – <m> Drift tube radius.
- Returns
float or numpy.ndarray – <1/s> Vector of radial ion trapping strenghts for each charge state.
Notes
\[\omega_i^{rad} = \dfrac{q_i \left(V_{rad} + B r_{dt} \sqrt{2 k_B T_i/(3 m_i)} \right)}{k_B T_i}\]