CONCEPT

COsmological N-body CodE in PyThon.

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.

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. Completely linear perturbations in density fields and the metric itself allows 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 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.

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/installer)

which installs CONCEPT along with all of its dependencies into a single
directory. The installation takes about an hour or two 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 concept directory
and invoke

./concept -p params/example_params -n 2 --local

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

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

GitHub

https://github.com/jmd-dk/concept