You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: STANDARD.md
+16-8Lines changed: 16 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,7 +90,7 @@ Each file's *root* group (path `/`) must at least contain the attributes:
90
90
- allowed values:
91
91
- see *Iterations and Time Series* below
92
92
- for `fileBased` and `groupBased`, this is fixed to `/data/%T/`
93
-
- for `stepBased` this is fixed to `/data/`
93
+
- for `variableBased` this is fixed to `/data/`
94
94
- note: all the data that is formatted according to the present
95
95
standard (i.e. both the meshes and the particles) is to be
96
96
stored within a path of the form given by `basePath` (e.g. in
@@ -214,9 +214,9 @@ Each file's *root* group (path `/`) must further define the attributes:
214
214
is an other `open/close` call necessary to access other
215
215
iterations
216
216
- allowed values:
217
-
-`fileBased` (multiple files)
218
-
-`groupBased` (one file)
219
-
-`stepBased` (one file with internal encoding for iterations, if supported by the data format)
217
+
-`fileBased` (multiple files; one iteration per file)
218
+
-`groupBased` (one file; iterations use groups in that file)
219
+
-`variableBased` (one file; if the data format supports to store multiple iterations in the same variables and attributes)
220
220
221
221
-`iterationFormat`
222
222
- type: *(string)*
@@ -233,13 +233,13 @@ Each file's *root* group (path `/`) must further define the attributes:
233
233
-`filename_%T.h5` (without file system directories)
234
234
- for `groupBased`: (fixed value)
235
235
-`/data/%T/` (must be equal to and encoded in the `basePath`)
236
-
- for `stepBased`: (fixed value)
236
+
- for `variableBased`: (fixed value)
237
237
- data-format internal convention
238
238
-*slowest varying index* of data
239
239
240
-
### `stepBased` Encoding of Iterations
240
+
### `variableBased` Encoding of Iterations
241
241
242
-
In order to correlate openPMD iterations with an index of data-format internal updates/steps or an index in the slowest varying dimension of an array, the *root* group (path `/`) must contain an additional variable once `stepBased` is chosen for `iterationEncoding`:
242
+
In order to correlate openPMD iterations with an index of data-format internal updates/steps or an index in the slowest varying dimension of an array, the iteration base path (default: path `/data`) must contain an additional variable once `variableBased` is chosen for `iterationEncoding`:
243
243
244
244
-`snapshot`
245
245
- type: 1-dimensional array containing N *(int)* elements, where N is the number of updates/steps in the data format
@@ -248,11 +248,19 @@ In order to correlate openPMD iterations with an index of data-format internal u
248
248
- advice to implementers: an openPMD iteration might be spread over multiple updates/steps, but not vice versa.
249
249
In such a scenario, an individual openPMD record's update/step must appear exactly once per iteration.
250
250
251
+
Notes:
252
+
253
+
* In implementations without support for storing multiple versions of datasets/attributes, the variable-based encoding of iterations may still be used for storage of a single iteration.
254
+
In that case, the `snapshot` attribute is optional and defaults to zero (0).
255
+
* In implementations with support for storing multiple versions of datasets/attributes, the `snapshot` attribute may optionally be used in group-based encoding to associate openPMD iterations with IO steps.
256
+
In group-based encoding, there is still only one instance of this attribute globally (`/data/snapshot`).
257
+
In consequence, the attribute shall only be written if modifiable attributes are supported by the implementation.
258
+
251
259
252
260
Required Attributes for the `basePath`
253
261
--------------------------------------
254
262
255
-
In addition to holding information about the iteration, each series of files (`fileBased`), series of groups (`groupBased`) or internally encoded iterations (`stepBased`) should have attributes that describe the current time and the last time step.
263
+
In addition to holding information about the iteration, each series of files (`fileBased`), series of groups (`groupBased`) or internally encoded iterations (`variableBased`) should have attributes that describe the current time and the last step.
0 commit comments