tardis.spectrum.virtual_packet module
Virtual-packet spectrum post-processing.
- tardis.spectrum.virtual_packet.add_vpacket_collection_to_histogram(v_packets_energy_hist: ndarray[tuple[Any, ...], dtype[float64]], vpacket_collection: VPacketCollection, spectrum_frequency_grid: ndarray[tuple[Any, ...], dtype[float64]], delta_nu: float) None[source]
Add virtual packet collection energies to a spectrum histogram.
- Parameters:
- v_packets_energy_histnumpy.ndarray
Energy histogram to update in place.
- vpacket_collectionVPacketCollection
Finalized virtual packet collection.
- spectrum_frequency_gridnumpy.ndarray
Frequency-bin edges for the virtual-packet histogram.
- delta_nufloat
Frequency bin width.
- tardis.spectrum.virtual_packet.calculate_virtual_packet_spectrum(geometry_state_numba: NumbaHomologousRadial1DGeometry | NumbaRadial1DGeometry, time_explosion: float, opacity_state_numba: OpacityStateNumba, montecarlo_configuration: MonteCarloConfiguration, spectrum_frequency_grid: ndarray[tuple[Any, ...], dtype[float64]], tracker_events: TrackerEventArrays, vpacket_collections: List[VPacketCollection], tau_russian: float, survival_probability: float, trace_vpacket_volley_function: Callable[[...], None]) ndarray[tuple[Any, ...], dtype[float64]][source]
Calculate a virtual-packet spectrum from real-packet histories.
- Parameters:
- geometry_state_numba
Numba geometry object used for real-packet transport.
- time_explosionfloat
Time since explosion in seconds. Non-homologous mode accepts but does not use this value.
- opacity_state_numba
Frozen opacity state used for real-packet transport.
- montecarlo_configurationMonteCarloConfiguration
Monte Carlo transport configuration.
- spectrum_frequency_gridnumpy.ndarray
Frequency-bin edges for the virtual-packet histogram.
- tracker_eventsTrackerEventArrays
Completed real-packet event histories, e.g. from
tracker_full_df_to_event_arrays.- vpacket_collectionsnumba.typed.List
Unused virtual packet collection for each real packet, in the order of
tracker_events.packet_id, e.g. fromcreate_vpacket_collections. Filled and finalized in place.- tau_russianfloat
Optical depth above which virtual packets survive by survival_probability.
- survival_probabilityfloat
Probability that a tau_russian virtual packet survives.
- trace_vpacket_volley_function
Mode-specific virtual-packet propagation function.
- Returns:
- numpy.ndarray
Virtual-packet energy histogram on
spectrum_frequency_grid.
- Raises:
- ValueError
If there is not exactly one unused collection per real packet.
- tardis.spectrum.virtual_packet.create_vpacket_collections(no_of_packets: int, spectrum_frequency_grid: ndarray[tuple[Any, ...], dtype[float64]], vpacket_spawn_start_frequency: float, vpacket_spawn_end_frequency: float, number_of_vpackets: int) List[VPacketCollection][source]
Create per-packet virtual packet collections.
- Parameters:
- no_of_packetsint
Number of real packets.
- spectrum_frequency_gridnumpy.ndarray
Frequency-bin edges for the real- and virtual-packet histograms. n + 1 edges for n bins, with uniform spacing.
- vpacket_spawn_start_frequencyfloat
Lowest real-packet frequency that spawns virtual packets [Hz].
- vpacket_spawn_end_frequencyfloat
Highest real-packet frequency that spawns virtual packets [Hz].
- number_of_vpacketsint
Number of virtual packets spawned per real packet interaction.
- Returns:
- numba.typed.List
Per-packet virtual packet collections.