tardis.plasma.detailed_balance.rates.collision_strengths module¶
- class tardis.plasma.detailed_balance.rates.collision_strengths.CollDeexcRateCoeff[source]¶
Bases:
object
- Attributes:
- coll_deexc_coeffpandas.DataFrame, dtype float
Rate coefficient for collisional deexcitation.
- latex_name = ('c_{ul}',)¶
- outputs = ('coll_deexc_coeff',)¶
- class tardis.plasma.detailed_balance.rates.collision_strengths.CollExcRateCoeff[source]¶
Bases:
object
- Attributes:
- coll_exc_coeffpandas.DataFrame, dtype float
Rate coefficient for collisional excitation.
- latex_name = ('c_{lu}',)¶
- outputs = ('coll_exc_coeff',)¶
- class tardis.plasma.detailed_balance.rates.collision_strengths.CollisionalCrossSections(collision_cross_sections)[source]¶
Bases:
object
- class tardis.plasma.detailed_balance.rates.collision_strengths.UpsilonCMFGENSolver(upsilon_temperatures, upsilon_g_data)[source]¶
Bases:
object
- 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.
- class tardis.plasma.detailed_balance.rates.collision_strengths.UpsilonChiantiSolver(upsilon_data)[source]¶
Bases:
object
Solver for Upsilon / g_i for Chianti data.
- solve(t_electrons)[source]¶
Solve the Upsilon / g_lower collisional values for arbitrary temperatures.
- Parameters:
- t_electronsnp.ndarray
1D array of electron temperatures to interpolate over
- Returns:
- pd.DataFrame
DataFrame with columns of Upsilon / g_lower per transition and temperature.
- upsilon_scaling(row, t_electrons)[source]¶
Scales Upsilon from Chianti data using equations 23-38 from Burgess & Tully 1992 - A&A 254, 436B.
- Parameters:
- rowpd.Series
DataFrame row of Chianti collisional data
- t_electronsnp.ndarray
1D array of electron temperatures to interpolate over
- Returns:
- pd.Series
Scaled Upsilon / g_lower
- Raises:
- ValueError
Incorrect scaling type provided
- class tardis.plasma.detailed_balance.rates.collision_strengths.UpsilonRegemorterSolver(transition_data, g_bar=0.2)[source]¶
Bases:
object
- solve(t_electrons)[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. A very good description can be found in Mihalas Chapter on collisional rates
- 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.
- tardis.plasma.detailed_balance.rates.collision_strengths.calculate_upsilon_g_2_collisional_rates(yg, t_electrons, delta_energies)[source]¶
- tardis.plasma.detailed_balance.rates.collision_strengths.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.