Skip to main content

A halo mass function calculator

Project description

The halo mass function calculator.

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

hmf is a python application that provides a flexible and simple way to calculate the Halo Mass Function for a range of varying parameters. It is also the backend to HMFcalc, the online HMF calculator.

Full Documentation

Read the docs.

Features

  • Calculate mass functions and related quantities extremely easily.

  • Very simple to start using, but wide-ranging flexibility.

  • Caching system for optimal parameter updates, for efficient iteration over parameter space.

  • Support for all LambdaCDM cosmologies.

  • Focus on flexibility in models. Each “Component”, such as fitting functions, filter functions, growth factor models and transfer function fits are implemented as generic classes that can easily be altered by the user without touching the source code.

  • Focus on simplicity in frameworks. Each “Framework” mixes available “Components” to derive useful quantities – all given as attributes of the Framework.

  • Comprehensive in terms of output quantities: access differential and cumulative mass functions, mass variance, effective spectral index, growth rate, cosmographic functions and more.

  • Comprehensive in terms of implemented Component models:

    • 5+ models of transfer functions including directly from CAMB

    • 4 filter functions

    • 20 hmf fitting functions

  • Includes models for Warm Dark Matter

  • Nonlinear power spectra via HALOFIT

  • Functions for sampling the mass function.

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

  • Python 2 and 3 compatible

Note

From v3.1, hmf supports Python 3.6+, and has dropped support for Python 2.

Quickstart

Once you have hmf installed, you can quickly generate a mass function by opening an interpreter (e.g. IPython/Jupyter) and doing:

>>> from hmf import MassFunction
>>> hmf = MassFunction()
>>> mass_func = hmf.dndlnm

Note that all parameters have (what I consider reasonable) defaults. In particular, this will return a Tinker (2008) mass function between 10^10 and 10^15 solar masses, at z=0 for the default PLANCK15 cosmology. Nevertheless, there are several parameters which can be input, either cosmological or otherwise. The best way to see these is to do:

>>> MassFunction.parameter_info()

We can also check which parameters have been set in our “default” instance:

>>> hmf.parameter_values

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

>>> hmf = MassFunction()
>>> hmf.update(cosmo_params={"Ob0": 0.05}, z=10) #update baryon density and redshift
>>> cumulative_mass_func = hmf.ngtm

For a more involved introduction to hmf, check out the tutorials, which are currently under construction, or the API docs.

Versioning

From v3.1.0, hmf will be using strict semantic versioning, such that increases in the major version have potential API breaking changes, minor versions introduce new features, and patch versions fix bugs and other non-breaking internal changes.

If your package depends on hmf, set the dependent version like this:

hmf>=3.1<4.0

Attribution

Please cite Murray, Power and Robotham (2013) and/or https://ascl.net/1412.006 (whichever is more appropriate) if you find this code useful in your research. Please also consider starring the GitHub repository.

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

hmf-3.0.12.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

hmf-3.0.12-py2.py3-none-any.whl (76.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file hmf-3.0.12.tar.gz.

File metadata

  • Download URL: hmf-3.0.12.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for hmf-3.0.12.tar.gz
Algorithm Hash digest
SHA256 f27b198877a36b97dd19102bd2d6b026b6730feeeca288fd682dde9451790a02
MD5 588cc894a4dc9aaef8bf141e2495b20b
BLAKE2b-256 86a575281bf0372689a723317916d1dd891259c8d93dd789843de712847c32ed

See more details on using hashes here.

File details

Details for the file hmf-3.0.12-py2.py3-none-any.whl.

File metadata

  • Download URL: hmf-3.0.12-py2.py3-none-any.whl
  • Upload date:
  • Size: 76.0 kB
  • 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/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for hmf-3.0.12-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3218b4d9e49281fb96caf7d383310992b81a56f2fc955de60b9cd3d50986a2eb
MD5 e8297243e0e645cf424b277551c583d6
BLAKE2b-256 ed8884a1657b0ccb4a760da1f04affd6653679ca271be7ab3cc7dfd08f122a99

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