rizer.plasma.townsend_breakdown_discharge#

Classes#

FirstTownsendCoefficient

SecondTownsendCoefficient

TownsendBreakdownDischarge

Class to model the Townsend breakdown discharge process (DC discharge).

Functions#

Module Contents#

class rizer.plasma.townsend_breakdown_discharge.FirstTownsendCoefficient#
gas: str#

Gas for which the first Townsend coefficient, alpha, is defined.

A: float#

Coefficient A [1/(cm.Torr)] in the formula for alpha = A*p*exp(-B*p/E).

B: float#

Coefficient B [V/(cm.Torr)] in the formula for alpha = A*p*exp(-B*p/E).

range_E_over_p_V_per_cm_Torr_str: str#

Range of reduced electric field (E/p) for which the alpha coefficients are valid, in V/(cm.Torr).

range_E_over_p_V_per_cm_Torr: tuple[float, float]#
alpha(E: float, p: float) float#

Calculate the first Townsend coefficient, alpha, for given electric field E and pressure p.

Parameters:
  • E (float) – Electric field [V/cm]

  • p (float) – Pressure [Torr]

Returns:

First Townsend coefficient, alpha [1/cm]

Return type:

float

class rizer.plasma.townsend_breakdown_discharge.SecondTownsendCoefficient#
gas: str#

Gas for which the second Townsend coefficient, gamma, is defined.

cathode_material: str#

Cathode material for which the second Townsend coefficient, gamma, is defined.

gamma: float = 0.01#

Second Townsend coefficient, gamma, for a given gas and cathode material. This is the number of secondary electrons emitted from the cathode per ion impacting it. The value of gamma depends on the gas and cathode material, and can be found in [Boulos2023], chapter 11, Table 2. If data is missing for a specific gas-cathode combination, a default value of 1e-2 is used.

class rizer.plasma.townsend_breakdown_discharge.TownsendBreakdownDischarge(alpha: FirstTownsendCoefficient, gamma: SecondTownsendCoefficient | float)#

Class to model the Townsend breakdown discharge process (DC discharge).

A Townsend breakdown discharge occurs when the multiplication of electrons by ionization in a gas (avalanche effect) is sustained by the secondary emission of electrons from the cathode due to ion bombardment. When the number of secondary electrons emitted from the cathode is sufficient to sustain the avalanche, the breakdown condition is satisfied, resulting in a self-sustaining discharge.

Parameters:
alpha#
gamma#
gamma_value: float#
breakdown_condition(E: float, p: float, d: float) bool#

Check if breakdown condition is satisfied for given electric field E, pressure p, gap distance d.

Parameters:
  • E (float) – Electric field [V/cm]

  • p (float) – Pressure [Torr]

  • d (float) – Gap distance [cm]

Returns:

True if the breakdown condition is satisfied, False otherwise.

Return type:

bool

breakdown_voltage(pd: float) float#

Compute the breakdown Townsend voltage.

Parameters:

pd (float) – Product of pressure and gap distance [Torr.cm]

Returns:

Breakdown voltage [V] if the breakdown condition is satisfied, otherwise np.nan.

Return type:

float

get_breakdown_voltage(pd: numpy.ndarray) numpy.ndarray#

Compute the breakdown Townsend voltage for an array of pd values.

Parameters:

pd (numpy.ndarray) – Array of product of pressure and gap distance [Torr.cm]

Returns:

Array of breakdown voltages [V], with np.nan for values where the breakdown condition is not satisfied.

Return type:

numpy.ndarray

get_min_breakdown_voltage(pd_range: numpy.ndarray) float#

Get the minimum breakdown voltage over a range of pd values.

Parameters:

pd_range (numpy.ndarray) – Array of product of pressure and gap distance [Torr.cm]

Returns:

Minimum breakdown voltage [V] over the given range of pd values, or np.nan if no valid breakdown voltages are found.

Return type:

float

plot_breakdown_voltage_vs_pd(pd_range: numpy.ndarray, figax: tuple[matplotlib.figure.Figure, matplotlib.axes.Axes] | None = None) tuple[matplotlib.figure.Figure, matplotlib.axes.Axes]#
rizer.plasma.townsend_breakdown_discharge.load_alpha_townsend_coefficients_from_csv() dict[str, FirstTownsendCoefficient]#
rizer.plasma.townsend_breakdown_discharge.load_gamma_townsend_coefficients_from_csv(default_gamma_value_for_missing_data: float = 0.01) dict[tuple[str, str], SecondTownsendCoefficient]#
rizer.plasma.townsend_breakdown_discharge.get_townsend_coefficients(gas: str, cathode_material: str) tuple[FirstTownsendCoefficient, SecondTownsendCoefficient]#