6.6. Atomic data interpolators

The following classes interpolate atomic data defined on a numerical grid.

6.6.1. Atomic Processes

class cherab.openadas.rates.atomic.IonisationRate

Ionisation rate.

Data is interpolated with cubic spline in log-log space. Nearest neighbour extrapolation is used if extrapolate is True.

Parameters:

data (dict) – Ionisation rate dictionary containing the following entries:

‘ne’: 1D array of size (N) with electron density in m^-3,
‘te’: 1D array of size (M) with electron temperature in eV,
‘rate’: 2D array of size (N, M) with ionisation rate in m^3.s^-1.
Parameters:

extrapolate (bint) – Enable extrapolation (default=False).

Variables:
  • density_range (tuple) – Electron density interpolation range.

  • temperature_range (tuple) – Electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(density, temperature)

Returns an effective ionisation rate coefficient at the specified plasma conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective ionisation rate in m^3.s^-1.

class cherab.openadas.rates.atomic.NullIonisationRate

An ionisation rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(density, temperature)

Returns an effective ionisation rate coefficient at the specified plasma conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective ionisation rate in m^3.s^-1.

class cherab.openadas.rates.atomic.RecombinationRate

Recombination rate.

Data is interpolated with cubic spline in log-log space. Nearest neighbour extrapolation is used if extrapolate is True.

Parameters:

data (dict) – Recombination rate dictionary containing the following entries:

‘ne’: 1D array of size (N) with electron density in m^-3,
‘te’: 1D array of size (M) with electron temperature in eV,
‘rate’: 2D array of size (N, M) with recombination rate in m^3.s^-1.
Parameters:

extrapolate (bint) – Enable extrapolation (default=False).

Variables:
  • density_range (tuple) – Electron density interpolation range.

  • temperature_range (tuple) – Electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(density, temperature)

Returns an effective recombination rate coefficient at the specified plasma conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective ionisation rate in m^3.s^-1.

class cherab.openadas.rates.atomic.NullRecombinationRate

A recombination rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(density, temperature)

Returns an effective recombination rate coefficient at the specified plasma conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective ionisation rate in m^3.s^-1.

class cherab.openadas.rates.atomic.ThermalCXRate

Thermal charge exchange rate.

Data is interpolated with cubic spline in log-log space. Linear extrapolation is used if extrapolate is True.

Parameters:

data (dict) – CX rate dictionary containing the following entries:

‘ne’: 1D array of size (N) with electron density in m^-3,
‘te’: 1D array of size (M) with electron temperature in eV,
‘rate’: 2D array of size (N, M) with thermal CX rate in m^3.s^-1.
Parameters:

extrapolate (bint) – Enable extrapolation (default=False).

Variables:
  • density_range (tuple) – Electron density interpolation range.

  • temperature_range (tuple) – Electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(density, temperature)

Returns an effective charge exchange rate coefficient at the specified plasma conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective charge exchange rate in m^3.s^-1.

class cherab.openadas.rates.atomic.NullThermalCXRate

A thermal CX rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(density, temperature)

Returns an effective charge exchange rate coefficient at the specified plasma conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective charge exchange rate in m^3.s^-1.

6.6.2. Photon Emissivity Coefficients

class cherab.openadas.rates.pec.ImpactExcitationPEC

Electron impact excitation photon emission coefficient.

The data is interpolated with cubic spline in log-log space. Nearest neighbour extrapolation is used if extrapolate is True.

Parameters:
  • wavelength (double) – Resting wavelength of corresponding emission line in nm.

  • data (dict) – Excitation PEC dictionary containing the following entries:

‘ne’: 1D array of size (N) with electron density in m^-3,
‘te’: 1D array of size (M) with electron temperature in eV,
‘rate’: 2D array of size (N, M) with excitation PEC in photon.m^3.s^-1.
Parameters:

extrapolate (bint) – Enable extrapolation (default=False).

Variables:
  • density_range (tuple) – Electron density interpolation range.

  • temperature_range (tuple) – Electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(density, temperature)

Returns a photon emissivity coefficient at given conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective PEC rate in W.m^3.

class cherab.openadas.rates.pec.NullImpactExcitationPEC

A electron impact excitation PEC rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(density, temperature)

Returns a photon emissivity coefficient at given conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective PEC rate in W.m^3.

class cherab.openadas.rates.pec.RecombinationPEC

Recombination photon emission coefficient.

The data is interpolated with cubic spline in log-log space. Nearest neighbour extrapolation is used if extrapolate is True.

Parameters:
  • wavelength (double) – Resting wavelength of corresponding emission line in nm.

  • data (dict) – Rcombination PEC dictionary containing the following entries:

‘ne’: 1D array of size (N) with electron density in m^-3,
‘te’: 1D array of size (M) with electron temperature in eV,
‘rate’: 2D array of size (N, M) with recombination PEC in photon.m^3.s^-1.
Parameters:

extrapolate (bint) – Enable extrapolation (default=False).

Variables:
  • density_range (tuple) – Electron density interpolation range.

  • temperature_range (tuple) – Electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(density, temperature)

Returns a photon emissivity coefficient at given conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective PEC rate in W.m^3.

class cherab.openadas.rates.pec.NullRecombinationPEC

A recombination PEC rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(density, temperature)

Returns a photon emissivity coefficient at given conditions.

Parameters:
  • density – Electron density in m^-3.

  • temperature – Electron temperature in eV.

Returns:

The effective PEC rate in W.m^3.

6.6.3. Beam-Plasma Interaction Rates

class cherab.openadas.rates.cx.BeamCXPEC

Effective charge exchange photon emission coefficient.

The data for “qeb” is interpolated with a cubic spline in log-log space. The data for “qti”, “qni”, “qz” and “qb” are interpolated with a cubic spline in linear space.

Quadratic extrapolation is used for “qeb” and nearest neighbour extrapolation is used for “qti”, “qni”, “qz” and “qb” if extrapolate is True.

Parameters:
  • donor_metastable (int) – The metastable state of the donor species for which the rate data applies.

  • wavelength (double) – The natural wavelength of the emission line associated with the rate data in nm.

  • data – Beam CX PEC dictionary containing the following entries:

‘eb’: 1D array of size (N) with beam energy in eV/amu,
‘ti’: 1D array of size (M) with receiver ion temperature in eV,
‘ni’: 1D array of size (K) with receiver ion density in m^-3,
‘z’: 1D array of size (L) with receiver Z-effective,
‘b’: 1D array of size (J) with magnetic field strength in Tesla,
‘qeb’: 1D array of size (N) with CX PEC energy component in photon.m^3.s-1,
‘qti’: 1D array of size (M) with CX PEC temperature component in photon.m^3.s-1,
‘qni’: 1D array of size (K) with CX PEC density component in photon.m^3.s-1,
‘qz’: 1D array of size (L) with CX PEC Zeff component in photon.m^3.s-1,
‘qb’: 1D array of size (J) with CX PEC B-field component in photon.m^3.s-1,
‘qref’: reference CX PEC in photon.m^3.s-1.
The total beam CX PEC: q = qeb * qti * qni * qz * qb / qref^4.
Parameters:

extrapolate (bint) – Set to True to enable extrapolation, False to disable (default).

Variables:
  • beam_energy_range (tuple) – Interaction energy interpolation range.

  • density_range (tuple) – Receiver ion density interpolation range.

  • temperature_range (tuple) – Receiver ion temperature interpolation range.

  • zeff_range (tuple) – Z-effective interpolation range.

  • b_field_range (tuple) – Magnetic field strength interpolation range.

  • donor_metastable (int) – The metastable state of the donor species.

  • wavelength (double) – The natural wavelength of the emission line in nm.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(energy, temperature, density, z_effective, b_field)

Interpolates and returns the effective cx rate for the given plasma parameters.

If the requested data is out-of-range then the call with throw a ValueError exception.

Parameters:
  • energy – Interaction energy in eV/amu.

  • temperature – Receiver ion temperature in eV.

  • density – Plasma total ion density in m^-3

  • z_effective – Plasma Z-effective.

  • b_field – Magnetic field magnitude in Tesla.

Returns:

The effective cx rate in W.m^3

class cherab.openadas.rates.cx.NullBeamCXPEC

A beam CX rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(energy, temperature, density, z_effective, b_field)

Evaluates the Beam CX rate at the given plasma conditions.

Parameters:
  • energy (float) – Interaction energy in eV/amu.

  • temperature (float) – Receiver ion temperature in eV.

  • density (float) – Plasma total ion density in m^-3

  • z_effective (float) – Plasma Z-effective.

  • b_field (float) – Magnetic field magnitude in Tesla.

Returns:

The effective rate

class cherab.openadas.rates.beam.BeamStoppingRate

The beam stopping coefficient interpolation class.

Data is interpolated with cubic spline in log-log space. Linear and quadratic extrapolations are used for “sen” and “st” respectively if extrapolate is True.

Parameters:

data (dict) – A beam stopping rate dictionary containing the following entries:

‘e’: 1D array of size (N) with interaction energy in eV/amu,
‘n’: 1D array of size (M) with target electron density in m^-3,
‘t’: 1D array of size (K) with target electron temperature in eV,
‘sen’: 2D array of size (N, M) with beam stopping rate energy component in m^3.s^-1.
‘st’: 1D array of size (K) with beam stopping rate temperature component in m^3.s^-1.
‘sref’: reference beam stopping rate in m^3.s^-1.
The total beam stopping rate: s = sen * st / sref.
Parameters:

extrapolate (bint) – Set to True to enable extrapolation, False to disable (default).

Variables:
  • beam_energy_range (tuple) – Interaction energy interpolation range.

  • density_range (tuple) – Target electron density interpolation range.

  • temperature_range (tuple) – Target electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(energy, density, temperature)

Interpolates and returns the beam coefficient for the supplied parameters.

If the requested data is out-of-range then the call with throw a ValueError exception.

Parameters:
  • energy – Interaction energy in eV/amu.

  • density – Target electron density in m^-3

  • temperature – Target temperature in eV.

Returns:

The beam stopping coefficient in m^3.s^-1

class cherab.openadas.rates.beam.NullBeamStoppingRate

A beam stopping rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(energy, density, temperature)

Returns the beam coefficient for the supplied parameters.

Parameters:
  • energy – Interaction energy in eV/amu.

  • density – Target electron density in m^-3

  • temperature – Target temperature in eV.

Returns:

The beam coefficient

class cherab.openadas.rates.beam.BeamPopulationRate

The beam population coefficient interpolation class.

Data is interpolated with cubic spline in log-log space. Linear and quadratic extrapolations are used for “sen” and “st” respectively if extrapolate is True.

Parameters:

data (dict) – Beam population rate dictionary containing the following entries:

‘e’: 1D array of size (N) with interaction energy in eV/amu,
‘n’: 1D array of size (M) with target electron density in m^-3,
‘t’: 1D array of size (K) with target electron temperature in eV,
‘sen’: 2D array of size (N, M) with dimensionless beam population rate energy component.
‘st’: 1D array of size (K) with dimensionless beam population rate temperature component.
‘sref’: reference dimensionless beam population rate.
The total beam population rate: s = sen * st / sref.
Parameters:

extrapolate (bint) – Set to True to enable extrapolation, False to disable (default).

Variables:
  • beam_energy_range (tuple) – Interaction energy interpolation range.

  • density_range (tuple) – Target electron density interpolation range.

  • temperature_range (tuple) – Target electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(energy, density, temperature)

Interpolates and returns the beam coefficient for the supplied parameters.

If the requested data is out-of-range then the call with throw a ValueError exception.

Parameters:
  • energy – Interaction energy in eV/amu.

  • density – Target electron density in m^-3

  • temperature – Target temperature in eV.

Returns:

The beam population coefficient in dimensionless units.

class cherab.openadas.rates.beam.NullBeamPopulationRate

A beam population rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(energy, density, temperature)

Returns the beam coefficient for the supplied parameters.

Parameters:
  • energy – Interaction energy in eV/amu.

  • density – Target electron density in m^-3

  • temperature – Target temperature in eV.

Returns:

The beam coefficient

class cherab.openadas.rates.beam.BeamEmissionPEC

The beam emission coefficient interpolation class.

Data is interpolated with cubic spline in log-log space. Linear and quadratic extrapolations are used for “sen” and “st” respectively if extrapolate is True.

Parameters:

data (dict) – Beam emission rate dictionary containing the following entries:

‘e’: 1D array of size (N) with interaction energy in eV/amu,
‘n’ 1D array of size (M) with target electron density in m^-3,
‘t’ 1D array of size (K) with target electron temperature in eV,
‘sen’ 2D array of size (N, M) with beam emission rate energy component in photon.m^3.s^-1.
‘st’ 1D array of size (K) with beam emission rate temperature component in photon.m^3.s^-1.
‘sref’: reference beam emission rate in photon.m^3.s^-1.
Parameters:
  • wavelength (double) – The natural wavelength of the emission line associated with the rate data in nm.

  • extrapolate (bint) – Set to True to enable extrapolation, False to disable (default).

Variables:
  • beam_energy_range (tuple) – Interaction energy interpolation range.

  • density_range (tuple) – Target electron density interpolation range.

  • temperature_range (tuple) – Target electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(energy, density, temperature)

Interpolates and returns the beam coefficient for the supplied parameters.

If the requested data is out-of-range then the call with throw a ValueError exception.

Parameters:
  • energy – Interaction energy in eV/amu.

  • density – Target electron density in m^-3

  • temperature – Target temperature in eV.

Returns:

The beam emission coefficient in m^3.s^-1

class cherab.openadas.rates.beam.NullBeamEmissionPEC

A beam emission PEC that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(energy, density, temperature)

Returns the beam coefficient for the supplied parameters.

Parameters:
  • energy – Interaction energy in eV/amu.

  • density – Target electron density in m^-3

  • temperature – Target temperature in eV.

Returns:

The beam coefficient

6.6.4. Radiated Power

class cherab.openadas.rates.radiated_power.LineRadiationPower

Line radiated power coefficient.

The data is interpolated with cubic spline in log-log space. Nearest neighbour extrapolation is used if extrapolate is True.

Parameters:
  • species (Element) – Element object defining the ion type.

  • ionisation (int) – Charge state of the ion.

  • data (dict) – Line radiated power rate dictionary containing the following entries:

‘ne’: 1D array of size (N) with electron density in m^-3,
‘te’: 1D array of size (M) with electron temperature in eV,
‘rate’: 2D array of size (N, M) with radiated power rate in W.m^3.
Parameters:

extrapolate (bint) – Enable extrapolation (default=False).

Variables:
  • density_range (tuple) – Electron density interpolation range.

  • temperature_range (tuple) – Electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(electron_density, electron_temperature)

Evaluate the radiated power at the given plasma conditions.

Parameters:
  • density (float) – Electron density in m^-3.

  • temperature (float) – Electron temperature in eV.

Returns:

The radiated power rate in W.m^3.

class cherab.openadas.rates.radiated_power.NullLineRadiationPower

A line radiation power rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(electron_density, electron_temperature)

Evaluate the radiated power at the given plasma conditions.

Parameters:
  • density (float) – Electron density in m^-3.

  • temperature (float) – Electron temperature in eV.

Returns:

The radiated power rate in W.m^3.

class cherab.openadas.rates.radiated_power.ContinuumPower

Recombination continuum radiated power coefficient.

The data is interpolated with cubic spline in log-log space. Nearest neighbour extrapolation is used if extrapolate is True.

Parameters:
  • species (Element) – Element object defining the ion type.

  • ionisation (int) – Charge state of the ion.

  • data (dict) – Recombination continuum radiated power rate dictionary containing the following entries:

‘ne’: 1D array of size (N) with electron density in m^-3,
‘te’: 1D array of size (M) with electron temperature in eV,
‘rate’: 2D array of size (N, M) with radiated power rate in W.m^3.
Parameters:

extrapolate (bint) – Enable extrapolation (default=False).

Variables:
  • density_range (tuple) – Electron density interpolation range.

  • temperature_range (tuple) – Electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(electron_density, electron_temperature)

Evaluate the radiated power at the given plasma conditions.

Parameters:
  • density (float) – Electron density in m^-3.

  • temperature (float) – Electron temperature in eV.

Returns:

The radiated power rate in W.m^3.

class cherab.openadas.rates.radiated_power.NullContinuumPower

A continuum radiation power rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(electron_density, electron_temperature)

Evaluate the radiated power at the given plasma conditions.

Parameters:
  • density (float) – Electron density in m^-3.

  • temperature (float) – Electron temperature in eV.

Returns:

The radiated power rate in W.m^3.

class cherab.openadas.rates.radiated_power.CXRadiationPower

Charge exchange radiated power coefficient.

The data is interpolated with cubic spline in log-log space. Linear extrapolation is used if extrapolate is True.

Parameters:
  • species (Element) – Element object defining the ion type.

  • ionisation (int) – Charge state of the ion.

  • data (dict) – CX radiated power rate dictionary containing the following entries:

‘ne’: 1D array of size (N) with electron density in m^-3,
‘te’: 1D array of size (M) with electron temperature in eV,
‘rate’: 2D array of size (N, M) with radiated power rate in W.m^3.
Parameters:

extrapolate (bint) – Enable extrapolation (default=False).

Variables:
  • density_range (tuple) – Electron density interpolation range.

  • temperature_range (tuple) – Electron temperature interpolation range.

  • raw_data (dict) – Dictionary containing the raw data.

evaluate(electron_density, electron_temperature)

Evaluate the radiated power at the given plasma conditions.

Parameters:
  • density (float) – Electron density in m^-3.

  • temperature (float) – Electron temperature in eV.

Returns:

The radiated power rate in W.m^3.

class cherab.openadas.rates.radiated_power.NullCXRadiationPower

A CX radiation power rate that always returns zero. Needed for use cases where the required atomic data is missing.

evaluate(electron_density, electron_temperature)

Evaluate the radiated power at the given plasma conditions.

Parameters:
  • density (float) – Electron density in m^-3.

  • temperature (float) – Electron temperature in eV.

Returns:

The radiated power rate in W.m^3.