Galacticus is a semi-analytic model of galaxy formation. It solves the equations that govern the formation and evolution of galaxies within a hierarchically assembling network of dark matter halos as occurs in cold dark matter dominated universes. It is designed for modularity and flexibility to allow for easy extension and adaptation.

Wednesday, February 19, 2014

It's been quiet around here recently. Not because development of Galacticus has slowed down - quite the opposite, development is proceeding rapidly and v0.9.4 (to be released around September 2014) should have some big new features. To prove that development is still happening, here's a short tutorial on Galacticus' functionality to postprocess stellar spectra (motivated by the recent addition of the Inoue et al. 2014 model of IGM absorption).

Stellar luminosities are computed by convolving a library of simple stellar populations with the star formation history of each galaxy. Galacticus allows the spectra of those simple stellar populations to be postprocessed (after being read from file or internally generated for example) before they are utilized in the convolution integral. This postprocessing can modify the spectra in arbitrary ways that depend on wavelength, redshift, and age of stellar population. Furthermore, Galacticus allows you to chain together stellar spectra postprocessors into a set to allow multiple postprocessings to be applied. Furthermore again(!), you can define an arbitrary number of sets and apply different sets to different luminosities.

Typical uses of stellar spectra postprocessors include accounting for absorption of galaxy light by the intervening IGM, or capturing only the light from recent star formation (erhaps so that additional dust extinction can be applied to the light of recently formed stars). A full list of the available postprocessors can be found in the Galacticus documentation.

If you don't specify a postprocessing set, the "default" set (consisting of the inoue2014 postprocessor) is applied to each luminosity calculation. To specify other postprocessing sets add the following to your parameter file:

where one set must be specified for each luminosity specified in the luminosityFilter parameter. Note that set names can be reused in order to apply the same postprocessor set to multiple luminosities.

The chain of postprocessors to apply for each set is then specified as follows: <parameter> <name>stellarPopulationSpectraPostprocessRecentMethods</name> <value>inoue2014 recent</value> </parameter> <parameter> <name>stellarPopulationSpectraPostprocessUnabsorbedMethods</name> <value>identity</value> </parameter> <parameter> <name>stellarPopulationSpectraPostprocessRecentUnabsorbedMethods</name> <value>recent</value> </parameter>

In this case we've constructed three new sets, in addition to the default set (which applies just the inoue2014 postprocessor). The recent set applies both the inoue2014 IGM absorption postprocessor, followed by the recent postprocessor to retain only recently emitted light. The unabsorbed set ignores IGM absorption entirely - it does this by using the identity postprocessor which leaves the spectrum unaffected. Finally, the recentUnabsorbed set applies only the recent filter while ignoring IGM absorption.

In this way it is relatively easy to extract multiple different measures of luminosity from a Galacticus model. For example, you could construct four postprocessor sets, each corresponding to one of the four different IGM absorption models (lycSuppress, madau1995, meiksin2006, and inoue2014 - the latter three of which are shown below for a galaxy at z=3) and apply these to the same luminosity filter to assess how luminosity depends on the IGM model used.