Documentation Status Tests codecov Last Commit

The Accelerated Reionization Era Simulations (ARES) code was designed to rapidly generate models for the global 21-cm signal. It can also be used as a 1-D radiative transfer code, stand-alone non-equilibrium chemistry solver, global radiation background calculator, or semi-analytic galaxy formation model.

The documentation is here.

Technical Details

The main papers that describe how ARES works include:

Plus some more applications:

Be warned: this code is still under active development – use at your own risk! Correctness of results is not guaranteed.


If you use ARES in paper please reference Mirocha (2014) if it’s an application of the global 21-cm modeling machinery and Mirocha et al. (2012) if you use the 1-D radiative transfer and/or SED optimization. For galaxy semi-analytic modeling, please have a look at Mirocha, Furlanetto, & Sun (2017), Mirocha, Mason, & Stark (2020), and Mirocha (2020), and for PopIII star modeling, see Mirocha et al. (2018).

Please also provide a link to this page as a footnote.

Note that for some applications, ARES relies heavily on lookup tables and publicly-available software packages that should be referenced as well. These include:

Feel free to get in touch if you are unsure of whether any of these tools are being used under the hood for your application.


You will need:

and optionally,

If you’d like to build the documentation locally, you’ll need:

and if you’d like to run the test suite locally, you’ll want:

which are pip-installable.

Note: ares has been tested only with Python 2.7.x and Python 3.7.x.

Getting started

To clone a copy and install:

git clone
cd ares
python install

ares will look in ares/input for lookup tables of various kinds. To download said lookup tables, run:


This might take a few minutes. If something goes wrong with the download, you can run

python fresh

to get fresh copies of everything.

Quick Example

To generate a model for the global 21-cm signal, simply type:

import ares

sim = ares.simulations.Global21cm()      # Initialize a simulation object

You can examine the contents of sim.history, a dictionary which contains the redshift evolution of all IGM physical quantities, or use some built-in analysis routines:


If the plot doesn’t appear automatically, set interactive: True in your matplotlibrc file or type:

import matplotlib.pyplot as pl


If you encounter problems with installation or running simple scripts, first check the Troubleshooting page in the documentation to see if you’re dealing with a common problem. If you don’t find your problem listed there, please let me know!


Primary author: Jordan Mirocha (McGill)

Additional contributions / corrections / suggestions from:

  • Geraint Harker

  • Jason Sun

  • Keith Tauscher

  • Jacob Jost

  • Greg Salvesen

  • Adrian Liu

  • Saurabh Singh

  • Rick Mebane

  • Krishma Singal

  • Donald Trinh

  • Omar Ruiz Macias

  • Arnab Chakraborty

  • Madhurima Choudhury

  • Saul Kohn

  • Aurel Schneider

  • Kristy Fu

  • Garett Lopez

  • Ranita Jana

  • Daniel Meinert

  • Henri Lamarre

  • Matteo Leo

  • Emma Klemets

  • Felix Bilodeau-Chagnon

  • Venno Vipp

  • Oscar Hernandez

  • Joshua Hibbard

  • Trey Driskell