The model_components dictionary

All of the physical parameters the user provides when creating a model_galaxy object are passed within the model_components dictionary. This page will take you though all of the available options. For a quick introduction take a look at the first iPython notebook example.

In the below blocks of example code, parameters are set equal to “mandatory” if they must be specified, or equal to their default values if they do not need to be specified.

Global parameters

There are a few global parameters which can be inserted directly into model_components.

model_components = {}
model_components["redshift"] = mandatory  # Observed redshift
model_components["t_bc"] = 0.01           # Max age of birth clouds: Gyr
model_components["veldisp"] = 0.          # Velocity dispersion: km/s

model_components["sfh_comp"] = sfh_comp   # Dict containing SFH info

All other parameter values must first be placed within component dictionaries, which are then inserted into model_components. Aside from observed redshift, the only other thing model_components must contain to be valid is at least one star-formation history component.

Star-formation history components

Each SFH component is an individual parametric (or non-parametric) model for the SFH of the galaxy. Bagpipes can build up complex star-formation histories by superimposing multiple components. Components of the same type should be labelled sequentially in model_components e.g. burst1, burst2 etc.

All star-formation history components require the following mandatory keys to be specified:

sfh_comp = {}
sfh_comp["massformed"] = mandatory   # Log_10 total stellar mass formed: M_Solar
sfh_comp["metallicity"] = mandatory  # Metallicity: Z_sol = 0.02

All SFH components also take one or more additional parameters describing their shape. All of the available options are listed below.

burst = {}                           # Delta function burst
burst["age"] = mandatory             # Time since burst: Gyr

constant = {}                        # tophat function
constant["age_max"] = mandatory      # Time since SF switched on: Gyr
constant["age_min"] = mandatory      # Time since SF switched off: Gyr

exponential = {}                     # Tau model e^-(t/tau)
exponential["age"] = mandatory       # Time since SFH began: Gyr
exponential["tau"] = mandatory       # Timescale of decrease: Gyr

delayed = {}                         # Delayed Tau model t*e^-(t/tau)
delayed["age"] = mandatory           # Time since SF began: Gyr
delayed["tau"] = mandatory           # Timescale of decrease: Gyr


lognormal = {}                       # lognormal SFH
lognormal["tmax"] = mandatory        # Age of Universe at peak SF: Gyr
lognormal["fwhm"] = mandatory        # Full width at half maximum SF: Gyr

dblplaw = {}                         # double-power-law
dblplaw["alpha"] = mandatory         # Falling slope index
dblplaw["beta"] = mandatory          # Rising slope index
dblplaw["tau"] = mandatory           # Age of Universe at turnover: Gyr

iyer = {}                            # The model of Iyer et al. (2019)
iyer["sfr"] = mandatory              # Solar masses per year
iyer["bins"] = mandatory             # Integer
iyer["bins_prior"] = "dirichlet"     # This prior distribution must be used
iyer["alpha"] = mandatory            # Either integer or list of integers

custom = {}                          # A custom array of SFR values
custom["history"] = mandatory        # sfhist_array or "sfhist.txt": yr, M_Solar/yr

If a custom SFH component is specified, the “history” key must contain either an array or a string giving the path to a file containing the star formation history. In both cases the format is a column of ages in years followed by a column of star formation rates in Solar masses per year.

Nebular component

The inclusion of the nebular component tells Bagpipes to include emission lines and nebular continuum emission in the model. These come from pre-computed Cloudy grids. The nebular emission model has only one free parameter, log_10 of the ionization parameter. The metallicity of the gas in the stellar birth clouds is assumed to be the same as the stars producing the ionizing flux.

nebular = {}
nebular["logU"] = mandatory          # Log_10 of the ionization parameter.

Dust attenuation and emission component

The dust component governs attenuation and emission processes due to dust. Energy balance is assumed, such that all attenuated light is re-radiated.

Four dust attenuation models are implemented in Bagpipes, the Calzetti et al. (2000) model, the Cardelli et al. (1989) model, a model based on Charlot & Fall (2001) and the model of Salim et al. (2018). The dust emission models come from Draine + Li (2007).

dust = {}
dust["type"] = mandatory   # Attenuation law: "Calzetti", "Cardelli", "CF00" or "Salim"
dust["Av"] = mandatory     # Absolute attenuation in the V band: magnitudes
dust["eta"] = 1.           # Multiplicative factor on Av for stars in birth clouds

dust["n"] = 1.             # Power-law slope of attenuation law ("CF00" type only)

dust["delta"] = 0.         # Deviation from Calzetti slope ("Salim" type only)
dust["B"] = 0.             # 2175A bump strength ("Salim" type only)

# Dust emission parameters
dust["qpah"] = 2.          # PAH mass fraction
dust["umin"] = 1.          # Lower limit of starlight intensity distribution
dust["gamma"] = 0.01       # Fraction of stars at umin