.. _physics-radiativeTransferSource: Radiative Transfer Photon Sources ================================= Class providing photon sources for Monte Carlo radiative transfer calculations---objects that emit photon packets into the computational domain. Each implementation describes a specific type of radiation source (e.g.\ a point source, a stellar population, an AGN, or a uniform field) and provides the luminosity spectrum (in :math:`L_\odot` \AA\ :math:`^{-1}`), the integrated luminosity over a wavelength range, and a method to initialize photon packet properties (wavelength, position, direction, and luminosity weight) drawn from the source's spatial and spectral distribution. **Default implementation:** ``radiativeTransferSourcePoint`` Methods ------- ``initializePhotonPacket`` → ``void`` Initialize a photon packet from the source. * ``class(radiativeTransferPhotonPacketClass), intent(inout) :: photonPacket`` ``spectrum`` → ``double precision`` Return the spectrum (in units of :math:`L_\odot` \AA\ :math:`^{-1}`) of the source at the given ``wavelength``. * ``double precision, intent(in ) :: wavelength`` * ``integer , intent(in ), optional :: sourceType`` ``luminosity`` → ``double precision`` Return the luminosity (in units of :math:`L_\odot`) of the source at the given wavelength range. * ``double precision, intent(in ) :: wavelengthMinimum, wavelengthMaximum`` * ``integer , intent(in ), optional :: sourceType`` ``sourceTypeCount`` → ``integer`` Return the number of source types. ``sourceTypeName`` → ``type(varying_string)`` Return the name of the requested of source type. * ``integer, intent(in ) :: sourceType`` .. _physics-radiativeTransferSourceDistributed: ``radiativeTransferSourceDistributed`` -------------------------------------- A photon source class for spatially extended radiative transfer sources whose emission is distributed according to a specified mass distribution. Photon packets are launched from positions sampled from the mass distribution, with spectra and a descriptive label provided via the ``[radiativeTransferSpectrum]`` object and ``[label]`` parameter. **Parameters** * ``[position]`` (default ``[0.0d0,0.0d0,0.0d0]``) — The position of the distributed source. * ``[label]`` (default ``var_str('unknown')``) — A descriptive label for the source. .. _physics-radiativeTransferSourcePoint: ``radiativeTransferSourcePoint`` -------------------------------- A photon source class for unresolved point-like radiative transfer sources that emit isotropically from a fixed location in three-dimensional space. The source position and a descriptive label are given by the ``[position]`` and ``[label]`` parameters, and the spectral shape is provided via the ``[radiativeTransferSpectrum]`` object. **(Default implementation)** **Parameters** * ``[position]`` (default ``[0.0d0,0.0d0,0.0d0]``) — The position of the point source. * ``[label]`` (default ``var_str('unknown')``) — A descriptive label for the source. .. _physics-radiativeTransferSourceSummation: ``radiativeTransferSourceSummation`` ------------------------------------ A photon source class for summation sources. **Methods** * ``list`` — Return a list of all sub-components.