Table of Contents
VOBOZ (VOronoi BOund Zones)
VOBOZ is a halo finding algorithm developed by Mark Neyrinck. We maintain a copy in our public repository, that has been modified to read and output in HDF5, and to enable control of the integer precision at compile time. To make maintenance simpler, this version also removes the serial version of voz1b1 and jozov, the void finder. The input datasets can be created by a new parallel particle extractor, which will be released shortly after Enzo 1.5.
Executables and Arguments
Each executable should display the appropriate arguments when called incorrectly, or without any flags. The order of commands is the same as they are shown below. The minimum number of sub-zones is eight; it is impossible to run VOBOZ on the whole box at once.
voz1b1_mpi
voboz $ ./bin/voz1b1_mpi Wrong number of arguments. arg1: position file arg2: border size arg3: box size arg4: suffix arg5: number of divisions voboz $
Example:
$ mpirun -np 4 ~/Projects/voboz/bin/voz1b1_mpi RedshiftOutput0007.h5 0.2 1 rd7 2 >& rd7.log &
voztie
voboz $ ./bin/voztie Wrong number of arguments. arg1: number of divisions (default 2) arg2: suffix describing this run voboz $
Example:
$ ~/voboz/bin/voztie 2 rd7
jovoz
voboz $ ./bin/jovoz Wrong number of arguments. arg1: adjacency file arg2: volume file arg3: output zone membership file arg4: output text file arg5: volume tolerance (e.g. 1) voboz $
Example:
$ ~/voboz/bin/jovoz adjrd7.dat volrd7.dat zones.rd7.dat zones.rd7.txt 0.005
boz
voboz $ ./bin/boz Wrong number of arguments. arg1: box size arg2: nsim arg3: Omega_matter arg4: scale factor a arg5: position and velocity file arg6: input zone file arg7: output bound zone file arg8: output text file arg9: unbinding f voboz $
Examples:
$ ~/voboz/bin/boz 10 32 0.3 1.0 RedshiftOutput0007.h5 zones.rd7.dat halos.rd7.h5 halos.rd7.txt 1.2
Output
The output is in the halos.rd7.h5 file above, which is a HD5 file. Each halo is a dataset:
login3% h5ls halos.rd7.h5 | head
Halo00000000 Dataset {16}
Halo00000001 Dataset {42}
Halo00000002 Dataset {11}
Halo00000003 Dataset {7}
Halo00000004 Dataset {31}
Halo00000005 Dataset {18}
Halo00000006 Dataset {28}
Halo00000007 Dataset {29}
And inside each dataset is a list of the particle IDs that correspond to that halo:
login3% h5dump -d Halo00000000 halos.rd7.h5
HDF5 "halos.rd7.h5" {
DATASET "Halo00000000" {
DATATYPE H5T_STD_I64LE
DATASPACE SIMPLE { ( 16 ) / ( 16 ) }
DATA {
(0): 4, 19, 32, 36, 40, 44, 46, 49, 52, 54, 60, 66, 72, 82, 98, 178054
}
}
}
cull_subhalos
This is a python script that reads in the output of voboz, above, and outputs an identically formatted HDF5 file with the haloes sorted by size, and subhaloes removed. This is useful if you want to create a halo merger tree, or you're only interested in the large haloes, and not the substructure inside haloes.
login3% ./cull_subhalos cull_subhalos: Removes subhalos (not the particles, just the group) Usage: cull_subhalos <bound halo file> Output: <bound halo file>.culled Exiting login3% ./cull_subhalos halos.rd7.h5
