Enzo 2.2 documentation

Simulation Names and Identifiers

To help track and identify simulations and datasets, a few new lines have been added to the parameter file:

MetaDataIdentifier
short string persisted across datasets
MetaDataSimulationUUID
uuid persisted across datasets
MetaDataDatasetUUID
unique dataset uuid
MetaDataRestartDatasetUUID
input dataset uuid
MetaDataInitialConditionsUUID
initial conditions uuid

The parameters stored during a run are members of the TopGridData struct.

MetaDataIdentifier

This is a character string without spaces (specifically, something that can be picked by “%s”), that can be defined in a parameter file, and will be written out in every following output. It’s intended to be a human-friendly way of tracking datasets. For example

Example:

MetaDataIdentifier = Cosmology512_Mpc_run4

MetaDataSimulationUUID

The MetaDataSimulationUUID is a globally unique identifier for a collection of datasets.  Universally Unique Identifiers (UUIDs) are opaque identifiers using random 128-bit numbers, with an extremely low chance of collision. Therefore, they are very useful when trying to label data coming from multiple remote resources (say, computers distributed around the world).

Example:

MetaDataSimulationUUID = e5f72b77-5258-45ba-a376-ffe11907fae1

Like the MetaDataIdentifier, the MetaDataSimulationUUID is read in at the beginning of a run, and then re-written with each output. However, if one is not found initially, a new one will be generated, using code from the ooid library included in Enzo.

UUIDs can be generated with a variety of tools, including the python standard library.

MetaDataDatasetUUID

A MetaDataDatasetUUID is created at each output.

Example:

MetaDataDatasetUUID = b9d78cc7-2ecf-4d66-a23c-a1dcd40e7955

MetaDataRestartDatasetUUID


While reading the parameter file, if a MetaDataDatasetUUID line is found, it is stored, and re-written as MetaDataRestartDatasetUUID. The intention of this is help track datasets across restarts and parameter tweaks.

Example:

MetaDataRestartDatasetUUID = b9d78cc7-2ecf-4d66-a23c-a1dcd40e7955

MetaDataInitialConditionsUUID

This is similar to MetaDataRestartDatasetUUID, except it’s intended for tracking which initial conditions were used for a simulation.

Example:

MetaDataInitialConditionsUUID   = 99f71bdf-e56d-4daf-88f6-1ecd988cbc9f

Still to be done

  • Add UUID generation to inits store it in the HDF5 output.
  • Preserve the UUID when using ring.
  • Have Enzo check for the UUID in both cases.