Skip to content


Repository files navigation

Documentation Status

Author: Svetlin Tassev

Ported to Python 3 by Phil Bull

Website: pycola3 | Original pyCOLA

Documentation (old version): PDF Documentation

License: GPLv3+ License

pycola3 is a multithreaded Python/Cython N-body code, implementing the Comoving Lagrangian Acceleration (COLA) method in the temporal and spatial domains.

pycola3 is based on the following two papers:

  1. Solving Large Scale Structure in Ten Easy Steps with COLA, S. Tassev, M. Zaldarriaga, D. J. Eisenstein, Journal of Cosmology and Astroparticle Physics, 06, 036 (2013), arXiv:1301.0322

  2. sCOLA: The N-body COLA Method Extended to the Spatial Domain, S. Tassev, D. J. Eisenstein, B. D. Wandelt, M. Zaldarriaga, (2015)

If you use pycola3 or the COLA method in the spatial and/or time domains for scientific work, we kindly ask you to reference the papers above.

  • pycola3 is free and open-source software, distributed under the GPLv3 license.

  • Currently, the best way to install pycola3 is to clone this git repository and run the setup script like so:

  python install

If you are using Python 3.9, you may need to install pyfftw3 using conda first, before attempting to run the script.

While there is a pip package for pycola3, it is currently not functional due to dependency/binary compatibility issues.

pycola3 depends on the following packages:

  • numpy
  • scipy
  • cython
  • pyfftw
  • h5py
  • multiprocessing

Read the manual here.


Updated Python 3-compatible version of the pyCOLA fast approximate N-body simulation code.



GPL-3.0, GPL-3.0 licenses found

Licenses found






No packages published