Welcome to grackle’s documentation!

Grackle is a chemistry and radiative cooling library for astrophysical simulations and models. Grackle has interfaces for C, C++, Fortran, and Python codes and provides:

  • two options for primordial chemistry and cooling:

    1. non-equilibrium primordial chemistry network for atomic H, D, and He as well as H2 and HD, including H2 formation on dust grains.

    2. tabulated H and He cooling rates calculated with the photo-ionization code, Cloudy.

  • tabulated metal cooling rates calculated with Cloudy.

  • photo-heating and photo-ionization from two UV backgrounds:

  • support for user-provided arrays of volumetric and specific heating rates.

The Grackle provides functions to update chemistry species; solve radiative cooling and update internal energy; and calculate cooling time, temperature, pressure, and ratio of specific heats (gamma).



Mailing List

If you have any questions, please join the Grackle Users Google Group. Feel free to post any questions or ideas for development.

Slack Channel

We also use Slack for lower latency discussions. If you’d like help in real time, this is the place. Click here for an invitation to our Slack channel.


Development of Grackle happens in the open on GitHub here. We welcome new contributors. Please, see the Grackle Community Code of Conduct. For a guide to developing Grackle, see How to Develop Grackle.

Citing grackle

The Grackle method paper can be found here.

The Grackle library was born out of the chemistry and cooling routines of the Enzo simulation code. As such, all of those who have contributed to Enzo development, and especially to the chemistry and cooling, have contributed to the Grackle.

If you used the Grackle library in your work, please cite it as “the Grackle chemistry and cooling library (Smith et al. 2017).” Also, please add a footnote to https://grackle.readthedocs.io/.