plasmapy.diagnostics.thomson.spectral_density(wavelengths: Unit("nm"), probe_wavelength: Unit("nm"), ne: Unit("1 / m3"), Te: Unit("K"), Ti: Unit("K"), fract: numpy.ndarray = array([1.]), ion_species: Union[str, List[str], plasmapy.particles.particle_class.Particle, List[plasmapy.particles.particle_class.Particle]] = 'H+', fluid_vel: Unit("m / s") = <Quantity [0., 0., 0.] m / s>, ion_vel: Unit("m / s") = None, probe_vec=array([1, 0, 0]), scatter_vec=array([0, 1, 0])) → Tuple[Union[numpy.floating, numpy.ndarray], numpy.ndarray]

Calculate the spectral density function for Thomson scattering of a probe laser beam by a multi-species Maxwellian plasma.

This function calculates the spectral density function for Thomson scattering of a probe laser beam by a plasma consisting of one or more ion species and a neutralizing electron fluid:

\[S(k,\omega) = 1 - \frac{2\pi}{k} \bigg |1 - \frac{\chi_e}{\epsilon} \bigg |^2 f_{e0} \bigg (\frac{\omega}{k} \bigg ) + \sum_i \frac{2\pi Z_i}{k} \bigg |\frac{\chi_e}{\epsilon} \bigg |^2 f_{i0,i} \bigg ( \frac{\omega}{k} \bigg )\]

where \(\chi_e\) is the electron component susceptibility of the plasma and \(\epsilon = 1 + \chi_e + \sum_i \chi_i\) is the total plasma dielectric function (with \(\chi_i\) being the ion component of the susceptibility), \(Z_i\) is the charge of each ion, \(k\) is the scattering wavenumber, \(\omega\) is the scattering frequency, and \(f_{e0}\) and \(f_{i0,i}\) are the electron and ion velocity distribution functions respectively. In this function the electron and ion velocity distribution functions are assumed to be Maxwellian, making this function equivalent to Eq. 3.4.6 in Sheffield.

  • wavelengths (Quantity) – Array of wavelengths over which the spectral density function will be calculated. (convertible to nm)
  • probe_wavelength (Quantity) – Wavelength of the probe laser. (convertible to nm)
  • ne (Quantity) – Mean (0th order) electron density of all plasma components combined. (convertible to cm^-3.)
  • Te (Quantity) – Temperature of the electron component. (in K or convertible to eV)
  • Ti (Quantity, shape (N, )) – Temperature of each ion component. Shape (N, ) must be equal to the number of ion components N. (in K or convertible to eV)
  • fract (array_like, shape (N, ), optional) – An array-like object where each element represents the fraction (or ratio) of the ion component number density to the total ion number density. Must sum to 1.0. Default is a single ion species.
  • ion_species (str or Particle, shape (N, ), optional) – A list or single instance of Particle, or strings convertible to Particle. Default is 'H+' corresponding to a single species of hydrogen ions.
  • fluid_vel (Quantity, shape (3, ), optional) – Electron fluid velocity in the rest frame. (convertible to m/s) Defaults to a stationary plasma [0, 0, 0] m/s.
  • ion_vel (Quantity, shape (N, 3), optional) – Velocity vectors for each ion population relative to the fluid velocity. (convertible to m/s) Defaults zero drift for all specified ion species.
  • probe_vec (float ndarray, shape (3, )) – Unit vector in the direction of the probe laser. Defaults to [1, 0, 0].
  • scatter_vec (float ndarray, shape (3, )) – Unit vector pointing from the scattering volume to the detector. Defaults to [0, 1, 0] which, along with the default probe_vec, corresponds to a 90 degree scattering angle geometry.

  • alpha (float) – Mean scattering parameter, where alpha > 1 corresponds to collective scattering and alpha < 1 indicates non-collective scattering.
  • Skw (Quantity) – Computed spectral density function over the input wavelengths array with units of s/rad.


For details, see “Plasma Scattering of Electromagnetic Radiation” by Sheffield et al. ISBN 978-0123748775. This code is a modified version of the program described therein.

For a concise summary of the relevant physics, see Chapter 5 of Derek Schaeffer’s thesis, DOI: 10.5281/zenodo.3766933.