Versions Compared

Key

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

...

putSlice()
Code Block
languagepy
titleITM
linenumberstrue
#system libraries
import sys
from pylab import * 

# UAL library
import ual

# Create a new instance of database
itm_obj = ual.itm(14,4)
itm_obj.create()

cpo = itm_obj.equilibrium




# Filling fields with TIME-INDEPENDENT  data
cpo.codeparam.parameters = 'param'

#Save time independent fields
cpo.putNonTimed()





# ---- a loop ----
for i in range(0, 10):
	#Fill time-dependent fields 
	Setting values of time depended data
cpo.x.y = iVALUE
    
    #Do not forget time!!
    cpo.time = iVALUE 
    
    #Append this slice in the database
    cpo.putSlice() # <= Called inside the loop
# ---- a loop ----

#close the pulse file
itm_obj.close()
Code Block
languagepy
titleIMAS
linenumberstrue
#system libraries
import sys
import numpy

# UAL library
import imas

# Create a new instance of database
imas_obj = imas.ids(11, 22)
imas_obj.create()  # Create a new instance of database

ids = imas_obj.core_profiles

# Mandatory to define this property
ids.ids_properties.homogeneous_time = 1

# Filling fields with TIME-INDEPENDENT  data
ids.ids_properties.comment = 'Test IDS created by putSlice'

#Save time independent fields
ids.putNonTimed()

# Allocate all variables, time coordinate of size 1
ids.time.resize(1)
ids.x.y.resize(1)

# ---- a loop ----
for i in range(10):
       # Setting values of time depended data
       ids.x.y[0] = iVAKUE 

       #Do not forget time!!
       ids.time[0] = iVALUE

       #Append this slice in the database
       ids.putSlice() # <= Called inside the loop
# ---- a loop ----

#close the pulse file
imas_obj.close()

...

 put()
Code Block
languagepy
titleITM
linenumberstrue
#system libraries
import sys
from pylab import * 

#UAL library
import ual

# Create a new instance of database
itm_obj = ual.itm(13,3)
itm_obj.create()




cpoArray = itm_obj.equilibriumArray

# allocate the CPO structures
cpoArray.resize(10)


# Filling fields with TIME-INDEPENDENT data
cpoArray[0].codeparam.parameters = 'param'

# ---- a loop ----
for i in range(10):
      #Fill# Setting values of time-dependent depended fieldsdata 
      cpoArray[i].x.y = i
    
	  #Do not forget time!!
      cpoArray[i].time = i
# ---- a loop ----

#Save data in the database
cpoArray.put() # <= Called outside the loop

#close the pulse file
itm_obj.close()
Code Block
languagepy
titleIMAS
linenumberstrue
#system libraries
import sys
import numpy

#UAL library
import imas

# Create a new instance of database
imas_obj = imas.ids(11, 22)
imas_obj.create()

# Mandatory to define this property
ids.ids_properties.homogeneous_time = 0

ids = imas_obj.core_profiles

# allocate the IDS structures
ids.x.y.resize(10)
ids.time.resize(10))

# Filling fields with TIME-INDEPENDENT  data
ids.ids_properties.comment = 'A test IDS created by PUT'

# ---- a loop ----
for i in range(10):
      # Setting #Fillvalues of time-dependent depended fieldsdata
      ids.x.y[i] = i 
	  
      #Do not forget time!!
      ids.time[i] = i
# ---- a loop ----

#Save data in the database
ids.put() # <= Called outside the loop

#close the pulse file
imas_obj.close()

 

 

 

VI related notice
I will use VI in every place where text files are modified. If you have any other text file editor of your choice - fell free to use it instead.
get() CPO vs get() IDS
Code Block
languagepy
titleITM
linenumberstrue
#system libraries
import sys
import numpy

#UAL library
import ual

#Open the database
itm_obj = ual.itm(11,22)
itm_obj.open() 

cpoArray = itm_obj.pfsystemsArray

#Get data
cpoArray.get()

# SCALARS (!)
for i in range(len(cpoArray)):
    print 'Time SCALAR  =' + str(cpoArray[i].time) 
    print 'Value SCALAR =' + str(cpoArray[i].x.y)






#close the pulse file
itm_obj.close()
Code Block
languagepy
titleIMAS
linenumberstrue
#system libraries
import sys
import numpy

#UAL library
import imas

#Open a database
imas_obj = imas.ids(11, 22)
imas_obj.open()  

ids = imas_obj.core_profiles

#Get data
ids.get()

# SCALARS (!)
for i in range(len(ids.time)):
    print 'Time   =' + str(ids.time[i]) 
    print 'Value  =' + str(ids.x.y[i])

# VECTORS (!)
print 'Time  = '  + str(ids.time)
print 'Value  = ' + str(ids.x.y)


#close the pulse file
imas_obj.close()

 

 

 

vi $TUTORIAL_DIR/ids_basics/python/put_ids.py

...

cd $TUTORIAL_DIR/ids_basics/fortran
 
Handling IDSes: get getSlice() vs. getSlice()CPO vs  IDS
Code Block
title$TUTORIAL_DIR/ids_basics/fortran/get_ids_array.f90ITM
linenumberstrue
program diagnostic
    use imas_schemas
    use imas_routines
    implicit none

    integer :: idx, i, arraySize
    type (type_equilibrium), pointer :: eqArray(:) ! <= Array !!!



    call imas_open('IDS', 14, 4, idx)
    
    call imas_get(idx, 'equilibrium', eqArray)
    arraySize = size(eqArray)
    write (*,*) "Number of slices: ", arraySize
    
	do i=1, arraySize
    	write (*,*) "Time: ", eqArray(i)%time
        write (*,*) "Value of r: ", eqArray(i)%eqgeometry%boundary(1)%r(1)
        write (*,*) "Value of z: ", eqArray(i)%eqgeometry%boundary(1)%z(1)
    enddo
    call imas_close(idx)
end program
Code Block
title$TUTORIAL_DIR/ids_basics/fortran/get_ids_slices.f90IMAS
linenumberstrue
program diagnostic
    use imas_schemas
    use imas_routines  
    implicit none

    integer :: idx, i, arraySize 
    type (type_equilibrium) :: equilibrium
    real(IMAS_R8), pointer :: timeVector(:)
    real(IMAS_R8) :: time

    call imas_open('IDS', 14, 4, idx)
    
    call imas_get_times(idx, 'equilibrium',timeVector)
    
    arraySize = size(timeVector)
    write (*,*) "Number of slices: ", arraySize
    write (*,*) "Time vector: ", timeVector
    
	do i = 1, arraySize
        time = timeVector(i)
        call imas_get_slice(idx, 'equilibrium', equilibrium, time, 1)
            
    	write (*,*) "Time [", time, "]: ",  equilibrium%time
        write (*,*) "Value of r: ", equilibrium%eqgeometry%boundary(1)%r(1)
        write (*,*) "Value of z: ", equilibrium%eqgeometry%boundary(1)%z(1)
    enddo
    
	call imas_close(idx)
end program

...