...
Type of Field | Indices | Query | Output | |
---|---|---|---|---|
primitive/structure | NO | path/to/field/with/ancestorAoS(x)/field | primitive_type[1] structure[1] | |
primitive/structure | YES | path/to/field/with/ancestorAoS(i1:i2)/field | primitive_type[n] structure[n] | n=i2 - i1 |
primitive/structure | YES | path/to/field/with/ancestorAoS(x:y)/field/AoS(n :m)/field | ERROR | it is not allowed to specify set of indices for AoS ancestors |
AoS | NO | path/to/field/with/ancestorAoS(x)/field/AoS(y) | AoS[1] | if AoS is not a leaf, its "sub-structure" is filled in |
AoS | YES | path/to/field/with/ancestorAoS(x)/field/AoS(i1:i2) | AoS[n] | n=i2 - i1 if AoS is not a leaf, its "sub-structure" is filled in |
AoS | YES | path/to/field/with/ancestorAoS(x:y)/field/AoS(n :m) | ERROR | it is not allowed to specify set of indices for AoS ancestors |
AoS | YES | path/to/field/with/ancestorAoS(x:y)/field/AoS(1) | ERROR????? |
Time issue in heterogeneous
mode:
Let's assume Aos is tuple {data, time}
- GET(/path/to/AoS/) - OK
- GET(/path/to/AoS/data)
- Homogeneous mode: OK
- Heterogeneous mode: ERROR
- GET(/path/to/AoS/time)
- Homogeneous mode: ids%time
- Heterogeneous mode: ERROR
Example:
- get (« magnetics.flux_loop(i1:i2).flux ») returns flux(i1:i2). This is an AoS with data(t) and time(t) below, which can be of different sizes for the various indices i1:i2
- get (« magnetics.flux_loop(i1:i2).flux.data ») returns data(i1:i2,t) in homogeneous case, and an error message otherwise.
...
- ids_get(<path_including_indices>)
- input parameters
- pulseCtx (OR shot, run, user, tokamak, version)
- IDS name
- occurence
- QUERY
- output parameters
- array of primitive types (if query points to field of primitive type)
- array of structures (if query points to field of AoS type or structure)
- input parameters
query
syntax- separators ( / . | ) - path within tree
- brackets () [] - array
- indices (fortran style)
- ":" all elements
- "x:y" (from x to y)
- ":y" from begin to y
- "x:" from x to the last
- only the last bracket can contain indices:
- YES: "path/to/field/with/ancestorAoS(1)/field/AoS(n:m)"
- NO: "path/to/field/with/ancestorAoS(x:y)/field/AoS(1)"
...