Skip to main content

A Halo Model calculator built on hmf

Project description

https://github.com/steven-murray/halomod/workflows/Tests/badge.svg https://badge.fury.io/py/halomod.svg https://codecov.io/gh/steven-murray/halomod/branch/master/graph/badge.svg https://img.shields.io/pypi/pyversions/halomod.svg https://img.shields.io/badge/code%20style-black-000000.svg

halomod is a python application that provides a flexible and simple interface for dealing with the Halo Model of Dark Matter Halos, built on hmf.

Features

  • All the features of hmf (several transfer function models, 15+ HMF fitting functions, efficient caching etc.)

  • Extended components for halo model:

    • 10 halo bias models, plus scale-dependent bias from Tinker (2005).

    • 3 basic concentration-mass-redshift relations, including the analytic Bullock (2001) model

    • Several plug-and-play halo-exclusion models (including ng-matched from Tinker+2005).

    • 5 built-in HOD parametrisations.

    • Many built-in halo profiles, including NFW, generalised NFW, Hernquist etc.

    • Support for WDM models.

  • All basic quantities such as 3D correlations and power spectra, and projected 2PCF.

  • Several derived quantities (eg. effective bias, satellite fraction).

  • All models/components specifically written to be easily extendable.

  • Simple routine for populating a halo catalogue with galaxies via a HOD.

  • Built-in routines for efficient fitting of arbitrary parameters to data. BETA

  • CLI scripts both for producing any quantity included, or fitting any quantity. BETA

Usage

halomod can be used interactively (for instance in ipython or a jupyter notebook) or in a script. To use interactively, in ipython do something like the following:

>>> from src.halomod import HaloModel
>>> hm = HaloModel()  # Construct the object
>>> help(hm)          # Lists many of the available quantities.
>>> galcorr = hm.corr_auto_tracer
>>> bias = hm.bias
>>> ...

All parameters to HaloModel have defaults so none need to be specified. There are quite a few that can be specified however. Check the docstring to see the details. Furthermore, as halomod extends the functionality of hmf, almost all parameters accepted by hmf.MassFunction() can be used (check its docstring).

To change the parameters (cosmological or otherwise), one should use the update() method, if a HaloModel() object already exists. For example

>>> hm.update(rmin=0.1,rmax=1.0,rnum=100) #update scale vector
>>> corr_2h = hm.corr_2h_auto_tracer #The 2-halo term of the galaxy correlation function

Since HaloModel is a sub-class of MassFunction, all the quantities associated with the hmf are also included, so for example

>>> mass_variance = hm.sigma
>>> mass_function = hm.dndm
>>> linear_power = hm.power

Any parameter which defines a model choice (eg. a bias model) is named <component>_model, so for example, the bias model is called bias_model. Every model has an associated parameter called <component>_params, which is a dictionary of parameters to that model. The available choices for this dictionary depend on the model chosen (so that the Sheth-Tormen HMF has a different set of parameters than does the Tinker+2008 model). Within the constructed object, the actual model is instantiated and saved as <component>, so that this object can be accessed, and several internal methods can be called. Some of these are exposed directly by the HaloModel class (eg. one can call hm.n_sat directly, which itself calls a method of the hm.hod component).

Acknowledgments

Thanks to Florian Beutler, Chris Blake and David Palamara who have all contributed significantly to the ideas, implementation and testing of this code.

Some parts of the code have been adapted from, influenced by or tested against:

Along with these, several other private codes have been compared to.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

halomod-1.4.6.dev57.tar.gz (21.7 MB view details)

Uploaded Source

Built Distribution

halomod-1.4.6.dev57-py2.py3-none-any.whl (6.9 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file halomod-1.4.6.dev57.tar.gz.

File metadata

  • Download URL: halomod-1.4.6.dev57.tar.gz
  • Upload date:
  • Size: 21.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.0

File hashes

Hashes for halomod-1.4.6.dev57.tar.gz
Algorithm Hash digest
SHA256 a204ee707d8a6d850affb72039a3af13b8073c9ec43e9f04d3651668468c1cf9
MD5 5dbc7c68cafca601a90682e7cb460f46
BLAKE2b-256 5466829736d2207ee56d3f339c9d4f82b2e82e0c9678ba1942af8edb9d1b67df

See more details on using hashes here.

File details

Details for the file halomod-1.4.6.dev57-py2.py3-none-any.whl.

File metadata

  • Download URL: halomod-1.4.6.dev57-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.0

File hashes

Hashes for halomod-1.4.6.dev57-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 021b36688f976db07c6f3ce9b904902eb140f87e1caf207b8f4a8c36de86fcff
MD5 84e0e15adfcc5e4bfc3338a1256d1f84
BLAKE2b-256 087e41dd35ee7e82bc7a99b306deb6f02cd3121408b848f3d7ecec6fad683434

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page