Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Type of FieldIndicesQueryOutput 
primitive/structureNOpath/to/field/with/ancestorAoS(x)/field

primitive_type[1]

structure[1]

 
primitive/structureYESpath/to/field/with/ancestorAoS(i1:i2)/field

primitive_type[n]

structure[n]

n=i2 - i1
primitive/structureYESpath/to/field/with/ancestorAoS(x:y)/field/AoS(n :m)/fieldERRORit is not allowed to specify set of indices for AoS ancestors
AoSNOpath/to/field/with/ancestorAoS(x)/field/AoS(y)AoS[1]if AoS is not a leaf, its "sub-structure" is filled in
AoSYESpath/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

AoSYESpath/to/field/with/ancestorAoS(x:y)/field/AoS(n :m)ERRORit is not allowed to specify set of indices for AoS ancestors
AoSYESpath/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)
  • 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)"

...