We constructed merger trees using the consistent-trees code (Behroozi et al. 2013). Because the current version of the consistent-trees code can not run in parallel on distributed memory environment, we can not use as it is to construct merger trees for huge simulations such Uchuu. To overcome the most significant obstacle, we split the entire Uchuu box into smaller regularly spaced sub-volumes and run consistent-trees code for each sub-volume separately. See Ishiyama et al. 2020 for the details of the adopted algorithm.
The generated ascii catalogues were then converted using the custom uchuutools package. The halo catalogues were converted using the script convert_halocat_to_h5 while the tree catalogues were converted using the convert_ctrees_to_h5.
• How to download the data
Note1: For a small number of corrupted halos at the end of 20 files of the Uchuu merger trees listed here, their properties were mistakenly filled with zero due to a bug of HDF5 conversion. Please replace those 20 files with new ones if you downloaded the trees before March 22, 2021. Sorry for the inconvenience.
Note2: For a small number of corrupted halos in additional 77 files of the Uchuu merger trees listed here, their properties were mistakenly filled with zero due to a bug of HDF5 conversion. Differently from the previous problem, corrupted halos exist somewhere in the file. Please replace those 77 files with new ones if you downloaded the trees before April 21, 2021. Sorry for the inconvenience.
Note3: For Shin-Uchuu the merger tree data is provided in the original ascii format, HDF5 conversion will be done soon.
Mergertree Data Format
The Uchuu HDF5 merger trees are split into 2,000 files. When you find a tree in a file, you can always find in the same file all trees that have past interactions with that tree.
Halos/subhalos in twenty tree files match with a single halo catalogue file in file number order. For example, corresponding trees of halos/subhalos in "halolist_z[0p00-13p96]_0.h5" exist in "mergertree_[0-19].h5" files.
Most of the properties in the tree catalogues are already found in the halo catalogues. Please refer to the documentation in the halo catalogues page for details such columns. The new columns that have been added to the tree catalogues are FofID, FirstHaloInFOFgroup, NextHaloInFOFgroup, PrevHaloInFOFgroup, FirstProgenitor, NextProgenitor, PrevProgenitor, Descendant. With the exception of FofID, the remaining fields are indices that refer to another halo within the same forest. These indices are forest-local (i.e., range from [0, nforests-1] and follow the LHaloTree convention (see figure below; Credits). The FofID is the haloID for the host halo that contains the (sub-) subhalo. The PrevProgenitor and PrevHaloInFOFgroup have been added to allow more flexible tree-walking.
We have added two additional datasets that contain forest-level and tree-level information:
- ForestInfo - This dataset has the shape of (nforests_in_file, ) and contains the following fields
- TreeInfo - This dataset has the shape of (ntrees_in_file, ) and contains the following fields
The other columns in the TreeInfo dataset are used for testing and are unlikely to be required in any user application.
For details on the fields carried across from the Consistent-Trees catalogue, we have preserved the header information from the ascii Consistent-Trees catalogue. This information is available under the root dataset as the metadata attribute (i.e., hf.attrs['Consistent Trees_metadata'] from the example above). The cosmological parameters and the boxsize are available as attributes under the group hf['simulation_params'].
Reading and Analysing the trees
The halos within each forest are stored contiguously and can be easily accessed using the ForestInfo dataset in the hdf5 file.If you want to analyse and visualise the mergertrees, then we recommend installing the development version (in the branch h5ctrees ) of ytree. Installing the dev version of ytree will require first installing the development version of yt through the following steps:
1. git clone https://github.com/yt-project/yt
2. cd yt
3. python -m pip install -e . (--user)
After yt is installed, then install ytree with the following steps:
- git clone https://github.com/brittonsmith/ytree
- cd ytree
- git checkout h5ctrees
- python -m pip install -e . (--user)