Skip to content

cheng-zhao/EZmock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EZmock

GitHub Codacy grade

Table of Contents

Introduction

Effective Zel'dovich approximation mock generator (EZmock[1]) is a technique for constructing approximate mock catalogues for large-scale structures of the Universe. It relies on the Zel'dovich approximation to generate the dark matter density field at a desired redshift, and then populates tracers (e.g., galaxies and quasars) based on an effective bias description. The product is also dubbed “EZmock” (plural: EZmocks).

EZmock is among the fastest methods that are able to reproduce the clustering of dark matter haloes from an N-body simulation with ≲ 5% precision down to the scale of k ∼ 0.4 h Mpc−1 (see [2] for a comparison of mock generation methods). It was used to produce the 1000 multi-tracer mock catalogues for the final extended Baryon Oscillation Spectroscopic Survey (eBOSS) data release[3].

This repository consists of 3 interfaces of the EZmock algorithm:

  • A C library with APIs for the construction of EZmocks;
  • A Python package that wraps the C library functions;
  • A C program that generates EZmocks using the core library functions.

All the interfaces are parallelised with the shared-memory Open Multi-Processing (OpenMP), and rely on the FFTW library for Fast Fourier Transforms (FFT). The C codes are compliant with the ISO C99 and IEEE POSIX.1-2008 standards. The software packages are written by Cheng Zhao (赵成) based on the initial fortran version developed by Dr. Chia-Hsun Chuang.

As a whole, the software packages in this repository are released under the GPLv3 license, due to its reliance on the FFTW library, though many of the source files are distributed under the MIT license, as indicated in their header lines. If you use this tool in research work that results in publications, please cite the papers [1] and [3].

Compilation

The building of the C interfaces of EZmock is based on the make utility. Customisable compilation options can be set in the file options.mk.

Once the setting is done, the following command should compile the C program and the C library:

make

Alternatively, different interfaces can be compiled via:

make EZmock        # compile the C program
make libEZmock.so  # compile the dynamic C library
make libEZmock.a   # compile the static C library

Once the C library is compiled, it can be installed at the specific location with

make install

The following commands clear the compiled files:

make clean     # clear the C program
make cleanlib  # clear the C libraries
make cleanall  # clean everything

If the C libraries are installed in the root directory of this repository, the Python package can be built in the python folder via

pip install .

For the usage of the Python interface, please refer to the example of EZmock calibration.

References

[1] Chuang C.-H., Kitaura F.-S., Prada F., Zhao C., Yepes G., 2015, EZmocks: extending the Zel'dovich approximation to generate mock galaxy catalogues with accurate clustering statistics, MNRAS, 446(3), 2621–2628. [arXiv:1409.1124] [ADS Abstract]

[2] Chuang C.-H., et al., 2015, nIFTy cosmology: Galaxy/halo mock catalogue comparison project on clustering statistics, MNRAS, 452(1), 686–700. [arXiv:1412.7729] [ADS Abstract]

[3] Zhao C., et al., 2021, The completed SDSS-IV extended Baryon Oscillation Spectroscopic Survey: 1000 multi-tracer mock catalogues with redshift evolution and systematics for galaxies and quasars of the final data release, MNRAS, 503(1), 1149–1173. [arXiv:2007.08997] [ADS Abstract]

About

Effective Zel'dovich approximation mock generator

Resources

License

GPL-3.0, MIT licenses found

Licenses found

GPL-3.0
LICENSE.txt
MIT
LICENSE_MIT.txt

Stars

5 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors