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¶
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.
- class cherab.core.model.lineshape.GaussianLine¶
Produces Gaussian line shape.
- Parameters
>>> 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.
- 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. Thezeeman_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).