Empirical model for the formation of galaxies
Copyright © Benjamin P. Moster 2013-2019
License: GNU GPLv3
Science Paper: http://arxiv.org/abs/1705.05373
Code Website: http://www.usm.lmu.de/emerge
Code Repository: https://github.com/bmoster/emerge
Gitter Community: https://gitter.im/emerge-code
- Introduction
- Basic Usage
- Configuration file
- Parameter file
- Observed data files
- Halo merger tree files
- Output files
- Disclaimer
Emerge, an Empirical ModEl for the foRmation of GalaxiEs, populates dark matter halo merger trees with galaxies using simple empirical relations between galaxy and halo properties. For each model represented by a set of parameters, it computes a mock universe, which it then compares to observed statistical data to obtain a likelihood. Parameter space can be explored with several advanced stochastic algorithms such as MCMC to find the models that are in agreement with the observations.
The code is written in ANSI C and supports massively parallel computers with distributed memory. Emerge uses an explicit communication model that is implemented with the standardized message passing interface (MPI) and suports hyperthreading via the OpenMP interface. It can be run on essentially all supercomputer systems, including clusters of workstations or individual personal computers.
The main reference for the scientific methods that are used in this code is the paper `Emerge - An empirical model for the formation of galaxies since z ~ 10' (Moster, Naab & White 2018), and references therein. This document provides additional technical information about the code to allow anyone interested an independent use of the code on parallel machines, and to create mock galaxy catalogues for any dark matter simulation. For further help, visit the code website at usm.lmu.de/emerge or join the Gitter community at gitter.im/emerge-code.
Emerge was written by Benjamin Moster, and is made publicly available under the GNU general public license version 3. This implies that you may freely copy, distribute, or modify the sources, but the copyright for the original code remains with the author. If you find the code useful for your scientific work, we kindly ask you to include a reference to the Emerge paper in all studies that use data obtained with Emerge.
Emerge is hosted on GitHub and can be obtained either by cloning the git repository
git clone https://github.com/bmoster/emerge.git
or by downloading a compressed tarball of the latest version:
https://github.com/bmoster/emerge/archive/master.zip (~ 700kB).
Emerge needs the following non-standard libraries for compilation:
- MPI - the Message Passing Interface. There are numerous commercial versions, in addition to
excellent open source implementations, e.g.
MPICH (http://www.mpich.org), or
Open MPI (http://www.open-mpi.org). - GSL - the GNU scientific library. This open-source package can be obtained at
http://www.gnu.org/software/gsl, for example. Emerge needs this library for spline interpolations, and for random number generation. - HDF5 - the Hierarchical Data Format (version 5.0 or higher, available at
https://www.hdfgroup.org). This optional library is only needed when one wants to write snapshot files in HDF5 format. It is possible to compile and use the code without this library.
On most UNIX systems installing these libraries should only take a few steps. Untar the downloaded tarball
and change to the newly created directory. Run the configuration script by typing ./configure
, compile the code
by typing make all
, and install the libraries by tyiping sudo make install
.
After downloading the Emerge code, you will find several files and folders:
The build
folder is initially empty, but will host the object files after compilation.
The data
folder contains all files that store observed data (see Observed data files for more details).
The output
folder is initially empty, but all output data will be written to this folder, see Output files for more details.
The parameterfiles
folder contains an example parameter file (see Parameter file for more details).
The src
folder contains the source code including all c-files and h-files.
The tools
folder contains files that convert Rockstar halo merger trees to the Emerge binary input format, and a sample
script file to submit to a computing queue.
The trees
folder is initially empty and can be used to store the input halo merger trees.
The files compile-config.perl
and config-makefile
are needed for compiation, but do not need to be edited.
The file Template-Config.sh
has to be copied to Config.sh
and contains all compile-time options. Edit Config.sh
as needed (see Configuration file for more details).
The file Template-TypeOfSystem.sh
has to be copied to TypeOfSystem.sh
and contains a number of predefined systems.
The appropriate system should be uncommented in TypeOfSystem.sh
. By following these example systems, further customised
system-types can be easily added to the Makefile
. Slight adjustments will be needed if any of the above libraries is not
installed in a standard location on the system. Also, compiler optimisation options may need adjustment, depending on the
C-compiler that is used. The executable emerge
can then be built by typing make
.
To run Emerge, invoke the executable with a command like
mpiexec -np 16 ./emerge emerge.param
This will start emerge using 16 computing cores and with parameters as specified in the parameter file emerge.param
(see Parameter file for more details). The code does not need to be recompiled for a different number
of processors, for different parameters, or for different halo marger trees. Emerge can also be run with a single computing
core given enough memory for the problem size. To this end, the leading mpiexec -np 1
can be omitted such that Emerge
behaves like a serial code. The MPI library must be installed in any case as it is frequently referenced in the source code.
The number of processors can be chosen freely, however it must be a multiple of the number of universes that are computed at
the same time. This means that if for example 20 universes are computed in the same step (e.g. for the parallelised MCMC),
at least 20 cores are needed, or a multiple thereof.
While Emerge is running, it prints out several log messages that inform about the present steps taken by the code.
If Emerge is used interactively in a terminal these messages appear on the screen. They can be redirected to a file by adding
> log.out
at the end of the execution command. If Emerge is used to explore parameter space, or if the problem size is too
large to fit on a single computing node, it will typically need to be run on a supercomputer. In this case, the above command
has to be put into a script file that can be submitted to the computing queue, and the output should be diverted to a file.
The sample script file submit
in the tools
folder shows how to do this for the SuperMuc computer at the LRZ, but will need
to be adapted for a different supercomputer.
Invoking the execution command above will run Emerge for the halo merger trees and parameters specified in the parameter file
once, and write the resulting galaxy properties into files in the output
directory. However, Emerge can also be used to explore
parameter space with different algorithms. To this end, an optional flag can be added to the end of the execution command. The
three currently implemented parameter space exploration methods are:
Flag | Mode |
---|---|
1 | Affine-invariant MCMC ensemble sampler by Goodman & Weare (2010) |
2 | HYBRID optimisation algorithm by Elson et al. (2007) |
3 | Parallel-tempering as laid out by Sambridge (2014) |
The HYBRID optimisation algorithm for example can thus be started by invoking
mpiexec -np 16 ./emerge emerge.param 2
which will first initialise a number of walkers in a parameter range as specified in the parameter file, and then evolve the walker
positions according to the algorithm and several hyperparameters. The number of walkers, i.e. universes, that are computed during
one chain step and the time limit of the run can also be specified in the parameter file. Each set of chains requires a seed number
to be specified in the parameter file. This number will be included in the name of the output files, such that they can be distinguished,
e.g. for the seed number 12345
the MCMC output file name will be mcmc12345.000.out
, the HYBRID output file name will be
hybrid12345.000.out
, and the parallel-tempering output file name will be pt12345.000.out
.
Often a single submission to a queueing system will not provide enough time to explore parameter space as thoroughly as needed.
However, all algorithms store the current walker positions in dedicated restart files in the output
folder, e.g. walkers.mcmc.12345.out
.
Emerge can then be restarted from these walker positions and the chains will then be continued. To resume parameter space exploration
with a specific algorithm a 1
has to be added to the flag above, e.g. the parallel-tempering algorithm can be restarted from the
latest saved walker positions by invoking
mpiexec -np 16 ./emerge emerge.param 31
The appropriate restart file walkers.pt.12345.out
has to exist and have the required number of walkers. Once the code restarts, it
will write the walker postions to a new output file, e.g. pt12345.001.out
. Restarting Emerge in this way is transparent to the code,
i.e. after the restart Emerge behaves exactly as if had not been interrupted in the first place. When the code is started with a restart
flag, the parameter file is parsed, but only some of the parameters are allowed to be changed, while any changes in the others will be
ignored. Which parameters these are is explained in the section Parameter file .
Many aspects of the Emerge code are controlled with compile-time options in the Config.sh file rather than run-time options in the parameter file. In this way, highly optimised binaries for a specific model can be generated by the compiler. However, the disadvantage of this approach is that different setups may require different binary executables. If several models are run concurrently, there is hence the danger that Emerge is started or resumed with the `wrong' binary. While Emerge checks the plausibility of some of the most important code options, this is not done for all of them. To minimise the risk of using the wrong code, it is therefore recommended to produce a separate executable for each simulation that is run. This can be easily achieved by creating an alternative Config.sh file for each setup, and then compiling the source code invoking
make CONFIG=NewConfig.sh EXEC=emerge_new
The Config.sh file contains a list of all available compile-time code options, with most of them commented out by default. To activate
a certain option, it should be commented in, and given the desired value, where appropriate. Whenever one of the Config.sh options
described below is changed, a full recompilation of the code is necessary, which can be achieved with a simple make
command.
A manual recompilation of the whole code can be enforced with the command make clean
, which will erase all object files, followed by make
.
OPENMPTHREADS=2
Enables OpenMP support and sets the number of threads per task. If the computing system supports hyperthreading the default value of 2 is recommended.
RANDOM_NUMBER_TABLE=1000000
If this option is set, random number tables will be created at the start of the run, for a uniform distribution and a gaussian distribution, respectively. The parameter has to be set to the number of random numbers each of these tables will contain. The random numbers created in this way will be only used for the scatter between intrinsic and observed galaxy properties and for the positions of orphan galaxies within their host haloes, not for the parameter space exploration algorithms. The advantage of this option is the increased computation speed, as random numbers do not have to be recomputed for each galaxy in each chain step, and the consistent scatter between steps.
LONGIDS
If this option is set, the code assumes that IDs for haloes, descendants, hosts, and forests, are stored as 64-bit long integers. This is only really needed if there are more than ~ 2 billion haloes in the merger trees.
DISABLE_MEMORY_MANAGER
By default, Emerge is using a memory manager that handles the dynamic memory allocation. The overhead for the allocation and dellocation of memory during the run is avoided by allocating a large part of the total available memory during initialisation. This section is then filled dynamically by individual memory blocks using a stack structure and a 64 bit boundary. If this option is set, the memory manager is disabled, and all memory blocks are allocated on the fly, which may reduce the performance of the code.
SFE_MPEAK_ZEVOLV
By default, the instantaneous conversion efficiency ε(M) = 2 εN [ (M/M1)-β + (M/M1)γ]-1 does not depend on redshift. Setting this option makes the characteristic halo mass M1 depend linearly on the scale factor a: M1(z) = M0 + Mz(1-a) = M0 + Mz ∙ z/(z+1) .
SFE_NORM_ZEVOLV
Setting this option makes the normalisation of the instantaneous conversion efficiency εN depend linearly on the scale factor a: εN(z) = ε0 + εz(1-a) = ε0 + εz ∙ z/(z+1) .
SFE_BETA_ZEVOLV
Setting this option makes the low-mass slope of the instantaneous conversion efficiency β depend linearly on the scale factor a: β(z) = β0 + βz(1-a) = β0 + βz ∙ z/(z+1) .
SFE_GAMMA_ZEVOLV
Setting this option makes the high-mass slope of the instantaneous conversion efficiency γ depend linearly on the scale factor a: γ(z) = γ0 + γz(1-a) = γ0 + γz ∙ z/(z+1) .
SFE_SAME_SLOPE
If this option is set, the low and high-mass slopes of the instantaneous conversion efficiency are required to have the same absolute value at any redshift, i.e. β(z)=γ(z).
SAT_QUENCH_MASS_DEPENDENT
By default, satellite galaxies are quenched after a fixed time τ once their halo stops growing, given by τ = τ0 ∙ tdyn, where tdyn=Rvir/Vvir is the dynamical time of the halo. If this option is enabled, the quenching time τ depends on the stellar mass of the galaxy, with low-mass galaxies having a larger quenching time, given by τ = τ0 ∙ tdyn ∙ max [(m* / 1010M☉)-τs,1] ,
where the quenching slope τs is a free parameter.
SAT_STRIP_USE_MSTAR
By default, a satellite galaxy gets stripped and its stellar mass added to the ICM of the main halo, if the mass of its subhalo drops below a fraction of the peak mass during its history: M < fs ∙ Mpeak. If this option is set, satellite galaxies are instead stripped if the mass of their subhalo drops below a fraction of their own stellar mass: M < fs ∙ m*.
SAT_SFR_EXP_DECAY
If this option is selected, the star formation rate of a galaxy declines exponentially on a timescale τd after its halo has reached its peak mass: d/dt m = d/dt m,peak ∙ exp [-τd (t-tpeak) / tdyn] .
COMPUTE_ICM
This option enables the computation of the ICM, and requires the halo merger trees to be organised in forests. A forest contains all merger trees that are in contact through their history, i.e. if a halo is located within the virial radius of another halo at any point in time, their merger trees are part of the same forest. To be able to handle forests, Emerge requires a forest file with the same base file name as the merger tree files and a
.forests
file extension. This file has to store the tree ID for each merger tree (first column), and the corresponding forest ID (second column). Emerge then distributes the merger trees to computing cores such that each forest is loaded on a single core. These additional sorting processes require somewhat more time at the start of Emerge.
DF_USE_BK08
If this option is set, Emerge uses the dynamical friction formula by Boylan-Kolchin et al. (2008). Otherwise, the standard formula by Binney & Tremaine (1987) is used.
ORPHAN_MASSLOSS
This option only affects orphan galaxies, i.e. galaxies for which the corresponding subhalo has dropped below the resolution limit of the dark matter simulation. If enabled, the halo associated with an orphan galaxy loses mass at the same rate as it did between reaching its peak mass and dropping below the resolution limit. Otherwise, the halo mass of an orphan galaxy stays constant at the mass when the halo got lost.
ORPHAN_NONRADIAL_INFALL
By default, the position of orphan galaxies is chosen to be on fixed angular coordinates with respect to the central galaxy, while the radius decreases with the dynamical friction time. If this option is set, the angular coordinates are no longer fixed, but chosen randomly on the unit sphere at each time step.
READ_SMF
If this option is set, the stellar mass functions are read from the corresponding file in the
data
folder, and included in the computation of the model likelihood.
READ_FQ
If this option is set, the fractions of quenched galaxies as a function of stellar mass are read from the corresponding file in the
data
folder, and included in the computation of the model likelihood.
READ_CSFRD
If this option is set, the cosmic star formation rate densities are read from the corresponding file in the
data
folder, and included in the computation of the model likelihood.
READ_SSFR
If this option is set, the specific star formation rates as a function of stellar mass are read from the corresponding file in the
data
folder, and included in the computation of the model likelihood.
READ_WP
If this option is set, the projected galaxy auto-correlation functions are read from the corresponding file in the
data
folder, and included in the computation of the model likelihood.
GLOBAL_SIGMA_SMF
If this option is set, a global error between different measurements of the stellar mass function can be specified in the parameter file. This value will then be added in quadrature to the uncertainty of each individual data point.
GLOBAL_SIGMA_FQ
If this option is set, a global error between different measurements of the quenched fraction can be specified in the parameter file. This value will then be added in quadrature to the uncertainty of each individual data point.
GLOBAL_SIGMA_CSFRD
If this option is set, a global error between different measurements of the cosmic star formation rate density can be specified in the parameter file. This value will then be added in quadrature to the uncertainty of each individual data point.
GLOBAL_SIGMA_SSFR
If this option is set, a global error between different measurements of the specific star formation rate can be specified in the parameter file. This value will then be added in quadrature to the uncertainty of each individual data point.
GLOBAL_SIGMA_WP
If this option is set, a global error between different measurements of the projected galaxy auto-correlation function can be specified in the parameter file. This value will then be added in quadrature to the uncertainty of each individual data point.
WP_RBINS=20
To compute the projected galaxy auto-correlation function, first the 3D auto-correlation function is computed. This option can be used to override the default number of 20 radial bins.
WP_RBINS_INT=1000
The projected auto-correlation function is integrated from the 3D function using interpolation. This option can be used to override the default number of 1000 interpolation points.
WP_RMAX=0.1
The correlation function is computed up to a maximum distance of
WP_RMAX
times the box side length. This option can be used to override the default value of 0.1.
WP_NLEAF_MIN=4
The pair counting needed to compute the correlation function uses a kd-tree. While building this tree, a node is split if it contains more than 4 objects. This option can be used to override the default value.
WP_NODE_WIDTH_MIN=0.01
The splitting of nodes while building the kd-tree needed for the correlation function is also stopped, if the widest dimension is smaller than 0.01 times the box side length. This option can be used to override the default value.
The HYBRID optimisation algorithm uses a combination of particle swarm optimisation and simulated annealing, and the step size depends on the likelihood of the walker with respect to the other walkers and the starting likelihood. At each MCMC step i, the mean χ2 value is computed and compared to the mean starting χ2 value: qi=<χi2>/<χ12>. Moreover, the χ2 value of each individual walker j is compared to the mean χ2 value: pj=<χj2>-χj2. The step size of each walker is then chosen as σ = σ0(T) ∙ g(q) ∙ f(p), where σ(T) is a normalisation that can depend on the chain temperature, and g and f are monotonic functions. The dependence on q is implemented as g(q)=qα, while the dependence on p is implemented as f(p)=1-β p for p<0 and f(p)=(p+1)-γ for p>= 0.
HYBRID_ALPHA=0.4
This option can be set to override the default value of 0.4 for the slope α of the function g(q). For a larger value, the step size will depend more strongly on the ratio between current and initial mean likelihood.
HYBRID_BETA=1.0
This option can be set to override the default value of 1.0 for the slope β of the function f(p) for p<0. For a larger value the step size will depend more strongly on the difference between the likelihood of the walker and the current mean likelihood.
HYBRID_GAMMA=1.0
This option can be set to override the default value of 1.0 for the slope γ of the function f(p) for p >= 0. For a larger value the step size will depend more strongly on the difference between the likelihood of the walker and the current mean likelihood.
The parallel-tempering algorithm runs MCMC chains at different temperatures and can swap the temperature of two walkers if one of them has found a location with a good likelihood. In this way the hot walkers can explore a large part of the parameter space quickly, while cold walkers explore the regions with a high likelihood more thoroughly. At the end of the run, the cold walkers with T=1 sample the posterior distribution. A fraction of the walkers is set to T=1, while the other walkers follow a logarithmic temperature distribution with a maximum temperature Tmax that can be specified in the parameter file.
PT_COLD_FRACTION=0.25
This option can be set to override the default 25% fraction of cold walkers with T=1.
PT_TARGET_ACCEPTANCE=0.3
The step size for new walker postions is adjusted on the fly, such that the resulting acceptance fraction has a specified value. With this option the default value for the desired acceptance fraction of 30% can be overridden.
PT_STEPS_SCALE_ADJUST=10
The step size for new walker postions is adjusted is adjusted every 10 steps by default. This option can be set to override this choice.
HDF5_SUPPORT
This option enables support for the HDF5 file format. Note that it can only be used, if the HDF5 library is installed and properly linked in the
Makefile
. If this option is set, the desired output file format can be specified in the parameter file. Otherwise all output files will bin in ASCII fromat.
WRITE_GALAXY_CATALOG
If this option is set, Emerge writes galaxy catalogues to the
output
folder. The output redshifts, stellar mass threshold, number of files per redshift, and output format can be specified in the parameter file for each run. For details on the structure of the galaxy catalogues see Galaxy Catalogues .
WRITE_HALO_CATALOG
If this option is set, Emerge writes dark matter halo catalogues to the
output
folder for the same redshifts, stellar mass threshold, number of files per redshift, and output format as the galaxy catalogues. For details on the structure of the halo catalogues see Halo Catalogues .
WRITE_MAINBRANCH
If this option is set, Emerge writes the main branch, i.e. only main progenitors and descendants for seleced systems to the
output
folder. These galaxies are seleced at a specific redshift and a stellar or halo mass bin in the parameter file.
Many aspects of Emerge do not need to be set before compilation, but can be specified at run-time in a parameter file whenever
the code is started. Each parameter is set by first specifying a keyword and then a numerical value or a character string, separated
by spaces or tabs. A separate line has to be used for each keyword, and the corresponding value has to appear in the same line.
It is possible to use an arbitrary amount of space between keywords, including empty lines. The keywords can appear in any order,
but can only appear once. If a necessary keyword has been omitted, or a keyword that is not needed has been set, the code will
print an error message, and the parameter file has to be adjusted. All keywords are type-sensitive. Empty lines, or lines with
a leading %
are ignored. Comments can be added after the value for the corresponding keyword.
This section discusses the parameters in detail. All keywords marked with an asterisk will be ignored if Emerge is restarting a fitting algorithm, as these values are loaded from the restart file. In this case it is typically not needed to change the other parameters.
ModelName
P100
This is the name of the model. A folder with the same name will be created in the
output
folder, and all output files will be written to this folder.
UniversesInParallel
1
This specifies the number of universes, i.e. walkers, that will be computed in parallel. If more than one universe are computed in parallel, the initial setup of the halo merger trees will be done for the first universe and then duplicated for the other universes. For a simple generation of mock catalogues, this parameter can be set to
1
. For parameter space exploration, ideally the number of computing cores per universe, i.e. the total number of available cores divided by the number of parallel universes, is chosen such that it fits in the available memory per core. This setup results in as many parallel universes as possible and will typically lead to the best performance. For example, if 400 cores are available, and at least 10 cores are needed to hold one universe,UniversesInParallel
should be set to 40. Note that the number of cores must be a multiple ofUniversesInParallel
.
NumFilesInParallel
4
The code can read halo merger tree files and write output files in parallel. This parameter controls how many files are processed in parallel, and is ideally set to a subdivision of the number of halo merger tree files.
Verbose
1
This parameter regulates how much screen output is produced. Currently it can be set to 1 (minimal screen output), and 2 (maximal screen output).
MaxMemSize
1500
This parameter specifies the amount of memory in MByte that the dynamic memory manager allocates for each computing core. This should typically be set to the amount of available memory divided by the number of cores. If
MaxMemSize
has been chosen too low, the code will print an error message and inform how much memory is needed for the specified setup. In case the available memory per core is lower than this value, either the number of parallel universes must be decreased, or more memory is needed, i.e. additional computing nodes must be added.
BufferSize
100
This parameter specifies the size in Mbyte for the multi-purpose communication buffer used by the code in various parts of the parallel algorithms. It should be large enough to have minimal work-load imbalance losses, though in practice a few to 100 MBytes are sufficient.
TreefileName
trees/P100
This sets the filename of the halo merger tree files to be read in at start-up. The trees can be distributed into several files. In this case, only the base name without the tailing .n number should be specified. The code will recognise the number of files that contain the halo merger trees automatically, and load all of these files accordingly. In the example above, the code will read the files
P100.0
,P100.1
, and so on, in thetrees
folder.
SMFfileName
data/smf.dat
This sets the location and the name of the file that contains the observed stellar mass functions. For details on the structure of this file, see Stellar Mass Functions .
FQfileName
data/fq.dat
This sets the location and the name of the file that contains the observed fractions of quenched galaxies as function of stellar mass and redshift. For details on the structure of this file, see Quenched Fractions .
CSFRDfileName
data/csfrd.dat
This sets the location and the name of the file that contains the observed cosmic star formation rate densities. For details on the structure of this file, see Cosmic Star Formation Rate Density .
SSFRfileName
data/ssfr.dat
This sets the location and the name of the file that contains the observed specific star formation rates as function of stellar mass and redshift. For details on the structure of this file, see Specific Star Formation Rates .
WPfileName
data/wp.dat
This sets the location and the name of the file that contains the observed projected auto-correlation functions. For details on the structure of this file, see Projected correlation functions .
These parameters specify the cosmology and have to take the same values that have been used to simulated the halo merger trees.
HubbleParam
0.6781
This sets the value of the Hubble constant in units of 100 kms -1 Mpc -1.
Omega0
0.3080
This sets the value of the cosmological matter density parameter in units of the critical density at z=0.
OmegaLambda
0.6781
This sets the value of the cosmological dark energy density parameter for a cosmological constant in units of the critical density at z=0. A geometrically flat universe has
Omega0 + OmegaLambda = 1
.
OmegaBaryon
0.0484
This sets the value of the cosmological baryon density parameter in units of the critical density at z=0. The resulting value for universal baryon fraction is given by
Omega0 / OmegaLambda
.
BoxSize
67.81
This parameter specifies the side length of the simulation box from which the dark matter halo merger trees have been extracted. Note that it should have the same unit as the tree files, e.g. if the side length is 100 Mpc, but the unit used for the merger trees is Mpc/h, the value given here should be
67.81
(for h = 0.6781).
These parameters set the internal units. All simulated and observed data that is read in will be converted to these internal units. The output data will be converted to convenient units (see Output files for more details).
UnitLength_in_Mpc
1.0
This sets the internal length unit in Mpc.
UnitTime_in_yr
1.0e9
This sets the internal time unit in years. The above choice is convenient for cosmological boxes as it sets the time unit to one Gyr.
UnitMass_in_Msun
1.0e9
This sets the internal mass unit in solar masses. The above choice is convenient, as the interal unit for the star formation rate is then one solar mass per year.
These parameters regulate the instantaneous baryon conversion efficiency. If Emerge is run with a mode for which only one model is computed, the exact values specified are used. If Emerge is run with a mode for which walkers with random initial positions are evolved, the values specify the mean of the bin from which the inital values for the walkers are sampled.
Eff_MassPeak
11.35
This sets the z=0 value M0 for the parameter M1 of the conversion efficiency, which specifies the halo mass close to which the conversion efficiency peaks.
Eff_Normalisation
0.009
This sets the z=0 value ε0 for the parameter εN of the conversion efficiency, which specifies its normalisation.
Eff_LowMassSlope
3.09
This sets the z=0 value β0 for the parameter β of the conversion efficiency, which specifies its low-mass slope.
Eff_HighMassSlope
1.11
This sets the z=0 value γ0 for the parameter γ of the conversion efficiency, which specifies its high-mass slope. This parameter is not present, if the code has been compiled with the option
SFE_SAME_SLOPE
.
Eff_MassPeak_Z
0.65
This sets the redshift scaling Mz for the parameter M1 of the conversion efficiency. This parameter is only present if the code has been compiled with the option
SFE_MPEAK_ZEVOLV
.
Eff_Normalisation_Z
0.60
This sets the redshift scaling εz for the parameter εN of the conversion efficiency. This parameter is only present if the code has been compiled with the option
SFE_NORM_ZEVOLV
.
Eff_LowMassSlope_Z
-2.02
This sets the redshift scaling βz for the parameter β of the conversion efficiency. This parameter is only present if the code has been compiled with the option
SFE_BETA_ZEVOLV
.
Eff_HighMassSlope_Z
0.0
This sets the redshift scaling γz for the parameter γ of the conversion efficiency. This parameter is only present if the code has been compiled with the option
SFE_GAMMA_ZEVOLV
, and the optionSFE_SAME_SLOPE
has not been set.
These parameters regulate the evolution of satellite galaxies. If Emerge is run with a mode for which only one model is computed, the exact values specified are used. If Emerge is run with a mode for which walkers with random initial positions are evolved, the values specify the mean of the bin from which the inital values for the walkers are sampled.
Fraction_Escape_ICM
0.56
This sets the escape fraction for galaxy mergers, i.e. the fraction of the stellar mass of the satellite galaxy that gets ejected into the ICM during a galaxy merger.
Fraction_Stripping
0.004
This parameter defines the threshold for the subhalo mass below which satellites are instantly stripped to the ICM. If the option
SAT_STRIP_USE_MSTAR
is set, satellite galaxies are stripped if the mass of their subhalo drops belowFraction_Stripping
times their own stellar mass, otherwise they are stripped if the mass of their subhalo drops belowFraction_Stripping
times it maximum mass through history.
Timescale_Quenching
4.46
This sets the timescale for satellite quenching. If a subhalo has dropped below its maximum mass through history for more than
Timescale_Quenching
times the halo dynamical time, the SFR in the satellite galaxy is set to zero.
Timescale_Quenching
0.35
If the option
SAT_QUENCH_MASS_DEPENDENT
has been set, this parameter defines the slope τs of the mass dependence of the quenching timescale τ = τ0 ∙ tdyn ∙ max [(m* / 1010M☉)-τs,1] .
Decay_Quenching
0.0
If the option
SAT_SFR_EXP_DECAY
has been set, this parameter sets the timescale for the exponential decay of the SFR after the subhalo falls below its maximum mass. After the quenching timescale τ has elapsed, the SFR is still set to zero.
Mstar_min
7.0
Minimum logarithmic stellar mass in solar masses that is used to compute global statistics such as stellar mass functions, quenched fractions and specific star formation rates. All observational data below this mass are ignored in the fit.
Mstar_max
12.5
Maximum logarithmic stellar mass in solar masses that is used to compute global statistics such as stellar mass functions, quenched fractions and specific star formation rates. All observational data above this mass are ignored in the fit.
Delta_Mstar
0.2
Stellar mass bin size in dex used to compute global statistics. During the fitting process the model values corresponding to individual oberved data will be interpolated from these bins.
Observation_Error_0
0.08
In Emerge, each galaxy has an intrinsic stellar mass, i.e. the physically self-consistent stellar mass given by the integral of past star formation and mass loss, and an observed stellar mass that is computed from the intrinsic mass and a gaussian distribution for the observational error. The standard deviation of this distribution linearly depends on redshift as σ = σ0+σz∙ z. The z=0 scatter σ0 is set by
Observation_Error_0
.
Observation_Error_z
0.06
The scatter between intrinsic and observed stellar mass increases linearly with redshift. The slope σz is set by
Observation_Error_z
. The scatter increases only up to redshift of z=4, after which it is held constant. This choice can be changed by modifying the value ofZMAX_SMFERR
in theallvals.h
file.
Global_Sigma_SMF_LZ
0.15
If the option
GLOBAL_SIGMA_SMF
has been set, this parameter is added in quadrature to the observational uncertainty of each data point of the stellar mass function below z=0.1. This redshift threshold can be changed by modifying the value ofSIGMASMFZTHRESH
in theallvals.h
file. This increased uncertainty can be sensible if different selected observational data sets are not in agreement with each other given their original uncertainties.
Global_Sigma_SMF_HZ
0.30
If the option
GLOBAL_SIGMA_SMF
has been set, this parameter is added in quadrature to the observational uncertainty of each data point of the stellar mass function above z=0.1.
Global_Sigma_FQ
0.10
If the option
GLOBAL_SIGMA_FQ
has been set, this parameter is added in quadrature to the observational uncertainty of each data point of the quenched fractions.
GLOBAL_SIGMA_CSFRD
0.10
If the option
GLOBAL_SIGMA_CSFRD
has been set, this parameter is added in quadrature to the observational uncertainty of each data point of the cosmic SFR density.
GLOBAL_SIGMA_SSFR
0.15
If the option
GLOBAL_SIGMA_SSFR
has been set, this parameter is added in quadrature to the observational uncertainty of each data point of the specific SFRs.
GLOBAL_SIGMA_WP
0.40
If the option
GLOBAL_SIGMA_WP
has been set, this parameter is added in quadrature to the observational uncertainty of each data point of the projected galaxy auto-correlation functions.
When the model parameters are fit using any of the fitting algorithms (code modes 1, 2, or 3), the walkers are initialised uniformly in a
hyper-cube centred around the values given above. The width of the cube in each dimension is given by the following parameters, which have
the same names as the fitted parameters plus an extension of _Range
. For example, if the fitted parameter has a value of 1.0 and the
_Range
parameter has a value of 0.5, the walkers will be initialised uniformly between 0.75 and 1.25 in this dimension. Note that some
parameters are fit in logarithmic space, as indicated below.
Eff_MassPeak_Range
0.2
Range of the initial distribution of the parameter
Eff_MassPeak
.
Eff_Normalisation_Range
0.5
Range of the initial distribution of the parameter
Eff_Normalisation
. This parameter is fit in logarithmic space, and the range is given in dex. For example, ifEff_Normalisation
is 0.01 andEff_Normalisation_Range
is 0.5, the walkers will be distributed logarithmically between 10^[log10(0.01) - 0.5/2] = 0.0056 and 10^[log10(0.01) + 0.5/2] = 0.0178.
Eff_LowMassSlope_Range
0.5
Range of the initial distribution of the parameter
Eff_LowMassSlope
.
Eff_HighMassSlope_Range
0.2
Range of the initial distribution of the parameter
Eff_HighMassSlope
.
Eff_MassPeak_Z_Range
0.2
Range of the initial distribution of the parameter
Eff_MassPeak_Z
.
Eff_Normalisation_Z_Range
0.2
Range of the initial distribution of the parameter
Eff_Normalisation_Z
.
Eff_LowMassSlope_Z_Range
0.5
Range of the initial distribution of the parameter
Eff_LowMassSlope_Z
.
Eff_HighMassSlope_Z_Range
0.2
Range of the initial distribution of the parameter
Eff_HighMassSlope_Z
.
Fraction_Escape_ICM_Range
0.3
Range of the initial distribution of the parameter
Fraction_Escape_ICM
in dex, distributed logarithmically.
Fraction_Stripping_Range
0.3
Range of the initial distribution of the parameter
Fraction_Stripping
in dex, distributed logarithmically.
Timescale_Quenching_Range
0.5
Range of the initial distribution of the parameter
Timescale_Quenching
in dex, distributed logarithmically.
Slope_Quenching_Range
0.4
Range of the initial distribution of the parameter
Slope_Quenching
.
Decay_Quenching_Range
0.2
Range of the initial distribution of the parameter
Decay_Quenching
.
For parameter space exploration, three different code modes can be used. The following hyperparameters regulate these algorithms.
NumberOfMCMCWalkers
8
This sets the number of walkers used for all parameter space exploration methods. Each walker then moves through parameter space for each step of the algorithm, forming a chain. As all parameter space exploration algorithms are ensemble methods, a large number here is recommended, ideally several hundreds of walkers.
MCMCScaleParameter
2.0
This sets the step size with which new walker positions will be suggested. For the affine-invariant MCMC sampler (code mode 1),
MCMCScaleParameter
defines the a parameter and is suggested to be chosen around 2. For the HYBRID method (code mode 2) and the parallel tempering algorithm (code mode 3), this parameter sets the initial gaussian trial step, based on the parameter range divided by two to the power ofMCMCScaleParameter
. For example, if the parameter rangeEff_MassPeak_Range
is set to 0.2, andMCMCScaleParameter
is set to 4, a new trial step size will be drawn from a gaussian distribution with a sigma of 0.2 / 24 = 0.0125 for the dimension corresponding to the parameterEff_MassPeak
. A higher value leads to a larger step size, and consequently to a lower acceptance rate. For code modes 1 and 2 this parameter can be adjusted to obtain the desired acceptance rate, while for code mode 3, the step size is adjusted on the fly to get an acceptance rate as defined by the optionPT_TARGET_ACCEPTANCE
.
ChainTemperature
100.0
This sets the initial temperature for the chains. If the code is run with mode 1 (MCMC), this parameter is ignored. If the code is run with mode 2 (HYBRID),
ChainTemperature
sets the initial temperature of all chains. For a positive value, this temperature will decrease on a logarithmic timescale. For a negative value, the temperature will be held constant at the absolute value ofChainTemperature
. If the code is run with mode 3 (parallel tempering),ChainTemperature
sets the temperature of the hottest chain. A fraction of the walkers (set with the optionPT_COLD_FRACTION
) is initialised at a temperature of T=1, while the remaining walkers will have temperatures spaced logarithmically up to the value ofChainTemperature
.
TimeLimit
180.0
This sets the time limit of the fitting procedure in seconds. The algorithm is stopped, if the next chain would be completed after the time limit. This parameter should be adapted to the computing time limit of the system Emerge is running on, taking into account the time the code needs to set up everything before the fitting starts. In this way, the code can be terminated before the load managing system stops it while running.
MCMCseed
12345
This integer value sets the seed for the fitting algorithm. For the same seed value, the algorithm will produce the same walker chains. If the code is run to start a new fitting procedure, a file containing the seed value and a
000
ending will be created, e.g.mcmc12345.000.out
. If this file already exists, it will be overridden. If fitting is resumed with1
added to the flag behind the parameter file (e.g. 11 to resume the MCMC fitting), a new file will be created with an incremented number. For example, if the fitting is resumed for the first time, the filemcmc12345.001.out
, will be created. If the fitting is restarted again, the filemcmc12345.002.out
will be created, and so on. Changing the seed value will result in completely different chains, such that several ensembles of walkers with different seeds can be run at the same time.
NumOutputFiles
1
This sets the number of files each output product is split into. This applies to galaxy and catalogues at a given redshift, while catalogues at different redshifts will be already separated into different files.
OutputFormat
1
This parameter indicates which output format will be used. A value of 1 will produce output in ASCII format, while for a value of 2, the HDF5 format is used. For more details on the specific structure of the output files, see Output files .
OutputRedshifts
0.1,0.5,1.0
This comma-separated list specifies the output redshifts for which galaxy and halo catalogues are created. If only a single value is given, only one output catalogue at this redshift will be written. If several values are given, separated by commas, output files will be written for each redshift. Note that there must not be any space between values and commas.
OutputMassThreshold
7.0
This sets the minimum stellar mass for which a system is included in the output catalogues. The value is given in logarithmic solar masses.
MainBranchMasses
10.0,11.0,12.0
This sets the mean of the mass bin for which galaxy main branches will be written. The parameter
MainBranchMassType
controls if these are given in halo masses or stellar masses. If only a single value is given, only one mass bin will be written. If several values are given, separated by commas, each mass bin will be written. Note that there must not be any space between values and commas.
MainBranchBinSize
0.1,0.2,0.5
This sets the mass bin width for which main branches will be written. The number of values given in this list must be the same as for the
MainBranchMasses
list.
MainBranchMassType
1
This defines which mass will be used for the selection. For a
0
the mass bin corresponds to the halo mass, while for1
the mass bin corresponds to the (intrinsic) stellar mass.
MainBranchRedshift
0.0
This value sets the redshift at which the systems are selected, i.e. they must have a (halo or stellar) mass that falls into the specified bins at this redshift.
In Emerge the properties of simulated dark matter haloes are linked to the observed properties of galaxies. This is achieved by
using global statistics, such as the stellar mass function and galaxy clustering. Each time a model with a set of parameters is
run, mock observations are computed and compared to observed data. This data is stored in ASCII format in several files in the
data
folder. To fit the model to different data sets, these files can be simply modified to suit any configuration. Typically,
they contain blocks of individual data points representing data sets reported by different publications. The following
sections provide an overview of the different statistical data, the format of the files, and how to modify them.
The stellar mass functions are stored in the data/smf.dat
file, and are read and used in the fit only if the option
READ_SMF
has been set. This file starts with a general header line and is followed by several blocks of data, which in turn
consist of a header line and individual data. The general header starts with a #
and then lists the entries that each data block
header needs to consist of. These are a #
, which identifies the line as a block header, the number of individual data points in
this block, the minimum and the maximum redshift of the stellar mass function, a correction value for the (universal) initial mass
function (IMF) of the data, the Hubble parameter, and a string that identifies the publication from which the data is taken. A typical
block header thus has the format
# 39 0.0 0.2 0.0 1.0 Li & White 2009
,
which signifies that the data block has 39 entries (excluding this header), ranges from z=0.0 to z=0.2, has no IMF correction, uses a Hubble parameter of h=1.0, and is from the paper by Li & White (2009).
The IMF can be normalised to any choice, as long as this choice is consistent for all data files. For example, if the model shall be
calibrated to a Chabrier IMF, the correction for the data blocks that are given for a Chabrier IMF is 0, while for the data blocks that
are given for a Salpeter IMF, the correction value would be 0.24, which is then subtracted from the logarithmic stellar masses. The
block header will then look like # 19 0.6 1.0 0.24 0.7 Santini 2012
. If instead the masses shall be calibrated to a Salpeter IMF,
data using a Chabrier IMF will need to have a block header with a IMF correction value of -0.24, while data using a Salpeter IMF would
have a correction value of 0.
Each data block consists of several lines that form the stellar mass function in the given redshift interval. These lines consist of the logarithmic stellar mass, the logarithm of the number density per dex, the upper 1 σ number density, the lower 1 σ number density, and a weight factor. This factor will be multiplied to the χ2 value of the corresponding data point. For a complete parameter space exploration it should be set to 1 for each data point. However, for testing purposes it can be set to zero to ignore some data, or to a larger value to see how the model changes if one observation is emphasised. A typical data block will look like:
# 39 0.0 0.2 0.0 1.0 Li & White 2009
8.05 -1.216 -1.174 -1.263 1
8.15 -1.312 -1.264 -1.366 1
... [35 more lines] ...
11.45 -4.745 -4.702 -4.794 1
11.55 -5.312 -5.237 -5.403 1
New data blocks can be simply added to the end of the file, taking into account that each block needs a header as described above, and that the number of data points in the header correspond to the number of lines in that block. Note that there must not be empty lines before the end of the file.
The fraction of quenched galaxies as a function of stellar mass are stored in the data/fq.dat
file, and are read and used in the fit
only if the option READ_FQ
has been set. This file starts with a general header line and is followed by several blocks of data, which
in turn consist of a header line and individual data. The headers have the same format as in the stellar mass function file. The IMF
can be normalised with a correction value in the same way as for the stellar mass functions. Note that the IMF choice has to be the same
everywhere.
The data blocks consist of several lines that give the quenched fractions in the given redshift interval. These lines consist of the logarithmic stellar mass, the fraction of quenched galaxies, the 1 σ uncertainty, and a weight factor that will be multiplied to the χ2 value of the corresponding data point. A typical data block will look like:
# 32 0.2 0.5 0.03 0.7 Muzzin 2013
8.4 0.142 0.157 1
8.5 0.122 0.100 1
... [28 more lines] ...
11.4 0.943 0.237 1
11.5 0.920 0.285 1
New data blocks can be added to the end of the file in the same way as for the SMFs.
The cosmic star formation rate densities are stored in the data/csfrd.dat
file, and are read and used in the fit only if the option
READ_CSFRD
has been set. This file starts with a general header line and is followed by several blocks of data, which
in turn consist of a header line and individual data. The general header starts with a #
and then lists the entries that each data block
header needs to consist of. These are a #
, which identifies the line as a block header, the number of individual data points in
this block, the IMF correction value, the Hubble parameter, and a string that identifies the publication from which the data is taken
and the wavelength band that has been used. A typical block header thus has the format
# 1 0.24 1.0 Robotham & Driver 2011 UV
,
which signifies that the data block has 1 entry, wil be converted from a Salpeter to a Chabrier IMF, uses a Hubble parameter of h=1.0, and is from the paper by Robotham & Driver (2011). Note that the IMF choice has to be the same everywhere.
The data blocks consist of several lines that give the cosmic star formation rate density at several redshifts. These lines consist of the redshift, the logarithmic cosmic star formation rate density in solar masses per year and cubic Megaparsec, the upper 1 σ uncertainty in dex, the lower 1 σ uncertainty in dex, and a weight factor that will be multiplied to the χ2 value of the corresponding data point. A typical data block will look like:
# 4 0.0 0.7 Zheng 2006 UV/IR
0.3 -1.7060 0.1261 0.1821 1
0.5 -1.4575 0.0977 0.1255 1
0.7 -1.2438 0.0710 0.0801 1
0.9 -1.2103 0.0776 0.0944 1
New data blocks can be simply added to the end of the file, taking into account that each block needs a header as described above, the number of data points in the header corresponds to the number of lines in that block, and there are no empty lines before the end of the file.
The specific star formation rates are stored in the data/ssfr.dat
file, and are read and used in the fit only if the option
READ_SSFR
has been set. This file starts with a general header line and is followed by several blocks of data, which
in turn consist of a header line and individual data. The headers have the same format as in the cosmic star formation rate density
file. The IMF can be normalised with a correction value, but the IMF choice has to be the same everywhere.
The data blocks consist of several lines that give the specific star formation rate as a function of stellar mass and redshift. These lines consist of the redshift, logarithmic stellar mass, the logarithm of the specific star formation rate in yr-1, the upper 1 σ uncertainty in dex, the lower 1 σ uncertainty in dex, and a weight factor that will be multiplied to the χ2 value of the corresponding data point. A typical data block will look like:
# 60 0.0 0.7 Whitaker 2012
0.25 8.58 -9.31 0.3 0.3 1
0.25 8.69 -9.29 0.3 0.3 1
... [56 more lines] ...
2.25 11.00 -8.78 0.3 0.3 1
2.25 11.25 -8.90 0.3 0.3 1
New data blocks can be simply be added to the end of the file, although there must not be empty lines before the end of the file.
The projected galaxy auto-correltion function are stored in the data/wp.dat
file, and are read and used in the fit only if the option
READ_WP
has been set. In the current implementation, all observed correlation functions must be at the same redshift, which is
specified at the beginning of the file. The following line is a general header that starts with a #
and then lists the entries that
each data block header needs to consist of. These are a #
, which identifies the line as a block header, the number of individual data
points in this block, the minimum logarithmic stellar mass for this bock, the maximum logarithmic stellar mass for this block, the
maximum line-of-sight projection distance πmax, the IMF correction value, the Hubble parameter, and a string that
identifies the publication from which the data is taken. A typical block header thus has the format
# 25 9.0 9.5 10.0 0.0 1.0 Li 2006
,
which signifies that the data block has 25 entries (excluding this header), ranges from log m = 9.0 to log m = 9.5, has a projection distance of πmax = 10 Mpc/h, no IMF correction, uses a Hubble parameter of h=1.0, and is from the paper by Li et al. (2006).
Each data block consists of several lines that give the projected correlation function in the given stellar mass bin. These lines consist of the projected distance in Mpc/h, the projected correlation function in Mpc/h, the 1 σ uncertainty, and a weight factor that will be multiplied to the χ2 value of the corresponding data point. A typical data block will look like:
# 25 9.0 9.5 10.0 0.0 1.0 Li 2006
0.11 411.3 133.7 1
0.14 428.6 94.3 1
... [21 more lines] ...
22.54 0.9 1.8 1
28.37 0.5 1.8 1
New data blocks can be simply be added to the end of the file. Note that there must not be empty lines before the end of the file, and the redshift for all correlation functions must be the same (given at the start of the file).
In addition to observed galaxy data, Emerge relies on simulated dark matter halo merger trees that will be populated with galaxies. The
files that contain these merger trees and their locations can be specified in the parameter file with the parameter TreefileName
. The
suggested location for the merger tree files is the trees
folder. If the trees are located in a single file, TreefileName
corresponds
to the name of this file including folder, e.g. trees/P100
. If the trees are stored within multiple files, TreefileName
gives the file
base name, which will be appended with the file index, e.g. trees/P100
corresponds to the files P100.0
, P100.1
, P100.2
, ...
,
in the trees
folder. There is no restriction on the number of files that the trees are split into, although an individual tree cannot
be split into different files. The code will automatically detect the number of files.
Merger tree files extracted from a simulation with a side length of 100 Mpc can be downloaded from the code website
http://www.usm.lmu.de/emerge.
Each merger tree file has the same binary format. It starts with header giving the basic information contained in the file, which is followed by the properties for each halo. The files use the common `unformatted binary' convention, for which the data of each read or write statement is bracketed by fields that give the length of the data block in bytes. One such 4-byte integer field is stored before and after each data block. This is useful to check the consistency of the file structure, to make sure that the data is read at the correct place, and to skip individual blocks quickly by using the length information of the block size fields to fast forward in the file without actually having to read the data. The sequence of blocks in a file has the following format:
# | Block name | Type | Bit size | Elements | Comment |
---|---|---|---|---|---|
0 | Ntrees |
int | 32 | 1 | Number of merger trees in this file |
1 | Nhalos |
int | 32 | Ntrees |
Number of haloes in each merger tree |
2 | TreeID |
IDtype | 32 or 64 | Ntrees |
ID of each tree |
3 | Halo |
struct | 480 or 576 | Nhalostot |
Properties of each halo in this file |
The data type IDtype
is unsigned int
by default. However, for very large simulations the total number of haloes can be larger than
2 billion. In this case IDtype
needs to be able to cover this range, and can be set to the type unsigned long long int
if the LONGIDS
option is enabled. In total the Halo
block contains Nhalostot = Sum_i Nhalos_i
elements, i.e. the sum of the haloes in all trees.
The halo properties are stored in the form of a structure for each halo. This structure has the following format:
# | Block name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | haloid |
IDtype | 32 or 64 | 123456788 | ID of the halo (unique across simulation and snapshots) |
1 | descid |
IDtype | 32 or 64 | 123456789 | ID of the halo's descendant in the next snapshot |
2 | upid |
IDtype | 32 or 64 | 223456788 | ID of the most massive host halo |
3 | np |
unsigned short | 16 | 5 | Number of progenitors in the previous snapshot |
4 | mmp |
unsigned short | 16 | 1 | Flag indicating if the halo is the most massive progenitor (1) or not (0) |
5 | scale |
float | 32 | 0.99 | Scale factor a of the halo |
6 | mvir |
float | 32 | 1.1e12 | Virial mass in M☉/h |
7 | rvir |
float | 32 | 220.5 | Virial radius in kpc/h |
8 | c |
float | 32 | 11.5 | Halo concentration (Rvir/Rs) |
9 | lambda |
float | 32 | 0.033 | Halo spin parameter |
10 | pos[3] |
float (x3) | 96 | 3.1, 2.4, 7.1 | Halo position in Mpc/h (x,y,z) |
11 | vel[3] |
float (x3) | 96 | 302, -19, 212 | Halo velocity in km/s (vx,vy,vz) |
The halo IDs may not be smaller than 1. If a halo has no descendant (e.g. for z=0), the descendant ID descid
should be 0. Similarly,
if a halo is a host halo, the ID of the most massive host halo upid
should be 0. Both the position and the velocity are stored as
3D arrays.
For some applications, for example to compute the amount of stellar mass in the ICM, it is necessary that the trees are ordered within
forests, such that all merger trees that reference the same host ID need to be grouped together. In practice, this is achieved by providing
a separate file in the same folder as the tree files, which lists for each tree ID (left column) the corresponding forest ID (right column).
The name of the file has to consist of the tree file base name and a .forests
extension, e.g. P100.forests
.
While merger trees that have been created with any software can easily be converted to this format, a code that converts merger trees created
with the Rockstar / consistent-trees software into the Emerge format is provided in the tools
folder. Compiling Emerge should automatically
also compile the convert_CT_to_emerge.c
file and create the convert_CT_to_emerge.c
executable, which converts a single ASCII tree file
created with consistent-trees. Before compiling, it should be verified that the column numbers specified at the beginning of this file correspond
to the correct halo properties for the adopted version of consistent-trees. The executable must be called with the input file and output file
as arguments. If consistent-trees has divided the merger trees into several files (boxes) with the names tree_0_0_0.dat
, tree_0_0_1.dat
,
...
, the shell script consistent_trees_to_emerge.sh
can convert all files to the appropriate Emerge files. It needs to be called with the
output base name and the number of box divisions as arguments. The command consistent_trees_to_emerge.sh P100 2
converts all 8 files from
tree_0_0_0.dat
to tree_1_1_1.dat
into the files P100.0
to P100.7
.
At the end of each run, Emerge can write different data products to files. This includes the model predictions for the statistics that
have been used in the fit, mock galaxy catalogues, halo catalogues, and the main branch evolution of each system. In future releases,
Emerge will also be able to write the full galaxy merger trees, and support lightcone output. All files can either be written in standard
ASCII format, or, if the option HDF5_SUPPORT
has been set and the proper libraries have been installed, the HDF5 format can be used.
The output format can be selected before each run in the parameter file with the OutputFormat
parameter. All files will be written to
the output
folder, within the subfolder corresponding to the parameter ModelName
. Emerge supports parallel output by distributing
the catalogues into several files, each written by a group of processors, which may simplify the handling of very large simulations.
The global statistics that have been used to fit the model will be written to individual files in the statistics
subfolder for ASCII
output, and to individual datasets within the file statistics.h5
for HDF5 outout. For each seperate universe that has been run in
parallel as specified by the UniversesInParallel
parameter, separate statistics will be written. For the ASCII format, the index of
the universe is given in the file names, so that the *.0.out
files correspond to the first universe. For the HDF5 output, the
statistics.h5
file contains a group that holds all data for each universe.
For the ASCII format, the observed stellar mass functions, converted to the globally adopted IMF and Hubble parameter, are stored in
the smfobs.*.out
files (one for each universe). These files contain one data block for each observational data set, separated by
empty lines. Each data block is preceded by a header that starts with a #
, followed by the number of data points, the redshift bin
edges and the publication reference. Each line in the data block contains the logarithmic stellar mass, the observed logarithmic number
density, the observational uncertainty, and the model prediction for this data point. The smfmod.*.out
files contain the model stellar
mass function at each redshift for the stellar mass bins selected in the parameter file. Each line starts with the logarithmic stellar
mass bin followed by a model value for the stellar mass function at each redshift.
For the HDF5 format, the stellar mass functions are stored in the SMF
group. The Sets
HDF5 compound gives an overview of the
different data sets. It has the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Ndata |
int | 32 | 37 | The number of data points in this data set |
1 | Offset |
int | 32 | 604 | The offset with respect to the first data set |
2 | Redshift_min |
float | 32 | 0.2 | The minimum redshift |
3 | Redshift_max |
float | 32 | 0.5 | The maximum redshift |
4 | Tag |
string | 400 | Muzzin 2013 | A tag referencing the publication |
All of the observed data sets are located in the data
subgroup, and are organised in a HDF5 compound for each data set. The name of
each compound reflects the publication reference and the redshift bins. The observational data compounds have the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Stellar_mass |
float | 32 | 8.39761 | The logarithmic stellar mass in solar masses |
1 | Phi_observed |
float | 32 | -1.6404 | The logarithm of the observed number of galaxies per cubic Megaparsec and dex |
2 | Sigma_observed |
float | 32 | 0.31167 | The observational uncertainty in dex |
3 | Mean_ScaleFactor |
float | 32 | 0.75 | The mean scale factor a of the redshift bin |
4 | Phi_model |
float | 32 | -1.6724 | The logarithm of the model prediction for the number density of galaxies |
5 | Sigma_model |
float | 32 | 0.00661 | The model uncertainty in dex resulting from Poisson noise |
The model stellar mass function at each redshift is stored in the table Model
. The first row contains the scale factors that correspond
to each column, while the first column contains the logarithmic stellar masses that correspond to each row. The remaining table entries
give the logarithm of the stellar mass function (in dex-1 Mpc-3) at the given stellar mass and scale factor.
For the ASCII format, the observed quenched fractions, converted to the globally adopted IMF and Hubble parameter, are stored in
the fqobs.*.out
files (one for each universe). These files contain one data block for each observational data set, separated by
empty lines. Each data block is preceded by a header that starts with a #
, followed by the number of data points, the redshift bin
edges and the publication reference. Each line in the data block contains the logarithmic stellar mass, the observed quenched fraction,
the observational uncertainty, and the model prediction for this data point. The fqmod.*.out
files contain the model quenched
fractions for the stellar mass bins selected in the parameter file. Each line starts with the logarithmic stellar mass
bin followed by a model value for the quenched fraction at each redshift.
For the HDF5 format, the quenched fractions are stored in the FQ
group. The Sets
HDF5 compound gives an overview of the
different data sets. It has the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Ndata |
int | 32 | 32 | The number of data points in this data set |
1 | Offset |
int | 32 | 266 | The offset with respect to the first data set |
2 | Redshift_min |
float | 32 | 0.2 | The minimum redshift |
3 | Redshift_max |
float | 32 | 0.5 | The maximum redshift |
4 | Tag |
string | 400 | Muzzin 2013 | A tag referencing the publication |
All of the observed data sets are located in the data
subgroup, and are organised in a HDF5 compound for each data set. The name of
each compound reflects the publication reference and the redshift bins. The observational data compounds have the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Stellar_mass |
float | 32 | 10.5976 | The logarithmic stellar mass in solar masses |
1 | Fq_observed |
float | 32 | 0.50100 | The observed fraction of quenched galaxies |
2 | Sigma_observed |
float | 32 | 0.11413 | The observational uncertainty |
3 | Mean_ScaleFactor |
float | 32 | 0.75 | The mean scale factor a of the redshift bin |
4 | Fq_model |
float | 32 | 0.47875 | The model prediction for the fraction of quenched galaxies |
5 | Sigma_model |
float | 32 | 0.01463 | The model uncertainty resulting from Poisson noise |
The model quenched fractions at each redshift are stored in the table Model
. The first row contains the scale factors that correspond
to each column, while the first column contains the logarithmic stellar masses that correspond to each row. The remaining table entries
give the fraction of quenched galaxies at the given stellar mass and scale factor.
For the ASCII format, the observed cosmic star formation rate densities, converted to the globally adopted IMF and Hubble parameter, are
stored in the csfrdobs.*.out
files (one for each universe). These files contain one data block for each observational data set, separated
by empty lines. Each data block is preceded by a header that starts with a #
, followed by the number of data points and the publication
reference. Each line in the data block contains the redshift, the observed logarithmic cosmic star formation rate density in solar masses per
year and cubic Megaparsec, the observational uncertainty, and the model prediction for this data point. The csfrdmod.*.out
files contain the
redshift (first column) and the corresponding model cosmic star formation rate density (second column).
For the HDF5 format, the cosmic star formation rate densities are stored in the CSFRD
group. The Sets
HDF5 compound gives an overview of the
data sets. It has the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Ndata |
int | 32 | 4 | The number of data points in this data set |
1 | Offset |
int | 32 | 106 | The offset with respect to the first data set |
2 | Tag |
string | 400 | Duncan 2014 UV | A tag referencing the publication |
All of the observed data sets are located in the data
subgroup, and are organised in a HDF5 compound for each data set. The name of
each compound reflects the publication reference and the redshift bins. The observational data compounds have the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Redshift |
float | 32 | 4.0 | The redshift |
1 | Csfrd_observed |
float | 32 | -1.4438 | The observed cosmic star formation rate density in solar masses per year and cubic Megaparsec |
2 | Sigma_observed |
float | 32 | 0.12806 | The observational uncertainty |
3 | Csfrd_model |
float | 32 | -0.9831 | The model prediction for the cosmic star formation rate density |
The model predictions are stored in the table Model
. The first column contains the redshift, and the second column contains the corresponding
cosmic star formation rate density.
For the ASCII format, the observed specific star formation rates, converted to the globally adopted IMF and Hubble parameter, are stored in
the ssfrobs.*.out
files (one for each universe). These files contain one data block for each observational data set, separated by
empty lines. Each data block is preceded by a header that starts with a #
, followed by the number of data points and the publication
reference. Each line in the data block contains the redshift, the logarithmic stellar mass, the observed specific star formation rate,
the observational uncertainty, and the model prediction for this data point. The ssfrmod.*.out
files contain the model specific star
formation rates at each redshift for the stellar mass bins selected in the parameter file. Each line starts with the logarithmic stellar
mass bin followed by a model value for the specific star formation rate at each redshift.
For the HDF5 format, the stellar mass functions are stored in the SSFR
group. The Sets
HDF5 compound gives an overview of the
different data sets. It has the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Ndata |
int | 32 | 46 | The number of data points in this data set |
1 | Offset |
int | 32 | 24 | The offset with respect to the first data set |
2 | Tag |
string | 400 | Noeske 2007 | A tag referencing the publication |
All of the observed data sets are located in the data
subgroup, and are organised in a HDF5 compound for each data set. The name of
each compound reflects the publication reference and the redshift bins. The observational data compounds have the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Redshift |
float | 32 | 0.775 | The redshift |
1 | Ssfr_observed |
float | 32 | -9.480 | The logarithm of the observed specific star formation rate in yr-1 |
2 | Sigma_observed |
float | 32 | 0.335 | The observational uncertainty in dex |
3 | Stellar_mass |
float | 32 | 10.397 | The logarithmic stellar mass in solar masses |
4 | Ssfr_model |
float | 32 | -9.597 | The logarithm of the model prediction for the specific star formation rate |
5 | Sigma_model |
float | 32 | 0.012 | The model uncertainty in dex resulting from Poisson noise |
The model specific star formation rates at each stellar mass and redshift are stored in the table Model
. The first row contains the logarithmic
stellar masses that correspond to each column, while the first column contains the redshifts that correspond to each row. The remaining table entries
give the logarithm of the specific star formation rate (in yr-1) at the given stellar mass and scale factor.
For the ASCII format, the observed projected correlation functions, converted to the globally adopted IMF and Hubble parameter, are stored in
the ssfrobs.*.out
files (one for each universe). These files contain one data block for each observational data set, separated by
empty lines. Each data block is preceded by a header that starts with a #
, followed by the number of data points, the stellar mass bin edges,
maximum line-of-sight projection distance πmax, and the publication reference. Each line in the data block contains the
projected distance, the observed projected correlation function, the observational uncertainty, the model prediction for this data point, and
the model error, based on Poisson noise. The ximod.*.out
files contain the model predictions for the 3D correlation functions in the same
stellar mass bins as the observations. The first line starts with a #
followed by all stellar mass bins. The subsequent lines contain the
3D distance, the model 3D correlation function, and the model uncertainty for each stellar mass bin.
For the HDF5 format, the clustering data are stored in the Clustering
group. The Sets
HDF5 compound gives an overview of the
different data sets. It has the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Ndata |
int | 32 | 27 | The number of data points in this data set |
1 | Offset |
int | 32 | 50 | The offset with respect to the first data set |
2 | Minimum_Mass |
float | 32 | 10.3374 | The minimum logarithmic stellar mass |
3 | Maximum_Mass |
float | 32 | 10.8374 | The maximum logarithmic stellar mass |
4 | Pi_max |
float | 32 | 14.7471 | The maximum projected distance in Megaparsecs |
5 | Tag |
string | 400 | Li 2006 | A tag referencing the publication |
All of the observed data sets are located in the data
subgroup, and are organised in a HDF5 compound for each data set. The name of
each compound reflects the publication reference and the stellar mass bins. The observational data compounds have the following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Radius |
float | 32 | 0.3391 | The projected radius in Megaparsecs |
1 | Wp_observed |
float | 32 | 322.66 | The projected galaxy auto-correltion function in Megaparsecs |
2 | Sigma_observed |
float | 32 | 135.46 | The observational uncertainty in Megaparsecs |
3 | Wp_model |
float | 32 | 303.63 | The model prediction for the projected galaxy auto-correltion function |
4 | Sigma_model |
float | 32 | 16.79 | The model uncertainty in Megaparsecs resulting from Poisson noise |
The model 3D auto-correlation functions for each stellar mass bin are stored in the Model_3D
subgroup, and are organised in a HDF5 compound
for each data set. The name of each compound reflects the publication reference and the stellar mass bins. The data compounds have the
following structure:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Radius |
float | 32 | 1.0015 | The 3D radius in Megaparsecs |
1 | Xi |
float | 32 | 41.049 | The 3D galaxy auto-correltion function |
2 | Sigma_xi |
float | 32 | 1.9703 | The model uncertainty |
To check how well the model fits the observed data, Emerge writes out the calculated χ2 values. For the ASCII output, the values
are stored in the chi2.out
file. The header line starts with a #
and then lists all global statistics that have been used in the fit. The
following lines then list the χ2 values for each universe. Each line starts with the universe index, and then gives the
total χ2 value, followed by the χ2 values for the individual statistics. For the HDF5 output, the χ2 values
are stored in the Chi2
table in the statistics.h5
file for each universe.
The model parameters that have been used to run each universe are stored for the HDF5 output format in the statistics.h5
file. The HDF5
compound Model_Parameters
within each universe group contains all parameters as double (64 bit) values.
If Emerge is not called with a flag behind the parameter file, which corresponds to the code mode 0, mock galaxy catalogue are written out
as long as the option WRITE_GALAXY_CATALOG
has been set. The output format (ASCII or HDF5) can be chosen with the parameter OutputFormat
in the parameter file. For each output redshift that has been specified with the parameter OutputRedshifts
, a file containing all galaxies
in the simulation box that are more massive than the threshold OutputMassThreshold
will be written written. The name of each file begins
with galaxies.S
, followed by the snapshot number that corresponds to its redshift, and a file extension, e.g. galaxies.S90.out
for
snapshot 90 and ASCII format. Note that the mock catalogue is only written for the first universe if UniversesInParallel
is larger than 1.
All ASCII files have a header starting with a #
which lists the contents of each column, as well as several key parameters that have been
chosen to create the catalogue. The table following this header then contains the galaxy and halo properties of one system in each line. The
HDF5 files contain a compound dataset that lists the properties of each system. The key parameters are stored as attributes of this dataset:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Scale Factor |
float | 32 | 1.0 | Scale factor of the catalogue |
1 | Box Size |
double | 64 | 100.0 | Box side length in Mpc |
2 | Hubble Parameter |
double | 64 | 0.6781 | Hubble parameter h = H / (100 kms-1Mpc-1) |
3 | Omega_0 |
double | 64 | 0.308 | Matter density parameter. |
4 | Omega_Lambda |
double | 64 | 0.692 | Dark energy density parameter |
5 | Omega_Baryon_0 |
double | 64 | 0.0484 | Baryon density parameter |
6 | Minimum Stellar Mass |
double | 64 | 7.0 | Logarithm of the minimum stellar mass in M☉ |
Each system in the dataset has several properties:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Halo_mass |
float | 32 | 12.41 | Virial mass of the halo in log M☉ |
1 | Halo_growth_rate |
float | 32 | 471.76 | Growth rate of the halo in M☉ yr-1 |
2 | Halo_mass_peak |
float | 32 | 12.41 | Peak virial mass over history in log M☉ |
3 | Halo_mass_host |
float | 32 | 12.41 | Virial mass of the host halo in log M☉ |
4 | Scale_peak_mass |
float | 32 | 1.00 | Scale factor when peak virial mass was reached |
5 | Scale_half_mass |
float | 32 | 0.69 | Scale factor when half of the current virial mass was reached |
6 | Halo_radius |
float | 32 | 373.81 | Virial radius in kpc |
7 | Concentration |
float | 32 | 4.41 | Concentration parameter (c = Rvir/Rs) |
8 | Halo_spin |
float | 32 | 0.038 | Halo spin parameter \lambda |
9 | Stellar_mass |
float | 32 | 10.52 | Stellar mass of the galaxy in log M☉ |
10 | SFR |
float | 32 | 0.72 | Star formation rate of the galaxy in M☉ yr-1 |
11 | Intra_cluster_mass |
float | 32 | 9.051 | Stellar mass of the halo (excluding satellites) in log M☉ |
12 | Stellar_mass_obs |
float | 32 | 10.71 | Observed stellar mass of the galaxy in log M☉ |
13 | SFR_obs |
float | 32 | 0.59 | Observed star formation rate of the galaxy in M☉ yr-1 |
14 | X_pos |
float | 32 | 8.68 | X-Position of the system in the simulation box in Mpc |
15 | Y_pos |
float | 32 | 86.19 | Y-Position of the system in the simulation box in Mpc |
16 | Z_pos |
float | 32 | 7.81 | Z-Position of the system in the simulation box in Mpc |
17 | X_vel |
float | 32 | -213.27 | X-Velocity of the system in kms-1 |
18 | Y_vel |
float | 32 | 132.13 | Y-Velocity of the system in kms-1 |
19 | Z_vel |
float | 32 | -343.57 | Z-Velocity of the system in kms-1 |
20 | Type |
unsigned short | 16 | 0 | System type (0: central, 1: satellite, 2: orphan) |
21 | Halo_ID |
long long int | 64 | 12345 | ID of the halo |
22 | Desc_ID |
long long int | 64 | -1 | ID of the descendant (-1 if none) |
23 | Up_ID |
long long int | 64 | -1 | ID of the host halo (-1 if halo is a host halo itself) |
If the parameter NumOutputFiles
is set to a number larger than 1, each mock catalogue at a fixed redshift will be split into several files. The
file index will be appended to the filename before the file extension, e.g. galaxies.S90.0.h5
, galaxies.S90.1.h5
, ...
.
Similar to the galaxy catalogue output, Emerge can create halo catalogues if called without a flag (code mode 0), and the option WRITE_HALO_CATALOG
has been set. These halo catalogues include the subhaloes that correspond to orphan galaxies, which can be useful if the catalogues are used to
link galaxies to haloes, e.g. for subhalo abundance matching. The output format (ASCII or HDF5) is again chosen with the parameter OutputFormat
and the output redshifts are specified with OutputRedshifts
. The files start with haloes.S
, followed by the snapshot number and a file extension,
e.g. haloes.S90.h5
. The mock catalogue is again only written for the first universe. The ASCII files have a similar header as the galaxy catalogue
files, and are followed by a table that lists the properties of one halo in each line. For the HDF5 files, the halo properties are stored in a
compound dataset, with key parameters stored as attributes. The following halo properties are written:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Halo_mass |
float | 32 | 12.41 | Virial mass of the halo in log M☉ |
1 | Halo_growth_rate |
float | 32 | 471.76 | Growth rate of the halo in M☉ yr-1 |
2 | Halo_mass_peak |
float | 32 | 12.41 | Peak virial mass over history in log M☉ |
3 | Halo_mass_host |
float | 32 | 12.41 | Virial mass of the host halo in log M☉ |
4 | Scale_peak_mass |
float | 32 | 1.00 | Scale factor when peak virial mass was reached |
5 | Scale_half_mass |
float | 32 | 0.69 | Scale factor when half of the current virial mass was reached |
6 | Halo_radius |
float | 32 | 373.81 | Virial radius in kpc |
7 | Concentration |
float | 32 | 4.41 | Concentration parameter (c = Rvir/Rs) |
8 | Halo_spin |
float | 32 | 0.038 | Halo spin parameter \lambda |
9 | X_pos |
float | 32 | 8.68 | X-Position of the system in the simulation box in Mpc |
10 | Y_pos |
float | 32 | 86.19 | Y-Position of the system in the simulation box in Mpc |
11 | Z_pos |
float | 32 | 7.81 | Z-Position of the system in the simulation box in Mpc |
12 | X_vel |
float | 32 | -213.27 | X-Velocity of the system in kms-1 |
13 | Y_vel |
float | 32 | 132.13 | Y-Velocity of the system in kms-1 |
14 | Z_vel |
float | 32 | -343.57 | Z-Velocity of the system in kms-1 |
15 | Type |
unsigned short | 16 | 0 | System type (0: central, 1: satellite, 2: orphan) |
16 | Halo_ID |
long long int | 64 | 12345 | ID of the halo |
17 | Desc_ID |
long long int | 64 | -1 | ID of the descendant (-1 if none) |
18 | Up_ID |
long long int | 64 | -1 | ID of the host halo (-1 if halo is a host halo itself) |
To generate halo catalogues with haloes that correspond to orphan galaxies, it is recommended to set the normalisation of the conversion efficiency (ε0 and εz), and the stripping parameter fs to zero. In this case, the stellar mass in each halo will be zero, and the dynamical friction times will be based only on the halo mass.
To track galaxies and haloes through cosmic time, Emerge can write the properties of systems on the main branch of the merger tree. For this,
Emerge must be called without a flag (code mode 0), and the option WRITE_MAINBRANCH
has to be set. The output format (ASCII or HDF5) is chosen
with the parameter OutputFormat
. Galaxies are selected at a specific redshift with MainBranchRedshift
, and in several mass bins with
MainBranchMasses
and MainBranchBinSize
, while MainBranchMassType
specifies which mass is used for this selection (0: halo mass, 1: stellar
mass). For each galaxy that fulfils this criterion, all main progenitors and descendants are written as a data block. The file name starts with
mainbranches.S
, followed by the snapshot number that corresponds the selection redshift, and a file extension, e.g. mainbranches.S90.out
for
the main branches that have been selected to fulfil the mass criterion at snapshot 90.
The ASCII files have a header block starting with a #
, which lists the contents of each column, as well as several key parameters, such as the
selection mass bins and the box size. After the header block, each main branch is written as a data block, separated by empty lines. Each data
block starts with an index given by the mass bin and the main branch number, e.g. #000_0000000
corresponds to the first mass bin and the first
main branch in that bin. After this index, a table lists the properties of each galaxy on the main branch of the merger tree.
The HDF5 files include an attribute Selection_Redshift
listing the redshift for which galaxies have been selected. The main branches are stored
within HDF5 groups for each mass bin, e.g. MainBranch_M000
for the first mass bin. Each of these groups has the following attributes:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | Mass_bin |
double | 64 | 10.0 | Selection mass in log M☉ |
1 | Mass_bin_size |
double | 64 | 0.1 | Selection mass bin size in dex |
2 | Mass_Type |
string | 72 or 96 | Stellar_Mass |
Which mass was used in the selection (Halo_Mass or Stellar_Mass) |
The main branches are written as HDF5 compound datasets in each mass bin group. The name of each dataset stars with Tree_
followed by the Index
of the main branch. Each system in the main branch has the following properties:
# | HDF5 name | Type | Bit size | Example | Comment |
---|---|---|---|---|---|
0 | `Scale_factor | float | 32 | 1.00 | Scale factor a of the system |
1 | Halo_mass |
float | 32 | 12.41 | Virial mass of the halo in log M☉ |
2 | Halo_growth_rate |
float | 32 | 471.76 | Growth rate of the halo in M☉ yr-1 |
3 | Halo_mass_peak |
float | 32 | 12.41 | Peak virial mass over history in log M☉ |
4 | Scale_peak_mass |
float | 32 | 1.00 | Scale factor when peak virial mass was reached |
5 | Halo_radius |
float | 32 | 373.81 | Virial radius in kpc |
6 | Concentration |
float | 32 | 4.41 | Concentration parameter (c = Rvir/Rs) |
7 | Halo_spin |
float | 32 | 0.038 | Halo spin parameter \lambda |
8 | Stellar_mass |
float | 32 | 10.52 | Stellar mass of the galaxy in log M☉ |
9 | SFR |
float | 32 | 0.72 | Star formation rate of the galaxy in M☉ yr-1 |
10 | Intra_cluster_mass |
float | 32 | 9.051 | Stellar mass of the halo (excluding satellites) in log M☉ |
11 | X_pos |
float | 32 | 8.68 | X-Position of the system in the simulation box in Mpc |
12 | Y_pos |
float | 32 | 86.19 | Y-Position of the system in the simulation box in Mpc |
13 | Z_pos |
float | 32 | 7.81 | Z-Position of the system in the simulation box in Mpc |
14 | X_vel |
float | 32 | -213.27 | X-Velocity of the system in kms-1 |
15 | Y_vel |
float | 32 | 132.13 | Y-Velocity of the system in kms-1 |
16 | Z_vel |
float | 32 | -343.57 | Z-Velocity of the system in kms-1 |
17 | Type |
unsigned short | 16 | 0 | System type (0: central, 1: satellite, 2: orphan) |
18 | Halo_ID |
long long int | 64 | 12345 | ID of the halo |
19 | Desc_ID |
long long int | 64 | -1 | ID of the descendant (-1 if none) |
20 | Up_ID |
long long int | 64 | -1 | ID of the host halo (-1 if halo is a host halo itself) |
A single dataset always traces a single system from the root at z=0 up to its leaf at high redshift, i.e. each scale factor is listed only once. The output allways follows the main progenitor in halo mass, i.e. the most massive progenitor halo is used.
The performance and accuracy of Emerge strongly depend on a number of variables, such as the N-body simulations and the derived halo merger trees, the observational data used to fit the model, and the code parameters. Emerge comes without any warranty, and without any guarantee that it produces correct results, although the resulting galaxies will undoubtedly be the most elaborate on the market in any case. The numerical parameter values used in the provided parameter file and in this manual do not represent a specific recommendation by the author, but are merely a combination that has been found to work for a particular setup. Exploring parameter space is a difficult task, and it is never guaranteed that an algorithm will converge towards the global maximum of the likelihood function. The user is therefore encouraged to test different parameters to achieve sufficient accuracy for any given setup. If in doubt about some aspect of Emerge, a sensible strategy is to read the source code and the scientific paper to understand the details.