Merger Tree Outputters

Class providing outputters for merger trees—objects that write merger tree and galaxy data to persistent storage at each requested output time. An outputter traverses the nodes of a merger tree and serializes the desired set of galaxy/halo properties to HDF5 or other formats. It also handles reduction across MPI processes (combining partial outputs from different CPU ranks) and finalization at the end of the simulation. The standard outputter writes node properties as defined by the active nodePropertyExtractorClass instances.

Default implementation: mergerTreeOutputterStandard

Methods

outputTree

Serialize all galaxy and halo properties from the given tree to the output dataset corresponding to output index indexOutput at cosmic time time. Optionally provide an outputType describing the type of output.

  • type(mergerTree) tree [inout]

  • integer(c_size_t) indexOutput [in]

  • double precision time [in]

  • type(enumerationOutputGroupTypeType) outputType (optional) [in]

outputNode

Serialize galaxy and halo properties of the given individual node to the output dataset corresponding to output index indexOutput.

  • type(treeNode) node [inout]

  • integer(c_size_t) indexOutput [in]

  • type(enumerationOutputGroupTypeType) outputType (optional) [in]

finalize

Finalize the output of merger trees, flushing any buffered data to persistent storage and performing any post-processing required after all trees have been serialized. Optionally provide an outputType describing the type of output.

reduce

Reduce the object onto another object of the class.

  • class(mergerTreeOutputterClass) reduced [inout]

mergerTreeOutputterAnalyzer

A merger tree outputter class which performs analyzes on the trees.

mergerTreeOutputterFullState

A merger tree outputter class that outputs the full state of merger trees to allow later postprocessing. Complete tree data in output in raw binary format to the file specified as [fileName]. This can be later re-read and post-processed using the taskPostprocessForests task class.

Parameters

  • [fileName] (string) — The name of the file to which state should be stored.

mergerTreeOutputterHaloFourierProfiles

A merger tree outputter class which outputs \(k\)-space density profiles as needed for halo model calculations. A “haloModel” group is created in the Galacticus output file. This group contains the following:

wavenumber

A dataset giving the wavenumbers (in units of Mpc\(^{-1}\)) at which all output power spectra are tabulated. The minimum and maximum wavenumbers to tabulate are determined by the [haloModelWavenumberMinimum] and [haloModelWavenumberMaximum] parameters respectively, while the number of points to tabulate in each decade of wavenumber is determined by the [haloModelWavenumberPointsPerDecade] parameter.

powerSpectrum

A dataset giving the linear theory power spectrum (in units of Mpc\(^3\) normalized to \(z=0\)) at each wavenumber specified in the wavenumber dataset.

Output{i}/mergerTree{j}/fourierProfile{k}

A dataset giving the Fourier transform of the dark matter halo density profile (dimensionless and normalized to unity at small wavenumber) for the node with index k in merger tree with index j at output number i. Profiles are written only for nodes which are isolated, and are tabulated at the wavenumbers given in the wavenumber group. Note that wavenumbers are assumed to be comoving.

Finally, each numbered output group is given two additional attributes, linearGrowthFactor and linearGrowthFactorLogDerivative which give the growth factor, \(D\), and its logarithmic derivative, \(\d \ln D / \d \ln a\) at the output time.

Parameters

  • [wavenumberPointsPerDecade] (integer; default 10) — The number of points per decade in wavenumber at which to tabulate power spectra for the halo model.

  • [wavenumberMinimum] (real; default 1.0d-3) — The minimum wavenumber (in Mpc\({^-1}\)) at which to tabulate power spectra for the halo model.

  • [wavenumberMaximum] (real; default 1.0d4) — The maximum wavenumber (in Mpc\({^-1}\)) at which to tabulate power spectra for the halo model.

mergerTreeOutputterMulti

A merger tree outputter which combines multiple other outputters.

mergerTreeOutputterNull

A merger tree outputter which does no output.

mergerTreeOutputterStandard

The standard merger tree outputter which writes galaxy and halo properties to HDF5 output files at each requested output time during galaxy evolution. Output is organized into groups named by [outputsGroupName], with optional dataset reference output controlled by the [outputReferences] parameter.

(Default implementation)

Methods

assignment(=)

Assign outputGroup objects.

  • class(outputGroup) from [in]

makeGroup

Make an group in the Galacticus file in which to store tree.

  • type(mergerTree) tree [inout]

  • integer(c_size_t) indexOutput [in]

dumpIntegerBuffer

Dump the contents of the integer properties buffer to the Galacticus output file.

  • integer(c_size_t) indexOutput [in]

dumpDoubleBuffer

Dump the contents of the double properties buffer to the Galacticus output file.

  • integer(c_size_t) indexOutput [in]

extendIntegerBuffer

Extend the size of the integer buffer.

extendDoubleBuffer

Extend the size of the double buffer.

propertiesCount

Count up the number of properties that will be output.

  • double precision time [in]

  • type(treeNode) node [inout]

buffersAllocate

Allocate buffers for storage of properties.

  • integer(c_size_t) indexOutput [in]

propertyNamesEstablish

Set names for the properties.

  • double precision time [in]

  • type(treeNode) node [inout]

outputGroupCreate

Create a group in which to store this output.

  • integer(c_size_t) indexOutput [in]

  • double precision time [in]

  • type(enumerationOutputGroupTypeType) outputType (optional) [in]

output

Perform output of a single node.

  • type(treeNode) node [inout]

  • integer(c_size_t) indexOutput [in]

  • double precision time [in]

  • type(enumerationOutputGroupTypeType) outputType [in]

Parameters

  • [outputsGroupName] (string; default Outputs) — The name of the HDF5 group to which outputs will be written.

  • [outputReferences] (boolean; default .false.) — Specifies whether or not references to individual merger tree datasets should be output.