Skip to content
/ concept Public

COsmological N-body CodE in PyThon

License

Notifications You must be signed in to change notification settings

jmd-dk/concept

Repository files navigation

CONCEPT

  🚀   Latest release: 1.0.1
  📖   Documentation

Introduction

CONCEPT (COsmological N-body CodE in PyThon) is a free and open-source simulation code for cosmological structure formation. The code should run on any Linux system, from massively parallel computer clusters to laptops. The code is written almost exclusively in Python, but achieves C-like performance through code transformation using a custom transpiler/optimizer and Cython. While highly competitive regarding both performance and accuracy, CONCEPT further strives for ease of use.

CONCEPT is capable of simulating matter particles evolving under self-gravity in an expanding background. It has multiple gravitational solvers to choose from, and has adaptive time integration built in. In addition to particles, the code is further able to evolve fluids at various levels of non-linearity, providing the means for the inclusion of more exotic species such as massive neutrinos, as well as for simulations consistent with general relativistic perturbation theory. Various non-standard species — such as decaying cold dark matter — are fully supported.

CONCEPT comes with a sophisticated initial condition generator built in, and can output snapshots, power spectra, bispectra and several kinds of renders.

The CLASS code is fully integrated into CONCEPT, supplying the needed information for e.g. initial condition generation and general relativistic corrections.

Code paper

The primary paper on CONCEPT is ‘The cosmological simulation code CONCEPT 1.0’.
Cite this paper if you make use of CONCEPT in a publication.

Getting Started

To get started with CONCEPT, walking through the tutorial is highly recommended. That said, installation can be as simple as

bash <(wget -O- https://raw.githubusercontent.com/jmd-dk/concept/master/install)

which installs CONCEPT along with all of its dependencies into a single directory. The installation takes a couple of hours on modern hardware. Should the installation process end prematurely, simply rerun the installation command and it will pick up from where it was.

To run a small sample simulation, navigate to the directory where CONCEPT is installed and invoke

./concept -p param/example_basic -n 2 --local

This will run the simulation defined by the provided example_basic parameter file using 2 processes.

Consult the tutorial and the rest of the documentation for further guidance.