pyrfu.dispersion.one_fluid_dispersion#

pyrfu.dispersion.one_fluid_dispersion(b_0, theta, ions, electrons, n_k: int = 100, k_vec=None)[source]#

Solves the one fluid dispersion relation.

Parameters:
  • b_0 (float) – Magnetic field in T.

  • theta (float) – The angle of propagation of the wave with respect to the magnetic field, \(\cos^{-1}(k_z / k)\), in degrees.

  • ions (dict) – Hash table with n : number density in m^-3, t: temperature in eV, gamma: polytropic index.

  • electrons (dict) – Hash table with n : number density in m^-3, t: temperature in eV, gamma: polytropic index.

  • n_k (int, optional) – Number of wavenumbers, from \(0.0144 \Omega_{p} / V_A\) to \(7.2 \Omega_{p} / V_A\). Default is 100. Not used if k_vec is given.

  • k_vec (array_like, optional) – Wavenumbers in m^-1, all positive. Default is n_k wavenumbers from \(0.0144 \Omega_{p} / V_A\) to \(7.2 \Omega_{p} / V_A\).

Returns:

  • wc_1 (xarray.DataArray) – Largest root (fast/whistler branch), angular frequency in rad/s as a function of the wavenumber k in m^-1.

  • wc_2 (xarray.DataArray) – Intermediate root (Alfven/ion cyclotron branch).

  • wc_3 (xarray.DataArray) – Smallest root (slow branch).

Notes

The three branches are the roots of a cubic polynomial in \(\omega^2\), sorted so that wc_1 >= wc_2 >= wc_3 at every k. At small angles, the sound wave crosses the other branches, so it changes from one output to another at the crossings.

Raises:

ValueError – If k_vec has non-positive values.