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 calculate_cosmic_weights() function, a star formation history model has to be provided. This model is given as a dictionary to the function.

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.

Cosmic Star Formation Rate Densities

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.

Metallicity Evolution

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 calculate_cosmic_weights() function, similar to the star formation history model. Additionally, specific options can be provided to the function:

General options for the metallicity distribution

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

Summary of SFH MODEL options

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

SFH_model = {
    "SFR": "Madau+Dickinson14",
    "sigma": 0.39,
    "Z_min": 1e-11,
    "Z_max": 0.3,
    "normalise": True,
}