.. _star_formation_history: .. py:currentmodule:: posydon.popsyn.synthetic_population Star Formation History ====================== The star formation history is a key component in population synthesis, since it determined the amount of stars that are formed at each moment in time. POSYDON implements two methods for the consideration of the star formation history: 1. As part of the initial sampling, where a star formation history is used to determine the number of stars that are formed at each time step. This is especially useful for simulations of "living" stars in a cluster or galaxy, where the star formation history can be continuous, instead of a burst. Together with a maximum age, it provides a way to generate a realistic distribution of stars in a specific environment. 2. During post-processing step, where the star formation history is used to distribute transient events, "instantaneous" events, such as supernovae, that cover a large metallicity range. In this case, the star formation history is used to place the events at different birth times across cosmic time. This approach is described in `Andrews et al. 2025 `_ On this page, we will describe the star formation histories in more detail and how they are used in POSYDON. In general, the cosmic star formation rate density and metallicity evolution are considered independently, although some star formation histories may include metallicity evolution as well, such as the IllustrisTNG model. When calculating the cosmic_weights of events in the :func:`~TransientPopulation.calculate_cosmic_weights` function, a star formation history model has to be provided. This model is given as a dictionary to the function. .. code-block:: python SFH_model = { "SFR": "IllustrisTNG", } In the example above, we used the "IllustrisTNG" model (similar to in the tutorial), which is a star formation history model that includes metallicity evolution, but other models are available. .. note:: To use a star formation history model, the population needs to be created with a burst star formation in the population synthesis. Cosmic star formation rate densities ------------------------------------- .. warning:: Please make sure you use the correct IMF with the correct SFH model. If these are mismatched, an artificial offset can be introduced to the rates, due to the different weightings of the stars in the IMF. .. list-table:: Cosmic Star Formation Rate Densities :header-rows: 1 :widths: 10 30 10 30 * - Name - Reference - IMF assumption - Additional required parameters * - ``Madau+Dickinson14`` - `Madau & Dickinson (2014) `_ - Salpeter - ``sigma`` (float; string) the standard deviation of the log-normal distribution. * - ``Madau+Fragos17`` - `Madau & Fragos (2017) `_ - Kroupa 2001 - ``sigma`` (float; string) the standard deviation of the log-normal distribution. * - ``Fujimoto+24`` - `Fujimoto et al. (2024) `_ - Kroupa 2001 - ``sigma`` (float; string) the standard deviation of the log-normal distribution. * - ``Neijssel+19`` - `Neijssel et al. (2019) `_ - Kroupa 2001 - | ``sigma`` (float; string) the standard deviation of the log-normal distribution. | Note that this models uses a log10 scaling instead of a natural logarithm scaling for the metallicity, which | affects the conversion of ``sigma``. * - ``IllustrisTNG`` - `IllustrisTNG `_ - Kroupa 2001 - None * - ``Chruslinska+21`` - `Chruslinska et al. (2021) `_ - Kroupa 2001 - | ``sub_model`` (string) the sub-model to use, any of the available model names. | ``Z_solar_scaling`` (string) what solar metallicity to use, ``"Asplund09"``, ``"AndersGrevesse89"``, | ``"GrevesseSauval98"``, or ``"Villante14"``. * - ``Zavala+21`` - `Zavala et al. (2021) `_ - Chabrier 2003 - | ``sigma`` (float; string) the standard deviation of the log-normal distribution. | ``sub_model`` (string) the sub-model to use, ``"min"`` or ``"max"``. For the minimum or maximum | star formation rate density, respectively. Metallicity evolution ---------------------- The cosmic star formation rate density (CSFRD) is combined with a metallicity evolution model to distribute metallicity specific events across cosmic time. However, the majority of CSFRD models do not include a metallicity evolution. We, therefore, add the ``Madau+Fragos17`` option as the default. .. list-table:: Metallicity Evolution :header-rows: 1 :widths: 10 30 * - Name - Description * - ``Madau+Fragos17`` - Uses the metallicity evolution from `Madau & Fragos (2017) `_. * - ``Neijssel+19`` - Uses the metallicity evolution from `Neijssel et al. (2019) `_. The metallicity distribution is given as a dictionary to the :func:`~TransientPopulation.calculate_cosmic_weights` function, similar to the star formation history model. Additionally, specific options can be provided to the function: .. list-table:: General options for the metallicity distribution :header-rows: 1 :widths: 10 30 * - Name - Description * - ``normalise`` - | This makes sure that the metallicity distribution is normalised to 1, in the metallicity range. | If ``Z_min`` and/or ``Z_max`` are provided, the distribution will be normalised within that range. | Otherwise, the lower edge of the lowest bin and the upper edge of the highest bin will be used as boundaries. | This ensures the full CSFRD is used. * - ``Z_min`` - | The minimum metallicity to consider in the distribution (in absolute units). | If not provided, the lowest bin edge of the metallicity distribution will be used. * - ``Z_max`` - | The maximum metallicity to consider in the distribution (in absolute units). | If not provided, the highest bin edge of the metallicity distribution will be used. .. note:: For ``Z_min`` and ``Z_max``, the boundaries can be placed inside the considered metallicity bins. This removes any contribution from the bins (and part of bins) outside the range. Summary of SFH MODEL options ---------------------------- .. list-table:: Summary of SFH MODEL options :header-rows: 1 :widths: 10 30 * - Name - Description * - ``SFR`` - The name of the star formation rate density model to use. See the table above for available models. * - ``sigma`` - | The standard deviation of the metallicity distribution, if applicable. | This is a float or string, where the string can be a name of a model | ``Bavera+20`` (sigma=0.5) or ``Neijssel+19`` (sigma=0.39). * - ``Z_min`` - | The minimum metallicity to consider in the distribution (in absolute units). | Default = None. If not provided, the lowest bin edge of the metallicity distribution will be used. * - ``Z_max`` - | The maximum metallicity to consider in the distribution (in absolute units). | Default = None. If not provided, the highest bin edge of the metallicity distribution will be used. * - ``normalise`` - | Whether to normalise the distribution to 1, in the metallicity range. | Default = False. | If ``Z_min`` and/or ``Z_max`` are provided, the distribution will be normalised within that range. | Otherwise, the lower edge of the lowest bin and the upper edge of the highest bin will be used as boundaries. Depending on the specific SFR models, additional parameters may be required. See the documentation of the specific model for more details. Example ------- .. code-block:: python SFH_model = { "SFR": "Madau+Dickinson14", "sigma": 0.39, "Z_min": 1e-11, "Z_max": 0.3, "normalise": True, }