# plasma_plots.theory.parameters

*module*

Plasma parameters in SI units: frequencies, lengths, speeds and Struphy's units.

Densities are in m⁻³, magnetic fields in T, temperatures in eV (k_B T / e, so 1 eV is
11604.5 K) unless a function says otherwise, and the results are in SI units: angular
frequencies in rad/s, lengths in m, speeds in m/s. Ions have the mass ``mass_number × m_p``
(proton masses, as in Struphy and the NRL Plasma Formulary) and the charge
``charge_number × e``.

> **Constants**
>
> CODATA 2018 values, the same as Struphy's ``struphy.physics.physics.ConstantsOfNature``:
> 
> * ``elementary_charge`` (C), ``electron_mass`` and ``proton_mass`` (kg),
> * ``vacuum_permittivity`` ε₀ (F/m), ``vacuum_permeability`` μ₀ (N/A²),
>   ``speed_of_light`` c (m/s), ``boltzmann_constant`` k_B (J/K),
> * ``ev_to_joule`` (J per eV) and ``ev_to_kelvin`` (K per eV).

> **Conventions**
>
> * **Thermal speed**: v_th = √(T/m) by default (the standard deviation of a 1-D Maxwellian, the
>   NRL and Struphy convention); [`thermal_speed()`][thermal_speed] also gives √(2T/m) and the mean speed.
> * **Cyclotron frequency**: Ω = q|B|/m, which has the sign of the charge you pass. The default
>   charge is +e, so the default is the magnitude; pass ``charge=-elementary_charge`` for the
>   signed electron frequency.

> **References**
>
> J. D. Huba, NRL Plasma Formulary (Naval Research Laboratory, 2019).
> 
> F. F. Chen, Introduction to Plasma Physics and Controlled Fusion, 3rd ed. (Springer, 2016).

**Examples**

The electron plasma frequency and Debye length of a 1e19 m⁻³, 100 eV plasma:

```pycon
>>> print(
...     f"{plasma_frequency(1e19):.3e} rad/s, {debye_length(1e19, 100.0):.3e} m"
... )
1.784e+11 rad/s, 2.351e-05 m
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L1-L1)

## plasma_plots.theory.parameters.STRUPHY_UNIT_SYMBOLS

*attribute* · *module attribute*

```python
STRUPHY_UNIT_SYMBOLS = {'x': 'm', 'B': 'T', 'n': 'm⁻³', 'kBT': 'keV', 'v': 'm/s', 't': 's', 'frequency': '1/s', 'p': 'Pa', 'rho': 'kg/m³', 'j': 'A/m²'}
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L60-L71)

## plasma_plots.theory.parameters.boltzmann_constant

*attribute* · *module attribute*

```python
boltzmann_constant = 1.380649e-23
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L52-L52)

## plasma_plots.theory.parameters.electron_mass

*attribute* · *module attribute*

```python
electron_mass = 9.1093837015e-31
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L47-L47)

## plasma_plots.theory.parameters.elementary_charge

*attribute* · *module attribute*

```python
elementary_charge = 1.602176634e-19
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L46-L46)

## plasma_plots.theory.parameters.ev_to_joule

*attribute* · *module attribute*

```python
ev_to_joule = elementary_charge
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L53-L53)

## plasma_plots.theory.parameters.ev_to_kelvin

*attribute* · *module attribute*

```python
ev_to_kelvin = elementary_charge / boltzmann_constant
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L54-L54)

## plasma_plots.theory.parameters.proton_mass

*attribute* · *module attribute*

```python
proton_mass = 1.67262192369e-27
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L48-L48)

## plasma_plots.theory.parameters.speed_of_light

*attribute* · *module attribute*

```python
speed_of_light = 299792458.0
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L51-L51)

## plasma_plots.theory.parameters.vacuum_permeability

*attribute* · *module attribute*

```python
vacuum_permeability = 1.25663706212e-06
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L50-L50)

## plasma_plots.theory.parameters.vacuum_permittivity

*attribute* · *module attribute*

```python
vacuum_permittivity = 8.8541878128e-12
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L49-L49)

## plasma_plots.theory.parameters.alfven_speed

*function*

```python
def alfven_speed(field, density, mass_number=1, relativistic=False)
```

Compute the Alfvén speed v_A = B / √(μ₀ n m_i), with m_i = mass_number × m_p.

**Parameters**

- `field` (`float or array_like`) — Magnetic field B, in T.
- `density` (`float or array_like`) — Ion density n, in m⁻³ (the mass density is n m_i; electrons are neglected).
- `mass_number` (`float or array_like`) (default: `1`) — Ion mass in proton masses, as in Struphy. Default: ``1``.
- `relativistic` (`bool`) (default: `False`) — If true, return the relativistic v_A / √(1 + v_A²/c²). Default: ``False``.

**Returns**

- (`float or numpy.ndarray`) — v_A, in m/s.

> **References**
>
> NRL Plasma Formulary: v_A = 2.18e11 × (B/G) / √(μ n_i/cm⁻³) cm/s.

**Examples**

```pycon
>>> # deuterium, 1 T
>>> print(f"{alfven_speed(1.0, 1e20, mass_number=2):.4g} m/s")
1.542e+06 m/s
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L311-L345)

## plasma_plots.theory.parameters.cyclotron_frequency

*function*

```python
def cyclotron_frequency(field, mass=electron_mass, charge=elementary_charge)
```

Compute the cyclotron (gyro-) frequency Ω = q|B|/m.

**Parameters**

- `field` (`float or array_like`) — Magnetic field B, in T (its sign doesn't matter).
- `mass` (`float or array_like`) (default: `electron_mass`) — Particle mass m, in kg. Default: the electron mass.
- `charge` (`float or array_like`) (default: `elementary_charge`) — Particle charge q, in C. Ω has its sign: the default +e gives the magnitude, −e the signed electron frequency (negative, for the left-handed electron gyration).

**Returns**

- (`float or numpy.ndarray`) — Ω in rad/s.

> **References**
>
> NRL Plasma Formulary: f_ce = Ω_e/2π = 2.80 MHz × B/G = 28.0 GHz × B/T.

**Examples**

```pycon
>>> print(f"{cyclotron_frequency(1.0) / (2 * np.pi):.4g} Hz")
2.799e+10 Hz
>>> print(f"{cyclotron_frequency(1.0, charge=-elementary_charge):.4g} rad/s")
-1.759e+11 rad/s
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L111-L142)

## plasma_plots.theory.parameters.debye_length

*function*

```python
def debye_length(density, temperature)
```

Compute the electron Debye length λ_D = √(ε₀ T / (n e²)).

**Parameters**

- `density` (`float or array_like`) — Electron density n, in m⁻³.
- `temperature` (`float or array_like`) — Electron temperature T, in eV.

**Returns**

- (`float or numpy.ndarray`) — λ_D, in m. With the default [`thermal_speed()`][plasma_plots.theory.parameters.thermal_speed], λ_D = v_th / ω_pe.

> **References**
>
> NRL Plasma Formulary: λ_D = 7.43e2 × √(T/eV) / √(n/cm⁻³) cm.

**Examples**

```pycon
>>> print(f"{debye_length(1e6, 1.0):.4g} m")  # 1 cm⁻³, 1 eV
7.434 m
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L191-L219)

## plasma_plots.theory.parameters.inertial_length

*function*

```python
def inertial_length(density, mass=electron_mass, charge=elementary_charge)
```

Compute the inertial length (skin depth) d = c / ω_p.

**Parameters**

- `density` (`float or array_like`) — Number density n of the species, in m⁻³.
- `mass` (`float or array_like`) (default: `electron_mass`) — Particle mass m, in kg. Default: the electron mass.
- `charge` (`float or array_like`) (default: `elementary_charge`) — Particle charge q, in C. Default: e.

**Returns**

- (`float or numpy.ndarray`) — d, in m. For ions, d_i = v_A / Ω_i.

> **References**
>
> NRL Plasma Formulary: c/ω_pe = 5.31e5 / √(n_e/cm⁻³) cm, c/ω_pi = 2.28e7 √μ / (Z √(n_i/cm⁻³)) cm.

**Examples**

```pycon
>>> print(f"{inertial_length(1e20):.4g} m")  # electrons
0.0005314 m
>>> print(f"{inertial_length(1e20, mass=proton_mass):.4g} m")  # protons
0.02277 m
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L280-L308)

## plasma_plots.theory.parameters.larmor_radius

*function*

```python
def larmor_radius(field, temperature=None, perpendicular_speed=None, mass=electron_mass, charge=elementary_charge)
```

Compute the Larmor (gyro-) radius ρ = m v⊥ / (|q| B).

Give either the temperature, for the thermal Larmor radius with v⊥ = √(T/m), or the
perpendicular speed.

**Parameters**

- `field` (`float or array_like`) — Magnetic field B, in T.
- `temperature` (`float or array_like`) (default: `None`) — Temperature T, in eV; then v⊥ = √(T/m) (the NRL convention).
- `perpendicular_speed` (`float or array_like`) (default: `None`) — The perpendicular speed v⊥, in m/s.
- `mass` (`float or array_like`) (default: `electron_mass`) — Particle mass m, in kg. Default: the electron mass.
- `charge` (`float or array_like`) (default: `elementary_charge`) — Particle charge q, in C (its sign doesn't matter). Default: e.

**Returns**

- (`float or numpy.ndarray`) — ρ, in m.

**Raises**

- `ValueError` — If not exactly one of ``temperature`` and ``perpendicular_speed`` is given.

> **References**
>
> NRL Plasma Formulary: r_e = 2.38 × √(T_e/eV) / (B/G) cm, r_i = 1.02e2 × √μ √(T_i/eV) / (Z B/G) cm.

**Examples**

```pycon
>>> # 1 keV electron, 1 T
>>> print(f"{larmor_radius(1.0, temperature=1e3):.4g} m")
7.54e-05 m
>>> radius = larmor_radius(2.0, perpendicular_speed=1e6, mass=proton_mass)
>>> print(f"{radius:.4g} m")
0.00522 m
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L222-L277)

## plasma_plots.theory.parameters.lower_hybrid_frequency

*function*

```python
def lower_hybrid_frequency(density, field, mass_number=1, charge_number=1)
```

Compute the lower hybrid frequency, 1/ω_LH² = 1/(Ω_i² + ω_pi²) + 1/(|Ω_e| Ω_i).

**Parameters**

- `density` (`float or array_like`) — Electron density n_e, in m⁻³ (the ion density is n_e / Z).
- `field` (`float or array_like`) — Magnetic field B, in T.
- `mass_number` (`float or array_like`) (default: `1`) — Ion mass in proton masses. Default: ``1``.
- `charge_number` (`float or array_like`) (default: `1`) — Ion charge number Z. Default: ``1``.

**Returns**

- (`float or numpy.ndarray`) — ω_LH, in rad/s. For ω_pi ≫ Ω_i it tends to √(|Ω_e| Ω_i).

> **References**
>
> Chen, Introduction to Plasma Physics, section 4.11 (lower hybrid frequency).
> 
> NRL Plasma Formulary: ω_LH = [(Ω_i Ω_e)⁻¹ + ω_pi⁻²]^(−1/2).

**Examples**

```pycon
>>> print(f"{lower_hybrid_frequency(1e20, 1.0) / (2 * np.pi):.4g} Hz")
6.237e+08 Hz
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L464-L500)

## plasma_plots.theory.parameters.plasma_beta

*function*

```python
def plasma_beta(density, temperature, field)
```

Compute the plasma beta β = n T / (B²/(2μ₀)), the ratio of thermal to magnetic pressure.

For several species, add their β (or pass the summed pressure n T of all species).

**Parameters**

- `density` (`float or array_like`) — Number density n, in m⁻³.
- `temperature` (`float or array_like`) — Temperature T, in eV.
- `field` (`float or array_like`) — Magnetic field B, in T.

**Returns**

- (`float or numpy.ndarray`) — β (dimensionless).

> **References**
>
> NRL Plasma Formulary: β = 8π n k T / B² = 4.03e-11 n T / B² (cgs, T in eV, B in G).

**Examples**

```pycon
>>> print(f"{plasma_beta(1e20, 1e4, 5.0):.4f}")  # 10 keV, 5 T
0.0161
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L395-L428)

## plasma_plots.theory.parameters.plasma_frequency

*function*

```python
def plasma_frequency(density, mass=electron_mass, charge=elementary_charge)
```

Compute the plasma frequency ω_p = √(n q² / (ε₀ m)).

**Parameters**

- `density` (`float or array_like`) — Number density n of the species, in m⁻³.
- `mass` (`float or array_like`) (default: `electron_mass`) — Particle mass m, in kg. Default: the electron mass.
- `charge` (`float or array_like`) (default: `elementary_charge`) — Particle charge q, in C (its sign doesn't matter). Default: e.

**Returns**

- (`float or numpy.ndarray`) — ω_p in rad/s (divide by 2π for Hz).

> **References**
>
> NRL Plasma Formulary: f_pe = ω_pe/2π = 8.98 kHz × √(n_e / cm⁻³).

**Examples**

```pycon
>>> print(f"{plasma_frequency(1e18) / (2 * np.pi):.4g} Hz")
8.979e+09 Hz
>>> # deuterons
>>> print(f"{plasma_frequency(1e20, mass=2 * proton_mass):.4g} rad/s")
9.309e+09 rad/s
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L78-L108)

## plasma_plots.theory.parameters.plasma_parameter

*function*

```python
def plasma_parameter(density, temperature)
```

Compute the plasma parameter N_D = (4π/3) n λ_D³, the number of electrons in a Debye sphere.

**Parameters**

- `density` (`float or array_like`) — Electron density n, in m⁻³.
- `temperature` (`float or array_like`) — Electron temperature T, in eV.

**Returns**

- (`float or numpy.ndarray`) — N_D (dimensionless). A plasma is weakly coupled for N_D ≫ 1.

> **References**
>
> NRL Plasma Formulary: (4π/3) n λ_D³ = 1.72e9 × (T/eV)^(3/2) / √(n/cm⁻³).

**Examples**

```pycon
>>> print(f"{plasma_parameter(1e6, 1.0):.3g}")  # 1 cm⁻³, 1 eV
1.72e+09
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L431-L456)

## plasma_plots.theory.parameters.sound_speed

*function*

```python
def sound_speed(electron_temperature, ion_temperature=0.0, mass_number=1, charge_number=1, electron_gamma=1.0, ion_gamma=3.0)
```

Compute the ion sound speed c_s = √((γ_e Z T_e + γ_i T_i) / m_i).

**Parameters**

- `electron_temperature` (`float or array_like`) — Electron temperature T_e, in eV.
- `ion_temperature` (`float or array_like`) (default: `0.0`) — Ion temperature T_i, in eV. Default: ``0`` (cold ions).
- `mass_number` (`float or array_like`) (default: `1`) — Ion mass in proton masses. Default: ``1``.
- `charge_number` (`float or array_like`) (default: `1`) — Ion charge number Z. Default: ``1``.
- `electron_gamma` (`float`) (default: `1.0`) — Adiabatic index γ_e of the electrons. Default: ``1`` (isothermal electrons).
- `ion_gamma` (`float`) (default: `3.0`) — Adiabatic index γ_i of the ions. Default: ``3`` (1-D adiabatic ions).

**Returns**

- (`float or numpy.ndarray`) — c_s, in m/s.

> **References**
>
> NRL Plasma Formulary: C_s = 9.79e5 × √(γ Z T_e / (μ eV)) cm/s.
> 
> Chen, Introduction to Plasma Physics, section 4.9 (ion acoustic waves).

**Examples**

```pycon
>>> print(f"{sound_speed(1.0):.4g} m/s")
9787 m/s
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L348-L392)

## plasma_plots.theory.parameters.struphy_equation_parameters

*function*

```python
def struphy_equation_parameters(units, charge_number=1, mass_number=1)
```

Compute the equation parameters α, ε and κ of one Struphy species.

Mirrors ``struphy.models.species.Species.EquationParameters``, with ω_p and Ω_c of the
species at the unit density and unit field: α = ω_p/Ω_c, ε = 1/(Ω_c t) and κ = ω_p t.

**Parameters**

- `units` (`dict`) — The units from [`struphy_units()`][plasma_plots.theory.parameters.struphy_units].
- `charge_number` (`float`) (default: `1`) — Charge number Z of the species. Default: ``1``.
- `mass_number` (`float`) (default: `1`) — Mass number A of the species, in proton masses. Default: ``1``.

**Returns**

- (`dict`) — ``alpha``, ``epsilon`` and ``kappa``.

> **References**
>
> Struphy source: ``struphy/models/species.py`` (``Species.EquationParameters``).

**Examples**

```pycon
>>> units = struphy_units(velocity_scale="alfvén", mass_number=1)
>>> params = struphy_equation_parameters(units)
>>> print({key: f"{value:.4g}" for key, value in params.items()})
{'alpha': '137.4', 'epsilon': '0.02277', 'kappa': '6036'}
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L644-L683)

## plasma_plots.theory.parameters.struphy_units

*function*

```python
def struphy_units(x=1.0, B=1.0, n=1.0, kBT=None, velocity_scale='light', mass_number=None, charge_number=None)
```

Compute the units of Struphy's normalization from its base units.

Mirrors ``struphy.physics.physics.Units.derive_units`` (the base units are those of
``struphy.io.options.BaseUnits`` in a parameter file, the velocity scale is the model's
``velocity_scale`` and the mass and charge numbers are those of the model's bulk species):

* velocity v: c for ``"light"``; B / √(A m_p n μ₀) for ``"alfvén"``; (Z e B / (A m_p)) x for
  ``"cyclotron"``; √(kBT / (A m_p)) for ``"thermal"``; 1 m/s for ``None``,
* time t = x / v, and the frequency 1/t (normalized angular frequencies ω t are in rad/t),
* with a bulk species (``mass_number`` given): pressure p = A m_p n v² (= B²/μ₀ for
  ``"alfvén"``), mass density ρ = A m_p n, current density j = e n v.

**Parameters**

- `x` (`float`) (default: `1.0`) — Unit of length, in m (``BaseUnits.x``). Default: ``1``.
- `B` (`float`) (default: `1.0`) — Unit of magnetic field, in T (``BaseUnits.B``). Default: ``1``.
- `n` (`float`) (default: `1.0`) — Unit of number density, in 1e20 m⁻³ as in ``BaseUnits.n`` (not in m⁻³). Default: ``1``.
- `kBT` (`float`) (default: `None`) — Unit of thermal energy, in keV as in ``BaseUnits.kBT``; needed for ``"thermal"``.
- `velocity_scale` (`('light', 'alfvén', 'cyclotron', 'thermal', None)`) (default: `"light"`) — The model's velocity scale (``"alfven"`` is accepted too). Default: ``"light"``.
- `mass_number` (`float`) (default: `None`) — Mass number A of the bulk species, in proton masses; needed except for ``"light"`` and ``None``.
- `charge_number` (`float`) (default: `None`) — Charge number Z of the bulk species; needed for ``"cyclotron"``.

**Returns**

- (`dict`) — Floats, in SI units except ``kBT``: ``x`` (m), ``B`` (T), ``n`` (m⁻³), ``kBT`` (keV or None), ``v`` (m/s), ``t`` (s), ``frequency`` (1/s), ``p`` (Pa), ``rho`` (kg/m³) and ``j`` (A/m²); the last three are None without a bulk species. ``STRUPHY_UNIT_SYMBOLS`` holds these unit names.

**Raises**

- `ValueError` — If ``velocity_scale`` is unknown or a quantity it needs is missing.

> **References**
>
> Struphy source: ``struphy/physics/physics.py`` (``Units``, ``ConstantsOfNature``) and
> ``struphy/io/options.py`` (``BaseUnits``); the "normalization" page of Struphy's docs.

**Examples**

```pycon
>>> units = struphy_units(
...     x=1.0, B=1.0, n=1.0, velocity_scale="alfvén", mass_number=2
... )
>>> print(f"v = {units['v']:.4g} m/s, t = {units['t']:.4g} s")
v = 1.542e+06 m/s, t = 6.484e-07 s
>>> print(f"p = {units['p']:.4g} Pa")  # B²/μ₀
p = 7.958e+05 Pa
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L532-L641)

## plasma_plots.theory.parameters.thermal_speed

*function*

```python
def thermal_speed(temperature, mass=electron_mass, convention='sqrt(T/m)')
```

Compute the thermal speed of a Maxwellian of temperature T.

**Parameters**

- `temperature` (`float or array_like`) — Temperature T, in eV.
- `mass` (`float or array_like`) (default: `electron_mass`) — Particle mass m, in kg. Default: the electron mass.
- `convention` (`('sqrt(T/m)', 'sqrt(2T/m)', 'mean')`) (default: `"sqrt(T/m)"`) — ``"sqrt(T/m)"``: the standard deviation of each velocity component, as in the NRL formulary and in Struphy's Maxwellians and ``velocity_scale="thermal"``; ``"sqrt(2T/m)"``: the most probable speed, common in kinetic theory; ``"mean"``: the mean speed √(8T/(πm)). Default: ``"sqrt(T/m)"``.

**Returns**

- (`float or numpy.ndarray`) — The thermal speed, in m/s.

**Raises**

- `ValueError` — If ``convention`` is unknown.

> **References**
>
> NRL Plasma Formulary: v_Te = √(k T_e / m_e) = 4.19e7 × √(T_e / eV) cm/s.

**Examples**

```pycon
>>> print(f"{thermal_speed(1.0):.4g} m/s")
4.194e+05 m/s
>>> print(f"{thermal_speed(1.0, convention='sqrt(2T/m)'):.4g} m/s")
5.931e+05 m/s
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L145-L188)

## plasma_plots.theory.parameters.upper_hybrid_frequency

*function*

```python
def upper_hybrid_frequency(density, field)
```

Compute the upper hybrid frequency ω_UH = √(ω_pe² + Ω_e²).

**Parameters**

- `density` (`float or array_like`) — Electron density n_e, in m⁻³.
- `field` (`float or array_like`) — Magnetic field B, in T.

**Returns**

- (`float or numpy.ndarray`) — ω_UH, in rad/s.

> **References**
>
> Chen, Introduction to Plasma Physics, section 4.10 (upper hybrid frequency).

**Examples**

```pycon
>>> print(f"{upper_hybrid_frequency(1e19, 1.0):.4g} rad/s")
2.505e+11 rad/s
```

[View source](https://github.com/max-models/plasma-plots/blob/devel/src/plasma_plots/theory/parameters.py#L503-L529)
