tardis.opacities.macro_atom.macroatom_continuum_transitions module

tardis.opacities.macro_atom.macroatom_continuum_transitions.collisional_transition_deexc_to_k_packet(coll_deexc_coeff: DataFrame, electron_densities: Series, delta_E_yg: Series) tuple[DataFrame, DataFrame][source]

Create collisional de-excitation and deactivation transitions to a ‘k’ packet.

This function wraps the probability_collision_deexc_to_k_packet probability calculation and produces a metadata DataFrame describing the resulting de-excitation transitions that deposit energy into the k-packet channel.

Parameters:
coll_deexc_coeff

Collisional de-excitation coefficients indexed by transition.

electron_densities

Electron number densities per zone.

delta_E_yg

Energy differences between upper and lower state for the transitions.

Returns:
p_coll_down_to_k_packet

Unnormalized probabilities (rates) for de-excitation/deactivation.

coll_down_to_k_packet_metadata

Metadata for the de-excitation transitions; index matches p_coll_down_to_k_packet.

tardis.opacities.macro_atom.macroatom_continuum_transitions.collisional_transition_excitation_cool(coll_exc_coeff: DataFrame, electron_densities: Series, delta_E_yg: Series) tuple[DataFrame, DataFrame][source]

Build collisional excitation cooling transitions and metadata.

This function computes the collisional excitation cooling rates (an unnormalized probability) and packages them together with metadata describing the cooling transitions.

Parameters:
coll_exc_coeff

Collisional excitation coefficients indexed by transitions.

electron_densities

Electron number densities per zone.

delta_E_yg

Energy differences between upper and lower state for the excitations.

Returns:
p_coll_excitation_cool

Unnormalized collisional excitation cooling rates.

coll_excitation_cool_metadata

Metadata for the excitation cooling transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.collisional_transition_excitation_internal(coll_exc_coeff: DataFrame, electron_densities: Series, energies_lower: Series) tuple[DataFrame, DataFrame][source]

Build collisional internal-up transition probabilities and metadata.

Parameters:
coll_exc_coeff

Collisional excitation coefficients indexed by transitions.

electron_densities

Electron number densities per zone.

energies_lower

Energy values of the lower levels.

Returns:
p_coll_up_internal

Unnormalized collisional excitation to macro transition probabilities.

coll_up_internal_metadata

Metadata for the collisional internal up transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.collisional_transition_internal_down(coll_deexc_coeff: DataFrame, electron_densities: Series, energies_lower: Series) tuple[DataFrame, DataFrame][source]

Build collisional internal-down transition probabilities and metadata.

Parameters:
coll_deexc_coeff

Collisional de-excitation coefficients indexed by transitions.

electron_densities

Electron number densities per zone.

energies_lower

Energy values of the lower levels.

Returns:
p_coll_internal_down

Unnormalized collisional internal down transition probabilities.

coll_internal_down_metadata

Metadata for the collisional internal down transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.collisional_transition_ionization_emission(coll_ion_coeff: DataFrame, electron_densities: Series, energies_diff_bound_free: Series) tuple[DataFrame, DataFrame][source]

Build collisional ionization emission probabilities and metadata.

Parameters:
coll_ion_coeff

Collisional ionization coefficients.

electron_densities

Electron number densities.

energies_diff_bound_free

Energy differences of the states involved in ionization.

Returns:
p_coll_ionization_emission

Unnormalized collisional ionization emission probabilities.

coll_ionization_emission_metadata

Metadata for collisional ionization emission transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.collisional_transition_ionization_internal(coll_ion_coeff: DataFrame, electron_densities: Series, energies_coll_lower_states: Series) tuple[DataFrame, DataFrame][source]

Build collisional ionization internal probabilities and metadata.

Parameters:
coll_ion_coeff

Collisional ionization coefficients.

electron_densities

Electron number densities.

energies_coll_lower_states

Energies of the lower states in the transitions.

Returns:
p_coll_ionization_internal

Unnormalized collisional ionization internal probabilities.

coll_ionzation_internal_metadata

Metadata for collisional ionization internal transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.collisional_transition_recombination_emission(coll_recomb_coeff: DataFrame, electron_densities: Series, energies_diff_bound_free: Series) tuple[DataFrame, DataFrame][source]

Build collisional recombination emission probabilities and metadata.

Parameters:
coll_recomb_coeff

Collisional recombination coefficients.

electron_densities

Electron number densities.

energies_diff_bound_free

Energy differences of the states involved in ionization.

Returns:
p_coll_recomb_emission

Unnormalized collisional recombination emission probabilities.

coll_recomb_emission_metadata

Metadata for collisional recombination emission transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.collisional_transition_recombination_internal(coll_recomb_coeff: DataFrame, electron_densities: Series, energies_coll_lower_states: Series) tuple[DataFrame, DataFrame][source]

Build collisional recombination internal probabilities and metadata.

Parameters:
coll_recomb_coeff

Collisional recombination coefficients.

electron_densities

Electron number densities.

energies_coll_lower_states

Energies of the lower states in the transitions.

Returns:
p_coll_recomb_internal

Unnormalized collisional recombination internal probabilities.

coll_recomb_internal

Metadata for collisional recombination internal transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.continuum_adiabatic_cooling(electron_densities: Series, t_electrons: Series, time_explosion: float) tuple[Series, DataFrame][source]

Calculate the adiabatic cooling rate.

Parameters:
electron_densities

Electron densities.

t_electrons

Electron temperatures.

time_explosion

Time since explosion.

Returns:
p_adiabatic_cool

Unnormalized adiabatic cooling rates.

adiabatic_cool_metadata

Metadata DataFrame describing the cooling transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.continuum_free_free_cooling(ion_number_density: Series | DataFrame, electron_densities: Series, t_electrons: Series) tuple[Series, DataFrame][source]

Wrap free-free cooling rates with metadata for macro-atom use. NOTE: This I believe is a deactivation transition. It is not implemented or hooked up to the solver yet.

Parameters:
ion_number_density

Index or Series containing ion number densities (levelled by ion).

electron_densities

Electron number densities per zone.

t_electrons

Electron temperatures per zone.

Returns:
p_free_free_cool

Unnormalized free-free cooling rates.

free_free_cool_metadata

Metadata DataFrame describing the cooling transitions. The index matches p_free_free_cool and includes fields such as transition_type and photoionization_key_idx.

tardis.opacities.macro_atom.macroatom_continuum_transitions.continuum_transition_photoionization_internal(stim_recomb_corrected_photoionization_rate_coeff: DataFrame, photoionization_data_level_energies: Series) tuple[DataFrame, DataFrame][source]

Calculate photoionization probability unnormalized.

Parameters:
stim_recomb_corrected_photoionization_rate_coeff

Corrected photoionization rate coefficient from level i to k.

photoionization_data_level_energies

Energies of the states involved in photoionization.

Returns:
p_photoion_internal

DataFrame containing photoionization probabilities.

photoion_internal_metadata

DataFrame containing metadata for the photoionization transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.continuum_transition_photoionization_to_k_packet(stim_recomb_corrected_photoionization_rate_coeff: DataFrame, energies_bound_free_lower: Series) tuple[DataFrame, DataFrame][source]

Calculate photoionization probability unnormalized.

Parameters:
stim_recomb_corrected_photoionization_rate_coeff

Corrected photoionization rate coefficient from level i to k.

energies_bound_free_lower

Energies of the states involved in photoionization.

Returns:
p_photoion_to_k_packet

DataFrame containing photoionization probabilities.

photoion_to_k_packet_metadata

DataFrame containing metadata for the photoionization transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.continuum_transition_recombination_emission(spontaneous_recombination_coeff: DataFrame, energies_diff_bound_free: Series) tuple[DataFrame, DataFrame][source]

Calculate unnormalized probabilities and metadata for radiative recombination emission transitions (continuum).

Parameters:
spontaneous_recombination_coeff

Rate coefficient for spontaneous recombination from k to level i.

energies_diff_bound_free

Energy differences of the states involved in ionization

Returns:
p_recomb_emission

DataFrame containing unnormalized recombination emission probabilities.

recombination_emission_metadata

DataFrame containing metadata for the recombination emission transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.continuum_transition_recombination_internal(spontaneous_recombination_coeff: DataFrame, photoionization_data_level_energies: Series) tuple[DataFrame, DataFrame][source]

Calculate unnormalized probabilities of radiative recombination.

Parameters:
spontaneous_recombination_coeff

Rate coefficient for spontaneous recombination from k to level i.

photoionization_data_level_energies

Energies of levels with bound-free transitions.

Returns:
p_recombination

DataFrame containing recombination probabilities.

recombination_metadata

DataFrame containing metadata for the recombination transitions.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_adiabatic_cooling(electron_densities: DataFrame, t_electrons: Series, time_explosion: float) DataFrame[source]

Calculate the adiabatic cooling rate (unnormalized).

This function computes a simple adiabatic cooling term used as an unnormalized probability for macro-atom transitions that represent adiabatic losses.

Parameters:
electron_densities

Electron number densities (per shell / spatial zone).

t_electrons

Electron temperatures (same index/shape as electron_densities).

time_explosion

Time since explosion (seconds).

Returns:
p_adiabatic_cool

Unnormalized adiabatic cooling rates with the same index as electron_densities / t_electrons.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_collision_deexc_to_k_packet(coll_deexc_coeff: DataFrame, electron_densities: Series, delta_E_yg: Series) DataFrame[source]

Calculate collisional de-excitation to k packet probabilities.

Parameters:
coll_deexc_coeff

Collisional de-excitation coefficients.

electron_densities

Electron densities.

delta_E_yg

Energy differences between upper and lower state.

Returns:
p_coll_down_to_k_packet

DataFrame containing collisional de-excitation to k packet probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_collision_exc_internal(coll_exc_coeff: DataFrame, electron_densities: Series, energies_lower: Series) DataFrame[source]

Calculate collisional internal up probabilities.

Parameters:
coll_exc_coeff

Collisional excitation coefficients.

electron_densities

Electron densities.

energies_lower

Energy values of the lower levels.

Returns:
p_coll_exc_internal

DataFrame containing collisional internal up probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_collision_excitation_cool(coll_exc_coeff: DataFrame, electron_densities: Series, delta_E_yg: Series) DataFrame[source]

Calculate collisional excitation cooling rates (unnormalized) and aggregate by destination level.

Parameters:
coll_exc_coeff

Collisional excitation coefficients indexed by transitions.

electron_densities

Electron number densities per zone.

delta_E_yg

Energy differences between upper and lower state for the transitions.

Returns:
p_coll_excitation_cool

Aggregated collisional excitation cooling rates grouped by destination_level_idx.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_collision_internal_down(coll_deexc_coeff: DataFrame, electron_densities: Series, energies_lower: Series) DataFrame[source]

Calculate collisional internal de-excitation probabilities.

Parameters:
coll_deexc_coeff

Collisional de-excitation coefficients.

electron_densities

Electron densities.

energies_lower

Energy values of the lower levels.

Returns:
p_coll_internal_down

DataFrame containing collisional de-excitation probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_collision_ionization_emission(coll_ion_coeff: DataFrame, electron_densities: Series, energies_diff_bound_free: Series) DataFrame[source]

Calculate collisional ionization emission probabilities.

Parameters:
coll_ion_coeff

Collisional ionization coefficients.

electron_densities

Electron number densities.

energies_diff_bound_free

Energy differences of the states involved in ionization.

Returns:
p_coll_ionization_internal

Unnormalized collisional ionization emission probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_collision_ionization_internal(coll_ion_coeff: DataFrame, electron_densities: Series, energies_coll_lower_states: Series) DataFrame[source]

Calculate collisional ionization internal probabilities.

Parameters:
coll_ion_coeff

Collisional ionization coefficients.

electron_densities

Electron number densities.

energies_coll_lower_states

Energies of the lower states in the transitions.

Returns:
p_coll_ionization_internal

Unnormalized collisional ionization internal probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_collision_recombination_emission(coll_recomb_coeff: DataFrame, electron_densities: Series, energies_diff_bound_free: Series) DataFrame[source]

Calculate collisional recombination emission probabilities.

Parameters:
coll_recomb_coeff

Collisional recombination coefficients.

electron_densities

Electron number densities.

energies_diff_bound_free

Energy differences of the states involved in ionization.

Returns:
p_coll_recomb_emission

Unnormalized collisional recombination emission probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_collision_recombination_internal(coll_recomb_coeff: DataFrame, electron_densities: Series, energies_coll_lower_states: Series) DataFrame[source]

Calculate collisional recombination internal probabilities.

Parameters:
coll_recomb_coeff

Collisional recombination coefficients.

electron_densities

Electron number densities.

energies_coll_lower_states

Energies of the lower states in the transitions.

Returns:
p_coll_recomb_internal

Unnormalized collisional recombination internal probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_free_free_cooling(ion_number_density: Series | DataFrame, electron_densities: Series, t_electrons: Series) Series[source]

Calculate an unnormalized free-free (bremsstrahlung) cooling probability.

This routine estimates a free-free cooling rate used as an unnormalized probability for macro-atom cooling transitions. The implementation uses an approximate scaling with electron temperature and ion charge.

Parameters:
ion_number_density

Index or Series containing ion number densities (levelled by ion).

electron_densities

Electron number densities per zone.

t_electrons

Electron temperatures per zone.

Returns:
p_free_free_cool

Unnormalized free-free cooling rates with the same index as electron_densities / t_electrons.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_photoionization_internal(stim_recomb_corrected_photoionization_rate_coeff: DataFrame, photoionization_data_level_energies: Series) DataFrame[source]

Calculate photoionization probability unnormalized.

Parameters:
stim_recomb_corrected_photoionization_rate_coeff

Corrected photoionization rate coefficient from level i to k.

photoionization_data_level_energies

Energies of the states involved in photoionization.

Returns:
p_photoion_internal

DataFrame containing photoionization probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_photoionization_to_k_packet(stim_recomb_corrected_photoionization_rate_coeff: DataFrame, energies_diff_bound_free: Series) DataFrame[source]

Calculate photoionization probability unnormalized.

Parameters:
stim_recomb_corrected_photoionization_rate_coeff

Corrected photoionization rate coefficient from level i to k.

energies_diff_bound_free

Energy differences of the states involved in ionization.

Returns:
p_photoion_to_k_packet

DataFrame containing photoionization probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_recombination_emission(spontaneous_recombination_coeff: DataFrame, energies_diff_bound_free: Series) DataFrame[source]

Calculate unnormalized probabilities of radiative recombination emission transitions.

Parameters:
spontaneous_recombination_coeff

Rate coefficient for spontaneous recombination from k to level i.

energies_diff_bound_free

Energy differences of the states involved in ionization.

Returns:
p_recomb_emission

DataFrame containing unnormalized recombination emission probabilities.

tardis.opacities.macro_atom.macroatom_continuum_transitions.probability_recombination_internal(spontaneous_recombination_coeff: DataFrame, photoionization_data_level_energies: Series) DataFrame[source]

Calculate unnormalized probabilities of radiative recombination (internal transitions).

Parameters:
spontaneous_recombination_coeff

Rate coefficient for spontaneous recombination from k to level i.

photoionization_data_level_energies

Energies of levels with bound-free transitions.

Returns:
p_recomb_internal

DataFrame containing unnormalized recombination probabilities for internal transitions.