idstools.domain.ecstray

Module Contents

class idstools.domain.ecstray.EcStrayCompute(equilibrium_ids: object, core_profiles_ids: object, waves_ids: object)[source]
core_profiles_ids
equilibrium_compute
equilibrium_ids
waves_compute
waves_ids
get_cutoff_layer(coherent_wave_index, time_slice)[source]

The cutoff layer is a region in a plasma where certain frequencies or modes of wave propagation are prevented from propagating or transmitting due to the plasma’s properties.

Parameters:
time_slice

time index. Defaults to 0.

Returns:

cut off layer in dictionary format

Return type:

dict

Notes

ω_R = √[(eB/m_e/2)^2 + n_e * e^2/(ε_0 * m_e)] + eB/m_e/2

electron cyclotron frequency in plasma physics. It is denoted by ω_R and can be calculated using the equation

where:

  • ω_R is the electron cyclotron frequency

  • e is the elementary charge

  • B is the magnetic field strength

  • m_e is the mass of an electron

  • n_e is the electron number density

  • ε_0 is the vacuum permittivity

Examples

import imas
connection = imas.DBEntry("imas:mdsplus?user=public;pulse=134173;run=106;database=ITER;version=3","r")
connection.open()
equilibriumIds = connection.get('equilibrium')
coreProfilesIds = connection.get('waves')
wavesIds = connection.get('core_profiles')

ecStrayCompute = EcStrayCompute(equilibriumIds, coreProfilesIds, wavesIds)

cut_off_layer = ecStrayCompute.get_cutoff_layer()

{'r': [5.625, 5.4375, 5.53125, 5.53125, 5.53125, 5.53125, 5.53125, 5.53125, 5.53125,
5.53125, 5.53125, 5.53125, 5.53125, 5.53125,
5.53125, 5.53125, 5.53125, 5.53125, 5.53125, 5.53125, 5.53125, 5.53125, 5.53125, 5.4375],
'z': [-2.15625, -2.0625, -1.96875, -1.875, -1.78125, -1.6875, -1.59375,
-1.5, -1.40625, -1.3125, -1.21875,
1.03125, 1.125, 1.21875, 1.3125, 1.40625, 1.5, 1.59375, 1.6875, 1.78125,
1.875, 1.96875, 2.0625, 2.15625]}
get_resonance_layer(coherent_wave_index, time_slice, n_harm=None)[source]

This function calculates and returns a dictionary (Resonance Layer) containing r and z values corresponding to the resonance points based on the provided nHarm values, b_resonance, and b_total arrays.

Parameters:
time_slice

time index, default is 0

n_harm=None

integer values that represent the order or index of harmonics in a series. Defaults to [1, 2, 3, 4].

Returns:

returns dictionary of resonance layer for specific harmonics

Return type:

dict

Examples

import imas
# add necessary imports
connection = imas.DBEntry("imas:mdsplus?user=public;pulse=134173;run=106;database=ITER;version=3", "r")
connection.open()
equilibriumIds = connection.get('equilibrium')
coreProfilesIds = connection.get('waves')
wavesIds = connection.get('core_profiles')

ecstrayCompute = EcStrayCompute(equilibriumIds, coreProfilesIds, wavesIds)

resonance_layer = ecstrayCompute.get_resonance_layer()

{0: {'r': [5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375,
5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375, 5.4375],
'z': [-6.0, -5.90625, -5.8125, -5.71875, -5.625, -5.53125, -5.4375, -5.34375, -5.25, -5.15625,
5.71875, 5.8125, 5.90625, 6.0]}, 1: {'r': [], 'z': []}, 2: {'r': [], 'z': []}, 3: {'r': [], 'z': []}}
idstools.domain.ecstray.logger