Colossus

Colossus is an acronym for COsmology, haLO, and large-Scale StrUcture toolS. Please see the [Online Documentation] for details. As the name suggests, Colossus constitutes a collection of modules pertaining to cosmology and dark matter halos, including:

  • Cosmological calculations with an emphasis on structure formation applications
    (power spectrum, variance, correlation function, peaks in Gaussian random fields and more).
  • General and specific halo density profiles (including the NFW, Einasto, and Diemer & Kravtsov 2014
    profiles).
  • Spherical overdensity halo masses, conversion between mass definitions, pseudo-evolution, and
    alternative radius and mass definitions such as the splashback radius.
  • A large range of models for the concentration-mass relation, including a conversion to arbitrary
    mass definitions.

Colossus is developed with the following design goals in mind:

  • Performance: Computationally intensive routines have been optimized for fast execution, often using smart interpolation. Virtually all functions accept both numbers and numpy arrays as input.
  • Pure Python: No C modules that need to be compiled, and no dependencies beyond the standard numpy and scipy libraries.
  • Object-orientation: Class-based implementations wherever it makes sense and does not hurt performance.
  • Easy (or no) installation: You can either install Colossus as a python package with pip/easy_install, or clone the repository and develop the code yourself.

While Colossus has been tested against various other codes, there is no guarantee that it is free of bugs. Use it at your own risk, and please report any errors, inconveniences and unclear documentation to the developer.


Installation

You can install Colossus as a python package by executing one of the following commands, depending on your preferred installer software. You might need to prefix these commands with ‘sudo’:

pip install https://bitbucket.org/bdiemer/colossus/get/tip.tar.gz
easy_install https://bitbucket.org/bdiemer/colossus/get/tip.tar.gz

Alternatively, you can clone the public BitBucket repository [https://bitbucket.org/bdiemer/colossus] by executing

hg clone https://bitbucket.org/bdiemer/colossus

For the latter method, you will need the version control system Mercurial (hg), which you can download [here]. After installing colossus, you should run a suite of unit tests to ensure the code works as expected:

cd colossus/tests
python run_tests.py

The output should look something like this::

test_Ez (colossus.tests.test_cosmology.TCComp) ... ok
test_Hz (colossus.tests.test_cosmology.TCComp) ... ok
...
test_pdf (colossus.tests.test_halo_profile.TCNFW) ... ok
test_update (colossus.tests.test_halo_profile.TCDK14) ... ok

----------------------------------------------------------------------
Ran 72 tests in 3.327s

OK

If any errors occur, please send the output to the developer.


Citing Colossus

If you use Colossus for a publication, please cite Diemer & Kravtsov 2015 [ApJ 799, 108] and/or the [ASCL entry]. Many Colossus routines are based on other papers that proposed, for example, density profile or concentration-mass models. If you use such routines, please cite the paper(s) mentioned in the function and/or module documentation.


Mailing List

If you are planning on using Colossus long-term or for publications, it is recommended that you sign up for email updates. I only send alerts to this list if there is a significant update or bug fix that users absolutely need to know about. Of course, you can unsubscribe at any time.