Wiki

Clone wiki

pflotran / Depreciated / Documentation / CodeDevelopment / HDF5DatasetRefactor

HDF5 Dataset Refactor

Example HDF5 Dataset File

| ---GroupName1
|    |   * Attributes:
|    |      * Date Type: (GRIDDED|MAPPED|GLOBAL|CELL_INDEXED|DOMAIN|REGION)
|    |      * Dimension: (X|Y|Z|XY|YZ|XZ|XYZ) - Required for GRIDDED dataset.
|    |      * Discretization: dim1 [dim2, dim3] - Required for GRIDDED dataset
|    |      * Max. Buffer Size: (nbufsize) - Applicable only for Transient dataset (Correct?)
|    |      * Origin: (x,y,z)
|    |      * Time Units: (s|sec|second|min|minute|h|hr|hour|d|day|w|week|mo|month|y|yr) Required for transient data
|    |      * Transient: (TRUE|FALSE)
|    |
|    |
|    | ---Data: [1D(=Control_Volumes|Times) | 2D(=Control_Volume,Times)]
|    |
|    |
|    | ---Times: Required if Transient = TRUE
|    |
|    |
|    | ---Cell_Ids: Required if "Data Type" = CELL_INDEXED
|    |
|    |
|    | ---Map: Required if "Data Type" = MAPPED
|
|
|
| ---GroupName2
|    |   * Attributes:
|    |
|    |
|    | ---Data
|    | ---Times
|    | ---Cell_Ids
|    | ---Map

Open issues/questions

  1. Can "/GroupName1/Data" be a 3D or 4D?
  2. Attribute "Dimension" is not the dimension of "/GroupName1/Data". Thus, attribute "Dimension" should be renamed.
  3. Is attribute "Discretization" necessary? Can the value for it be obtained from sizeof("/GroupName1/Data"), while accounting for Transient==TRUE or FALSE?
  4. If "Data Type" = GLOBAL, then /GroupName1/Cell_Ids and /GroupName1/Map should not be defined. Should we get rid of GLOBAL and enforce inclusion of "/GroupName1/Cell_Ids" in HDF5 file?
  5. Which datasets are being read collectively vs independently?
  6. Allow reading of nested groups in HDF5 (i.e /InitialConditions/Pressure, /InitialConditions/Temperature, /BoundaryConditions/TopTempBC, /Mesh/Domain, /Mesh/Regions, etc). This will allow a single HDF5 file to contain all required data for a simulation.
  7. PFLOTRAN should have a consistent input format for all supported HDF5 files (mesh/boundary-conditions/initial-conditions/permeability/realization-dependent-permeability/etc).
  8. Add an option to skip data for first 'n' steps

Updated