Versions Compared

Key

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

Table of Contents

Introduction

DEADLINE: end of March

Objectives:

  • GET: To retrieve subset of data elements
  • GET_SIZE: To interrogate the size of subset of data elements,

 

Assumptions:

  • GET_SLICE type methods are not in the scope of the task (they are alternative ways to retrieve parts of the data elements) – although may be useful to add (independently of the deliverable) if straightforward to implement.
  • Implementation in Python only, no plans for other languages
  • In case of nested AoS, it is not allowed to specify set of indices for AoS ancestors
  • IMPLEMENTATION IN NEW LL ONLY!!!!!

...

2) Call traverse(ctx = p-fCtx, path, node = ids)

3) Get node name from list, look for IDS field of this name

4) Does node name contain brackets?

...

 

 

 

 

 

 

 

 

path/to/field/with/ancestorAoS(1)/field/AoS(n:m) -> AoS(n:m) 


ancestorAoS(x:y)/field(:) --> field(:,x:y)

 

 

 

 

Shape of returned arrays

 

/path/with/AoS(i1:i2)/data

lets assume:

+ i1=1; i2=3 => number of AoS to be found ("range") is 2

+ len (data) == 5,

+ data for AoS(i1) = {11, 12, 13, 14, 15}

+ data for AoS(i2) = {21, 22, 23, 24, 25}

 

Non timed AoS

get (« magnetics.flux_loop(i1:i2).flux ») à flux(i1:i2, t)

 

If AoS is NON TIMED (AoS1 or AoS2) return array has shape (range, data_len)

In NumPy notation:

[[11, 12, 13, 14, 15]

[21, 22, 23, 24, 25]]

e.g.

arr(0,1) = 12

arr(1,2) = 23

 

Timed AoS

get (« equilibrium.time_slice(t1:t2).profiles_1d.q ») à q(:, t1:t2)

 

If AoS is TIMED (AoS3) return array has shape (data_len, range)

In NumPy notation:

[ [11,21]

 [12,22]

 [13,23]

 [14,24]

 [15,25] ]

e.g.

arr(0,1) = 21

arr(2,1) = 23

...

  • call resize for a number of structures defined by indices
  • get AoS context (aos context - info about index? is ctx accessible? )

...

 

 

OPEN POINTS:

...

 

  • AoS as ancestor(s) of queried data
    • once implemented mechanism for creation of AoS could be reused to "go through" ancestors
  • returned value 
    • type provided by user?
    • AoS? if not - functionality can be placed at the Low Level and available for all HLIs (however it could be a problem with returned type  anyway)
  • Level of nesting
    • path/AoS(indices)/x/y/z ?

 

 

 

 

path/to/field/with/ancestorAoS(1)/field/AoS(n:m) -> AoS(n:m) 

ancestorAoS(x:y)/field(:) --> field(:,x:y)

 

 

 

 

 

 

...