rizer.plasma.momentum_transfer_cross_sections#

Define momentum transfer cross section model used by [Mitchner1973].

Notes

  • \(Q_{12}^{(e)}(g)\) is the (velocity) elastic cross section, in m^2, (depending on the relative velocity \(g\)), defined in equation (II 3.5) of [Mitchner1973].

  • \(Q_{12}^{(1)}(g)\) is the (velocity) momentum transfer cross section, in m^2, (depending on the relative velocity \(g\)), defined in equation (II 3.7) of [Mitchner1973].

From [Mitchner1973] (paragraph after (II 3.9)) and [Raizer1991] (paragraph after (2.2)), these two cross sections are nearly equal for electron energies \(\varepsilon \sim 1-10 eV\) (\(Q_{12}^{(e)}(g)\) is at most 10% larger than \(Q_{12}^{(1)}(g)\)).

Furthermore, the momentum transfer cross section is the preferred cross section to use, since the total elastic cross section “never appears in the rigorous kinetic theory of the transport coefficients”.

Attributes#

Classes#

MomentumTransferCrossSectionModel

Abstract class for momentum transfer cross section of electron with neutral.

HardSphereCrossSection

Elastic cross section model based on hard spheres.

TabulatedSpeciesCrossSection

Elastic cross section model based on provided tabulated data of cross sections vs. energy.

IonMomentumTransferCrossSectionModel

Class for momentum transfer cross section of electron with ion.

Functions#

get_momentum_transfer_cross_section_model(...)

Get the momentum transfer cross section model for a given species.

Module Contents#

rizer.plasma.momentum_transfer_cross_sections.logger#
rizer.plasma.momentum_transfer_cross_sections.u#
class rizer.plasma.momentum_transfer_cross_sections.MomentumTransferCrossSectionModel(name: str)#

Bases: abc.ABC

Abstract class for momentum transfer cross section of electron with neutral.

Parameters:

name (str) – Name of the model.

name#
abstractmethod get_mean_cross_section(*args, **kwargs) float#

Get the average momentum transfer cross section.

This function must be implemented in the child class.

Parameters:
  • T (float) – The electron temperature, in Kelvin.

  • n_e (float, optional) – The electron density, in m^-3. Not used in this model, by default None.

Returns:

The mean cross section of the plasma, in m^2.

Return type:

float

class rizer.plasma.momentum_transfer_cross_sections.HardSphereCrossSection(effective_radius: float)#

Bases: MomentumTransferCrossSectionModel

Elastic cross section model based on hard spheres.

Neutral species are considered as hard spheres, with a given effective radius.

Parameters:

effective_radius (float) – The effective radius of the spheres, in meters.

get_mean_cross_section(T: float, n_e: float | None = None) float#

Get the average momentum transfer cross section, as defined in [Mitchner1973].

In this model, the mean cross section is computed, assuming that species are hard spheres.

Parameters:
  • T (float) – The electron temperature, in Kelvin.

  • n_e (float, optional) – The electron density, in m^-3. Not used in this model, by default None.

Returns:

The mean cross section of the plasma, in m^2.

Return type:

float

Notes

The average momentum transfer cross section is defined in equation (II 6.30) of [Mitchner1973]:

\[\bar{Q}_{12} \equiv \frac{2}{3} \int_0^{\infty} x^2 e^{-x} Q_{12}^{(1)} \left(\sqrt{\frac{2 k_b T}{m_{12}} x}\right) dx\]

where:

  • \(\bar{Q}_{12}\) is the average momentum transfer cross section, in m^2,

  • \(Q_{12}^{(1)}(g)\) is the (velocity) momentum transfer cross section, in m^2, (depending on the relative velocity \(g\)),

  • \(k_b\) is the Boltzmann constant, in J/K,

  • \(T\) is the temperature, in K, (here, the electron temperature),

  • \(m_{12}\) is the reduced mass of the two species, in kg, (here, corresponding to the electron mass only),

In this model, the momentum transfer cross section \(Q_{12}^{(1)}\) is approximated by the hard sphere model:

\[Q_{12}^{(1)} = \pi (r_1 + r_2)^2\]

where:

  • \(r_1\) is the radius of the first species,

  • \(r_2\) is the radius of the second species.

In the case of an electron interacting with a atom or molecule, the radius of the electron is negligible compared to the radius of the atom or molecule. Therefore, the momentum transfer cross section of electron with neutral simplifies to:

\[Q_{en}^{(1)} = \pi r^2\]

with:

  • \(r\) the radius of the neutral species.

In this case, since there is no dependance on the relative velocity/energy, the average momentum transfer cross section simplifies to:

\[\bar{Q}_{en} = \frac{4}{3} \pi r^2\]
class rizer.plasma.momentum_transfer_cross_sections.TabulatedSpeciesCrossSection(cross_section_m2: numpy.ndarray, energy_J: numpy.ndarray)#

Bases: MomentumTransferCrossSectionModel

Elastic cross section model based on provided tabulated data of cross sections vs. energy.

Tabulated data could either be computed or measured.

Parameters:
  • cross_section_m2 (np.ndarray) – The cross section of the species, in m^2.

  • energy_J (np.ndarray) – The energy at which the cross section is computed, in Joules.

get_mean_cross_section(T: float, n_e: float | None = None, x_max=20, N: int = 1000) float#

Get the average momentum transfer cross section, as defined in [Mitchner1973].

This function must be implemented in the child class.

Parameters:
  • T (float) – The electron temperature, in Kelvin.

  • x_max (float, optional) – The upper limit of the integral, in dimensionless units, by default 20. The integrand should be computed up to infinity. However, since the integrand decays rapidly for large values of \(x\), a finite upper limit is used to approximate the integral. A value of 20 is typically sufficient for convergence.

  • N (int, optional) – The number of points to use for the numerical integration, by default 1000.

Returns:

The mean cross section of the plasma, in m^2.

Return type:

float

Notes

The average momentum transfer cross section is defined in equation (II 6.30) of [Mitchner1973]:

\[\bar{Q}_{12} \equiv \frac{2}{3} \int_0^{\infty} x^2 e^{-x} Q_{12}^{(1)} \left(\sqrt{\frac{2 k_b T}{m_{12}} x}\right) dx\]

where:

  • \(\bar{Q}_{12}\) is the average momentum transfer cross section, in m^2,

  • \(Q_{12}^{(1)}(g)\) is the (velocity) momentum transfer cross section, in m^2, (depending on the relative velocity \(g\)),

  • \(k_b\) is the Boltzmann constant, in J/K,

  • \(T\) is the temperature, in K, (here, the electron temperature),

  • \(m_{12}\) is the reduced mass of the two species, in kg, (here, corresponding to the electron mass only),

Using the (energy) momentum transfer cross section \(\tilde{Q_{12}}^{(1)}(\varepsilon)\), where \(\varepsilon = \frac{m_{12}}{2} g^2\) is the relative kinetic energy of the two species, the average momentum transfer cross section can be rewritten as:

\[\bar{Q}_{12} \equiv \frac{2}{3} \int_0^{\infty} x^2 e^{-x} \tilde{Q_{12}}^{(1)} \left(k_b T x \right) dx\]
get_mean_cross_section_from_maxwellian(T: float, n_e: float | None = None) float#

Compute an average energy momentum transfer cross section.

This function computes the average momentum transfer cross section for a Maxwellian distribution of electrons at a given temperature \(T\), using the tabulated cross section data.

Parameters:

T (float) – The electron temperature, in Kelvin.

Returns:

The mean cross section of the plasma, in m^2.

Return type:

float

Notes

The average momentum transfer cross section is defined here as:

\[\bar{Q}_{12} = \int_0^{\infty} \tilde{Q_{12}}^{(1)}(\varepsilon) f_T(\varepsilon) d\varepsilon\]

where:

  • \(\bar{Q}_{12}\) is the average momentum transfer cross section, in m^2,

  • \(\tilde{Q_{12}}^{(1)}(\varepsilon)\) is the (energy) momentum transfer cross section, in m^2,

  • \(f_T(\varepsilon)\) is the Maxwellian distribution function, in J^-1,

  • \(\varepsilon\) is the kinetic energy of the electron, in J.

The integral is computed with the trapezoidal rule.

class rizer.plasma.momentum_transfer_cross_sections.IonMomentumTransferCrossSectionModel#

Bases: MomentumTransferCrossSectionModel

Class for momentum transfer cross section of electron with ion.

get_mean_cross_section(T: float, n_e: float, model='Mitchner') float#

Get the average momentum transfer cross section.

Possible models are “Mitchner” and “Raizer”. Mitchner’s model computes an average momentum transfer cross section, while Raizer’s model probably compute the (not average) momentum transfer cross section.

Parameters:
  • T (float) – The electron temperature, in Kelvin.

  • n_e (float) – The electron density, in m^-3.

  • model (str, optional) – The model to use for the average momentum transfer cross section, by default “Mitchner”.

Returns:

The mean cross section of the plasma, in m^2.

Return type:

float

Raises:

ValueError – If the model is not recognized.

See also

get_mean_cross_section_Mitchner

Method to compute the mean cross section using the Mitchner model.

get_mean_cross_section_Raizer

Method to compute the mean cross section using the Raizer model.

get_mean_cross_section_Mitchner(T: float, n_e: float) float#

Get the average momentum transfer cross section, as defined in [Mitchner1973].

This function must be implemented in the child class.

Parameters:
  • T (float) – The electron temperature, in Kelvin.

  • n_e (float) – The electron density, in m^-3.

Returns:

The mean cross section of the plasma, in m^2.

Return type:

float

Notes

The average momentum transfer cross section is defined in equation (II 6.30) of [Mitchner1973]:

\[\bar{Q}_{12} \equiv \frac{2}{3} \int_0^{\infty} x^2 e^{-x} Q_{12}^{(1)} \left(\sqrt{\frac{2 k_b T}{m_{12}} x}\right) dx\]

where:

  • \(\bar{Q}_{12}\) is the average momentum transfer cross section, in m^2,

  • \(Q_{12}^{(1)}(g)\) is the (velocity) momentum transfer cross section, in m^2, (depending on the relative velocity \(g\)),

  • \(k_b\) is the Boltzmann constant, in J/K,

  • \(T\) is the temperature, in K, (here, the electron temperature),

  • \(m_{12}\) is the reduced mass of the two species, in kg, (here, corresponding to the electron mass only),

In the case of an electron interacting with an ion, the momentum transfer cross section \(Q_{12}^{(1)}\) is given by (II 8.4) of [Mitchner1973]:

\[Q^{(1)}(g) \simeq 4 \pi b_0^2 \ln \left[1+\left(\frac{\lambda_D}{b_0}\right)^2\right]^{1 / 2}\]

Injecting this into the average momentum transfer cross section, and assuming that the Coulomb logarithm is much larger than 1, we get ((II 8.9) of [Mitchner1973]):

\[\bar{Q}_{e i} \equiv 6 \pi \bar{b}_0^2 \ln \Lambda\]

where:

  • \(\bar{Q}_{e i}\) is the average momentum transfer cross section of electron with ion, in m^2,

  • \(\bar{b}_0 = \frac{Z e^2}{12 \pi \epsilon_0 k T}\) is the average impact parameter, in m, (equation (II 8.6) of [Mitchner1973]),

  • \(\ln \Lambda\) is the Coulomb logarithm, dimensionless. (equation (II 8.7a) of [Mitchner1973]).

get_mean_cross_section_Raizer(T: float, n_e: float) float#

Get the average momentum transfer cross section, as defined in [Raizer1991].

Parameters:
  • T (float) – The electron temperature, in Kelvin.

  • n_e (float) – The electron density, in m^-3.

Returns:

The mean cross section of the plasma, in m^2.

Return type:

float

Notes

The Coulomb cross section is defined in [Raizer1991], equation 2.8, as:

\[\sigma_{Coul} = \pi r_{Coul}^2 \Lambda\]

with:

  • \(r_{Coul}\) the Coulomb radius,

  • \(\Lambda\) the Coulomb logarithm.

rizer.plasma.momentum_transfer_cross_sections.get_momentum_transfer_cross_section_model(species: str, use_default_radius: bool = False, use_first_available: bool = False, database_to_use: str | None = None, default_radius: float = 1e-10) MomentumTransferCrossSectionModel#

Get the momentum transfer cross section model for a given species.

Parameters:
  • species (str) – Name of the species (e.g. “CH4”, “Ar”, “N2”).

  • use_default_radius (bool, optional) – If True, use the default radius for the species if the cross section data is not found in the database.

  • use_first_available (bool, optional) – If True, use the first available cross section data file for the species if multiple files are found in the database. If False, raise an error if multiple files are found.

  • database_to_use (str, optional) – If specified, use this file for the cross section data. This is useful if you want to use a specific file from the database, regardless of the species name.

  • default_radius (float, optional) – Default radius in m to use if the cross section data is not found in the database. By default, it is set to 1e-10 m.

Returns:

The momentum transfer cross section model for the given species.

Return type:

MomentumTransferCrossSectionModel

rizer.plasma.momentum_transfer_cross_sections.lx#