.. _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** * ``[efficiencyWind]`` (default ``2.2157d-3``) — The coupling efficiency of the black hole accretion-driven wind, defined as the fraction of the accreted rest-mass energy that is deposited as kinetic or thermal energy into the surrounding gas via AGN-driven outflows. * ``[redshiftReionization]`` (default ``9.97d0``) — The redshift of reionization below which baryonic accretion onto halos is suppressed due to the ionizing background heating the intergalactic medium and preventing gas from accreting onto low-mass halos. * ``[opticalDepthReionization]`` — The optical depth to electron scattering below which baryonic accretion is suppressed. * ``[velocitySuppressionReionization]`` (default ``35.0d0``) — The velocity scale below which baryonic accretion is suppressed. * ``[accretionNegativeAllowed]`` (default ``.true.``) — Specifies whether negative accretion (mass loss) is allowed in the simple halo accretion model. * ``[accretionNewGrowthOnly]`` (default ``.false.``) — Specifies whether accretion from the :term:`IGM` is allowed only when a halo is growing past its previous greatest mass. * ``[acceptedStateCount]`` (default ``100``) — The number of states to use in acceptance rate statistics. * ``[timeStepRelative]`` (default ``0.1d0``) — The maximum allowed relative change in time for a single step in the evolution of a node. * ``[timeStepAbsolute]`` (default ``1.0d0``) — The maximum allowed absolute change in time (in Gyr) for a single step in the evolution of a node. * ``[timeStepMinimum]`` (default ``1.0d-6``) — The smallest timestep to use in profiling ODE solver steps. * ``[timeStepMaximum]`` (default ``1.0d+1``) — The largest timestep to use in profiling ODE solver steps. * ``[timeStepPointsPerDecade]`` (default ``3``) — The number of bins per decade of timestep to use when profiling ODE solver steps. * ``[wavelength]`` (default ``1.0d4``) — The wavelength of the photon packet (in \AA). * ``[wavelengthMinimum]`` (default ``0.5d4``) — The minimum wavelength of the photon packet (in \AA). * ``[wavelengthMaximum]`` (default ``2.0d4``) — The maximum wavelength of the photon packet (in \AA). * ``[luminosity]`` (default ``1.0d0``) — The luminosity of the photon packet (in :math:`L_\odot`). * ``[massRatioMajorMerger]`` (default ``0.25d0``) — The mass ratio above which mergers are considered to be "major". * ``[destinationGasMinorMerger]`` (default ``var_str('spheroid')``) — The component to which satellite galaxy gas moves to as a result of a minor merger. * ``[destinationStarsMinorMerger]`` (default ``var_str('spheroid')``) — The component to which satellite galaxy stars move to as a result of a minor merger. * ``[degreesOfFreedom]`` (default ``3.0d0``) — Number of degrees of freedom to assume when computing the energy density of cooling gas in the "simple" cooling time class. * ``[timeScale]`` (default ``1.0d0``) — The timescale (in Gyr) for cooling in the simple cooling rate model. * ``[reionizationRedshift]`` (default ``9.97d0``) — The redshift of reionization in the simple :term:`IGM` state model. * ``[reionizationTemperature]`` (default ``1.0d4``) — The post-reionization temperature (in units of Kelvin) in the simple :term:`IGM` state model. * ``[preReionizationTemperature]`` (default ``10.0d0``) — The pre-reionization temperature (in units of Kelvin) in the simple :term:`IGM` state model. * ``[useFormationHalo]`` (default ``.false.``) — Specifies whether or not the "formation halo" should be used when solving for the radii of galaxies. * ``[solveForInactiveProperties]`` (default ``.true.``) — If true, galactic structure is solved for during evaluation of inactive property integrals. Otherwise, structure is not solved for during this phase---this should only be used if the inactive property integrands *do not* depend on galactic structure. * ``[rateFractionalMaximum]`` (default ``10.0d0``) — The maximum fractional mass loss rate per dynamical time in the simple model of mass loss due to tidal stripping. * ``[beta]`` (default ``1.0d0``) — The scaling factor which multiplies the tidal mass loss rate. * ``[OmegaMatter]`` (default ``0.3153d0``) — The density of matter in the Universe in units of the critical density. * ``[OmegaBaryon]`` (default ``0.04930d0``) — The density of baryons in the Universe in units of the critical density. * ``[OmegaDarkEnergy]`` (default ``0.6847d0``) — The density of dark energy in the Universe in units of the critical density. * ``[temperatureCMB]`` (default ``2.72548d0``) — The present day temperature of the :term:`CMB` in units of Kelvin. * ``[HubbleConstant]`` (default ``67.36d0``) — The present day value of the Hubble parameter in units of km/s/Mpc.