# hollweg

plasmapy.dispersion.numerical.hollweg_.hollweg(B: Quantity, ion: , k: Quantity, n_i: Quantity, theta: Quantity, *, T_e: Quantity, T_i: Quantity, gamma_e: float = 1, gamma_i: float = 3, mass_numb: = None, Z: = None)[source]

Calculate the two-fluid dispersion relation presented by Hollweg [1999], and discussed by Bellan [2012].

This is a numerical solver of equation 3 in Bellan [2012]. See the Notes section below for additional details.

Parameters:
• B (Quantity) – The magnetic field magnitude in units convertible to tesla.

• ion (particle-like) – Representation of the ion species (e.g., 'p+' for protons, 'D+' for deuterium, 'He-4 +1' for singly ionized helium-4, etc.). If no charge state information is provided, then the ions are assumed to be singly ionized.

• k (Quantity) – Wavenumber in units convertible to rad/m. Either single valued or 1-D array of length $$N$$.

• n_i (Quantity) – Ion number density in units convertible to m-3.

• theta (Quantity) – The angle of propagation of the wave with respect to the magnetic field, $$\cos^{-1}(k_z / k)$$, in units convertible to radians. Either single valued or 1-D array of size $$M$$.

• T_e (Quantity, keyword-only) – The electron temperature in units of K or eV.

• T_i (Quantity, keyword-only) – The ion temperature in units of K or eV.

• gamma_e (real number, keyword-only, default: 1) – The adiabatic index for electrons. The default value assumes that the electrons are able to equalize their temperature rapidly enough that the electrons are effectively isothermal.

• gamma_i (real number, keyword-only, default: 3) – The adiabatic index for ions. The default value assumes that ion motion has only one degree of freedom, namely along magnetic field lines.

• mass_numb (integer, keyword-only, optional) – The mass number corresponding to ion.

• Z (real number, keyword-only, optional) – The charge number corresponding to ion.

Returns:

omega – A dictionary of computed wave frequencies in units rad/s. The dictionary contains three keys: 'fast_mode' for the fast mode, 'alfven_mode' for the Alfvén mode, and 'acoustic_mode' for the ion-acoustic mode. The value for each key will be an $$N x M$$ array.

Return type:

Dict[str, Quantity]

Raises:
• TypeError – If applicable arguments are not instances of Quantity or cannot be converted into one.

• TypeError – If ion is not of type or convertible to Particle.

• TypeError – If gamma_e, gamma_i, or z_mean are not real numbers.

• UnitTypeError – If applicable arguments do not have units convertible to the expected units.

• ValueError – If any of B, k, n_i, T_e, or T_i is negative.

• ValueError – If k is negative or zero.

• ValueError – If ion is not of category ion or element.

• ValueError – If B, n_i, T_e, or T_I are not single valued astropy.units.Quantity (i.e. an array).

• ValueError – If k or theta are not single valued or a 1-D array.

Warns:

Notes

The dispersion relation presented in Hollweg [1999] (equation 3 in Bellan [2012]) is:

$\begin{split}\left( \frac{ω^2}{k_{\rm z}^2 v_{\rm A}^2} - 1 \right) & \left[ ω^2 \left( ω^2 - k^2 v_{\rm A}^2 \right) - β k^2 v_{\rm A}^2 \left( ω^2 - k_{\rm z}^2 v_{\rm A}^2 \right) \right] \\ &= ω^2 \left(ω^2 - k^2 v_{\rm A}^2 \right) k_{\rm x}^2 \left( \frac{c_{\rm s}^2}{ω_{\rm ci}^2} - \frac{c^2}{ω_{\rm pe}^2} \frac{ω^2}{k_{\rm z}^2v_{\rm A}^2} \right)\end{split}$

where

$\begin{split}\mathbf{B}_0 &= B_0 \mathbf{\hat{z}} \\ \cos θ &= \frac{k_z}{k} \\ \mathbf{k} &= k_{\rm x} \hat{x} + k_{\rm z} \hat{z}\end{split}$

$$ω$$ is the wave frequency, $$k$$ is the wavenumber, $$v_{\rm A}$$ is the Alfvén velocity, $$c_{\rm s}$$ is the sound speed, $$ω_{\rm ci}$$ is the ion gyrofrequency, and $$ω_{\rm pe}$$ is the electron plasma frequency. In the derivation of this relation Hollweg assumed low-frequency waves $$ω / ω_{\rm ci} ≪ 1$$, no D.C. electric field $$\mathbf{E}_0=0$$, and quasineutrality.

Hollweg [1999] asserts this expression is valid for arbitrary $$c_{\rm s} / v_{\rm A}$$ (β) and $$k_{\rm z} / k$$ ($$θ$$). Contrarily, Bellan [2012] states in §1.7 that due to the inconsistent retention of the $$ω / ω_{\rm ci} ≪ 1$$ terms the expression can only be valid if both $$c_{\rm s} ≪ v_{\rm A}$$ (low-β) and the wave propagation is nearly perpendicular to the magnetic field.

This routine solves for $$ω$$ for given $$k$$ values by numerically solving for the roots of the above expression.

Examples

>>> import astropy.units as u
>>> from plasmapy.dispersion.numerical import hollweg_
>>> inputs = {
...    "k": np.logspace(-7, -2, 2) * u.rad / u.m,
...    "theta": 88 * u.deg,
...    "n_i": 5 * u.cm ** -3,
...    "B": 2.2e-8 * u.T,
...    "T_e": 1.6e6 * u.K,
...    "T_i": 4.0e5 * u.K,
...    "ion": "p+",
... }
>>> omegas = hollweg(**inputs)
>>> omegas
{'fast_mode': <Quantity [2.62911663e-02+0.j, 2.27876968e+03+0.j] rad / s>,
'alfven_mode': <Quantity [7.48765909e-04+0.j, 2.13800404e+03+0.j] rad / s>,
'acoustic_mode': <Quantity [0.00043295+0.j, 0.07358991+0.j] rad / s>}