Skip to content

sage-home/SAGE26

Repository files navigation

Project Logo

Semi-Analytic Galaxy Evolution (SAGE)

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.

Getting started

Pre-requisites

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.

Downloading

SAGE can be installed by cloning the GitHub repository:

$ git clone https://github.com/MBradley1985/SAGE26.git
$ cd SAGE26/

Building

To create the SAGE executable, simply run the following command:

$ make

Running the code

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

Plotting the output

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

Parameter Optimization with PSO

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.

Extra OPTIONS

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.

Citation

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}
}

Author

Questions and comments can be sent to Michael Bradley <mbradley@swin.edu.au>.

Maintainers

  • Darren Croton (@darrencroton)
  • Michael Bradley (@MBradley1985)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors