tardis.transport.montecarlo.modes.nonhomologous.interaction_events module

class tardis.transport.montecarlo.modes.nonhomologous.interaction_events.LineInteractionType(*values)[source]

Bases: IntEnum

DOWNBRANCH = 1
MACROATOM = 2
SCATTER = 0
tardis.transport.montecarlo.modes.nonhomologous.interaction_events.adiabatic_cooling(r_packet)[source]

Adiabatic cooling - equivalent to destruction of the packet

Parameters:
r_packet: tardis.transport.montecarlo.r_packet.RPacket
tardis.transport.montecarlo.modes.nonhomologous.interaction_events.bf_cooling(r_packet, geometry, opacity_state, enable_full_relativity)[source]

Bound-Free Cooling - Determine and run bf emission from cooling

Parameters:
r_packettardis.transport.montecarlo.r_packet.RPacket
geometryNumbaRadial1DGeometry
opacity_statetardis.transport.montecarlo.numba_interface.OpacityState
tardis.transport.montecarlo.modes.nonhomologous.interaction_events.bound_free_emission(r_packet, geometry, opacity_state, continuum_id, enable_full_relativity)[source]

Bound-Free emission - set the frequency from photo-ionization

Parameters:
r_packettardis.transport.montecarlo.r_packet.RPacket
geometryNumbaRadial1DGeometry
opacity_statetardis.transport.montecarlo.numba_interface.OpacityState
continuum_idint
tardis.transport.montecarlo.modes.nonhomologous.interaction_events.determine_bf_macro_activation_idx(opacity_state, nu, chi_bf_contributions, active_continua_index)[source]

Determine the macro atom activation level after bound-free absorption.

Parameters:
nufloat

Comoving frequency of the r-packet.

chi_bf_contributionsnumpy.ndarray, dtype float

Cumulative distribution of bound-free opacities at frequency nu.

active_continuanumpy.ndarray, dtype int

Continuum ids for which absorption is possible for frequency nu.

Returns:
float

Macro atom activation idx.

tardis.transport.montecarlo.modes.nonhomologous.interaction_events.free_free_emission(r_packet, geometry, opacity_state, enable_full_relativity)[source]

Free-Free emission - set the frequency from electron-ion interaction

Parameters:
r_packettardis.transport.montecarlo.r_packet.RPacket
geometryNumbaRadial1DGeometry
opacity_statetardis.transport.montecarlo.numba_interface.OpacityState
tardis.transport.montecarlo.modes.nonhomologous.interaction_events.get_current_line_id(nu, line_list)[source]

Get the line id corresponding to a frequency nu in a line list

Parameters:
nufloat
line_listnp.ndarray
tardis.transport.montecarlo.modes.nonhomologous.interaction_events.line_emission(r_packet: RPacket, emission_line_id: int, geometry: NumbaRadial1DGeometry, opacity_state: OpacityStateNumba, enable_full_relativity: bool) → None[source]

Set packet frequency and exclude the emitting line in both directions.

Parameters:
r_packetRPacket

Packet whose outgoing frequency and line cursors are updated.

emission_line_idint

Line selected by the emission channel.

geometryNumbaRadial1DGeometry

Geometry supplying the local velocity.

opacity_stateOpacityStateNumba

Opacity state containing the line frequencies.

enable_full_relativitybool

Whether full relativistic transformations are enabled.

tardis.transport.montecarlo.modes.nonhomologous.interaction_events.sample_nu_free_bound(opacity_state, shell, continuum_id)[source]
Attributes:
nu_fb_samplerfloat

Frequency of the free-bounds emission process

tardis.transport.montecarlo.modes.nonhomologous.interaction_events.sample_nu_free_free(opacity_state, shell)[source]
Attributes:
nu_ff_samplerfloat

Frequency of the free-free emission process

tardis.transport.montecarlo.modes.nonhomologous.interaction_events.thomson_scatter(r_packet, geometry, enable_full_relativity)[source]

Thomson scattering — no longer line scattering

  1. get the doppler factor at that position with the old angle

  2. convert the current energy and nu into the comoving frame with the old mu

  3. Scatter and draw new mu - update mu

  4. Transform the comoving energy and nu back using the new mu

Parameters:
r_packettardis.transport.montecarlo.r_packet.RPacket
geometry