tardis.plasma.equilibrium.rates.collision_strengths module

class tardis.plasma.equilibrium.rates.collision_strengths.CollDeexcRateCoeff[source]

Bases: object

Attributes:
coll_deexc_coeffpandas.DataFrame, dtype float

Rate coefficient for collisional deexcitation.

calculate(thermal_lte_level_boltzmann_factor, coll_exc_coeff)[source]
latex_name = ('c_{ul}',)
outputs = ('coll_deexc_coeff',)
class tardis.plasma.equilibrium.rates.collision_strengths.CollExcRateCoeff[source]

Bases: object

Attributes:
coll_exc_coeffpandas.DataFrame, dtype float

Rate coefficient for collisional excitation.

calculate(yg_interp, yg_index, t_electrons, delta_E_yg)[source]
latex_name = ('c_{lu}',)
outputs = ('coll_exc_coeff',)
class tardis.plasma.equilibrium.rates.collision_strengths.CollisionalCrossSections(collision_cross_sections)[source]

Bases: object

solve_collisional_cross_sections(temperature_electron)[source]
class tardis.plasma.equilibrium.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.

solve(t_electrons)[source]
class tardis.plasma.equilibrium.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.equilibrium.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.equilibrium.rates.collision_strengths.calculate_upsilon_g_2_collisional_rates(yg, t_electrons, delta_energies)[source]
tardis.plasma.equilibrium.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.