.. _physics-radiativeTransferPhotonPacket: Radiative Transfer Photon Packets ================================= Class providing photon packets for Monte Carlo radiative transfer calculations---discrete bundles of photon energy that are launched from sources and propagated through the computational domain, interacting with matter via absorption and scattering. Each packet carries a wavelength (in \AA), a wavelength range, a luminosity (in :math:`L_\odot`), a 3-D position, a direction of propagation, and a weight tracking how much of the original energy remains. The packet's trajectory through the grid determines the local radiation field and drives the ionization and heating of the matter. **Default implementation:** ``radiativeTransferPhotonPacketSimple`` Methods ------- ``wavelengthSet`` → ``void`` Set the wavelength (in \AA) of the photon packet. * ``double precision, intent(in ) :: wavelength`` ``wavelength`` → ``double precision`` Get the wavelength (in \AA) of the photon packet. ``wavelengthMinimumSet`` → ``void`` Set the minimum wavelength (in \AA) of the photon packet. * ``double precision, intent(in ) :: wavelength`` ``wavelengthMinimum`` → ``double precision`` Get the minimum wavelength (in \AA) of the photon packet. ``wavelengthMaximumSet`` → ``void`` Set the maximum wavelength (in \AA) of the photon packet. * ``double precision, intent(in ) :: wavelength`` ``wavelengthMaximum`` → ``double precision`` Get the maximum wavelength (in \AA) of the photon packet. ``luminositySet`` → ``void`` Set the luminosity (in :math:`L_\odot`) of the photon packet. * ``double precision, intent(in ) :: luminosity`` ``luminosity`` → ``double precision`` Get the luminosity (in :math:`L_\odot`) of the photon packet. ``positionSet`` → ``void`` Set the position of the photon packet. * ``double precision, intent(in ), dimension(3) :: position`` ``position`` → ``double precision, dimension(3)`` Get the position of the photon packet. ``directionSet`` → ``void`` Set the direction of the photon packet. * ``double precision, intent(in ), dimension(3) :: direction`` ``direction`` → ``double precision, dimension(3)`` Get the direction of the photon packet. ``sourceType`` → ``integer`` Get a integer type describing the source of the photon packet. ``sourceTypeSet`` → ``void`` Set an integer type describing the source of the photon packet. * ``integer, intent(in ) :: sourceType`` .. _physics-radiativeTransferPhotonPacketSimple: ``radiativeTransferPhotonPacketSimple`` --------------------------------------- A simple photon packet class for Monte Carlo radiative transfer that tracks the minimum required properties: wavelength, luminosity, three-dimensional position, and propagation direction. The initial wavelength and luminosity of each packet are set by ``[wavelength]`` and ``[luminosity]``, with wavelength bounds given by ``[wavelengthMinimum]`` and ``[wavelengthMaximum]``. **(Default implementation)** **Methods** * ``calculationReset`` — Reset memoized calculations. **Parameters** * ``[wavelength]`` (real; default ``1.0d4``) — The wavelength of the photon packet (in \AA). * ``[wavelengthMinimum]`` (real; default ``0.5d4``) — The minimum wavelength of the photon packet (in \AA). * ``[wavelengthMaximum]`` (real; default ``2.0d4``) — The maximum wavelength of the photon packet (in \AA). * ``[luminosity]`` (real; default ``1.0d0``) — The luminosity of the photon packet (in :math:`L_\odot`).