10.1. Plasmas

In Cherab we provide a few useful utilities for assembling plasmas.

cherab.tools.plasmas.slab.build_slab_plasma(length=5, width=1, height=1, peak_density=1e+19, peak_temperature=2500, pedestal_top=1, neutral_temperature=0.5, impurities=None, parent=None)

Constructs a simple slab of plasma.

The plasma is defined for positive x starting at x = 0, symmetric in y-z. The plasma parameters such as electron density and temperature evolve in 1 dimension according to the input parameters specified. The slab includes an optional pedestal.

Raysect cannot handle infinite geometry, so overall spatial dimensions of the slab need to be set, [length, width, height]. These can be set very large to make an effectively infinite slab of plasma, although the numerical performance will degrade accordingly. The dimensions should be set appropriately with valid assumptions for your scenario.

Impurity species can be included as a list of tuples, where each tuple specifies an impurity. The specification format is (species, charge, concentration). For example:

>>> impurities=[(carbon, 6, 0.005)]
Parameters
  • length (float) – the overall length of the slab along x.

  • width (float) – the y width of the slab.

  • height (float) – the z height of the slab.

  • peak_density (float) – the peak electron density at the pedestal top.

  • peak_temperature (float) – the peak electron temperature at the pedestal top.

  • pedestal_top (float) – the length of the pedestal top.

  • neutral_temperature (float) – the background neutral temperature.

  • impurities (list) – an optional list of impurities to include.

  • parent – the Raysect scene-graph parent node.

  • atomic_data – the atomic data provider to use for subsequent spectroscopic calculations, defaults to atomic_data=OpenADAS(permit_extrapolation=True).

>>> from raysect.optical import World
>>> from cherab.core.atomic import carbon
>>> from cherab.tools.plasmas.slab import build_slab_plasma
>>>
>>> plasma = build_slab_plasma(peak_density=5e19, impurities=[(carbon, 6, 0.005)])
>>> plasma.parent = World()