Skip to content

Commit c81864a

Browse files
committed
ADIOS: New Attribute, Variable & stepbased Encoding
1 parent 367efba commit c81864a

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

FORMAT_ADIOS.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,35 @@ Output from `bpls -A` for a boolean attribute `pybool` stored in the location of
3232

3333
There is no convention yet for a unique representation of ADIOS2 variables with boolean type.
3434
Thus, implementations should cast the data to and from `unsigned char` instead.
35+
36+
## `stepBased` Encoding of Iterations
37+
38+
In order to correlate openPMD iterations with ADIOS steps, the *root* group (path `/`) in ADIOS must contain a variable:
39+
40+
- `__step__`
41+
- type: 1-dimensional array containing N *(int)* elements, where N is the number of ADIOS steps
42+
- description: for each ADIOS step, this variable needs to be updated with the corresponding openPMD iteration.
43+
- note: ADIOS steps are absolute and not every ADIOS step or openPMD iteration contains an update for each declared openPMD record.
44+
- advice to implementers: [decide on this] an openPMD iteration for different openPMD records might be spread over multiple ADIOS steps.
45+
An iteration of an openPMD record must correspond to exactly one ADIOS step.
46+
47+
## Datasets
48+
49+
An openPMD **data set** is represented by an group prefix that contains an ADIOS variable `__data__`.
50+
51+
**attributes** are defined further below and can also appear at the dataset's **group** prefix level.
52+
53+
## Attributes
54+
55+
openPMD **attributes** stored as ADIOS `Variables` at the location where they would usually be stored.
56+
57+
Example for a mesh record `E` with record component `x` and attributes `unitDimension` and `unitSI`:
58+
```
59+
double /data/meshes/E/unitDimension 10*{7}
60+
double /data/meshes/E/x/__data__ 10*{1000}
61+
double /data/meshes/E/x/position 10*{1}
62+
double /data/meshes/E/x/unitSI 10*scalar
63+
```
64+
65+
This example uses `stepBased` iteration encoding, but other iteration encodings would work similarly with their respective `basePath` prefix.
66+

0 commit comments

Comments
 (0)