8.8. Spectral Line Shapes

Cherab contains Doppler-broadened, Stark-broadened and Doppler-Zeeman line shapes of atomic spectra. Stark-Doppler and Stark-Doppler-Zeeman line shapes of hydrogen spectra will be added in the future.

Assumption: Maxwellian distribution of emitting species is assumed. A general model of Doppler broadening will be implemented in the future.

class cherab.core.model.lineshape.add_gaussian_line(radiance, wavelength, sigma, spectrum)

Adds a Gaussian line to the given spectrum and returns the new spectrum.

The formula used is based on the following definite integral: \(\frac{1}{\sigma \sqrt{2 \pi}} \int_{\lambda_0}^{\lambda_1} \exp(-\frac{(x-\mu)^2}{2\sigma^2}) dx = \frac{1}{2} \left[ -Erf(\frac{a-\mu}{\sqrt{2}\sigma}) +Erf(\frac{b-\mu}{\sqrt{2}\sigma}) \right]\)

Parameters
  • radiance (float) – Intensity of the line in radiance.

  • wavelength (float) – central wavelength of the line in nm.

  • sigma (float) – width of the line in nm.

  • spectrum (Spectrum) – the current spectrum to which the gaussian line is added.

Returns

class cherab.core.model.lineshape.LineShapeModel

A base class for building line shapes.

Parameters
  • line (Line) – The emission line object for this line shape.

  • wavelength (float) – The rest wavelength for this emission line.

  • target_species (Species) – The target plasma species that is emitting.

  • plasma (Plasma) – The emitting plasma object.

  • integrator (Integrator1D) – Integrator1D instance to integrate the line shape over the spectral bin. Default is None.

class cherab.core.model.lineshape.GaussianLine

Produces Gaussian line shape.

Parameters
  • line (Line) – The emission line object for this line shape.

  • wavelength (float) – The rest wavelength for this emission line.

  • target_species (Species) – The target plasma species that is emitting.

  • plasma (Plasma) – The emitting plasma object.

>>> from cherab.core.atomic import Line, deuterium
>>> from cherab.core.model import ExcitationLine, GaussianLine
>>>
>>> # Adding Gaussian line to the plasma model.
>>> d_alpha = Line(deuterium, 0, (3, 2))
>>> excit = ExcitationLine(d_alpha, lineshape=GaussianLine)
>>> plasma.models.add(excit)
class cherab.core.model.lineshape.MultipletLineShape

Produces Multiplet line shapes.

The lineshape radiance is calculated from a base PEC rate that is unresolved. This radiance is then divided over a number of components as specified in the multiplet argument. The multiplet components are specified with an Nx2 array where N is the number of components in the multiplet. The first axis of the array contains the wavelengths of each component, the second contains the line ratio for each component. The component line ratios must sum to one. For example:

Parameters
  • line (Line) – The emission line object for the base rate radiance calculation.

  • wavelength (float) – The rest wavelength of the base emission line.

  • target_species (Species) – The target plasma species that is emitting.

  • plasma (Plasma) – The emitting plasma object.

  • multiplet – An Nx2 array that specifies the multiplet wavelengths and line ratios.

>>> from cherab.core.atomic import Line, nitrogen
>>> from cherab.core.model import ExcitationLine, MultipletLineShape
>>>
>>> # multiplet specification in Nx2 array
>>> multiplet = [[403.509, 404.132, 404.354, 404.479, 405.692], [0.205, 0.562, 0.175, 0.029, 0.029]]
>>>
>>> # Adding the multiplet to the plasma model.
>>> nitrogen_II_404 = Line(nitrogen, 1, ("2s2 2p1 4f1 3G13.0", "2s2 2p1 3d1 3F10.0"))
>>> excit = ExcitationLine(nitrogen_II_404, lineshape=MultipletLineShape, lineshape_args=[multiplet])
>>> plasma.models.add(excit)
class cherab.core.model.lineshape.StarkBroadenedLine

Parametrised Stark broadened line shape based on the Model Microfield Method (MMM). Contains embedded atomic data in the form of fits to MMM. Only Balmer and Paschen series are supported by default. See B. Lomanowski, et al. “Inferring divertor plasma properties from hydrogen Balmer and Paschen series spectroscopy in JET-ILW.” Nuclear Fusion 55.12 (2015) 123028.

Call show_supported_transitions() to see the list of supported transitions and default model coefficients.

Parameters
  • line (Line) – The emission line object for this line shape.

  • wavelength (float) – The rest wavelength for this emission line.

  • target_species (Species) – The target plasma species that is emitting.

  • plasma (Plasma) – The emitting plasma object.

  • stark_model_coefficients (dict) – Alternative model coefficients in the form {line_ij: (c_ij, a_ij, b_ij), …}. If None, the default model parameters will be used.

  • integrator (Integrator1D) – Integrator1D instance to integrate the line shape over the spectral bin. Default is GaussianQuadrature().

show_supported_transitions()

Prints all supported transitions.

class cherab.core.model.lineshape.ZeemanLineShapeModel

A base class for building Zeeman line shapes.

Parameters
  • line (Line) – The emission line object for this line shape.

  • wavelength (float) – The rest wavelength for this emission line.

  • target_species (Species) – The target plasma species that is emitting.

  • plasma (Plasma) – The emitting plasma object.

  • polarisation (str) – Leaves only \(\pi\)-/\(\sigma\)-polarised components: “pi” - leave only \(\pi\)-polarised components, “sigma” - leave only \(\sigma\)-polarised components, “no” - leave all components (default).

class cherab.core.model.lineshape.ZeemanTriplet

Simple Doppler-Zeeman triplet (Paschen-Back effect).

Parameters
  • line (Line) – The emission line object for this line shape.

  • wavelength (float) – The rest wavelength for this emission line.

  • target_species (Species) – The target plasma species that is emitting.

  • plasma (Plasma) – The emitting plasma object.

  • polarisation (str) – Leaves only \(\pi\)-/\(\sigma\)-polarised components: “pi” - leave central component, “sigma” - leave side components, “no” - all components (default).

class cherab.core.model.lineshape.ParametrisedZeemanTriplet

Parametrised Doppler-Zeeman triplet. It takes into account additional broadening due to the line’s fine structure without resolving the individual components of the fine structure. The model is described with three parameters: \(\alpha\), \(\beta\) and \(\gamma\).

The distance between \(\sigma^+\) and \(\sigma^-\) peaks: \(\Delta \lambda_{\sigma} = \alpha B\), where B is the magnetic field strength. The ratio between Zeeman and thermal broadening line widths: \(\frac{W_{Zeeman}}{W_{Doppler}} = \beta T^{\gamma}\), where T is the species temperature in eV.

Call show_supported_transitions() to see the list of supported transitions and default parameters of the model.

For details see A. Blom and C. Jupén, Parametrisation of the Zeeman effect for hydrogen-like spectra in high-temperature plasmas, Plasma Phys. Control. Fusion 44 (2002) 1229-1241.

Parameters
  • line (Line) – The emission line object for this line shape.

  • wavelength (float) – The rest wavelength for this emission line.

  • target_species (Species) – The target plasma species that is emitting.

  • plasma (Plasma) – The emitting plasma object.

  • line_parameters (dict) – Alternative parameters of the model in the form {line_i: (alpha_i, beta_i, gamma_i), …}. If None, the default model parameters will be used.

  • polarisation (str) – Leaves only \(\pi\)-/\(\sigma\)-polarised components: “pi” - leave central component, “sigma” - leave side components, “no” - all components (default).

show_supported_transitions()

Prints all supported transitions.

class cherab.core.model.lineshape.ZeemanMultiplet

Doppler-Zeeman Multiplet.

The lineshape radiance is calculated from a base PEC rate that is unresolved. This radiance is then divided over a number of components as specified in the zeeman_structure argument. The zeeman_structure specifies wavelengths and ratios of \(\pi\)-/\(\sigma\)-polarised components as functions of the magnetic field strength. These functions can be obtained using the output of the ADAS603 routines.

Parameters
  • line (Line) – The emission line object for the base rate radiance calculation.

  • wavelength (float) – The rest wavelength of the base emission line.

  • target_species (Species) – The target plasma species that is emitting.

  • plasma (Plasma) – The emitting plasma object.

  • zeeman_structure – A ZeemanStructure object that provides wavelengths and ratios of \(\pi\)-/\(\sigma^{+}\)-/\(\sigma^{-}\)-polarised components for any given magnetic field strength.

  • polarisation (str) – Leaves only \(\pi\)-/\(\sigma\)-polarised components: “pi” - leave only \(\pi\)-polarised components, “sigma” - leave only \(\sigma\)-polarised components, “no” - leave all components (default).