跳转到主要内容

基于hmf构建的暗物质晕模型计算器

项目描述

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 是一个Python应用程序,提供了一种灵活且简单的接口来处理暗物质晕的晕模型,基于 hmf

它还提供了一个功能齐全的Web应用程序,位于 https://thehalomod.app – 查看它!

完整文档

阅读文档。

功能

  • 包含 hmf 的所有功能(几个传输函数模型、15+ HMF拟合函数、高效的缓存等。)

  • 扩展的晕模型组件

    • 10+ 晕偏置 模型,以及Tinker(2005)的尺度相关偏置。

    • 3+ 基本的 浓度-质量-红移关系,包括Bullock(2001)的解析模型。

    • 几个即插即用的 晕排除 模型(包括Tinker+2005的ng-matched)。

    • 5+ 内置的 HOD参数化

    • 许多内置的 晕轮廓,包括NFW、广义NFW、Hernquist等。

    • 支持 WDM模型

  • 所有基本量,如三维相关性和功率谱,以及投影的2PCF。

  • 几个派生量(例如,有效偏置、卫星分数)。

  • 所有模型/组件都是专门编写的,易于扩展。

  • 通过HOD向晕目录添加星系的一个简单例程。

  • 用于生成任何包含的量的CLI脚本。

使用方法

halomod 可以用于交互式操作(例如在 ipythonjupyter 笔记本中)或脚本中。要交互式使用,在 ipython 中执行以下操作:

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

HaloModel 的所有参数都有默认值,因此无需指定。然而,有很多参数可以被指定。查看文档字符串以了解详细信息。此外,由于 halomod 扩展了 hmf 的功能,几乎所有 hmf.MassFunction() 接受的参数都可以使用(请查看其文档字符串)。

要更改参数(宇宙学或其他),如果已存在 HaloModel() 对象,则应使用 update() 方法。例如

>>> 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

由于 HaloModelMassFunction 的子类,因此包括 hmf 相关的所有量,因此例如

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

任何定义模型选择的参数(例如偏置模型)都命名为 <component>_model,例如,偏置模型称为 bias_model。每个模型都有一个相关的参数,称为 <component>_params,它是该模型的参数字典。此字典中可用的选项取决于所选的模型(因此 Sheth-Tormen HMF 与 Tinker+2008 模型具有不同的参数集)。在构造的对象中,实际模型被实例化并保存为 <component>,这样就可以访问该对象,并可以调用几个内部方法。其中一些通过 HaloModel 类直接公开(例如,可以直接调用 hm.n_sat,它本身调用 hm.hod 组件的方法)。

使用 CLI

您还可以从命令行运行 halomod。对于基本用法,执行以下操作:

halomod run --help

可以在 CLI 或通过 TOML 文件(推荐)指定运行配置。可以在 examples/example_run_config.toml 中找到示例 TOML 文件。可以在 TOML 文件中指定任何参数,然后在命令行中通过隔离的双短横线指定,例如。

halomod run -- z=1.0 hmf_model='SMT01' bias_model='Tinker10'

致谢

感谢 Florian Beutler、Chris Blake 和 David Palamara,他们对本代码的思想、实现和测试做出了重大贡献。

代码的一些部分已从,受其影响或经过其测试:

此外,还与其他几个私有代码进行了比较。

归属

如果发现此代码对您的研究有所帮助,请引用以下文献:

  1. Murray, Power and Robotham (2013) 和/或 https://ascl.net/1412.006(哪个更合适)

  2. Murray, Diemer and Chen (2020)

请考虑在 GitHub 仓库上给予 star。

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

halomod-2.2.1.tar.gz (24.0 MB 查看哈希值)

上传时间

构建分发

halomod-2.2.1-py3-none-any.whl (6.9 MB 查看哈希值)

上传时间 Python 3

由以下支持