tardis.plasma.properties.atomic module¶
- class tardis.plasma.properties.atomic.ContinuumInteractionHandler(plasma_parent)[source]¶
 Bases:
ProcessingPlasmaProperty- outputs = ('get_current_bound_free_continua', 'determine_bf_macro_activation_idx', 'determine_continuum_macro_activation_idx')¶
 
- class tardis.plasma.properties.atomic.IonizationData(plasma_parent)[source]¶
 Bases:
BaseAtomicDataProperty- Attributes:
 - ionization_datapandas.Series
 Holding ionization energies Indexed by atomic number, ion number.
- outputs = ('ionization_data',)¶
 
- class tardis.plasma.properties.atomic.LevelIdxs2LineIdx(plasma_parent)[source]¶
 Bases:
HiddenPlasmaProperty- Attributes:
 - level_idxs2line_idxpandas.Series, dtype int
 Maps a source_level_idx destination_level_idx pair to a line_idx.
- outputs = ('level_idxs2line_idx',)¶
 
- class tardis.plasma.properties.atomic.LevelIdxs2TransitionIdx(plasma_parent)[source]¶
 Bases:
HiddenPlasmaProperty- Attributes:
 - level_idxs2transition_idxpandas.DataFrame, dtype int
 Maps a source_level_idx destination_level_idx pair to a transition_idx and transition type.
- outputs = ('level_idxs2transition_idx',)¶
 
- class tardis.plasma.properties.atomic.Levels(plasma_parent)[source]¶
 Bases:
BaseAtomicDataProperty- Attributes:
 - levelspandas.MultiIndex
 (atomic_number, ion_number, level_number) Index of filtered atomic data. Index used for all other attribute dataframes for this class
- excitation_energypandas.DataFrame, dtype float
 Excitation energies of atomic levels. Index is levels.
- metastabilitypandas.DataFrame, dtype bool
 Records whether atomic levels are metastable. Index is levels.
- gpandas.DataFrame (index=levels), dtype float
 Statistical weights of atomic levels.
- latex_name = ('\\textrm{levels}', '\\epsilon_{\\textrm{k}}', '\\textrm{metastability}', 'g')¶
 
- outputs = ('levels', 'excitation_energy', 'metastability', 'g')¶
 
- class tardis.plasma.properties.atomic.Lines(plasma_parent)[source]¶
 Bases:
BaseAtomicDataProperty- Attributes:
 - linespandas.DataFrame
 Atomic lines data. Columns are wavelength, atomic_number,ion_number, f_ul, f_lu, level_number_lower, level_number_upper, nu, B_lu, B_ul, A_ul, wavelength. Index is line_id.
- nupandas.DataFrame, dtype float
 Line frequency data. Index is line_id.
- f_lupandas.DataFrame, dtype float
 Transition probability data. Index is line_id.
- wavelength_cmpandas.DataFrame, dtype float
 Line wavelengths in cm. Index is line_id.
- latex_name = ('\\textrm{lines}', '\\nu', 'f_lu', '\\lambda_{cm}')¶
 
- outputs = ('lines', 'nu', 'f_lu', 'wavelength_cm')¶
 
- class tardis.plasma.properties.atomic.LinesLowerLevelIndex(plasma_parent)[source]¶
 Bases:
HiddenPlasmaProperty- Attributes:
 - lines_lower_level_indexnumpy.ndrarray, dtype int
 Levels data for lower levels of particular lines
- outputs = ('lines_lower_level_index',)¶
 
- class tardis.plasma.properties.atomic.LinesUpperLevelIndex(plasma_parent)[source]¶
 Bases:
HiddenPlasmaProperty- Attributes:
 - lines_upper_level_indexnumpy.ndarray, dtype int
 Levels data for upper levels of particular lines
- outputs = ('lines_upper_level_index',)¶
 
- class tardis.plasma.properties.atomic.MacroAtomData(plasma_parent)[source]¶
 Bases:
BaseAtomicDataProperty- outputs = ('macro_atom_data',)¶
 
- class tardis.plasma.properties.atomic.NLTEData(plasma_parent)[source]¶
 Bases:
ProcessingPlasmaProperty- Attributes:
 - nlte_data
 #Finish later (need atomic dataset with NLTE data).
- outputs = ('nlte_data',)¶
 
- class tardis.plasma.properties.atomic.PhotoIonizationData(plasma_parent)[source]¶
 Bases:
ProcessingPlasmaProperty- Attributes:
 - photo_ion_cross_sectionspandas.DataFrame, dtype float
 Photoionization cross sections as a function of frequency. Columns are nu, x_sect, index=(‘atomic_number’,’ion_number’,’level_number’)
- photo_ion_block_referencesnumpy.ndarray, dtype int
 Indices where the photoionization data for a given level starts. Needed for calculation of recombination rates.
- nu_ipandas.Series, dtype float
 Threshold frequencies for ionization
- energy_ipandas.Series, dtype float
 Energies of levels with bound-free transitions. Needed to calculate for example internal transition probabilities in the macro atom scheme.
- photo_ion_indexpandas.MultiIndex, dtype int
 Atomic, ion and level numbers for which photoionization data exists.
- level2continuum_idxpandas.Series, dtype int
 Maps a level MultiIndex (atomic_number, ion_number, level_number) to the continuum_idx of the corresponding bound-free continuum (which are sorted by decreasing frequency).
- level_idxs2continuum_idxpandas.DataFrame, dtype int
 Maps a source_level_idx destination_level_idx pair to a continuum_idx.
- latex_name = ('\\xi_{\\textrm{i}}(\\nu)', '', '', '\\nu_i', '\\epsilon_i', '', '')¶
 
- outputs = ('photo_ion_cross_sections', 'photo_ion_block_references', 'photo_ion_index', 'nu_i', 'energy_i', 'photo_ion_idx', 'level2continuum_idx', 'level_idxs2continuum_idx')¶
 
- class tardis.plasma.properties.atomic.TwoPhotonData(plasma_parent)[source]¶
 Bases:
ProcessingPlasmaProperty- outputs = ('two_photon_data', 'two_photon_idx')¶
 - Attributes:
 - two_photon_datapandas.DataFrame, dtype float
 - A DataFrame containing the *two photon decay data* with:
 index: atomic_number, ion_number, level_number_lower, level_number_upper columns: A_ul[1/s], nu0[Hz], alpha, beta, gamma alpha, beta, gamma are fit coefficients for the frequency dependent transition probability A(y) of the two photon decay. See Eq. 2 in Nussbaumer & Schmutz (1984).
- two_photon_idxpandas.DataFrame, dtype int
 
- class tardis.plasma.properties.atomic.YgData(plasma_parent)[source]¶
 Bases:
ProcessingPlasmaProperty- Attributes:
 - yg_datapandas.DataFrame
 Table of thermally averaged effective collision strengths (divided by the statistical weight of the lower level) Y_ij / g_i . Columns are temperatures.
- t_ygnumpy.ndarray
 Temperatures at which collision strengths are tabulated.
- yg_indexPandas MultiIndex
 - delta_E_ygpandas.DataFrame
 Energy difference between upper and lower levels coupled by collisions.
- yg_idxpandas.DataFrame
 Source_level_idx and destination_level_idx of collision transitions. Indexed by atomic_number, ion_number, level_number_lower, level_number_upper.
- classmethod calculate_yg_van_regemorter(atomic_data, t_electrons, continuum_interaction_species)[source]¶
 Calculate collision strengths in the van Regemorter approximation.
This function calculates thermally averaged effective collision strengths (divided by the statistical weight of the lower level) Y_ij / g_i using the van Regemorter approximation.
- Parameters:
 - atomic_datatardis.io.atom_data.AtomData
 - t_electronsnumpy.ndarray
 - continuum_interaction_speciespandas.MultiIndex
 
- Returns:
 - pandas.DataFrame
 Thermally averaged effective collision strengths (divided by the statistical weight of the lower level) Y_ij / g_i
Notes
See Eq. 9.58 in [2].
References
[1]van Regemorter, H., “Rate of Collisional Excitation in Stellar Atmospheres.”, The Astrophysical Journal, vol. 136, p. 906, 1962. doi:10.1086/147445.
[2]Hubeny, I. and Mihalas, D., “Theory of Stellar Atmospheres”. 2014.
- static exp1_times_exp(x)[source]¶
 Product of the Exponential integral E1 and an exponential.
This function calculates the product of the Exponential integral E1 and an exponential in a way that also works for large values.
- Parameters:
 - xarray_like
 Input values.
- Returns:
 - array_like
 Output array.
- latex_name = ('\\frac{Y_{ij}}{g_i}', 'T_\\textrm{Yg}', '\\textrm{yg_index}', '\\delta E_{ij}', '\\textrm{yg_idx}')¶
 
- outputs = ('yg_data', 't_yg', 'yg_index', 'delta_E_yg', 'yg_idx')¶
 
- class tardis.plasma.properties.atomic.YgInterpolator(plasma_parent)[source]¶
 Bases:
ProcessingPlasmaProperty- Attributes:
 - yg_interpscipy.interpolate.PchipInterpolator
 Interpolates the thermally averaged effective collision strengths (divided by the statistical weight of the lower level) Y_ij / g_i as a function of electron temperature.
- latex_name = ('\\frac{Y_ij}{g_i}_{\\textrm{interp}}',)¶
 
- outputs = ('yg_interp',)¶
 
- class tardis.plasma.properties.atomic.ZetaData(plasma_parent)[source]¶
 Bases:
BaseAtomicDataProperty- Attributes:
 - zeta_datapandas.DataFrame, dtype float
 Zeta data for the elements used. Indexed by atomic number, ion number. Columns are temperature values up to 40,000 K in iterations of 2,000 K. The zeta value represents the fraction of recombination events from the ionized state that go directly to the ground state.
- outputs = ('zeta_data',)¶