SAGE is a publicly available code-base for modelling galaxy formation in a
cosmological context. A description of the model and its default calibration
results can be found in `Bradley et al. (2026) In Preparation`_.
SAGE is a significant update to that previously used in Croton et al. (2016).
SAGE is written in C and was built to be modular and customisable.
It will run on any N-body simulation whose trees are organised in a supported format and contain a minimum set of basic halo properties.
For testing purposes, treefiles for the mini-Millennium Simulation are available
here.
Galaxy formation models built using SAGE on the Millennium, Bolshoi and simulations can be downloaded at the
Theoretical Astrophysical Observatory (TAO). You can also find SAGE on ascl.net.
SAGE should compile on most systems out of the box and the only required tool is a C99 compiler.
GSL is recommended but not necessary.
SAGE can be installed by cloning the GitHub repository:
$ git clone https://github.com/MBradley1985/SAGE26.git $ cd SAGE26/
To create the SAGE executable, simply run the following command:
$ make
If this the first time running the code, we recommend executing
first_run.sh. This script will initialize the directories for the default
parameter file and download the Mini-millennium dark matter halo trees:
$ ./first_run.sh
After this, the model can be run using:
$ ./sage input/millennium.par
or in parallel as:
$ mpirun -np <NUMBER_PROCESSORS> ./sage input/millennium.par
If you already have Python 3 installed, you can switch to the plotting directory, where you will find two scripts,
allresults-local.py (for z=0 results) and allresults-history.py (for higher redshift results).
If you're following the above, these scripts can run as-is to produce a series of figures you can use to check the model output.
$ python plotting/allresults-local.py $ python plotting/allresults-history.py
The Particle Swarm Optimization (PSO) framework for automated parameter calibration is now available as a separate package: SAGE-PSO.
You can clone the PSO package directly from GitHub:
$ git clone https://github.com/MBradley1985/SAGE-PSO.git $ cd SAGE-PSO/
This system allows you to optimize SAGE model parameters against observational constraints to improve the physical realism of your galaxy formation models.
The PSO package includes:
- Parameter space exploration: Systematically explores the model parameter space to find optimal configurations
- Observational constraints: Compares model outputs against observational data (stellar mass functions, star formation rates, etc.)
- Emulator integration: Includes machine learning emulators to accelerate the optimization process
- Uncertainty quantification: Provides tools to assess parameter uncertainties and model reliability
To get started with SAGE-PSO, please refer to the documentation available in the repository, which includes installation instructions, usage examples, and guidelines for setting up your own optimization runs.
There are several H2 star formation and feedback model options that can be enabled by modifying the parameter file.
- Blitz and Rosolosky (2006)
- Krumholz, McKee and Tumlinson (2009)
- Krumholz and Dekel (2012)
- Krumholz (2013)
- Gnedin and Draine (2014)
- Somerville et al. (2025)
There are three options for area calculation in the H2 star formation model.
- Area = pi * r_disc^2
- Area = pi * (3 * r_disk^2)
- Area = 2pi * r_disk^2
FIRE feedback can be enabled to run the model with the FIRE feedback physics.
Bulge tracking can be turned on or off.
- Shen et al. (2020), equation 33
- Shen et al. (2020), equation 32
- Tonini et al. (2016)
Feedback-free burst galaxies can also be enabled.
CGM building can be turned on or off.
Full star formation histories can be tracked.
Parameters can be manipulated in the parameter file to allow for extra exploration, either manually or with the PSO framework.
If you use SAGE in a publication, please cite the following items:
@ARTICLE{2016ApJS..222...22C,
author = {{Croton}, D.~J. and {Stevens}, A.~R.~H. and {Tonini}, C. and
{Garel}, T. and {Bernyk}, M. and {Bibiano}, A. and {Hodkinson}, L. and
{Mutch}, S.~J. and {Poole}, G.~B. and {Shattow}, G.~M.},
title = "{Semi-Analytic Galaxy Evolution (SAGE): Model Calibration and Basic Results}",
journal = {\apjs},
archivePrefix = "arXiv",
eprint = {1601.04709},
keywords = {galaxies: active, galaxies: evolution, galaxies: halos, methods: numerical},
year = 2016,
month = feb,
volume = 222,
eid = {22},
pages = {22},
doi = {10.3847/0067-0049/222/2/22},
adsurl = {http://adsabs.harvard.edu/abs/2016ApJS..222...22C},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
Questions and comments can be sent to Michael Bradley <mbradley@swin.edu.au>.
- Darren Croton (@darrencroton)
- Michael Bradley (@MBradley1985)
