.. _physics-stellarPopulation: Stellar Populations =================== Class providing stellar populations---composite descriptions of a coeval group of stars formed with a given initial mass function, metallicity, and age. For a given population, implementations return the mass recycled back to the :term:`ISM` per unit stellar mass formed, the metal yield, and the energy input rate from stellar evolution as a function of age interval. Both explicit (time-resolved) and instantaneous recycling approximations are supported. The spectra method returns the associated :galacticus-class:`stellarPopulationSpectraClass` object for computing integrated luminosities. **Default implementation:** ``stellarPopulationStandard`` Methods ------- ``rateRecycling`` → ``double precision`` Return the rate of mass recycling (per unit initial stellar mass formed, per unit time) from this stellar population back to the ISM over the age interval :math:`[\mathrm{ageMinimum}, \mathrm{ageMaximum}]` for the given elemental abundances. * ``type (abundances), intent(in ) :: abundances_`` * ``double precision , intent(in ) :: ageMinimum , ageMaximum`` ``uniqueID`` → ``integer(c_size_t)`` Return the unique integer identifier assigned to this stellar population, which distinguishes populations with different IMFs, metallicities, or other properties and is used to cache pre-computed integrals. ``rateYield`` → ``double precision`` Return the rate of metal (element) yield (per unit initial stellar mass formed, per unit time) from this stellar population over the age interval :math:`[\mathrm{ageMinimum}, \mathrm{ageMaximum}]`, optionally restricted to a specific element index. * ``type (abundances), intent(in ) :: abundances_`` * ``double precision , intent(in ) :: ageMinimum , ageMaximum`` * ``integer , intent(in ), optional :: elementIndex`` ``rateEnergy`` → ``double precision`` Return the rate of mechanical energy input (per unit initial stellar mass formed, per unit time) from stellar evolution processes (supernovae, winds) in this population over the age interval :math:`[\mathrm{ageMinimum}, \mathrm{ageMaximum}]`. * ``type (abundances), intent(in ) :: abundances_`` * ``double precision , intent(in ) :: ageMinimum , ageMaximum`` ``recycledFractionInstantaneous`` → ``double precision`` Return the recycled fraction from this population in the instantaneous approximation. ``yieldInstantaneous`` → ``double precision`` Return the metal yield from this population in the instantaneous approximation. ``spectra`` → ``class(stellarPopulationSpectraClass)`` Return the :galacticus-class:`stellarPopulationSpectraClass` object associated with this stellar population, which provides methods to compute the integrated spectral energy distribution as a function of wavelength and age. .. _physics-stellarPopulationStandard: ``stellarPopulationStandard`` ----------------------------- A standard stellar population class, which uses a fully non-instantaneous, metal-dependent calculation of recycling, metal production and rates. These rates are determined from the :galacticus-class:`stellarPopulationClass` object provided by a :galacticus-class:`stellarPopulationSelectorClass`. It is possible to force this method to operate in the instantaneous recycling approximation limit (which can be useful for testing and comparison) by setting: .. code-block:: none                   where the recycled fraction and metal yield are specified directly, or .. code-block:: none                                  in which case the recycled fraction and metal yield will be computed that all stars with mass greater than ``massLongLived`` have fully evolved, and energy input (from stellar winds and supernovae) will be computed assuming that stellar populations instantaneously reach an age of ``ageEffective``. Similar options are available to control whether metal yields and energy input from stellar populations are computed using the fully non-instantaneous or instantaneous approximations, e.g.: .. code-block:: none                                                    **(Default implementation)** **Methods** * ``factors`` — Compute factors needed for tidal tensor calculation. * ``tidalTensorGet`` — Get the tidal tensor. **Parameters** * ``[instantaneousRecyclingApproximation]`` (boolean; default ``.false.``) — If true, then use an instantaneous recycling approximation when computing recycling rates. * ``[instantaneousYieldApproximation]`` (boolean; default ``.false.``) — If true, then use an instantaneous recycling approximation when computing yield rates. * ``[instantaneousEnergyInputApproximation]`` (boolean; default ``.false.``) — If true, then use an instantaneous recycling approximation when computing energy input rates. * ``[massLongLived]`` (real; default ``1.0d0``) — The mass below which stars are assumed to be infinitely long-lived in the instantaneous approximation for stellar evolution. * ``[ageEffective]`` (real; default ``13.8d0``) — The effective age to use for computing SNeIa yield when using the instantaneous stellar evolution approximation. * ``[recycledFraction]`` (real; default ``0.0d0``) — The recycled fraction to use in the instantaneous stellar evolution approximation. (If not specified it will be computed internally.) * ``[metalYield]`` (real; default ``0.0d0``) — The metal yield to use in the instantaneous stellar evolution approximation. (If not specified it will be computed internally.)