The ‘COncentration-Mass relation and Mass Accretion History’ (COMMAH) code follows the model of Correa et al. (2015c). COMMAH calculates dark matter halo concentrations as a function of halo mass and redshift. It is a semi-analytic model intimately based on hierarchical structure formation. It uses an analytic model for the halo mass accretion history, based on extended Press Schechter (EPS) theory (see Correa et al. 2015a), and an empirical relation between concentration and an appropriate definition of formation time obtained through fits to the results of numerical simulations (see Correa et al. 2015b). The resulting concentration-mass relations are tested against the simulations and do not exhibit an upturn at high masses or high redshifts as claimed by recent works. Because our semi-analytic model is based on EPS theory, it can be applied to wide ranges in mass and redshift as shown in the figure below.

Figure 1. Predicted concentration-mass relation for the WMAP5 cosmology over a wide range of halo masses and redshifts. The solid lines correspond to our c-M model obtained from the halo MAH as described in Section 4 of Correa et al. 2015c. The lines are coloured as a function of redshift as indicated. The dashed lines correspond to power-law fits to the high-mass c−M relation at z = 0, 1, 2 and 3, and are in good agreement with the empirical relation from Duffy et al. (2008).

Interestingly, it predicts a break in the z=0 concentration-mass (hereafter, c-M) relation at a mass scale of 1011M, which we find to be produced by the varying power in the density perturbations.

COMMAH is available in IDL and python:

  • Python code was written and is maintained by Alan Duffy.

Download: COMMAH has been included in the pypi python package. To download COMMAH using pip, type:

pip install commah

In addition, COMMAH is hosted in both BitBucket and github repositories. You can clone any of the repositories by typing

git clone


git clone

You need to have installed the free version control system git. The last option is to download the code here.

Basic usage: requires the following standard libraries: numpy, scipy and cosmolopy. In the python shell you can begin with the following calling sequence

In [1]: import commah
In [2]: output ='WMAP1',zi=0.,Mi=1e12,z=[0.0,1.0,1.5,3.0,5.0])
In [3]: output['c']
Out[3]: array([[8.84952006,6.41136808,5.5846723,4.24172252,3.53294106]])
In [4]: output['Mz']
Out[4]: array([[1.00000e+12,6.02554e+11,4.52997e+11,1.82783e+11,5.14619e+10]])
In [5]: output['dMdt']
Out[5]: array([[31.88483435,83.06488935,106.30413759,138.85684425,109.70682285]])

In the example above the user input the cosmology WMAP1, the initial redshift zi, the mass at the initial redshift Mi and the output redshift z. After that the user asked for the dark matter halo concentrations at the output redshifts (‘c’), for the halo mass at the output redshifts (‘Mz’) and for the accretion rate at the requested reshifts (‘dMdt’). In addition, the user can also request the rms of the primordial density field σ, the peak height ν, and the formation redshift zf.

The user can also request the concentration and accretion rate of dark matter halos of mass Mi at a particular redshift zi.

In [1]: import commah
In [2]: output ='WMAP1',zi=2.,Mi=[1e12,5e11,1e11,5e10])
In [3]: output['c']
Out[3]: array([[4.6732888],[4.87151256],[5.37096703],[5.59182459]])
In [5]: output['dMdt']
Out[5]: array([[406.86787551],[192.92677084],[34.29907519],[16.37394805]])</pre>

How to cite COMMAH? If you use COMMAH for a publication, please cite Correa et al. (2015c), Correa et al. (2015b) and Correa et al. (2015a).