—
Paschen curve for a Townsend discharge.#
This example plots the breakdown voltage as a function of the product of pressure and distance (pd) for a Townsend discharge in air with various cathode materials.
The breakdown voltage is calculated using the Townsend breakdown criterion, which depends on the first Townsend coefficient (alpha) and the secondary electron emission coefficient (gamma) for the given gas and cathode material.
Values for alpha and gamma are from [Boulos2023].
Import the required libraries.#
import matplotlib.pyplot as plt
import numpy as np
from adjustText import adjust_text
from rizer.misc.plt_utils import set_mpl_style
from rizer.plasma.townsend_breakdown_discharge import (
TownsendBreakdownDischarge,
get_townsend_coefficients,
)
set_mpl_style()
Define the gas, cathode materials, and pd range for the plot.#
gas = "Air" # He, Ar, H2, H2O, CO2, Air, H2
cathodes = [
"Ba",
"K",
"Mg",
"Al",
"Cu",
"Hg",
"W",
"C",
"Fe",
"Ni",
"Pt",
]
pd_range_min = 0.1 # [Torr.cm]
pd_range_max = 1000 # [Torr.cm]
nb_points = 10000
pd_range = np.logspace(np.log10(pd_range_min), np.log10(pd_range_max), nb_points)
Plot breakdown voltage vs pressure*distance.#
fig, ax = plt.subplots()
texts = []
for cathode in cathodes:
# Get the alpha and gamma coefficients for the given gas and cathode material.
alpha, gamma = get_townsend_coefficients(gas, cathode)
# Create a Townsend breakdown discharge object.
discharge = TownsendBreakdownDischarge(alpha=alpha, gamma=gamma)
# Plot the breakdown voltage vs pd for this gas and cathode material.
discharge.plot_breakdown_voltage_vs_pd(pd_range, figax=(fig, ax))
# Add an annotation for the cathode material at the minimum breakdown voltage.
min_voltage = discharge.get_min_breakdown_voltage(pd_range)
if np.isnan(min_voltage):
continue
print(
f"Minimum breakdown voltage for {gas} with {cathode} cathode: "
f"{min_voltage:.2f} V"
)
min_voltage_index = np.nanargmin(discharge.get_breakdown_voltage(pd_range))
print(
f"Minimum breakdown voltage for {gas} with {cathode} cathode: "
f"{min_voltage:.2f} V at pd = {pd_range[min_voltage_index]:.2f} Torr.cm"
)
min_pd = pd_range[min_voltage_index]
# Get the color of the last plotted line for this cathode.
color = ax.lines[-1].get_color()
text = ax.text(
min_pd,
min_voltage,
cathode,
fontsize=24,
ha="center",
va="center",
color=color,
bbox=dict(facecolor="white", alpha=0.8, edgecolor=color, boxstyle="round"),
)
texts.append(text)
ax.set_xlim(0.1, 1000)
ax.set_ylim(100, 100_000)
ax.set_title(
"Breakdown voltage vs. pressure x distance "
r"for $\mathrm{Air}$ with various cathodes (Boulos2023)"
)
adjust_text(texts, ax=ax, max_move=100, explode_radius=100)
# Plot two red arrows.
# One vertical arrow at pd = 760 Torr.cm pointing up with the text "1 atm at 1 cm" below it.
ax.annotate(
"1 atm at 1 cm",
xy=(760, 36_000),
xytext=(760, 100),
arrowprops=dict(color="red", shrink=0.05, width=2, headwidth=8),
fontsize=30,
ha="center",
va="bottom",
color="red",
bbox=dict(facecolor="white", alpha=0.8, edgecolor="red", boxstyle="round"),
)
# One horizontal arrow at V = 36e3 V pointing left with the text "36 kV" to the left of it.
ax.annotate(
"36 kV",
xy=(760, 36_000),
xytext=(1e-1, 36_000),
arrowprops=dict(color="red", shrink=0.05, width=2, headwidth=8),
fontsize=30,
ha="left",
va="center",
color="red",
bbox=dict(facecolor="white", alpha=0.8, edgecolor="red", boxstyle="round"),
)
# Text saying electric breakdown ~36 kV/cm at 1 atm.
ax.text(
x=50,
y=5_000,
s="Electric field breakdown (in air)\n ~36 kV/cm at 1 atm",
fontsize=30,
ha="center",
va="center",
color="red",
bbox=dict(facecolor="white", alpha=0.8, edgecolor="red", boxstyle="round"),
)
plt.show()

Minimum breakdown voltage for Air with Ba cathode: 313.63 V
Minimum breakdown voltage for Air with Ba cathode: 313.63 V at pd = 0.86 Torr.cm
Minimum breakdown voltage for Air with K cathode: 179.28 V
Minimum breakdown voltage for Air with K cathode: 179.28 V at pd = 0.49 Torr.cm
Minimum breakdown voltage for Air with Mg cathode: 224.77 V
Minimum breakdown voltage for Air with Mg cathode: 224.77 V at pd = 0.62 Torr.cm
Minimum breakdown voltage for Air with Al cathode: 230.16 V
Minimum breakdown voltage for Air with Al cathode: 230.16 V at pd = 0.63 Torr.cm
Minimum breakdown voltage for Air with Cu cathode: 252.36 V
Minimum breakdown voltage for Air with Cu cathode: 252.36 V at pd = 0.69 Torr.cm
Minimum breakdown voltage for Air with Hg cathode: 313.63 V
Minimum breakdown voltage for Air with Hg cathode: 313.63 V at pd = 0.86 Torr.cm
Minimum breakdown voltage for Air with W cathode: 313.63 V
Minimum breakdown voltage for Air with W cathode: 313.63 V at pd = 0.86 Torr.cm
Minimum breakdown voltage for Air with C cathode: 313.63 V
Minimum breakdown voltage for Air with C cathode: 313.63 V at pd = 0.86 Torr.cm
Minimum breakdown voltage for Air with Fe cathode: 267.20 V
Minimum breakdown voltage for Air with Fe cathode: 267.20 V at pd = 0.73 Torr.cm
Minimum breakdown voltage for Air with Ni cathode: 228.31 V
Minimum breakdown voltage for Air with Ni cathode: 228.31 V at pd = 0.63 Torr.cm
Minimum breakdown voltage for Air with Pt cathode: 278.04 V
Minimum breakdown voltage for Air with Pt cathode: 278.04 V at pd = 0.76 Torr.cm
0 [ 0.24959446 -0.96497108]
5 [-0.81784408 0.7917267 ]
6 [-0.94105025 0.76803404]
7 [0.81503554 0.97933252]
Total running time of the script: (0 minutes 2.244 seconds)