# -*- coding: utf-8 -*-
from ualdef import *
import ual_low_level as ull
import numpy
[docs]class edge:
'''
class edge
CPO for edge/SOL plasma description. Time-dependent CPO
Attributes:
- datainfo : class datainfostructuredatainfo
Generic information on a data item
- grid : class gridstructurecomplexgrid
Grid description
- species : class speciesstruct_arrayspecies_desc: array of speciesstruct_arrayspecies_descObj objects
Description of ion species. Array of structures(nspecies)
- fluid : class fluidstructureedge_fluid
Fluid description of edge plasma. Time-dependent.
- kinetic : class kineticstructureedge_kinetic
Kinetic description of edge plasma. Time-dependent.
- codeparam : class codeparamstructurecodeparam
Code parameters
- time : float
Time [s]; Time-dependent; Scalar
'''
[docs] def __init__(self):
self.base_path = 'edge'
self.idx = EMPTY_INT
self.datainfo = datainfostructuredatainfo('datainfo')
self.grid = gridstructurecomplexgrid('grid')
self.species = speciesstruct_arrayspecies_desc('species')
self.fluid = fluidstructureedge_fluid('fluid')
self.kinetic = kineticstructureedge_kinetic('kinetic')
self.codeparam = codeparamstructurecodeparam('codeparam')
self.time = EMPTY_DOUBLE
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class edge\n'
ret = ret + space + 'Attribute datainfo\n ' + self.datainfo.__str__(depth+1)
ret = ret + space + 'Attribute grid\n ' + self.grid.__str__(depth+1)
ret = ret + space + 'Attribute species\n ' + self.species.__str__(depth+1)
ret = ret + space + 'Attribute fluid\n ' + self.fluid.__str__(depth+1)
ret = ret + space + 'Attribute kinetic\n ' + self.kinetic.__str__(depth+1)
ret = ret + space + 'Attribute codeparam\n ' + self.codeparam.__str__(depth+1)
ret = ret + space + 'Attribute time: ' + str(self.time) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.datainfo.setExpIdx(idx)
self.grid.setExpIdx(idx)
self.species.setExpIdx(idx)
self.fluid.setExpIdx(idx)
self.kinetic.setExpIdx(idx)
self.codeparam.setExpIdx(idx)
[docs] def putSlice(self, occurence=0):
if occurence==0:
path = self.base_path
else:
path = self.base_path + '/' + str(occurence)
cpopath = ''
status = ull.beginCPOPutSlice(self.idx, path)
self.datainfo.time = self.time
self.datainfo.putSlice(path, cpopath)
self.grid.time = self.time
self.grid.putSlice(path, cpopath)
self.species.time = self.time
self.species.putSlice(path, cpopath)
self.fluid.time = self.time
self.fluid.putSlice(path, cpopath)
self.kinetic.time = self.time
self.kinetic.putSlice(path, cpopath)
self.codeparam.time = self.time
self.codeparam.putSlice(path, cpopath)
status = ull.putDoubleSlice(self.idx, path, cpopath + 'time', self.time, self.time)
check_status(status)
status = ull.endCPOPutSlice(self.idx, path)
[docs] def replaceLastSlice(self, occurence=0):
if occurence==0:
path = self.base_path
else:
path = self.base_path + '/' + str(occurence)
cpopath = ''
status = ull.beginCPOReplaceLastSlice(self.idx, path)
self.datainfo.replaceLastSlice(path, cpopath)
self.grid.replaceLastSlice(path, cpopath)
self.species.replaceLastSlice(path, cpopath)
self.fluid.replaceLastSlice(path, cpopath)
self.kinetic.replaceLastSlice(path, cpopath)
self.codeparam.replaceLastSlice(path, cpopath)
status = ull.replaceLastDoubleSlice(self.idx, path, cpopath + 'time', self.time)
check_status(status)
status = ull.endCPOReplaceLastSlice(self.idx, path)
[docs] def putNonTimed(self, occurence=0):
if occurence==0:
path = self.base_path
else:
path = self.base_path + '/' + str(occurence)
cpopath = ''
self.deleteData(occurence)
status = ull.beginCPOPutNonTimed(self.idx, path)
self.datainfo.putNonTimed(path, cpopath)
self.grid.putNonTimed(path, cpopath)
self.species.putNonTimed(path, cpopath)
self.fluid.putNonTimed(path, cpopath)
self.kinetic.putNonTimed(path, cpopath)
self.codeparam.putNonTimed(path, cpopath)
status = ull.endCPOPutNonTimed(self.idx, path)
[docs] def getSlice(self, inTime, interpolMode, occurence=0):
if occurence==0:
path = self.base_path
else:
path = self.base_path + '/' + str(occurence)
cpopath = ''
status = ull.beginCPOGetSlice(self.idx, path, inTime)
self.datainfo.getSlice(path, cpopath, inTime, interpolMode)
self.grid.getSlice(path, cpopath, inTime, interpolMode)
self.species.getSlice(path, cpopath, inTime, interpolMode)
self.fluid.getSlice(path, cpopath, inTime, interpolMode)
self.kinetic.getSlice(path, cpopath, inTime, interpolMode)
self.codeparam.getSlice(path, cpopath, inTime, interpolMode)
status, ret_time, retTime = ull.getDoubleSlice(self.idx, path, cpopath + 'time', inTime, interpolMode)
check_status(status)
if not status:
self.time = ret_time
self.time = retTime
status = ull.endCPOGetSlice(self.idx, path)
[docs] def build_non_resampled_data(self, occurence=0):
if occurence==0:
path = self.base_path
else:
path = self.base_path + '/' + str(occurence)
cpopath = ''
status, nbslice = ull.beginCPOGet(self.idx, path, True)
check_status(status)
array=None
if nbslice > 0:
datainfoList = self.datainfo.build_non_resampled_data(path, cpopath, nbslice)
gridList = self.grid.build_non_resampled_data(path, cpopath, nbslice)
speciesList = self.species.build_non_resampled_data(path, cpopath, nbslice)
fluidList = self.fluid.build_non_resampled_data(path, cpopath, nbslice)
kineticList = self.kinetic.build_non_resampled_data(path, cpopath, nbslice)
codeparamList = self.codeparam.build_non_resampled_data(path, cpopath, nbslice)
status, timeList = ull.getVect1DDouble(self.idx, path, cpopath + 'time')
if len(timeList) == 0:
timeList = numpy.resize(timeList, (nbslice))
check_status(status)
array = []
for i in range(nbslice):
slice = edge()
slice.setExpIdx(self.idx)
slice.datainfo = datainfoList[i]
slice.grid = gridList[i]
slice.species = speciesList[i]
slice.fluid = fluidList[i]
slice.kinetic = kineticList[i]
slice.codeparam = codeparamList[i]
slice.time = timeList[i].copy().astype(float)
array.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
status = ull.endCPOGet(self.idx, path)
return array
[docs] def deleteData(self, occurence=0):
if occurence==0:
path = self.base_path
else:
path = self.base_path + '/' + str(occurence)
cpopath = ''
self.datainfo.deleteData(path, cpopath)
self.grid.deleteData(path, cpopath)
ull.deleteData(self.idx, path, cpopath + 'species')
self.fluid.deleteData(path, cpopath)
self.kinetic.deleteData(path, cpopath)
self.codeparam.deleteData(path, cpopath)
ull.deleteData(self.idx, path, cpopath + 'time')
[docs]class edgeArray:
'''
class edgeArray
CPO for edge/SOL plasma description. Time-dependent CPO
Attributes:
- array : list of edge
Each list element correspond to one time slice.
'''
[docs] def __init__(self):
self.array = []
self.idx = EMPTY_INT
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class edgeArray nb_cpos=%d\n' %(len(self.array))
for i in range(len(self.array)):
ret = ret + space + 'edge cpos=%d\n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def put(self, occurence=0):
if (len(self.array)>0):
self.array[0].putNonTimed(occurence)
for i in self.array:
i.putSlice(occurence)
else:
print('no time slice to be put')
[docs] def get(self, occurence=0):
cpo = edge()
cpo.setExpIdx(self.idx)
self.array = cpo.build_non_resampled_data(occurence)
[docs] def resize(self, nb_cpos):
self.array = []
for i in range(nb_cpos):
self.array.append(edge())
self.array[i].setExpIdx(self.idx)
[docs] def deleteAll(self, occurence=0):
cpo = edge()
cpo.setExpIdx(self.idx)
cpo.deleteData(occurence)
[docs]class datainfostructuredatainfo:
'''
class datainfostructuredatainfo
Generic information on a data item
Attributes:
- dataprovider : str
Name of the actual data provider (the person who filled the data)
- putdate : str
Date at which the data has been put in the DB
- source : str
Exact reference of the data source (e.g. original reference in the native machine data base)
- comment : str
Any additional comment
- isref : int
1 if the data can be found in the present data base entry; 2 if the data can be found in a parent data base entry; 0 if no data consistent with the present entry can be found.
- whatref : class whatrefstructurewhatref
Structure defining a database entry and the CPO occurrence
- putinfo : class putinfostructureputinfo
Level 2 information describing how to retrieve the actual data for the UAL. Not to be filled/used by the ITM user !
'''
[docs] def __init__(self, base_path_in='datainfo'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.dataprovider = ''
self.putdate = ''
self.source = ''
self.comment = ''
self.isref = EMPTY_INT
self.whatref = whatrefstructurewhatref('whatref')
self.putinfo = putinfostructureputinfo('putinfo')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class datainfostructuredatainfo\n'
ret = ret + space + 'Attribute dataprovider: ' + str(self.dataprovider) + '\n'
ret = ret + space + 'Attribute putdate: ' + str(self.putdate) + '\n'
ret = ret + space + 'Attribute source: ' + str(self.source) + '\n'
ret = ret + space + 'Attribute comment: ' + str(self.comment) + '\n'
ret = ret + space + 'Attribute isref: ' + str(self.isref) + '\n'
ret = ret + space + 'Attribute whatref\n ' + self.whatref.__str__(depth+1)
ret = ret + space + 'Attribute putinfo\n ' + self.putinfo.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.whatref.setExpIdx(idx)
self.putinfo.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type datainfostructuredatainfo, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.whatref.time = self.time
self.whatref.putSlice(path, cpopath)
self.putinfo.time = self.time
self.putinfo.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type datainfostructuredatainfo, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.whatref.replaceLastSlice(path, cpopath)
self.putinfo.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type datainfostructuredatainfo, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putString(self.idx, path, cpopath + 'dataprovider', self.dataprovider, len(self.dataprovider))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'putdate', self.putdate, len(self.putdate))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'source', self.source, len(self.source))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'comment', self.comment, len(self.comment))
check_status(status)
status = ull.putInt(self.idx, path, cpopath + 'isref', self.isref)
check_status(status)
self.whatref.putNonTimed(path, cpopath)
self.putinfo.putNonTimed(path, cpopath)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type datainfostructuredatainfo, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_dataprovider = ull.getString(self.idx, path, cpopath + 'dataprovider')
check_status(status)
if not status:
self.dataprovider = ret_dataprovider
status, ret_putdate = ull.getString(self.idx, path, cpopath + 'putdate')
check_status(status)
if not status:
self.putdate = ret_putdate
status, ret_source = ull.getString(self.idx, path, cpopath + 'source')
check_status(status)
if not status:
self.source = ret_source
status, ret_comment = ull.getString(self.idx, path, cpopath + 'comment')
check_status(status)
if not status:
self.comment = ret_comment
status, ret_isref = ull.getInt(self.idx, path, cpopath + 'isref')
check_status(status)
if not status:
self.isref = ret_isref
self.whatref.getSlice(path, cpopath, inTime, interpolMode)
self.putinfo.getSlice(path, cpopath, inTime, interpolMode)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type datainfostructuredatainfo, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, dataproviderVal = ull.getString(self.idx, path, cpopath + 'dataprovider')
check_status(status)
status, putdateVal = ull.getString(self.idx, path, cpopath + 'putdate')
check_status(status)
status, sourceVal = ull.getString(self.idx, path, cpopath + 'source')
check_status(status)
status, commentVal = ull.getString(self.idx, path, cpopath + 'comment')
check_status(status)
status, isrefVal = ull.getInt(self.idx, path, cpopath + 'isref')
check_status(status)
whatrefList = self.whatref.build_non_resampled_data(path, cpopath, nbslice)
putinfoList = self.putinfo.build_non_resampled_data(path, cpopath, nbslice)
for i in range(nbslice):
slice = datainfostructuredatainfo(self.base_path)
slice.setExpIdx(self.idx)
slice.dataprovider = dataproviderVal
slice.putdate = putdateVal
slice.source = sourceVal
slice.comment = commentVal
slice.isref = isrefVal
slice.whatref = whatrefList[i]
slice.putinfo = putinfoList[i]
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type datainfostructuredatainfoObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type datainfostructuredatainfoObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type datainfostructuredatainfoObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'dataprovider'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'dataprovider', i, self.dataprovider)
if (dev()):
print 'putStringInObject : ' + cpopath + 'putdate'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'putdate', i, self.putdate)
if (dev()):
print 'putStringInObject : ' + cpopath + 'source'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'source', i, self.source)
if (dev()):
print 'putStringInObject : ' + cpopath + 'comment'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'comment', i, self.comment)
if (dev()):
print 'putIntInObject : ' + cpopath + 'isref'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'isref', i, self.isref)
obj = self.whatref.putNonTimedElt(path, cpopath + 'whatref', i, obj)
obj = self.putinfo.putNonTimedElt(path, cpopath + 'putinfo', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type datainfostructuredatainfoObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'dataprovider'
print 'obj = ' + str(obj)
status, ret_dataprovider = ull.getStringFromObject(self.idx, obj, cpopath + 'dataprovider', i)
check_status(status)
if not status:
self.dataprovider = ret_dataprovider
if (dev()):
print 'getStringInObject : ' + cpopath + 'putdate'
print 'obj = ' + str(obj)
status, ret_putdate = ull.getStringFromObject(self.idx, obj, cpopath + 'putdate', i)
check_status(status)
if not status:
self.putdate = ret_putdate
if (dev()):
print 'getStringInObject : ' + cpopath + 'source'
print 'obj = ' + str(obj)
status, ret_source = ull.getStringFromObject(self.idx, obj, cpopath + 'source', i)
check_status(status)
if not status:
self.source = ret_source
if (dev()):
print 'getStringInObject : ' + cpopath + 'comment'
print 'obj = ' + str(obj)
status, ret_comment = ull.getStringFromObject(self.idx, obj, cpopath + 'comment', i)
check_status(status)
if not status:
self.comment = ret_comment
if (dev()):
print 'getIntInObject : ' + cpopath + 'isref'
print 'obj = ' + str(obj)
status, ret_isref = ull.getIntFromObject(self.idx, obj, cpopath + 'isref', i)
check_status(status)
if not status:
self.isref = ret_isref
self.whatref.getNonTimedElt(path, cpopath + 'whatref', i, obj)
self.putinfo.getNonTimedElt(path, cpopath + 'putinfo', i, obj)
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'dataprovider')
ull.deleteData(self.idx, path, cpopath + 'putdate')
ull.deleteData(self.idx, path, cpopath + 'source')
ull.deleteData(self.idx, path, cpopath + 'comment')
ull.deleteData(self.idx, path, cpopath + 'isref')
self.whatref.deleteData(path, cpopath)
self.putinfo.deleteData(path, cpopath)
[docs]class whatrefstructurewhatref:
'''
class whatrefstructurewhatref
Structure defining a database entry and the CPO occurrence
Attributes:
- user : str
Name of the user if private data, public if public ITM database.
- machine : str
Name of the device
- shot : int
Shot number
- run : int
Run number
- occurrence : int
Occurrence number of the CPO in the reference entry
'''
[docs] def __init__(self, base_path_in='whatref'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.user = ''
self.machine = ''
self.shot = EMPTY_INT
self.run = EMPTY_INT
self.occurrence = EMPTY_INT
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class whatrefstructurewhatref\n'
ret = ret + space + 'Attribute user: ' + str(self.user) + '\n'
ret = ret + space + 'Attribute machine: ' + str(self.machine) + '\n'
ret = ret + space + 'Attribute shot: ' + str(self.shot) + '\n'
ret = ret + space + 'Attribute run: ' + str(self.run) + '\n'
ret = ret + space + 'Attribute occurrence: ' + str(self.occurrence) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type whatrefstructurewhatref, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type whatrefstructurewhatref, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type whatrefstructurewhatref, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putString(self.idx, path, cpopath + 'user', self.user, len(self.user))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'machine', self.machine, len(self.machine))
check_status(status)
status = ull.putInt(self.idx, path, cpopath + 'shot', self.shot)
check_status(status)
status = ull.putInt(self.idx, path, cpopath + 'run', self.run)
check_status(status)
status = ull.putInt(self.idx, path, cpopath + 'occurrence', self.occurrence)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type whatrefstructurewhatref, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_user = ull.getString(self.idx, path, cpopath + 'user')
check_status(status)
if not status:
self.user = ret_user
status, ret_machine = ull.getString(self.idx, path, cpopath + 'machine')
check_status(status)
if not status:
self.machine = ret_machine
status, ret_shot = ull.getInt(self.idx, path, cpopath + 'shot')
check_status(status)
if not status:
self.shot = ret_shot
status, ret_run = ull.getInt(self.idx, path, cpopath + 'run')
check_status(status)
if not status:
self.run = ret_run
status, ret_occurrence = ull.getInt(self.idx, path, cpopath + 'occurrence')
check_status(status)
if not status:
self.occurrence = ret_occurrence
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type whatrefstructurewhatref, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, userVal = ull.getString(self.idx, path, cpopath + 'user')
check_status(status)
status, machineVal = ull.getString(self.idx, path, cpopath + 'machine')
check_status(status)
status, shotVal = ull.getInt(self.idx, path, cpopath + 'shot')
check_status(status)
status, runVal = ull.getInt(self.idx, path, cpopath + 'run')
check_status(status)
status, occurrenceVal = ull.getInt(self.idx, path, cpopath + 'occurrence')
check_status(status)
for i in range(nbslice):
slice = whatrefstructurewhatref(self.base_path)
slice.setExpIdx(self.idx)
slice.user = userVal
slice.machine = machineVal
slice.shot = shotVal
slice.run = runVal
slice.occurrence = occurrenceVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type whatrefstructurewhatrefObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type whatrefstructurewhatrefObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type whatrefstructurewhatrefObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'user'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'user', i, self.user)
if (dev()):
print 'putStringInObject : ' + cpopath + 'machine'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'machine', i, self.machine)
if (dev()):
print 'putIntInObject : ' + cpopath + 'shot'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'shot', i, self.shot)
if (dev()):
print 'putIntInObject : ' + cpopath + 'run'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'run', i, self.run)
if (dev()):
print 'putIntInObject : ' + cpopath + 'occurrence'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'occurrence', i, self.occurrence)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type whatrefstructurewhatrefObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'user'
print 'obj = ' + str(obj)
status, ret_user = ull.getStringFromObject(self.idx, obj, cpopath + 'user', i)
check_status(status)
if not status:
self.user = ret_user
if (dev()):
print 'getStringInObject : ' + cpopath + 'machine'
print 'obj = ' + str(obj)
status, ret_machine = ull.getStringFromObject(self.idx, obj, cpopath + 'machine', i)
check_status(status)
if not status:
self.machine = ret_machine
if (dev()):
print 'getIntInObject : ' + cpopath + 'shot'
print 'obj = ' + str(obj)
status, ret_shot = ull.getIntFromObject(self.idx, obj, cpopath + 'shot', i)
check_status(status)
if not status:
self.shot = ret_shot
if (dev()):
print 'getIntInObject : ' + cpopath + 'run'
print 'obj = ' + str(obj)
status, ret_run = ull.getIntFromObject(self.idx, obj, cpopath + 'run', i)
check_status(status)
if not status:
self.run = ret_run
if (dev()):
print 'getIntInObject : ' + cpopath + 'occurrence'
print 'obj = ' + str(obj)
status, ret_occurrence = ull.getIntFromObject(self.idx, obj, cpopath + 'occurrence', i)
check_status(status)
if not status:
self.occurrence = ret_occurrence
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'user')
ull.deleteData(self.idx, path, cpopath + 'machine')
ull.deleteData(self.idx, path, cpopath + 'shot')
ull.deleteData(self.idx, path, cpopath + 'run')
ull.deleteData(self.idx, path, cpopath + 'occurrence')
[docs]class putinfostructureputinfo:
'''
class putinfostructureputinfo
Level 2 information describing how to retrieve the actual data for the UAL. Not to be filled/used by the ITM user !
Attributes:
- putmethod : str
Storage method for this data
- putaccess : str
Instructions to access the data using this method
- putlocation : str
Name of this data under this method
- rights : str
Access rights to this data
'''
[docs] def __init__(self, base_path_in='putinfo'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.putmethod = ''
self.putaccess = ''
self.putlocation = ''
self.rights = ''
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class putinfostructureputinfo\n'
ret = ret + space + 'Attribute putmethod: ' + str(self.putmethod) + '\n'
ret = ret + space + 'Attribute putaccess: ' + str(self.putaccess) + '\n'
ret = ret + space + 'Attribute putlocation: ' + str(self.putlocation) + '\n'
ret = ret + space + 'Attribute rights: ' + str(self.rights) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type putinfostructureputinfo, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type putinfostructureputinfo, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type putinfostructureputinfo, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putString(self.idx, path, cpopath + 'putmethod', self.putmethod, len(self.putmethod))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'putaccess', self.putaccess, len(self.putaccess))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'putlocation', self.putlocation, len(self.putlocation))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'rights', self.rights, len(self.rights))
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type putinfostructureputinfo, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_putmethod = ull.getString(self.idx, path, cpopath + 'putmethod')
check_status(status)
if not status:
self.putmethod = ret_putmethod
status, ret_putaccess = ull.getString(self.idx, path, cpopath + 'putaccess')
check_status(status)
if not status:
self.putaccess = ret_putaccess
status, ret_putlocation = ull.getString(self.idx, path, cpopath + 'putlocation')
check_status(status)
if not status:
self.putlocation = ret_putlocation
status, ret_rights = ull.getString(self.idx, path, cpopath + 'rights')
check_status(status)
if not status:
self.rights = ret_rights
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type putinfostructureputinfo, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, putmethodVal = ull.getString(self.idx, path, cpopath + 'putmethod')
check_status(status)
status, putaccessVal = ull.getString(self.idx, path, cpopath + 'putaccess')
check_status(status)
status, putlocationVal = ull.getString(self.idx, path, cpopath + 'putlocation')
check_status(status)
status, rightsVal = ull.getString(self.idx, path, cpopath + 'rights')
check_status(status)
for i in range(nbslice):
slice = putinfostructureputinfo(self.base_path)
slice.setExpIdx(self.idx)
slice.putmethod = putmethodVal
slice.putaccess = putaccessVal
slice.putlocation = putlocationVal
slice.rights = rightsVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type putinfostructureputinfoObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type putinfostructureputinfoObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type putinfostructureputinfoObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'putmethod'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'putmethod', i, self.putmethod)
if (dev()):
print 'putStringInObject : ' + cpopath + 'putaccess'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'putaccess', i, self.putaccess)
if (dev()):
print 'putStringInObject : ' + cpopath + 'putlocation'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'putlocation', i, self.putlocation)
if (dev()):
print 'putStringInObject : ' + cpopath + 'rights'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'rights', i, self.rights)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type putinfostructureputinfoObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'putmethod'
print 'obj = ' + str(obj)
status, ret_putmethod = ull.getStringFromObject(self.idx, obj, cpopath + 'putmethod', i)
check_status(status)
if not status:
self.putmethod = ret_putmethod
if (dev()):
print 'getStringInObject : ' + cpopath + 'putaccess'
print 'obj = ' + str(obj)
status, ret_putaccess = ull.getStringFromObject(self.idx, obj, cpopath + 'putaccess', i)
check_status(status)
if not status:
self.putaccess = ret_putaccess
if (dev()):
print 'getStringInObject : ' + cpopath + 'putlocation'
print 'obj = ' + str(obj)
status, ret_putlocation = ull.getStringFromObject(self.idx, obj, cpopath + 'putlocation', i)
check_status(status)
if not status:
self.putlocation = ret_putlocation
if (dev()):
print 'getStringInObject : ' + cpopath + 'rights'
print 'obj = ' + str(obj)
status, ret_rights = ull.getStringFromObject(self.idx, obj, cpopath + 'rights', i)
check_status(status)
if not status:
self.rights = ret_rights
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'putmethod')
ull.deleteData(self.idx, path, cpopath + 'putaccess')
ull.deleteData(self.idx, path, cpopath + 'putlocation')
ull.deleteData(self.idx, path, cpopath + 'rights')
[docs]class gridstructurecomplexgrid:
'''
class gridstructurecomplexgrid
Grid description
Attributes:
- spaces : class spacesstruct_arraycomplexgrid_space: array of spacesstruct_arraycomplexgrid_spaceObj objects
Definitions of grid spaces. Structure array(nspace).
- subgrids : class subgridsstruct_arraycomplexgrid_subgrid: array of subgridsstruct_arraycomplexgrid_subgridObj objects
Definitions of subgrids. Structure array(nsubgrids).
- metric : class metricstruct_arraycomplexgrid_metric: array of metricstruct_arraycomplexgrid_metricObj objects
Metric coefficients. Array of structures (nsubgrids). Metric information for every subgrid.
'''
[docs] def __init__(self, base_path_in='grid'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.spaces = spacesstruct_arraycomplexgrid_space('spaces')
self.subgrids = subgridsstruct_arraycomplexgrid_subgrid('subgrids')
self.metric = metricstruct_arraycomplexgrid_metric('metric')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class gridstructurecomplexgrid\n'
ret = ret + space + 'Attribute spaces\n ' + self.spaces.__str__(depth+1)
ret = ret + space + 'Attribute subgrids\n ' + self.subgrids.__str__(depth+1)
ret = ret + space + 'Attribute metric\n ' + self.metric.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.spaces.setExpIdx(idx)
self.subgrids.setExpIdx(idx)
self.metric.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type gridstructurecomplexgrid, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.spaces.time = self.time
self.spaces.putSlice(path, cpopath)
self.subgrids.time = self.time
self.subgrids.putSlice(path, cpopath)
self.metric.time = self.time
self.metric.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type gridstructurecomplexgrid, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.spaces.replaceLastSlice(path, cpopath)
self.subgrids.replaceLastSlice(path, cpopath)
self.metric.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type gridstructurecomplexgrid, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.spaces.putNonTimed(path, cpopath)
self.subgrids.putNonTimed(path, cpopath)
self.metric.putNonTimed(path, cpopath)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type gridstructurecomplexgrid, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.spaces.getSlice(path, cpopath, inTime, interpolMode)
self.subgrids.getSlice(path, cpopath, inTime, interpolMode)
self.metric.getSlice(path, cpopath, inTime, interpolMode)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type gridstructurecomplexgrid, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
spacesList = self.spaces.build_non_resampled_data(path, cpopath, nbslice)
subgridsList = self.subgrids.build_non_resampled_data(path, cpopath, nbslice)
metricList = self.metric.build_non_resampled_data(path, cpopath, nbslice)
for i in range(nbslice):
slice = gridstructurecomplexgrid(self.base_path)
slice.setExpIdx(self.idx)
slice.spaces = spacesList[i]
slice.subgrids = subgridsList[i]
slice.metric = metricList[i]
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type gridstructurecomplexgridObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type gridstructurecomplexgridObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type gridstructurecomplexgridObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.spaces.putNonTimedElt(path, cpopath + 'spaces', i, obj)
obj = self.subgrids.putNonTimedElt(path, cpopath + 'subgrids', i, obj)
obj = self.metric.putNonTimedElt(path, cpopath + 'metric', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type gridstructurecomplexgridObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.spaces.getNonTimedElt(path, cpopath + 'spaces', i, obj)
self.subgrids.getNonTimedElt(path, cpopath + 'subgrids', i, obj)
self.metric.getNonTimedElt(path, cpopath + 'metric', i, obj)
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'spaces')
ull.deleteData(self.idx, path, cpopath + 'subgrids')
ull.deleteData(self.idx, path, cpopath + 'metric')
[docs]class spacesstruct_arraycomplexgrid_space:
'''
class spacesstruct_arraycomplexgrid_space
Definitions of grid spaces. Structure array(nspace).
Attributes:
- array : list of spacesstruct_arraycomplexgrid_spaceObj
'''
[docs] def __init__(self, base_path_in='spaces'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class spacesstruct_arraycomplexgrid_space\n'
for i in range(len(self.array)):
ret = ret + space + 'spacesstruct_arraycomplexgrid_space[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(spacesstruct_arraycomplexgrid_spaceObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type spacesstruct_arraycomplexgrid_space, run function putSlice'
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type spacesstruct_arraycomplexgrid_space, run function replaceLastSlice'
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type spacesstruct_arraycomplexgrid_space, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type spacesstruct_arraycomplexgrid_space, run function getSlice'
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type spacesstruct_arraycomplexgrid_space, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
for i in range(nbslice):
list.append(spacesstruct_arraycomplexgrid_space(self.base_path))
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
slice = spacesstruct_arraycomplexgrid_space(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getNonTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type spacesstruct_arraycomplexgrid_space, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type spacesstruct_arraycomplexgrid_space, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class spacesstruct_arraycomplexgrid_spaceObj:
'''
class spacesstruct_arraycomplexgrid_spaceObj
Definitions of grid spaces. Structure array(nspace).
Attributes:
- coordtype : numpy.ndarray 1D with int)
Type of coordinates describing the physical space. Vector(nspacedim); The size of coordtype defines the dimension of the space.; For predefined integer constants for standard coordinates see; the documentation of the grid service library.
- properties : class propertiesstructurecomplexgrid_space_properties
Space properties.
- objects : class objectsstruct_arrayobjects: array of objectsstruct_arrayobjectsObj objects
Definition of the higher-dimensional objects in the space.; Structure Array(1:nspacedim). First dimension: dimension of the objects (1=edges, 2=faces, 3=cells/volumes, etc...)
- nodes : class nodesstructurecomplexgrid_nodes
Definition of the nodes in the space.
'''
[docs] def __init__(self, base_path_in='spaces'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.coordtype = numpy.zeros(0, numpy.int32, order='C')
self.properties = propertiesstructurecomplexgrid_space_properties('properties')
self.objects = objectsstruct_arrayobjects('objects')
self.nodes = nodesstructurecomplexgrid_nodes('nodes')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class spacesstruct_arraycomplexgrid_spaceObj\n'
s = self.coordtype.__str__()
ret = ret + space + 'Attribute coordtype\n' + space + s.replace('\n', '\n'+space) + '\n'
ret = ret + space + 'Attribute properties\n ' + self.properties.__str__(depth+1)
ret = ret + space + 'Attribute objects\n ' + self.objects.__str__(depth+1)
ret = ret + space + 'Attribute nodes\n ' + self.nodes.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.properties.setExpIdx(idx)
self.objects.setExpIdx(idx)
self.nodes.setExpIdx(idx)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type spacesstruct_arraycomplexgrid_spaceObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'coordtype'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'coordtype', i, numpy.array(self.coordtype).astype(numpy.int32))
obj = self.properties.putNonTimedElt(path, cpopath + 'properties', i, obj)
obj = self.objects.putNonTimedElt(path, cpopath + 'objects', i, obj)
obj = self.nodes.putNonTimedElt(path, cpopath + 'nodes', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type spacesstruct_arraycomplexgrid_spaceObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'coordtype'
print 'obj = ' + str(obj)
status, ret_coordtype = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'coordtype', i)
check_status(status)
if not status:
self.coordtype = ret_coordtype
self.properties.getNonTimedElt(path, cpopath + 'properties', i, obj)
self.objects.getNonTimedElt(path, cpopath + 'objects', i, obj)
self.nodes.getNonTimedElt(path, cpopath + 'nodes', i, obj)
[docs]class propertiesstructurecomplexgrid_space_properties:
'''
class propertiesstructurecomplexgrid_space_properties
Space properties.
Attributes:
- geotype : int
Type of space geometry (id flag). A flag defining how the geometry (geo) fields associated with; grid nodes and objects are to be interpreted. If the field is undefined (0=GRID_UNDEFINED), the standard interpretation for; the given coordinate types is assumed.
- geotypeid : str
Type of space geometry (id string). A string defining how the geometry (geo) fields associated with; grid nodes and objects are to be interpreted. If the field is undefined, the standard interpretation for; the given coordinate types is assumed.
'''
[docs] def __init__(self, base_path_in='properties'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.geotype = EMPTY_INT
self.geotypeid = ''
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class propertiesstructurecomplexgrid_space_properties\n'
ret = ret + space + 'Attribute geotype: ' + str(self.geotype) + '\n'
ret = ret + space + 'Attribute geotypeid: ' + str(self.geotypeid) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type propertiesstructurecomplexgrid_space_properties, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type propertiesstructurecomplexgrid_space_properties, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type propertiesstructurecomplexgrid_space_properties, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putInt(self.idx, path, cpopath + 'geotype', self.geotype)
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'geotypeid', self.geotypeid, len(self.geotypeid))
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type propertiesstructurecomplexgrid_space_properties, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_geotype = ull.getInt(self.idx, path, cpopath + 'geotype')
check_status(status)
if not status:
self.geotype = ret_geotype
status, ret_geotypeid = ull.getString(self.idx, path, cpopath + 'geotypeid')
check_status(status)
if not status:
self.geotypeid = ret_geotypeid
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type propertiesstructurecomplexgrid_space_properties, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, geotypeVal = ull.getInt(self.idx, path, cpopath + 'geotype')
check_status(status)
status, geotypeidVal = ull.getString(self.idx, path, cpopath + 'geotypeid')
check_status(status)
for i in range(nbslice):
slice = propertiesstructurecomplexgrid_space_properties(self.base_path)
slice.setExpIdx(self.idx)
slice.geotype = geotypeVal
slice.geotypeid = geotypeidVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type propertiesstructurecomplexgrid_space_propertiesObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type propertiesstructurecomplexgrid_space_propertiesObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type propertiesstructurecomplexgrid_space_propertiesObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'geotype'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'geotype', i, self.geotype)
if (dev()):
print 'putStringInObject : ' + cpopath + 'geotypeid'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'geotypeid', i, self.geotypeid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type propertiesstructurecomplexgrid_space_propertiesObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'geotype'
print 'obj = ' + str(obj)
status, ret_geotype = ull.getIntFromObject(self.idx, obj, cpopath + 'geotype', i)
check_status(status)
if not status:
self.geotype = ret_geotype
if (dev()):
print 'getStringInObject : ' + cpopath + 'geotypeid'
print 'obj = ' + str(obj)
status, ret_geotypeid = ull.getStringFromObject(self.idx, obj, cpopath + 'geotypeid', i)
check_status(status)
if not status:
self.geotypeid = ret_geotypeid
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'geotype')
ull.deleteData(self.idx, path, cpopath + 'geotypeid')
[docs]class objectsstruct_arrayobjects:
'''
class objectsstruct_arrayobjects
Definition of the higher-dimensional objects in the space.; Structure Array(1:nspacedim). First dimension: dimension of the objects (1=edges, 2=faces, 3=cells/volumes, etc...)
Attributes:
- array : list of objectsstruct_arrayobjectsObj
'''
[docs] def __init__(self, base_path_in='objects'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class objectsstruct_arrayobjects\n'
for i in range(len(self.array)):
ret = ret + space + 'objectsstruct_arrayobjects[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(objectsstruct_arrayobjectsObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type objectsstruct_arrayobjects, run function putSlice'
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type objectsstruct_arrayobjects, run function replaceLastSlice'
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type objectsstruct_arrayobjects, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type objectsstruct_arrayobjects, run function getSlice'
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type objectsstruct_arrayobjects, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
for i in range(nbslice):
list.append(objectsstruct_arrayobjects(self.base_path))
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
slice = objectsstruct_arrayobjects(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getNonTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type objectsstruct_arrayobjects, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type objectsstruct_arrayobjects, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class objectsstruct_arrayobjectsObj:
'''
class objectsstruct_arrayobjectsObj
Definition of the higher-dimensional objects in the space.; Structure Array(1:nspacedim). First dimension: dimension of the objects (1=edges, 2=faces, 3=cells/volumes, etc...)
Attributes:
- boundary : numpy.ndarray 2D with int
Lists of (n-1)-dimensional objects defining the boundary of an n-dimensional object. Matrix(nobject,nmaxobjectboundary);First dimension: object index, second index: boundary object index
- neighbour : numpy.ndarray 3D with int
Connectivity information. 3d array of integers(nobject, nmaxobjectboundaries, nmaxneighboursperboundary).; Stores the indices of the n-dimensional objects adjacent to a given n-dimensional object.;An object can possibly have multiple neighbours on every boundary. ;First dimension: object index, second dimension: boundary index, third dimension: neighbour index on the boundary.
- geo : numpy.ndarray 3D with float
Geometry data matrix associated with an object. 3d float array(nobject,ngeo1,ngeo2). Meaning depends on the value of grid_space.properties.geotype.; First dimension: object index, second+third dimension: matrix row+column.
- measure : numpy.ndarray 1D with float
Measure of object, i.e. physical size (length for 1d, area for 2d, volume for 3d objects). [m^dim]. Use this field to store measures for (sub)objects explicitly defined in spaces.
'''
[docs] def __init__(self, base_path_in='objects'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.boundary = numpy.zeros((0,0), numpy.int32, order='C')
self.neighbour = numpy.zeros((0,0,0), numpy.int32, order='C')
self.geo = numpy.zeros((0,0,0), numpy.float64, order='C')
self.measure = numpy.zeros(0, numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class objectsstruct_arrayobjectsObj\n'
s = self.boundary.__str__()
ret = ret + space + 'Attribute boundary\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.neighbour.__str__()
ret = ret + space + 'Attribute neighbour\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.geo.__str__()
ret = ret + space + 'Attribute geo\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.measure.__str__()
ret = ret + space + 'Attribute measure\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type objectsstruct_arrayobjectsObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putVect2DIntInObject : ' + cpopath + 'boundary'
print 'obj = ' + str(obj)
obj = ull.putVect2DIntInObject(self.idx, obj, cpopath + 'boundary', i, numpy.array(self.boundary).astype(numpy.int32))
if (dev()):
print 'putVect3DIntInObject : ' + cpopath + 'neighbour'
print 'obj = ' + str(obj)
obj = ull.putVect3DIntInObject(self.idx, obj, cpopath + 'neighbour', i, numpy.array(self.neighbour).astype(numpy.int32))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'geo'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'geo', i, numpy.array(self.geo).astype(numpy.float64))
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'measure'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'measure', i, numpy.array(self.measure).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type objectsstruct_arrayobjectsObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getVect2DIntInObject : ' + cpopath + 'boundary'
print 'obj = ' + str(obj)
status, ret_boundary = ull.getVect2DIntFromObject(self.idx, obj, cpopath + 'boundary', i)
check_status(status)
if not status:
self.boundary = ret_boundary
if (dev()):
print 'getVect3DIntInObject : ' + cpopath + 'neighbour'
print 'obj = ' + str(obj)
status, ret_neighbour = ull.getVect3DIntFromObject(self.idx, obj, cpopath + 'neighbour', i)
check_status(status)
if not status:
self.neighbour = ret_neighbour
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'geo'
print 'obj = ' + str(obj)
status, ret_geo = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'geo', i)
check_status(status)
if not status:
self.geo = ret_geo
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'measure'
print 'obj = ' + str(obj)
status, ret_measure = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'measure', i)
check_status(status)
if not status:
self.measure = ret_measure
[docs]class nodesstructurecomplexgrid_nodes:
'''
class nodesstructurecomplexgrid_nodes
Definition of the nodes in the space.
Attributes:
- geo : numpy.ndarray 3D with float
Geometry data matrix associated with every node. 3d float array(nnodesinspace, ngeo1, ngeo2). Meaning depends on the value of grid_space.properties.geotype.; First dimension: object index, second+third dimension: matrix row+column.; In the default case (grid_space.properties.geotype=undefined), this field has dimensions (nnodeinspace,nspacedim,1) and simply holds the coordinates for every node, where nspacedim is the dimension of the space. The j-th component of the coordinate vector; of the i-th node is thus geo(i,j,1).
- xpoints : numpy.ndarray 1D with int)
List of indices of all nodes which are x-points. Vector(nxpoints)
- altgeo : class altgeostruct_arraycomplexgrid_altgeo: array of altgeostruct_arraycomplexgrid_altgeoObj objects
(Possibly multiple) alternative geometry information for nodes. Structure array(naltgeometries). Mainly intended for plotting.
- alias : numpy.ndarray 1D with int)
Alias list. Vector(nnodesinspace). If this vector is defined, it holds one entry per node. If an entry alias(i)=j with j != 0(=GRID_UNDEFINED),; this means that the nodes with index i and j are aliased, i.e. are identical. If alias(i)=0(=GRID_UNDEFINED), the; node is not aliased to another node. This mechanism can be used to indicate periodic boundaries.
'''
[docs] def __init__(self, base_path_in='nodes'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.geo = numpy.zeros((0,0,0), numpy.float64, order='C')
self.xpoints = numpy.zeros(0, numpy.int32, order='C')
self.altgeo = altgeostruct_arraycomplexgrid_altgeo('altgeo')
self.alias = numpy.zeros(0, numpy.int32, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class nodesstructurecomplexgrid_nodes\n'
s = self.geo.__str__()
ret = ret + space + 'Attribute geo\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.xpoints.__str__()
ret = ret + space + 'Attribute xpoints\n' + space + s.replace('\n', '\n'+space) + '\n'
ret = ret + space + 'Attribute altgeo\n ' + self.altgeo.__str__(depth+1)
s = self.alias.__str__()
ret = ret + space + 'Attribute alias\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.altgeo.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type nodesstructurecomplexgrid_nodes, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.altgeo.time = self.time
self.altgeo.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type nodesstructurecomplexgrid_nodes, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.altgeo.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type nodesstructurecomplexgrid_nodes, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putVect3DDouble(self.idx, path, cpopath + 'geo', numpy.array(self.geo).astype(numpy.float64), False)
check_status(status)
status = ull.putVect1DInt(self.idx, path, cpopath + 'xpoints', numpy.array(self.xpoints).astype(numpy.int32), False)
check_status(status)
self.altgeo.putNonTimed(path, cpopath)
status = ull.putVect1DInt(self.idx, path, cpopath + 'alias', numpy.array(self.alias).astype(numpy.int32), False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type nodesstructurecomplexgrid_nodes, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_geo = ull.getVect3DDouble(self.idx, path, cpopath + 'geo')
check_status(status)
if not status:
self.geo = ret_geo
status, ret_xpoints = ull.getVect1DInt(self.idx, path, cpopath + 'xpoints')
check_status(status)
if not status:
self.xpoints = ret_xpoints
self.altgeo.getSlice(path, cpopath, inTime, interpolMode)
status, ret_alias = ull.getVect1DInt(self.idx, path, cpopath + 'alias')
check_status(status)
if not status:
self.alias = ret_alias
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type nodesstructurecomplexgrid_nodes, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, geoVal = ull.getVect3DDouble(self.idx, path, cpopath + 'geo')
check_status(status)
status, xpointsVal = ull.getVect1DInt(self.idx, path, cpopath + 'xpoints')
check_status(status)
altgeoList = self.altgeo.build_non_resampled_data(path, cpopath, nbslice)
status, aliasVal = ull.getVect1DInt(self.idx, path, cpopath + 'alias')
check_status(status)
for i in range(nbslice):
slice = nodesstructurecomplexgrid_nodes(self.base_path)
slice.setExpIdx(self.idx)
slice.geo = geoVal
slice.xpoints = xpointsVal
slice.altgeo = altgeoList[i]
slice.alias = aliasVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nodesstructurecomplexgrid_nodesObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nodesstructurecomplexgrid_nodesObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nodesstructurecomplexgrid_nodesObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'geo'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'geo', i, numpy.array(self.geo).astype(numpy.float64))
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'xpoints'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'xpoints', i, numpy.array(self.xpoints).astype(numpy.int32))
obj = self.altgeo.putNonTimedElt(path, cpopath + 'altgeo', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'alias'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'alias', i, numpy.array(self.alias).astype(numpy.int32))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nodesstructurecomplexgrid_nodesObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'geo'
print 'obj = ' + str(obj)
status, ret_geo = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'geo', i)
check_status(status)
if not status:
self.geo = ret_geo
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'xpoints'
print 'obj = ' + str(obj)
status, ret_xpoints = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'xpoints', i)
check_status(status)
if not status:
self.xpoints = ret_xpoints
self.altgeo.getNonTimedElt(path, cpopath + 'altgeo', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'alias'
print 'obj = ' + str(obj)
status, ret_alias = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'alias', i)
check_status(status)
if not status:
self.alias = ret_alias
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'geo')
ull.deleteData(self.idx, path, cpopath + 'xpoints')
ull.deleteData(self.idx, path, cpopath + 'altgeo')
ull.deleteData(self.idx, path, cpopath + 'alias')
[docs]class altgeostruct_arraycomplexgrid_altgeo:
'''
class altgeostruct_arraycomplexgrid_altgeo
(Possibly multiple) alternative geometry information for nodes. Structure array(naltgeometries). Mainly intended for plotting.
Attributes:
- array : list of altgeostruct_arraycomplexgrid_altgeoObj
'''
[docs] def __init__(self, base_path_in='altgeo'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class altgeostruct_arraycomplexgrid_altgeo\n'
for i in range(len(self.array)):
ret = ret + space + 'altgeostruct_arraycomplexgrid_altgeo[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(altgeostruct_arraycomplexgrid_altgeoObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type altgeostruct_arraycomplexgrid_altgeo, run function putSlice'
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type altgeostruct_arraycomplexgrid_altgeo, run function replaceLastSlice'
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type altgeostruct_arraycomplexgrid_altgeo, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type altgeostruct_arraycomplexgrid_altgeo, run function getSlice'
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type altgeostruct_arraycomplexgrid_altgeo, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
for i in range(nbslice):
list.append(altgeostruct_arraycomplexgrid_altgeo(self.base_path))
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
slice = altgeostruct_arraycomplexgrid_altgeo(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getNonTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type altgeostruct_arraycomplexgrid_altgeo, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type altgeostruct_arraycomplexgrid_altgeo, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class altgeostruct_arraycomplexgrid_altgeoObj:
'''
class altgeostruct_arraycomplexgrid_altgeoObj
(Possibly multiple) alternative geometry information for nodes. Structure array(naltgeometries). Mainly intended for plotting.
Attributes:
- coordtype : numpy.ndarray 1D with int)
Coordinate axis types for alternate coordinate system. Vector(nspacedim).
- geo : numpy.ndarray 3D with float
Alternate geometry data matrix associated with every node. 3d float array(nnodesinspace, ngeo1, ngeo2). See documentation of nodes.geo one level up.
'''
[docs] def __init__(self, base_path_in='altgeo'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.coordtype = numpy.zeros(0, numpy.int32, order='C')
self.geo = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class altgeostruct_arraycomplexgrid_altgeoObj\n'
s = self.coordtype.__str__()
ret = ret + space + 'Attribute coordtype\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.geo.__str__()
ret = ret + space + 'Attribute geo\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type altgeostruct_arraycomplexgrid_altgeoObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'coordtype'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'coordtype', i, numpy.array(self.coordtype).astype(numpy.int32))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'geo'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'geo', i, numpy.array(self.geo).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type altgeostruct_arraycomplexgrid_altgeoObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'coordtype'
print 'obj = ' + str(obj)
status, ret_coordtype = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'coordtype', i)
check_status(status)
if not status:
self.coordtype = ret_coordtype
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'geo'
print 'obj = ' + str(obj)
status, ret_geo = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'geo', i)
check_status(status)
if not status:
self.geo = ret_geo
[docs]class subgridsstruct_arraycomplexgrid_subgrid:
'''
class subgridsstruct_arraycomplexgrid_subgrid
Definitions of subgrids. Structure array(nsubgrids).
Attributes:
- array : list of subgridsstruct_arraycomplexgrid_subgridObj
'''
[docs] def __init__(self, base_path_in='subgrids'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class subgridsstruct_arraycomplexgrid_subgrid\n'
for i in range(len(self.array)):
ret = ret + space + 'subgridsstruct_arraycomplexgrid_subgrid[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(subgridsstruct_arraycomplexgrid_subgridObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type subgridsstruct_arraycomplexgrid_subgrid, run function putSlice'
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type subgridsstruct_arraycomplexgrid_subgrid, run function replaceLastSlice'
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type subgridsstruct_arraycomplexgrid_subgrid, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type subgridsstruct_arraycomplexgrid_subgrid, run function getSlice'
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type subgridsstruct_arraycomplexgrid_subgrid, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
for i in range(nbslice):
list.append(subgridsstruct_arraycomplexgrid_subgrid(self.base_path))
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
slice = subgridsstruct_arraycomplexgrid_subgrid(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getNonTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type subgridsstruct_arraycomplexgrid_subgrid, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type subgridsstruct_arraycomplexgrid_subgrid, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class subgridsstruct_arraycomplexgrid_subgridObj:
'''
class subgridsstruct_arraycomplexgrid_subgridObj
Definitions of subgrids. Structure array(nsubgrids).
Attributes:
- id : str
ID string (name) of the subgrid. Freely chosen by user, possibly used for plotting.
- list : class liststruct_arraycomplexgrid_objectlist: array of liststruct_arraycomplexgrid_objectlistObj objects
List of object lists. Structure array(nobjectlists).
'''
[docs] def __init__(self, base_path_in='subgrids'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.id = ''
self.list = liststruct_arraycomplexgrid_objectlist('list')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class subgridsstruct_arraycomplexgrid_subgridObj\n'
ret = ret + space + 'Attribute id: ' + str(self.id) + '\n'
ret = ret + space + 'Attribute list\n ' + self.list.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.list.setExpIdx(idx)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type subgridsstruct_arraycomplexgrid_subgridObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'id'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'id', i, self.id)
obj = self.list.putNonTimedElt(path, cpopath + 'list', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type subgridsstruct_arraycomplexgrid_subgridObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'id'
print 'obj = ' + str(obj)
status, ret_id = ull.getStringFromObject(self.idx, obj, cpopath + 'id', i)
check_status(status)
if not status:
self.id = ret_id
self.list.getNonTimedElt(path, cpopath + 'list', i, obj)
[docs]class liststruct_arraycomplexgrid_objectlist:
'''
class liststruct_arraycomplexgrid_objectlist
List of object lists. Structure array(nobjectlists).
Attributes:
- array : list of liststruct_arraycomplexgrid_objectlistObj
'''
[docs] def __init__(self, base_path_in='list'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class liststruct_arraycomplexgrid_objectlist\n'
for i in range(len(self.array)):
ret = ret + space + 'liststruct_arraycomplexgrid_objectlist[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(liststruct_arraycomplexgrid_objectlistObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type liststruct_arraycomplexgrid_objectlist, run function putSlice'
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type liststruct_arraycomplexgrid_objectlist, run function replaceLastSlice'
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type liststruct_arraycomplexgrid_objectlist, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type liststruct_arraycomplexgrid_objectlist, run function getSlice'
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type liststruct_arraycomplexgrid_objectlist, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
for i in range(nbslice):
list.append(liststruct_arraycomplexgrid_objectlist(self.base_path))
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
slice = liststruct_arraycomplexgrid_objectlist(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getNonTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type liststruct_arraycomplexgrid_objectlist, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type liststruct_arraycomplexgrid_objectlist, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class liststruct_arraycomplexgrid_objectlistObj:
'''
class liststruct_arraycomplexgrid_objectlistObj
List of object lists. Structure array(nobjectlists).
Attributes:
- cls : numpy.ndarray 1D with int)
Class tuple of the objects in the list. Vector(nspace)
- indset : class indsetstruct_arraycomplexgrid_indexlist: array of indsetstruct_arraycomplexgrid_indexlistObj objects
Index set for implicit definition of the object indices. List of indexlists. Structure Array(nspace)
- ind : numpy.ndarray 2D with int
Explicit list of index tuples. Matrix(nobject, nspace). First dimension: object index, second dimension: index tuple index.; If this field is defined and has size > 0, the object list is understood to be explicit.
'''
[docs] def __init__(self, base_path_in='list'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.cls = numpy.zeros(0, numpy.int32, order='C')
self.indset = indsetstruct_arraycomplexgrid_indexlist('indset')
self.ind = numpy.zeros((0,0), numpy.int32, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class liststruct_arraycomplexgrid_objectlistObj\n'
s = self.cls.__str__()
ret = ret + space + 'Attribute cls\n' + space + s.replace('\n', '\n'+space) + '\n'
ret = ret + space + 'Attribute indset\n ' + self.indset.__str__(depth+1)
s = self.ind.__str__()
ret = ret + space + 'Attribute ind\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.indset.setExpIdx(idx)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type liststruct_arraycomplexgrid_objectlistObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'cls'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'cls', i, numpy.array(self.cls).astype(numpy.int32))
obj = self.indset.putNonTimedElt(path, cpopath + 'indset', i, obj)
if (dev()):
print 'putVect2DIntInObject : ' + cpopath + 'ind'
print 'obj = ' + str(obj)
obj = ull.putVect2DIntInObject(self.idx, obj, cpopath + 'ind', i, numpy.array(self.ind).astype(numpy.int32))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type liststruct_arraycomplexgrid_objectlistObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'cls'
print 'obj = ' + str(obj)
status, ret_cls = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'cls', i)
check_status(status)
if not status:
self.cls = ret_cls
self.indset.getNonTimedElt(path, cpopath + 'indset', i, obj)
if (dev()):
print 'getVect2DIntInObject : ' + cpopath + 'ind'
print 'obj = ' + str(obj)
status, ret_ind = ull.getVect2DIntFromObject(self.idx, obj, cpopath + 'ind', i)
check_status(status)
if not status:
self.ind = ret_ind
[docs]class indsetstruct_arraycomplexgrid_indexlist:
'''
class indsetstruct_arraycomplexgrid_indexlist
Index set for implicit definition of the object indices. List of indexlists. Structure Array(nspace)
Attributes:
- array : list of indsetstruct_arraycomplexgrid_indexlistObj
'''
[docs] def __init__(self, base_path_in='indset'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class indsetstruct_arraycomplexgrid_indexlist\n'
for i in range(len(self.array)):
ret = ret + space + 'indsetstruct_arraycomplexgrid_indexlist[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(indsetstruct_arraycomplexgrid_indexlistObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type indsetstruct_arraycomplexgrid_indexlist, run function putSlice'
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type indsetstruct_arraycomplexgrid_indexlist, run function replaceLastSlice'
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type indsetstruct_arraycomplexgrid_indexlist, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type indsetstruct_arraycomplexgrid_indexlist, run function getSlice'
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type indsetstruct_arraycomplexgrid_indexlist, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
for i in range(nbslice):
list.append(indsetstruct_arraycomplexgrid_indexlist(self.base_path))
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
slice = indsetstruct_arraycomplexgrid_indexlist(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getNonTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type indsetstruct_arraycomplexgrid_indexlist, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type indsetstruct_arraycomplexgrid_indexlist, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class indsetstruct_arraycomplexgrid_indexlistObj:
'''
class indsetstruct_arraycomplexgrid_indexlistObj
Index set for implicit definition of the object indices. List of indexlists. Structure Array(nspace)
Attributes:
- range : numpy.ndarray 1D with int)
Defines an index range enumerating from range[1] to range[2] (with both range[1] and range[2] included). Vector(2)
- ind : numpy.ndarray 1D with int)
An explicit list of indices. If this member is defined and has size>0, the list is assumed to be explicit. Vector(nindices)
'''
[docs] def __init__(self, base_path_in='indset'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.range = numpy.zeros(0, numpy.int32, order='C')
self.ind = numpy.zeros(0, numpy.int32, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class indsetstruct_arraycomplexgrid_indexlistObj\n'
s = self.range.__str__()
ret = ret + space + 'Attribute range\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.ind.__str__()
ret = ret + space + 'Attribute ind\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type indsetstruct_arraycomplexgrid_indexlistObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'range'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'range', i, numpy.array(self.range).astype(numpy.int32))
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'ind'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'ind', i, numpy.array(self.ind).astype(numpy.int32))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type indsetstruct_arraycomplexgrid_indexlistObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'range'
print 'obj = ' + str(obj)
status, ret_range = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'range', i)
check_status(status)
if not status:
self.range = ret_range
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'ind'
print 'obj = ' + str(obj)
status, ret_ind = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'ind', i)
check_status(status)
if not status:
self.ind = ret_ind
[docs]class metricstruct_arraycomplexgrid_metric:
'''
class metricstruct_arraycomplexgrid_metric
Metric coefficients. Array of structures (nsubgrids). Metric information for every subgrid.
Attributes:
- array : list of metricstruct_arraycomplexgrid_metricObj
'''
[docs] def __init__(self, base_path_in='metric'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class metricstruct_arraycomplexgrid_metric\n'
for i in range(len(self.array)):
ret = ret + space + 'metricstruct_arraycomplexgrid_metric[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(metricstruct_arraycomplexgrid_metricObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type metricstruct_arraycomplexgrid_metric, run function putSlice'
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type metricstruct_arraycomplexgrid_metric, run function replaceLastSlice'
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type metricstruct_arraycomplexgrid_metric, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type metricstruct_arraycomplexgrid_metric, run function getSlice'
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type metricstruct_arraycomplexgrid_metric, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
for i in range(nbslice):
list.append(metricstruct_arraycomplexgrid_metric(self.base_path))
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
slice = metricstruct_arraycomplexgrid_metric(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getNonTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type metricstruct_arraycomplexgrid_metric, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type metricstruct_arraycomplexgrid_metric, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class metricstruct_arraycomplexgrid_metricObj:
'''
class metricstruct_arraycomplexgrid_metricObj
Metric coefficients. Array of structures (nsubgrids). Metric information for every subgrid.
Attributes:
- measure : class measurestructurecomplexgrid_scalar_simplestruct
Measure of object, i.e. physical size (length for 1d, area for 2d, volume for 3d objects). [m^dim]. Use this field to store measures of implicitly defined grid objects.
- g11 : class g11structurecomplexgrid_scalar_simplestruct
Metric coefficients g11. Structure array(nsubgrid_coefficient)
- g12 : class g12structurecomplexgrid_scalar_simplestruct
Metric coefficients g12. Structure array(nsubgrid_coefficient)
- g13 : class g13structurecomplexgrid_scalar_simplestruct
Metric coefficients g13. Structure array(nsubgrid_coefficient)
- g22 : class g22structurecomplexgrid_scalar_simplestruct
Metric coefficients g22. Structure array(nsubgrid_coefficient)
- g23 : class g23structurecomplexgrid_scalar_simplestruct
Metric coefficients g23. Structure array(nsubgrid_coefficient)
- g33 : class g33structurecomplexgrid_scalar_simplestruct
Metric coefficients g33. Structure array(nsubgrid_coefficient)
- jacobian : class jacobianstructurecomplexgrid_scalar_simplestruct
Jacobian. Structure array(nsubgrid_coefficient)
'''
[docs] def __init__(self, base_path_in='metric'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.measure = measurestructurecomplexgrid_scalar_simplestruct('measure')
self.g11 = g11structurecomplexgrid_scalar_simplestruct('g11')
self.g12 = g12structurecomplexgrid_scalar_simplestruct('g12')
self.g13 = g13structurecomplexgrid_scalar_simplestruct('g13')
self.g22 = g22structurecomplexgrid_scalar_simplestruct('g22')
self.g23 = g23structurecomplexgrid_scalar_simplestruct('g23')
self.g33 = g33structurecomplexgrid_scalar_simplestruct('g33')
self.jacobian = jacobianstructurecomplexgrid_scalar_simplestruct('jacobian')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class metricstruct_arraycomplexgrid_metricObj\n'
ret = ret + space + 'Attribute measure\n ' + self.measure.__str__(depth+1)
ret = ret + space + 'Attribute g11\n ' + self.g11.__str__(depth+1)
ret = ret + space + 'Attribute g12\n ' + self.g12.__str__(depth+1)
ret = ret + space + 'Attribute g13\n ' + self.g13.__str__(depth+1)
ret = ret + space + 'Attribute g22\n ' + self.g22.__str__(depth+1)
ret = ret + space + 'Attribute g23\n ' + self.g23.__str__(depth+1)
ret = ret + space + 'Attribute g33\n ' + self.g33.__str__(depth+1)
ret = ret + space + 'Attribute jacobian\n ' + self.jacobian.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.measure.setExpIdx(idx)
self.g11.setExpIdx(idx)
self.g12.setExpIdx(idx)
self.g13.setExpIdx(idx)
self.g22.setExpIdx(idx)
self.g23.setExpIdx(idx)
self.g33.setExpIdx(idx)
self.jacobian.setExpIdx(idx)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type metricstruct_arraycomplexgrid_metricObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.measure.putNonTimedElt(path, cpopath + 'measure', i, obj)
obj = self.g11.putNonTimedElt(path, cpopath + 'g11', i, obj)
obj = self.g12.putNonTimedElt(path, cpopath + 'g12', i, obj)
obj = self.g13.putNonTimedElt(path, cpopath + 'g13', i, obj)
obj = self.g22.putNonTimedElt(path, cpopath + 'g22', i, obj)
obj = self.g23.putNonTimedElt(path, cpopath + 'g23', i, obj)
obj = self.g33.putNonTimedElt(path, cpopath + 'g33', i, obj)
obj = self.jacobian.putNonTimedElt(path, cpopath + 'jacobian', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type metricstruct_arraycomplexgrid_metricObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.measure.getNonTimedElt(path, cpopath + 'measure', i, obj)
self.g11.getNonTimedElt(path, cpopath + 'g11', i, obj)
self.g12.getNonTimedElt(path, cpopath + 'g12', i, obj)
self.g13.getNonTimedElt(path, cpopath + 'g13', i, obj)
self.g22.getNonTimedElt(path, cpopath + 'g22', i, obj)
self.g23.getNonTimedElt(path, cpopath + 'g23', i, obj)
self.g33.getNonTimedElt(path, cpopath + 'g33', i, obj)
self.jacobian.getNonTimedElt(path, cpopath + 'jacobian', i, obj)
[docs]class measurestructurecomplexgrid_scalar_simplestruct:
'''
class measurestructurecomplexgrid_scalar_simplestruct
Measure of object, i.e. physical size (length for 1d, area for 2d, volume for 3d objects). [m^dim]. Use this field to store measures of implicitly defined grid objects.
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='measure'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class measurestructurecomplexgrid_scalar_simplestruct\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type measurestructurecomplexgrid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type measurestructurecomplexgrid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type measurestructurecomplexgrid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putInt(self.idx, path, cpopath + 'subgrid', self.subgrid)
check_status(status)
status = ull.putVect1DDouble(self.idx, path, cpopath + 'scalar', numpy.array(self.scalar).astype(numpy.float64), False)
check_status(status)
status = ull.putVect2DDouble(self.idx, path, cpopath + 'vector', numpy.array(self.vector).astype(numpy.float64), False)
check_status(status)
status = ull.putVect3DDouble(self.idx, path, cpopath + 'matrix', numpy.array(self.matrix).astype(numpy.float64), False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type measurestructurecomplexgrid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_subgrid = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
if not status:
self.subgrid = ret_subgrid
status, ret_scalar = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
if not status:
self.scalar = ret_scalar
status, ret_vector = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
if not status:
self.vector = ret_vector
status, ret_matrix = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type measurestructurecomplexgrid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, subgridVal = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
status, scalarVal = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
status, vectorVal = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
status, matrixVal = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
for i in range(nbslice):
slice = measurestructurecomplexgrid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.subgrid = subgridVal
slice.scalar = scalarVal
slice.vector = vectorVal
slice.matrix = matrixVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type measurestructurecomplexgrid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type measurestructurecomplexgrid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type measurestructurecomplexgrid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type measurestructurecomplexgrid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'subgrid')
ull.deleteData(self.idx, path, cpopath + 'scalar')
ull.deleteData(self.idx, path, cpopath + 'vector')
ull.deleteData(self.idx, path, cpopath + 'matrix')
[docs]class g11structurecomplexgrid_scalar_simplestruct:
'''
class g11structurecomplexgrid_scalar_simplestruct
Metric coefficients g11. Structure array(nsubgrid_coefficient)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='g11'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class g11structurecomplexgrid_scalar_simplestruct\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g11structurecomplexgrid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g11structurecomplexgrid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g11structurecomplexgrid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putInt(self.idx, path, cpopath + 'subgrid', self.subgrid)
check_status(status)
status = ull.putVect1DDouble(self.idx, path, cpopath + 'scalar', numpy.array(self.scalar).astype(numpy.float64), False)
check_status(status)
status = ull.putVect2DDouble(self.idx, path, cpopath + 'vector', numpy.array(self.vector).astype(numpy.float64), False)
check_status(status)
status = ull.putVect3DDouble(self.idx, path, cpopath + 'matrix', numpy.array(self.matrix).astype(numpy.float64), False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type g11structurecomplexgrid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_subgrid = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
if not status:
self.subgrid = ret_subgrid
status, ret_scalar = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
if not status:
self.scalar = ret_scalar
status, ret_vector = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
if not status:
self.vector = ret_vector
status, ret_matrix = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type g11structurecomplexgrid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, subgridVal = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
status, scalarVal = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
status, vectorVal = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
status, matrixVal = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
for i in range(nbslice):
slice = g11structurecomplexgrid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.subgrid = subgridVal
slice.scalar = scalarVal
slice.vector = vectorVal
slice.matrix = matrixVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g11structurecomplexgrid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g11structurecomplexgrid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g11structurecomplexgrid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g11structurecomplexgrid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'subgrid')
ull.deleteData(self.idx, path, cpopath + 'scalar')
ull.deleteData(self.idx, path, cpopath + 'vector')
ull.deleteData(self.idx, path, cpopath + 'matrix')
[docs]class g12structurecomplexgrid_scalar_simplestruct:
'''
class g12structurecomplexgrid_scalar_simplestruct
Metric coefficients g12. Structure array(nsubgrid_coefficient)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='g12'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class g12structurecomplexgrid_scalar_simplestruct\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g12structurecomplexgrid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g12structurecomplexgrid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g12structurecomplexgrid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putInt(self.idx, path, cpopath + 'subgrid', self.subgrid)
check_status(status)
status = ull.putVect1DDouble(self.idx, path, cpopath + 'scalar', numpy.array(self.scalar).astype(numpy.float64), False)
check_status(status)
status = ull.putVect2DDouble(self.idx, path, cpopath + 'vector', numpy.array(self.vector).astype(numpy.float64), False)
check_status(status)
status = ull.putVect3DDouble(self.idx, path, cpopath + 'matrix', numpy.array(self.matrix).astype(numpy.float64), False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type g12structurecomplexgrid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_subgrid = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
if not status:
self.subgrid = ret_subgrid
status, ret_scalar = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
if not status:
self.scalar = ret_scalar
status, ret_vector = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
if not status:
self.vector = ret_vector
status, ret_matrix = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type g12structurecomplexgrid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, subgridVal = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
status, scalarVal = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
status, vectorVal = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
status, matrixVal = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
for i in range(nbslice):
slice = g12structurecomplexgrid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.subgrid = subgridVal
slice.scalar = scalarVal
slice.vector = vectorVal
slice.matrix = matrixVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g12structurecomplexgrid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g12structurecomplexgrid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g12structurecomplexgrid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g12structurecomplexgrid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'subgrid')
ull.deleteData(self.idx, path, cpopath + 'scalar')
ull.deleteData(self.idx, path, cpopath + 'vector')
ull.deleteData(self.idx, path, cpopath + 'matrix')
[docs]class g13structurecomplexgrid_scalar_simplestruct:
'''
class g13structurecomplexgrid_scalar_simplestruct
Metric coefficients g13. Structure array(nsubgrid_coefficient)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='g13'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class g13structurecomplexgrid_scalar_simplestruct\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g13structurecomplexgrid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g13structurecomplexgrid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g13structurecomplexgrid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putInt(self.idx, path, cpopath + 'subgrid', self.subgrid)
check_status(status)
status = ull.putVect1DDouble(self.idx, path, cpopath + 'scalar', numpy.array(self.scalar).astype(numpy.float64), False)
check_status(status)
status = ull.putVect2DDouble(self.idx, path, cpopath + 'vector', numpy.array(self.vector).astype(numpy.float64), False)
check_status(status)
status = ull.putVect3DDouble(self.idx, path, cpopath + 'matrix', numpy.array(self.matrix).astype(numpy.float64), False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type g13structurecomplexgrid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_subgrid = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
if not status:
self.subgrid = ret_subgrid
status, ret_scalar = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
if not status:
self.scalar = ret_scalar
status, ret_vector = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
if not status:
self.vector = ret_vector
status, ret_matrix = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type g13structurecomplexgrid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, subgridVal = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
status, scalarVal = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
status, vectorVal = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
status, matrixVal = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
for i in range(nbslice):
slice = g13structurecomplexgrid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.subgrid = subgridVal
slice.scalar = scalarVal
slice.vector = vectorVal
slice.matrix = matrixVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g13structurecomplexgrid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g13structurecomplexgrid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g13structurecomplexgrid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g13structurecomplexgrid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'subgrid')
ull.deleteData(self.idx, path, cpopath + 'scalar')
ull.deleteData(self.idx, path, cpopath + 'vector')
ull.deleteData(self.idx, path, cpopath + 'matrix')
[docs]class g22structurecomplexgrid_scalar_simplestruct:
'''
class g22structurecomplexgrid_scalar_simplestruct
Metric coefficients g22. Structure array(nsubgrid_coefficient)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='g22'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class g22structurecomplexgrid_scalar_simplestruct\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g22structurecomplexgrid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g22structurecomplexgrid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g22structurecomplexgrid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putInt(self.idx, path, cpopath + 'subgrid', self.subgrid)
check_status(status)
status = ull.putVect1DDouble(self.idx, path, cpopath + 'scalar', numpy.array(self.scalar).astype(numpy.float64), False)
check_status(status)
status = ull.putVect2DDouble(self.idx, path, cpopath + 'vector', numpy.array(self.vector).astype(numpy.float64), False)
check_status(status)
status = ull.putVect3DDouble(self.idx, path, cpopath + 'matrix', numpy.array(self.matrix).astype(numpy.float64), False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type g22structurecomplexgrid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_subgrid = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
if not status:
self.subgrid = ret_subgrid
status, ret_scalar = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
if not status:
self.scalar = ret_scalar
status, ret_vector = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
if not status:
self.vector = ret_vector
status, ret_matrix = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type g22structurecomplexgrid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, subgridVal = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
status, scalarVal = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
status, vectorVal = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
status, matrixVal = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
for i in range(nbslice):
slice = g22structurecomplexgrid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.subgrid = subgridVal
slice.scalar = scalarVal
slice.vector = vectorVal
slice.matrix = matrixVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g22structurecomplexgrid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g22structurecomplexgrid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g22structurecomplexgrid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g22structurecomplexgrid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'subgrid')
ull.deleteData(self.idx, path, cpopath + 'scalar')
ull.deleteData(self.idx, path, cpopath + 'vector')
ull.deleteData(self.idx, path, cpopath + 'matrix')
[docs]class g23structurecomplexgrid_scalar_simplestruct:
'''
class g23structurecomplexgrid_scalar_simplestruct
Metric coefficients g23. Structure array(nsubgrid_coefficient)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='g23'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class g23structurecomplexgrid_scalar_simplestruct\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g23structurecomplexgrid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g23structurecomplexgrid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g23structurecomplexgrid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putInt(self.idx, path, cpopath + 'subgrid', self.subgrid)
check_status(status)
status = ull.putVect1DDouble(self.idx, path, cpopath + 'scalar', numpy.array(self.scalar).astype(numpy.float64), False)
check_status(status)
status = ull.putVect2DDouble(self.idx, path, cpopath + 'vector', numpy.array(self.vector).astype(numpy.float64), False)
check_status(status)
status = ull.putVect3DDouble(self.idx, path, cpopath + 'matrix', numpy.array(self.matrix).astype(numpy.float64), False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type g23structurecomplexgrid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_subgrid = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
if not status:
self.subgrid = ret_subgrid
status, ret_scalar = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
if not status:
self.scalar = ret_scalar
status, ret_vector = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
if not status:
self.vector = ret_vector
status, ret_matrix = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type g23structurecomplexgrid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, subgridVal = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
status, scalarVal = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
status, vectorVal = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
status, matrixVal = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
for i in range(nbslice):
slice = g23structurecomplexgrid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.subgrid = subgridVal
slice.scalar = scalarVal
slice.vector = vectorVal
slice.matrix = matrixVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g23structurecomplexgrid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g23structurecomplexgrid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g23structurecomplexgrid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g23structurecomplexgrid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'subgrid')
ull.deleteData(self.idx, path, cpopath + 'scalar')
ull.deleteData(self.idx, path, cpopath + 'vector')
ull.deleteData(self.idx, path, cpopath + 'matrix')
[docs]class g33structurecomplexgrid_scalar_simplestruct:
'''
class g33structurecomplexgrid_scalar_simplestruct
Metric coefficients g33. Structure array(nsubgrid_coefficient)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='g33'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class g33structurecomplexgrid_scalar_simplestruct\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g33structurecomplexgrid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g33structurecomplexgrid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type g33structurecomplexgrid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putInt(self.idx, path, cpopath + 'subgrid', self.subgrid)
check_status(status)
status = ull.putVect1DDouble(self.idx, path, cpopath + 'scalar', numpy.array(self.scalar).astype(numpy.float64), False)
check_status(status)
status = ull.putVect2DDouble(self.idx, path, cpopath + 'vector', numpy.array(self.vector).astype(numpy.float64), False)
check_status(status)
status = ull.putVect3DDouble(self.idx, path, cpopath + 'matrix', numpy.array(self.matrix).astype(numpy.float64), False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type g33structurecomplexgrid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_subgrid = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
if not status:
self.subgrid = ret_subgrid
status, ret_scalar = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
if not status:
self.scalar = ret_scalar
status, ret_vector = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
if not status:
self.vector = ret_vector
status, ret_matrix = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type g33structurecomplexgrid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, subgridVal = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
status, scalarVal = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
status, vectorVal = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
status, matrixVal = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
for i in range(nbslice):
slice = g33structurecomplexgrid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.subgrid = subgridVal
slice.scalar = scalarVal
slice.vector = vectorVal
slice.matrix = matrixVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g33structurecomplexgrid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g33structurecomplexgrid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g33structurecomplexgrid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type g33structurecomplexgrid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'subgrid')
ull.deleteData(self.idx, path, cpopath + 'scalar')
ull.deleteData(self.idx, path, cpopath + 'vector')
ull.deleteData(self.idx, path, cpopath + 'matrix')
[docs]class jacobianstructurecomplexgrid_scalar_simplestruct:
'''
class jacobianstructurecomplexgrid_scalar_simplestruct
Jacobian. Structure array(nsubgrid_coefficient)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='jacobian'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class jacobianstructurecomplexgrid_scalar_simplestruct\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type jacobianstructurecomplexgrid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type jacobianstructurecomplexgrid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type jacobianstructurecomplexgrid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putInt(self.idx, path, cpopath + 'subgrid', self.subgrid)
check_status(status)
status = ull.putVect1DDouble(self.idx, path, cpopath + 'scalar', numpy.array(self.scalar).astype(numpy.float64), False)
check_status(status)
status = ull.putVect2DDouble(self.idx, path, cpopath + 'vector', numpy.array(self.vector).astype(numpy.float64), False)
check_status(status)
status = ull.putVect3DDouble(self.idx, path, cpopath + 'matrix', numpy.array(self.matrix).astype(numpy.float64), False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type jacobianstructurecomplexgrid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_subgrid = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
if not status:
self.subgrid = ret_subgrid
status, ret_scalar = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
if not status:
self.scalar = ret_scalar
status, ret_vector = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
if not status:
self.vector = ret_vector
status, ret_matrix = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type jacobianstructurecomplexgrid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, subgridVal = ull.getInt(self.idx, path, cpopath + 'subgrid')
check_status(status)
status, scalarVal = ull.getVect1DDouble(self.idx, path, cpopath + 'scalar')
check_status(status)
status, vectorVal = ull.getVect2DDouble(self.idx, path, cpopath + 'vector')
check_status(status)
status, matrixVal = ull.getVect3DDouble(self.idx, path, cpopath + 'matrix')
check_status(status)
for i in range(nbslice):
slice = jacobianstructurecomplexgrid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.subgrid = subgridVal
slice.scalar = scalarVal
slice.vector = vectorVal
slice.matrix = matrixVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type jacobianstructurecomplexgrid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type jacobianstructurecomplexgrid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type jacobianstructurecomplexgrid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type jacobianstructurecomplexgrid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'subgrid')
ull.deleteData(self.idx, path, cpopath + 'scalar')
ull.deleteData(self.idx, path, cpopath + 'vector')
ull.deleteData(self.idx, path, cpopath + 'matrix')
[docs]class speciesstruct_arrayspecies_desc:
'''
class speciesstruct_arrayspecies_desc
Description of ion species. Array of structures(nspecies)
Attributes:
- array : list of speciesstruct_arrayspecies_descObj
'''
[docs] def __init__(self, base_path_in='species'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class speciesstruct_arrayspecies_desc\n'
for i in range(len(self.array)):
ret = ret + space + 'speciesstruct_arrayspecies_desc[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(speciesstruct_arrayspecies_descObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type speciesstruct_arrayspecies_desc, run function putSlice'
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type speciesstruct_arrayspecies_desc, run function replaceLastSlice'
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type speciesstruct_arrayspecies_desc, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type speciesstruct_arrayspecies_desc, run function getSlice'
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type speciesstruct_arrayspecies_desc, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
for i in range(nbslice):
list.append(speciesstruct_arrayspecies_desc(self.base_path))
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
slice = speciesstruct_arrayspecies_desc(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getNonTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type speciesstruct_arrayspecies_desc, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type speciesstruct_arrayspecies_desc, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class speciesstruct_arrayspecies_descObj:
'''
class speciesstruct_arrayspecies_descObj
Description of ion species. Array of structures(nspecies)
Attributes:
- label : str
Name of species
- amn : float
Atomic mass number of the species
- zn : float
Nuclear charge of the impurity
- zmin : float
Minimum Z of species charge state bundle
- zmax : float
Maximum Z of species charge state bundle
'''
[docs] def __init__(self, base_path_in='species'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.label = ''
self.amn = EMPTY_DOUBLE
self.zn = EMPTY_DOUBLE
self.zmin = EMPTY_DOUBLE
self.zmax = EMPTY_DOUBLE
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class speciesstruct_arrayspecies_descObj\n'
ret = ret + space + 'Attribute label: ' + str(self.label) + '\n'
ret = ret + space + 'Attribute amn: ' + str(self.amn) + '\n'
ret = ret + space + 'Attribute zn: ' + str(self.zn) + '\n'
ret = ret + space + 'Attribute zmin: ' + str(self.zmin) + '\n'
ret = ret + space + 'Attribute zmax: ' + str(self.zmax) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type speciesstruct_arrayspecies_descObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'label', i, self.label)
if (dev()):
print 'putDoubleInObject : ' + cpopath + 'amn'
print 'obj = ' + str(obj)
obj = ull.putDoubleInObject(self.idx, obj, cpopath + 'amn', i, self.amn)
if (dev()):
print 'putDoubleInObject : ' + cpopath + 'zn'
print 'obj = ' + str(obj)
obj = ull.putDoubleInObject(self.idx, obj, cpopath + 'zn', i, self.zn)
if (dev()):
print 'putDoubleInObject : ' + cpopath + 'zmin'
print 'obj = ' + str(obj)
obj = ull.putDoubleInObject(self.idx, obj, cpopath + 'zmin', i, self.zmin)
if (dev()):
print 'putDoubleInObject : ' + cpopath + 'zmax'
print 'obj = ' + str(obj)
obj = ull.putDoubleInObject(self.idx, obj, cpopath + 'zmax', i, self.zmax)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type speciesstruct_arrayspecies_descObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
status, ret_label = ull.getStringFromObject(self.idx, obj, cpopath + 'label', i)
check_status(status)
if not status:
self.label = ret_label
if (dev()):
print 'getDoubleInObject : ' + cpopath + 'amn'
print 'obj = ' + str(obj)
status, ret_amn = ull.getDoubleFromObject(self.idx, obj, cpopath + 'amn', i)
check_status(status)
if not status:
self.amn = ret_amn
if (dev()):
print 'getDoubleInObject : ' + cpopath + 'zn'
print 'obj = ' + str(obj)
status, ret_zn = ull.getDoubleFromObject(self.idx, obj, cpopath + 'zn', i)
check_status(status)
if not status:
self.zn = ret_zn
if (dev()):
print 'getDoubleInObject : ' + cpopath + 'zmin'
print 'obj = ' + str(obj)
status, ret_zmin = ull.getDoubleFromObject(self.idx, obj, cpopath + 'zmin', i)
check_status(status)
if not status:
self.zmin = ret_zmin
if (dev()):
print 'getDoubleInObject : ' + cpopath + 'zmax'
print 'obj = ' + str(obj)
status, ret_zmax = ull.getDoubleFromObject(self.idx, obj, cpopath + 'zmax', i)
check_status(status)
if not status:
self.zmax = ret_zmax
[docs]class fluidstructureedge_fluid:
'''
class fluidstructureedge_fluid
Fluid description of edge plasma. Time-dependent.
Attributes:
- ne : class nestructureedge_fluid_scalar_simplestruct
Electron density [1/m^3]; Time-dependent;
- ni : class nistruct_arrayedge_fluid_scalar: array of nistruct_arrayedge_fluid_scalarObj objects
Ion density [1/m^3] (per species). Array of structures(nspecies); Time-dependent;
- ve : class vestructureedge_fluid_vector_simplestruct
Electron velocity [m/s]; Time-dependent;
- vi : class vistruct_arrayedge_fluid_vector: array of vistruct_arrayedge_fluid_vectorObj objects
Ion velocity [m/s] (per species).Array of structures(nspecies); Time-dependent;
- te : class testructureedge_fluid_scalar_simplestruct
Electron temperature [eV]; Time-dependent;
- ti : class tistruct_arrayedge_fluid_scalar: array of tistruct_arrayedge_fluid_scalarObj objects
Ion temperature [eV] (per species). Array of structures(nspecies).; Time-dependent;
- te_aniso : class te_anisostructureedge_fluid_vector_simplestruct
Anisotropic electron temperature [eV]; Time-dependent;
- ti_aniso : class ti_anisostruct_arrayedge_fluid_vector: array of ti_anisostruct_arrayedge_fluid_vectorObj objects
Anisotropic ion temperature [eV] (per species). Array of structures(nspecies); Time-dependent;
- po : class postructureedge_fluid_scalar_simplestruct
Electric potential [V]; Time-dependent;
- j : class jstructureedge_fluid_vector_simplestruct
Electric current [A]; Time-dependent;
'''
[docs] def __init__(self, base_path_in='fluid'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.ne = nestructureedge_fluid_scalar_simplestruct('ne')
self.ni = nistruct_arrayedge_fluid_scalar('ni')
self.ve = vestructureedge_fluid_vector_simplestruct('ve')
self.vi = vistruct_arrayedge_fluid_vector('vi')
self.te = testructureedge_fluid_scalar_simplestruct('te')
self.ti = tistruct_arrayedge_fluid_scalar('ti')
self.te_aniso = te_anisostructureedge_fluid_vector_simplestruct('te_aniso')
self.ti_aniso = ti_anisostruct_arrayedge_fluid_vector('ti_aniso')
self.po = postructureedge_fluid_scalar_simplestruct('po')
self.j = jstructureedge_fluid_vector_simplestruct('j')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class fluidstructureedge_fluid\n'
ret = ret + space + 'Attribute ne\n ' + self.ne.__str__(depth+1)
ret = ret + space + 'Attribute ni\n ' + self.ni.__str__(depth+1)
ret = ret + space + 'Attribute ve\n ' + self.ve.__str__(depth+1)
ret = ret + space + 'Attribute vi\n ' + self.vi.__str__(depth+1)
ret = ret + space + 'Attribute te\n ' + self.te.__str__(depth+1)
ret = ret + space + 'Attribute ti\n ' + self.ti.__str__(depth+1)
ret = ret + space + 'Attribute te_aniso\n ' + self.te_aniso.__str__(depth+1)
ret = ret + space + 'Attribute ti_aniso\n ' + self.ti_aniso.__str__(depth+1)
ret = ret + space + 'Attribute po\n ' + self.po.__str__(depth+1)
ret = ret + space + 'Attribute j\n ' + self.j.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.ne.setExpIdx(idx)
self.ni.setExpIdx(idx)
self.ve.setExpIdx(idx)
self.vi.setExpIdx(idx)
self.te.setExpIdx(idx)
self.ti.setExpIdx(idx)
self.te_aniso.setExpIdx(idx)
self.ti_aniso.setExpIdx(idx)
self.po.setExpIdx(idx)
self.j.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fluidstructureedge_fluid, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.ne.time = self.time
self.ne.putSlice(path, cpopath)
self.ni.time = self.time
self.ni.putSlice(path, cpopath)
self.ve.time = self.time
self.ve.putSlice(path, cpopath)
self.vi.time = self.time
self.vi.putSlice(path, cpopath)
self.te.time = self.time
self.te.putSlice(path, cpopath)
self.ti.time = self.time
self.ti.putSlice(path, cpopath)
self.te_aniso.time = self.time
self.te_aniso.putSlice(path, cpopath)
self.ti_aniso.time = self.time
self.ti_aniso.putSlice(path, cpopath)
self.po.time = self.time
self.po.putSlice(path, cpopath)
self.j.time = self.time
self.j.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fluidstructureedge_fluid, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.ne.replaceLastSlice(path, cpopath)
self.ni.replaceLastSlice(path, cpopath)
self.ve.replaceLastSlice(path, cpopath)
self.vi.replaceLastSlice(path, cpopath)
self.te.replaceLastSlice(path, cpopath)
self.ti.replaceLastSlice(path, cpopath)
self.te_aniso.replaceLastSlice(path, cpopath)
self.ti_aniso.replaceLastSlice(path, cpopath)
self.po.replaceLastSlice(path, cpopath)
self.j.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fluidstructureedge_fluid, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.ne.putNonTimed(path, cpopath)
self.ni.putNonTimed(path, cpopath)
self.ve.putNonTimed(path, cpopath)
self.vi.putNonTimed(path, cpopath)
self.te.putNonTimed(path, cpopath)
self.ti.putNonTimed(path, cpopath)
self.te_aniso.putNonTimed(path, cpopath)
self.ti_aniso.putNonTimed(path, cpopath)
self.po.putNonTimed(path, cpopath)
self.j.putNonTimed(path, cpopath)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type fluidstructureedge_fluid, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.ne.getSlice(path, cpopath, inTime, interpolMode)
self.ni.getSlice(path, cpopath, inTime, interpolMode)
self.ve.getSlice(path, cpopath, inTime, interpolMode)
self.vi.getSlice(path, cpopath, inTime, interpolMode)
self.te.getSlice(path, cpopath, inTime, interpolMode)
self.ti.getSlice(path, cpopath, inTime, interpolMode)
self.te_aniso.getSlice(path, cpopath, inTime, interpolMode)
self.ti_aniso.getSlice(path, cpopath, inTime, interpolMode)
self.po.getSlice(path, cpopath, inTime, interpolMode)
self.j.getSlice(path, cpopath, inTime, interpolMode)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type fluidstructureedge_fluid, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
neList = self.ne.build_non_resampled_data(path, cpopath, nbslice)
niList = self.ni.build_non_resampled_data(path, cpopath, nbslice)
veList = self.ve.build_non_resampled_data(path, cpopath, nbslice)
viList = self.vi.build_non_resampled_data(path, cpopath, nbslice)
teList = self.te.build_non_resampled_data(path, cpopath, nbslice)
tiList = self.ti.build_non_resampled_data(path, cpopath, nbslice)
te_anisoList = self.te_aniso.build_non_resampled_data(path, cpopath, nbslice)
ti_anisoList = self.ti_aniso.build_non_resampled_data(path, cpopath, nbslice)
poList = self.po.build_non_resampled_data(path, cpopath, nbslice)
jList = self.j.build_non_resampled_data(path, cpopath, nbslice)
for i in range(nbslice):
slice = fluidstructureedge_fluid(self.base_path)
slice.setExpIdx(self.idx)
slice.ne = neList[i]
slice.ni = niList[i]
slice.ve = veList[i]
slice.vi = viList[i]
slice.te = teList[i]
slice.ti = tiList[i]
slice.te_aniso = te_anisoList[i]
slice.ti_aniso = ti_anisoList[i]
slice.po = poList[i]
slice.j = jList[i]
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluidstructureedge_fluidObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.ne.putTimedElt(path, cpopath + 'ne', i, obj)
obj = self.ni.putTimedElt(path, cpopath + 'ni', i, obj)
obj = self.ve.putTimedElt(path, cpopath + 've', i, obj)
obj = self.vi.putTimedElt(path, cpopath + 'vi', i, obj)
obj = self.te.putTimedElt(path, cpopath + 'te', i, obj)
obj = self.ti.putTimedElt(path, cpopath + 'ti', i, obj)
obj = self.te_aniso.putTimedElt(path, cpopath + 'te_aniso', i, obj)
obj = self.ti_aniso.putTimedElt(path, cpopath + 'ti_aniso', i, obj)
obj = self.po.putTimedElt(path, cpopath + 'po', i, obj)
obj = self.j.putTimedElt(path, cpopath + 'j', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluidstructureedge_fluidObj, run function getTimedElt'
cpopath = cpopath + '/'
self.ne.getTimedElt(path, cpopath + 'ne', i, obj)
self.ni.getTimedElt(path, cpopath + 'ni', i, obj)
self.ve.getTimedElt(path, cpopath + 've', i, obj)
self.vi.getTimedElt(path, cpopath + 'vi', i, obj)
self.te.getTimedElt(path, cpopath + 'te', i, obj)
self.ti.getTimedElt(path, cpopath + 'ti', i, obj)
self.te_aniso.getTimedElt(path, cpopath + 'te_aniso', i, obj)
self.ti_aniso.getTimedElt(path, cpopath + 'ti_aniso', i, obj)
self.po.getTimedElt(path, cpopath + 'po', i, obj)
self.j.getTimedElt(path, cpopath + 'j', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluidstructureedge_fluidObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.ne.putNonTimedElt(path, cpopath + 'ne', i, obj)
obj = self.ni.putNonTimedElt(path, cpopath + 'ni', i, obj)
obj = self.ve.putNonTimedElt(path, cpopath + 've', i, obj)
obj = self.vi.putNonTimedElt(path, cpopath + 'vi', i, obj)
obj = self.te.putNonTimedElt(path, cpopath + 'te', i, obj)
obj = self.ti.putNonTimedElt(path, cpopath + 'ti', i, obj)
obj = self.te_aniso.putNonTimedElt(path, cpopath + 'te_aniso', i, obj)
obj = self.ti_aniso.putNonTimedElt(path, cpopath + 'ti_aniso', i, obj)
obj = self.po.putNonTimedElt(path, cpopath + 'po', i, obj)
obj = self.j.putNonTimedElt(path, cpopath + 'j', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluidstructureedge_fluidObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.ne.getNonTimedElt(path, cpopath + 'ne', i, obj)
self.ni.getNonTimedElt(path, cpopath + 'ni', i, obj)
self.ve.getNonTimedElt(path, cpopath + 've', i, obj)
self.vi.getNonTimedElt(path, cpopath + 'vi', i, obj)
self.te.getNonTimedElt(path, cpopath + 'te', i, obj)
self.ti.getNonTimedElt(path, cpopath + 'ti', i, obj)
self.te_aniso.getNonTimedElt(path, cpopath + 'te_aniso', i, obj)
self.ti_aniso.getNonTimedElt(path, cpopath + 'ti_aniso', i, obj)
self.po.getNonTimedElt(path, cpopath + 'po', i, obj)
self.j.getNonTimedElt(path, cpopath + 'j', i, obj)
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.ne.deleteData(path, cpopath)
ull.deleteData(self.idx, path, cpopath + 'ni')
self.ve.deleteData(path, cpopath)
ull.deleteData(self.idx, path, cpopath + 'vi')
self.te.deleteData(path, cpopath)
ull.deleteData(self.idx, path, cpopath + 'ti')
self.te_aniso.deleteData(path, cpopath)
ull.deleteData(self.idx, path, cpopath + 'ti_aniso')
self.po.deleteData(path, cpopath)
self.j.deleteData(path, cpopath)
[docs]class nestructureedge_fluid_scalar_simplestruct:
'''
class nestructureedge_fluid_scalar_simplestruct
Electron density [1/m^3]; Time-dependent;
Attributes:
- value : class valuestruct_arraycomplexgrid_scalar: array of valuestruct_arraycomplexgrid_scalarObj objects
Value of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndvalue : class bndvaluestruct_arraycomplexgrid_scalar: array of bndvaluestruct_arraycomplexgrid_scalarObj objects
Boundary values of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- flux : class fluxstruct_arraycomplexgrid_vector: array of fluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndflux : class bndfluxstruct_arraycomplexgrid_vector: array of bndfluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- transpcoeff : class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff: array of transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj objects
Transport coefficients; Time-dependent; Array of structures (nsubgrid_quantity)
- source : class sourcestruct_arraycomplexgrid_scalar: array of sourcestruct_arraycomplexgrid_scalarObj objects
Source; Time-dependent; Array of structures (nsubgrid_quantity)
'''
[docs] def __init__(self, base_path_in='ne'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.value = valuestruct_arraycomplexgrid_scalar('value')
self.bndvalue = bndvaluestruct_arraycomplexgrid_scalar('bndvalue')
self.flux = fluxstruct_arraycomplexgrid_vector('flux')
self.bndflux = bndfluxstruct_arraycomplexgrid_vector('bndflux')
self.transpcoeff = transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff('transpcoeff')
self.source = sourcestruct_arraycomplexgrid_scalar('source')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class nestructureedge_fluid_scalar_simplestruct\n'
ret = ret + space + 'Attribute value\n ' + self.value.__str__(depth+1)
ret = ret + space + 'Attribute bndvalue\n ' + self.bndvalue.__str__(depth+1)
ret = ret + space + 'Attribute flux\n ' + self.flux.__str__(depth+1)
ret = ret + space + 'Attribute bndflux\n ' + self.bndflux.__str__(depth+1)
ret = ret + space + 'Attribute transpcoeff\n ' + self.transpcoeff.__str__(depth+1)
ret = ret + space + 'Attribute source\n ' + self.source.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.value.setExpIdx(idx)
self.bndvalue.setExpIdx(idx)
self.flux.setExpIdx(idx)
self.bndflux.setExpIdx(idx)
self.transpcoeff.setExpIdx(idx)
self.source.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type nestructureedge_fluid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.time = self.time
self.value.putSlice(path, cpopath)
self.bndvalue.time = self.time
self.bndvalue.putSlice(path, cpopath)
self.flux.time = self.time
self.flux.putSlice(path, cpopath)
self.bndflux.time = self.time
self.bndflux.putSlice(path, cpopath)
self.transpcoeff.time = self.time
self.transpcoeff.putSlice(path, cpopath)
self.source.time = self.time
self.source.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type nestructureedge_fluid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.replaceLastSlice(path, cpopath)
self.bndvalue.replaceLastSlice(path, cpopath)
self.flux.replaceLastSlice(path, cpopath)
self.bndflux.replaceLastSlice(path, cpopath)
self.transpcoeff.replaceLastSlice(path, cpopath)
self.source.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type nestructureedge_fluid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.putNonTimed(path, cpopath)
self.bndvalue.putNonTimed(path, cpopath)
self.flux.putNonTimed(path, cpopath)
self.bndflux.putNonTimed(path, cpopath)
self.transpcoeff.putNonTimed(path, cpopath)
self.source.putNonTimed(path, cpopath)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type nestructureedge_fluid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.getSlice(path, cpopath, inTime, interpolMode)
self.bndvalue.getSlice(path, cpopath, inTime, interpolMode)
self.flux.getSlice(path, cpopath, inTime, interpolMode)
self.bndflux.getSlice(path, cpopath, inTime, interpolMode)
self.transpcoeff.getSlice(path, cpopath, inTime, interpolMode)
self.source.getSlice(path, cpopath, inTime, interpolMode)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type nestructureedge_fluid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
valueList = self.value.build_non_resampled_data(path, cpopath, nbslice)
bndvalueList = self.bndvalue.build_non_resampled_data(path, cpopath, nbslice)
fluxList = self.flux.build_non_resampled_data(path, cpopath, nbslice)
bndfluxList = self.bndflux.build_non_resampled_data(path, cpopath, nbslice)
transpcoeffList = self.transpcoeff.build_non_resampled_data(path, cpopath, nbslice)
sourceList = self.source.build_non_resampled_data(path, cpopath, nbslice)
for i in range(nbslice):
slice = nestructureedge_fluid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.value = valueList[i]
slice.bndvalue = bndvalueList[i]
slice.flux = fluxList[i]
slice.bndflux = bndfluxList[i]
slice.transpcoeff = transpcoeffList[i]
slice.source = sourceList[i]
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nestructureedge_fluid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.value.putTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nestructureedge_fluid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
self.value.getTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getTimedElt(path, cpopath + 'source', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nestructureedge_fluid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.value.putNonTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putNonTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putNonTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putNonTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putNonTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nestructureedge_fluid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.value.getNonTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getNonTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getNonTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getNonTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getNonTimedElt(path, cpopath + 'source', i, obj)
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'value')
ull.deleteData(self.idx, path, cpopath + 'bndvalue')
ull.deleteData(self.idx, path, cpopath + 'flux')
ull.deleteData(self.idx, path, cpopath + 'bndflux')
ull.deleteData(self.idx, path, cpopath + 'transpcoeff')
ull.deleteData(self.idx, path, cpopath + 'source')
[docs]class valuestruct_arraycomplexgrid_scalar:
'''
class valuestruct_arraycomplexgrid_scalar
Value of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- array : list of valuestruct_arraycomplexgrid_scalarObj
'''
[docs] def __init__(self, base_path_in='value'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class valuestruct_arraycomplexgrid_scalar\n'
for i in range(len(self.array)):
ret = ret + space + 'valuestruct_arraycomplexgrid_scalar[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(valuestruct_arraycomplexgrid_scalarObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type valuestruct_arraycomplexgrid_scalar, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type valuestruct_arraycomplexgrid_scalar, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type valuestruct_arraycomplexgrid_scalar, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type valuestruct_arraycomplexgrid_scalar, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type valuestruct_arraycomplexgrid_scalar, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(valuestruct_arraycomplexgrid_scalar(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(valuestruct_arraycomplexgrid_scalar(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = valuestruct_arraycomplexgrid_scalar(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type valuestruct_arraycomplexgrid_scalar, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type valuestruct_arraycomplexgrid_scalar, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type valuestruct_arraycomplexgrid_scalar, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type valuestruct_arraycomplexgrid_scalar, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class valuestruct_arraycomplexgrid_scalarObj:
'''
class valuestruct_arraycomplexgrid_scalarObj
Value of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='value'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class valuestruct_arraycomplexgrid_scalarObj\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type valuestruct_arraycomplexgrid_scalarObj, run function putTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type valuestruct_arraycomplexgrid_scalarObj, run function getTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type valuestruct_arraycomplexgrid_scalarObj, run function putNonTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type valuestruct_arraycomplexgrid_scalarObj, run function getNonTimedElt'
cpopath = cpopath + '/'
[docs]class bndvaluestruct_arraycomplexgrid_scalar:
'''
class bndvaluestruct_arraycomplexgrid_scalar
Boundary values of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- array : list of bndvaluestruct_arraycomplexgrid_scalarObj
'''
[docs] def __init__(self, base_path_in='bndvalue'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class bndvaluestruct_arraycomplexgrid_scalar\n'
for i in range(len(self.array)):
ret = ret + space + 'bndvaluestruct_arraycomplexgrid_scalar[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(bndvaluestruct_arraycomplexgrid_scalarObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type bndvaluestruct_arraycomplexgrid_scalar, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type bndvaluestruct_arraycomplexgrid_scalar, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type bndvaluestruct_arraycomplexgrid_scalar, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type bndvaluestruct_arraycomplexgrid_scalar, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type bndvaluestruct_arraycomplexgrid_scalar, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(bndvaluestruct_arraycomplexgrid_scalar(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(bndvaluestruct_arraycomplexgrid_scalar(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = bndvaluestruct_arraycomplexgrid_scalar(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type bndvaluestruct_arraycomplexgrid_scalar, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type bndvaluestruct_arraycomplexgrid_scalar, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type bndvaluestruct_arraycomplexgrid_scalar, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type bndvaluestruct_arraycomplexgrid_scalar, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class bndvaluestruct_arraycomplexgrid_scalarObj:
'''
class bndvaluestruct_arraycomplexgrid_scalarObj
Boundary values of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='bndvalue'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class bndvaluestruct_arraycomplexgrid_scalarObj\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type bndvaluestruct_arraycomplexgrid_scalarObj, run function putTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type bndvaluestruct_arraycomplexgrid_scalarObj, run function getTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type bndvaluestruct_arraycomplexgrid_scalarObj, run function putNonTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type bndvaluestruct_arraycomplexgrid_scalarObj, run function getNonTimedElt'
cpopath = cpopath + '/'
[docs]class fluxstruct_arraycomplexgrid_vector:
'''
class fluxstruct_arraycomplexgrid_vector
Flux of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- array : list of fluxstruct_arraycomplexgrid_vectorObj
'''
[docs] def __init__(self, base_path_in='flux'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class fluxstruct_arraycomplexgrid_vector\n'
for i in range(len(self.array)):
ret = ret + space + 'fluxstruct_arraycomplexgrid_vector[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(fluxstruct_arraycomplexgrid_vectorObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fluxstruct_arraycomplexgrid_vector, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fluxstruct_arraycomplexgrid_vector, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fluxstruct_arraycomplexgrid_vector, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type fluxstruct_arraycomplexgrid_vector, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type fluxstruct_arraycomplexgrid_vector, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(fluxstruct_arraycomplexgrid_vector(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(fluxstruct_arraycomplexgrid_vector(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = fluxstruct_arraycomplexgrid_vector(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fluxstruct_arraycomplexgrid_vector, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fluxstruct_arraycomplexgrid_vector, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fluxstruct_arraycomplexgrid_vector, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fluxstruct_arraycomplexgrid_vector, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class fluxstruct_arraycomplexgrid_vectorObj:
'''
class fluxstruct_arraycomplexgrid_vectorObj
Flux of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- label : str
Label describing the data
- comp : class compstruct_arraycomplexgrid_scalar: array of compstruct_arraycomplexgrid_scalarObj objects
Components of the vector. Vector of griddata(ndim). Time-dependent; FIXME: inherit time-dependence for this element
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim)
- alignid : list of str
Alignment of vector components, string description. String vector(ndim)
'''
[docs] def __init__(self, base_path_in='flux'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.label = ''
self.comp = compstruct_arraycomplexgrid_scalar('comp')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class fluxstruct_arraycomplexgrid_vectorObj\n'
ret = ret + space + 'Attribute label: ' + str(self.label) + '\n'
ret = ret + space + 'Attribute comp\n ' + self.comp.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comp.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluxstruct_arraycomplexgrid_vectorObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comp.putTimedElt(path, cpopath + 'comp', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluxstruct_arraycomplexgrid_vectorObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comp.getTimedElt(path, cpopath + 'comp', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluxstruct_arraycomplexgrid_vectorObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'label', i, self.label)
obj = self.comp.putNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluxstruct_arraycomplexgrid_vectorObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
status, ret_label = ull.getStringFromObject(self.idx, obj, cpopath + 'label', i)
check_status(status)
if not status:
self.label = ret_label
self.comp.getNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs]class compstruct_arraycomplexgrid_scalar:
'''
class compstruct_arraycomplexgrid_scalar
Components of the vector. Vector of griddata(ndim). Time-dependent; FIXME: inherit time-dependence for this element
Attributes:
- array : list of compstruct_arraycomplexgrid_scalarObj
'''
[docs] def __init__(self, base_path_in='comp'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class compstruct_arraycomplexgrid_scalar\n'
for i in range(len(self.array)):
ret = ret + space + 'compstruct_arraycomplexgrid_scalar[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(compstruct_arraycomplexgrid_scalarObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type compstruct_arraycomplexgrid_scalar, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type compstruct_arraycomplexgrid_scalar, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type compstruct_arraycomplexgrid_scalar, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type compstruct_arraycomplexgrid_scalar, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type compstruct_arraycomplexgrid_scalar, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(compstruct_arraycomplexgrid_scalar(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(compstruct_arraycomplexgrid_scalar(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = compstruct_arraycomplexgrid_scalar(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type compstruct_arraycomplexgrid_scalar, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type compstruct_arraycomplexgrid_scalar, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type compstruct_arraycomplexgrid_scalar, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type compstruct_arraycomplexgrid_scalar, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class compstruct_arraycomplexgrid_scalarObj:
'''
class compstruct_arraycomplexgrid_scalarObj
Components of the vector. Vector of griddata(ndim). Time-dependent; FIXME: inherit time-dependence for this element
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='comp'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class compstruct_arraycomplexgrid_scalarObj\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type compstruct_arraycomplexgrid_scalarObj, run function putTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type compstruct_arraycomplexgrid_scalarObj, run function getTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type compstruct_arraycomplexgrid_scalarObj, run function putNonTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type compstruct_arraycomplexgrid_scalarObj, run function getNonTimedElt'
cpopath = cpopath + '/'
[docs]class bndfluxstruct_arraycomplexgrid_vector:
'''
class bndfluxstruct_arraycomplexgrid_vector
Flux of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- array : list of bndfluxstruct_arraycomplexgrid_vectorObj
'''
[docs] def __init__(self, base_path_in='bndflux'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class bndfluxstruct_arraycomplexgrid_vector\n'
for i in range(len(self.array)):
ret = ret + space + 'bndfluxstruct_arraycomplexgrid_vector[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(bndfluxstruct_arraycomplexgrid_vectorObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type bndfluxstruct_arraycomplexgrid_vector, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type bndfluxstruct_arraycomplexgrid_vector, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type bndfluxstruct_arraycomplexgrid_vector, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type bndfluxstruct_arraycomplexgrid_vector, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type bndfluxstruct_arraycomplexgrid_vector, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(bndfluxstruct_arraycomplexgrid_vector(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(bndfluxstruct_arraycomplexgrid_vector(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = bndfluxstruct_arraycomplexgrid_vector(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type bndfluxstruct_arraycomplexgrid_vector, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type bndfluxstruct_arraycomplexgrid_vector, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type bndfluxstruct_arraycomplexgrid_vector, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type bndfluxstruct_arraycomplexgrid_vector, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class bndfluxstruct_arraycomplexgrid_vectorObj:
'''
class bndfluxstruct_arraycomplexgrid_vectorObj
Flux of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- label : str
Label describing the data
- comp : class compstruct_arraycomplexgrid_scalar: array of compstruct_arraycomplexgrid_scalarObj objects
Components of the vector. Vector of griddata(ndim). Time-dependent; FIXME: inherit time-dependence for this element
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim)
- alignid : list of str
Alignment of vector components, string description. String vector(ndim)
'''
[docs] def __init__(self, base_path_in='bndflux'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.label = ''
self.comp = compstruct_arraycomplexgrid_scalar('comp')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class bndfluxstruct_arraycomplexgrid_vectorObj\n'
ret = ret + space + 'Attribute label: ' + str(self.label) + '\n'
ret = ret + space + 'Attribute comp\n ' + self.comp.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comp.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type bndfluxstruct_arraycomplexgrid_vectorObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comp.putTimedElt(path, cpopath + 'comp', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type bndfluxstruct_arraycomplexgrid_vectorObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comp.getTimedElt(path, cpopath + 'comp', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type bndfluxstruct_arraycomplexgrid_vectorObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'label', i, self.label)
obj = self.comp.putNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type bndfluxstruct_arraycomplexgrid_vectorObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
status, ret_label = ull.getStringFromObject(self.idx, obj, cpopath + 'label', i)
check_status(status)
if not status:
self.label = ret_label
self.comp.getNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs]class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff:
'''
class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff
Transport coefficients; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- array : list of transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj
'''
[docs] def __init__(self, base_path_in='transpcoeff'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff\n'
for i in range(len(self.array)):
ret = ret + space + 'transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj:
'''
class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj
Transport coefficients; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- d : class dstructurecomplexgrid_vector_simplestruct
Diffusivity [m^2/s]; Time-dependent;
- v : class vstructurecomplexgrid_vector_simplestruct
Velocity [m/s]; Time-dependent;
'''
[docs] def __init__(self, base_path_in='transpcoeff'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.d = dstructurecomplexgrid_vector_simplestruct('d')
self.v = vstructurecomplexgrid_vector_simplestruct('v')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj\n'
ret = ret + space + 'Attribute d\n ' + self.d.__str__(depth+1)
ret = ret + space + 'Attribute v\n ' + self.v.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.d.setExpIdx(idx)
self.v.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.d.putTimedElt(path, cpopath + 'd', i, obj)
obj = self.v.putTimedElt(path, cpopath + 'v', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj, run function getTimedElt'
cpopath = cpopath + '/'
self.d.getTimedElt(path, cpopath + 'd', i, obj)
self.v.getTimedElt(path, cpopath + 'v', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.d.putNonTimedElt(path, cpopath + 'd', i, obj)
obj = self.v.putNonTimedElt(path, cpopath + 'v', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.d.getNonTimedElt(path, cpopath + 'd', i, obj)
self.v.getNonTimedElt(path, cpopath + 'v', i, obj)
[docs]class dstructurecomplexgrid_vector_simplestruct:
'''
class dstructurecomplexgrid_vector_simplestruct
Diffusivity [m^2/s]; Time-dependent;
Attributes:
- label : str
Label describing the data
- comp : class compstruct_arraycomplexgrid_scalar: array of compstruct_arraycomplexgrid_scalarObj objects
Components of the vector. Vector of griddata(ndim). Time-dependent; FIXME: inherit time-dependence for this element
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim)
- alignid : list of str
Alignment of vector components, string description. String vector(ndim)
'''
[docs] def __init__(self, base_path_in='d'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.label = ''
self.comp = compstruct_arraycomplexgrid_scalar('comp')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class dstructurecomplexgrid_vector_simplestruct\n'
ret = ret + space + 'Attribute label: ' + str(self.label) + '\n'
ret = ret + space + 'Attribute comp\n ' + self.comp.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comp.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type dstructurecomplexgrid_vector_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comp.time = self.time
self.comp.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type dstructurecomplexgrid_vector_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comp.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type dstructurecomplexgrid_vector_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putString(self.idx, path, cpopath + 'label', self.label, len(self.label))
check_status(status)
self.comp.putNonTimed(path, cpopath)
status = ull.putVect1DInt(self.idx, path, cpopath + 'align', numpy.array(self.align).astype(numpy.int32), False)
check_status(status)
status = ull.putVect1DString(self.idx, path, cpopath + 'alignid', self.alignid, False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type dstructurecomplexgrid_vector_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_label = ull.getString(self.idx, path, cpopath + 'label')
check_status(status)
if not status:
self.label = ret_label
self.comp.getSlice(path, cpopath, inTime, interpolMode)
status, ret_align = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
if not status:
self.align = ret_align
status, ret_alignid = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type dstructurecomplexgrid_vector_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, labelVal = ull.getString(self.idx, path, cpopath + 'label')
check_status(status)
compList = self.comp.build_non_resampled_data(path, cpopath, nbslice)
status, alignVal = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
status, alignidVal = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
for i in range(nbslice):
slice = dstructurecomplexgrid_vector_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.label = labelVal
slice.comp = compList[i]
slice.align = alignVal
slice.alignid = alignidVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type dstructurecomplexgrid_vector_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comp.putTimedElt(path, cpopath + 'comp', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type dstructurecomplexgrid_vector_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comp.getTimedElt(path, cpopath + 'comp', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type dstructurecomplexgrid_vector_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'label', i, self.label)
obj = self.comp.putNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type dstructurecomplexgrid_vector_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
status, ret_label = ull.getStringFromObject(self.idx, obj, cpopath + 'label', i)
check_status(status)
if not status:
self.label = ret_label
self.comp.getNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'label')
ull.deleteData(self.idx, path, cpopath + 'comp')
ull.deleteData(self.idx, path, cpopath + 'align')
ull.deleteData(self.idx, path, cpopath + 'alignid')
[docs]class vstructurecomplexgrid_vector_simplestruct:
'''
class vstructurecomplexgrid_vector_simplestruct
Velocity [m/s]; Time-dependent;
Attributes:
- label : str
Label describing the data
- comp : class compstruct_arraycomplexgrid_scalar: array of compstruct_arraycomplexgrid_scalarObj objects
Components of the vector. Vector of griddata(ndim). Time-dependent; FIXME: inherit time-dependence for this element
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim)
- alignid : list of str
Alignment of vector components, string description. String vector(ndim)
'''
[docs] def __init__(self, base_path_in='v'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.label = ''
self.comp = compstruct_arraycomplexgrid_scalar('comp')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class vstructurecomplexgrid_vector_simplestruct\n'
ret = ret + space + 'Attribute label: ' + str(self.label) + '\n'
ret = ret + space + 'Attribute comp\n ' + self.comp.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comp.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type vstructurecomplexgrid_vector_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comp.time = self.time
self.comp.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type vstructurecomplexgrid_vector_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comp.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type vstructurecomplexgrid_vector_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putString(self.idx, path, cpopath + 'label', self.label, len(self.label))
check_status(status)
self.comp.putNonTimed(path, cpopath)
status = ull.putVect1DInt(self.idx, path, cpopath + 'align', numpy.array(self.align).astype(numpy.int32), False)
check_status(status)
status = ull.putVect1DString(self.idx, path, cpopath + 'alignid', self.alignid, False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type vstructurecomplexgrid_vector_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_label = ull.getString(self.idx, path, cpopath + 'label')
check_status(status)
if not status:
self.label = ret_label
self.comp.getSlice(path, cpopath, inTime, interpolMode)
status, ret_align = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
if not status:
self.align = ret_align
status, ret_alignid = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type vstructurecomplexgrid_vector_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, labelVal = ull.getString(self.idx, path, cpopath + 'label')
check_status(status)
compList = self.comp.build_non_resampled_data(path, cpopath, nbslice)
status, alignVal = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
status, alignidVal = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
for i in range(nbslice):
slice = vstructurecomplexgrid_vector_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.label = labelVal
slice.comp = compList[i]
slice.align = alignVal
slice.alignid = alignidVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vstructurecomplexgrid_vector_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comp.putTimedElt(path, cpopath + 'comp', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vstructurecomplexgrid_vector_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comp.getTimedElt(path, cpopath + 'comp', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vstructurecomplexgrid_vector_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'label', i, self.label)
obj = self.comp.putNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vstructurecomplexgrid_vector_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
status, ret_label = ull.getStringFromObject(self.idx, obj, cpopath + 'label', i)
check_status(status)
if not status:
self.label = ret_label
self.comp.getNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'label')
ull.deleteData(self.idx, path, cpopath + 'comp')
ull.deleteData(self.idx, path, cpopath + 'align')
ull.deleteData(self.idx, path, cpopath + 'alignid')
[docs]class sourcestruct_arraycomplexgrid_scalar:
'''
class sourcestruct_arraycomplexgrid_scalar
Source; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- array : list of sourcestruct_arraycomplexgrid_scalarObj
'''
[docs] def __init__(self, base_path_in='source'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class sourcestruct_arraycomplexgrid_scalar\n'
for i in range(len(self.array)):
ret = ret + space + 'sourcestruct_arraycomplexgrid_scalar[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(sourcestruct_arraycomplexgrid_scalarObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type sourcestruct_arraycomplexgrid_scalar, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type sourcestruct_arraycomplexgrid_scalar, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type sourcestruct_arraycomplexgrid_scalar, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type sourcestruct_arraycomplexgrid_scalar, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type sourcestruct_arraycomplexgrid_scalar, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(sourcestruct_arraycomplexgrid_scalar(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(sourcestruct_arraycomplexgrid_scalar(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = sourcestruct_arraycomplexgrid_scalar(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type sourcestruct_arraycomplexgrid_scalar, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type sourcestruct_arraycomplexgrid_scalar, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type sourcestruct_arraycomplexgrid_scalar, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type sourcestruct_arraycomplexgrid_scalar, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class sourcestruct_arraycomplexgrid_scalarObj:
'''
class sourcestruct_arraycomplexgrid_scalarObj
Source; Time-dependent; Array of structures (nsubgrid_quantity)
Attributes:
- subgrid : int
Index of the subgrid (as stored in grid.subgrids) the data is stored on.
- scalar : numpy.ndarray 1D with float
Scalar representation of data. One scalar entry is stored per object in the subgrid.; The order is implicitly defined by the subgrid.; Float Vector(nobjects_subgrid). First dimension: object index.
- vector : numpy.ndarray 2D with float
Vector representation of data. One vector is stored per object in the subgrid. The order is implicitly defined by the subgrid.; Float matrix(nobjects_subgrid, ndata).First dimension: object index, second dimension: index of data vector.
- matrix : numpy.ndarray 3D with float
Matrix representation of data. One matrix is stored per object in the subgrid. The order is implicitly defined by the subgrid.; 3d float array(nobjects_subgrid,ndata1,ndata2). First dimension: object index, second dimension: matrix row, third dimension: matrix column.
'''
[docs] def __init__(self, base_path_in='source'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.subgrid = EMPTY_INT
self.scalar = numpy.zeros(0, numpy.float64, order='C')
self.vector = numpy.zeros((0,0), numpy.float64, order='C')
self.matrix = numpy.zeros((0,0,0), numpy.float64, order='C')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class sourcestruct_arraycomplexgrid_scalarObj\n'
ret = ret + space + 'Attribute subgrid: ' + str(self.subgrid) + '\n'
s = self.scalar.__str__()
ret = ret + space + 'Attribute scalar\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.vector.__str__()
ret = ret + space + 'Attribute vector\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.matrix.__str__()
ret = ret + space + 'Attribute matrix\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type sourcestruct_arraycomplexgrid_scalarObj, run function putTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'subgrid', i, self.subgrid)
if (dev()):
print 'putVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
obj = ull.putVect1DDoubleInObject(self.idx, obj, cpopath + 'scalar', i, numpy.array(self.scalar).astype(numpy.float64))
if (dev()):
print 'putVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
obj = ull.putVect2DDoubleInObject(self.idx, obj, cpopath + 'vector', i, numpy.array(self.vector).astype(numpy.float64))
if (dev()):
print 'putVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
obj = ull.putVect3DDoubleInObject(self.idx, obj, cpopath + 'matrix', i, numpy.array(self.matrix).astype(numpy.float64))
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type sourcestruct_arraycomplexgrid_scalarObj, run function getTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'subgrid'
print 'obj = ' + str(obj)
status, ret_subgrid = ull.getIntFromObject(self.idx, obj, cpopath + 'subgrid', i)
check_status(status)
if not status:
self.subgrid = ret_subgrid
if (dev()):
print 'getVect1DDoubleInObject : ' + cpopath + 'scalar'
print 'obj = ' + str(obj)
status, ret_scalar = ull.getVect1DDoubleFromObject(self.idx, obj, cpopath + 'scalar', i)
check_status(status)
if not status:
self.scalar = ret_scalar
if (dev()):
print 'getVect2DDoubleInObject : ' + cpopath + 'vector'
print 'obj = ' + str(obj)
status, ret_vector = ull.getVect2DDoubleFromObject(self.idx, obj, cpopath + 'vector', i)
check_status(status)
if not status:
self.vector = ret_vector
if (dev()):
print 'getVect3DDoubleInObject : ' + cpopath + 'matrix'
print 'obj = ' + str(obj)
status, ret_matrix = ull.getVect3DDoubleFromObject(self.idx, obj, cpopath + 'matrix', i)
check_status(status)
if not status:
self.matrix = ret_matrix
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type sourcestruct_arraycomplexgrid_scalarObj, run function putNonTimedElt'
cpopath = cpopath + '/'
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type sourcestruct_arraycomplexgrid_scalarObj, run function getNonTimedElt'
cpopath = cpopath + '/'
[docs]class nistruct_arrayedge_fluid_scalar:
'''
class nistruct_arrayedge_fluid_scalar
Ion density [1/m^3] (per species). Array of structures(nspecies); Time-dependent;
Attributes:
- array : list of nistruct_arrayedge_fluid_scalarObj
'''
[docs] def __init__(self, base_path_in='ni'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class nistruct_arrayedge_fluid_scalar\n'
for i in range(len(self.array)):
ret = ret + space + 'nistruct_arrayedge_fluid_scalar[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(nistruct_arrayedge_fluid_scalarObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type nistruct_arrayedge_fluid_scalar, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type nistruct_arrayedge_fluid_scalar, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type nistruct_arrayedge_fluid_scalar, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type nistruct_arrayedge_fluid_scalar, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type nistruct_arrayedge_fluid_scalar, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(nistruct_arrayedge_fluid_scalar(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(nistruct_arrayedge_fluid_scalar(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = nistruct_arrayedge_fluid_scalar(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type nistruct_arrayedge_fluid_scalar, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type nistruct_arrayedge_fluid_scalar, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type nistruct_arrayedge_fluid_scalar, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type nistruct_arrayedge_fluid_scalar, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class nistruct_arrayedge_fluid_scalarObj:
'''
class nistruct_arrayedge_fluid_scalarObj
Ion density [1/m^3] (per species). Array of structures(nspecies); Time-dependent;
Attributes:
- value : class valuestruct_arraycomplexgrid_scalar: array of valuestruct_arraycomplexgrid_scalarObj objects
Value of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndvalue : class bndvaluestruct_arraycomplexgrid_scalar: array of bndvaluestruct_arraycomplexgrid_scalarObj objects
Boundary values of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- flux : class fluxstruct_arraycomplexgrid_vector: array of fluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndflux : class bndfluxstruct_arraycomplexgrid_vector: array of bndfluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- transpcoeff : class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff: array of transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj objects
Transport coefficients; Time-dependent; Array of structures (nsubgrid_quantity)
- source : class sourcestruct_arraycomplexgrid_scalar: array of sourcestruct_arraycomplexgrid_scalarObj objects
Source; Time-dependent; Array of structures (nsubgrid_quantity)
'''
[docs] def __init__(self, base_path_in='ni'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.value = valuestruct_arraycomplexgrid_scalar('value')
self.bndvalue = bndvaluestruct_arraycomplexgrid_scalar('bndvalue')
self.flux = fluxstruct_arraycomplexgrid_vector('flux')
self.bndflux = bndfluxstruct_arraycomplexgrid_vector('bndflux')
self.transpcoeff = transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff('transpcoeff')
self.source = sourcestruct_arraycomplexgrid_scalar('source')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class nistruct_arrayedge_fluid_scalarObj\n'
ret = ret + space + 'Attribute value\n ' + self.value.__str__(depth+1)
ret = ret + space + 'Attribute bndvalue\n ' + self.bndvalue.__str__(depth+1)
ret = ret + space + 'Attribute flux\n ' + self.flux.__str__(depth+1)
ret = ret + space + 'Attribute bndflux\n ' + self.bndflux.__str__(depth+1)
ret = ret + space + 'Attribute transpcoeff\n ' + self.transpcoeff.__str__(depth+1)
ret = ret + space + 'Attribute source\n ' + self.source.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.value.setExpIdx(idx)
self.bndvalue.setExpIdx(idx)
self.flux.setExpIdx(idx)
self.bndflux.setExpIdx(idx)
self.transpcoeff.setExpIdx(idx)
self.source.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nistruct_arrayedge_fluid_scalarObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.value.putTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nistruct_arrayedge_fluid_scalarObj, run function getTimedElt'
cpopath = cpopath + '/'
self.value.getTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getTimedElt(path, cpopath + 'source', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nistruct_arrayedge_fluid_scalarObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.value.putNonTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putNonTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putNonTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putNonTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putNonTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type nistruct_arrayedge_fluid_scalarObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.value.getNonTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getNonTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getNonTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getNonTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getNonTimedElt(path, cpopath + 'source', i, obj)
[docs]class vestructureedge_fluid_vector_simplestruct:
'''
class vestructureedge_fluid_vector_simplestruct
Electron velocity [m/s]; Time-dependent;
Attributes:
- comps : class compsstruct_arrayedge_fluid_scalar: array of compsstruct_arrayedge_fluid_scalarObj objects
Components of the vector. Array of structures(ndim); Time-dependent;
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim);
- alignid : list of str
Alignment of vector components, string description. String vector(ndim);
'''
[docs] def __init__(self, base_path_in='ve'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.comps = compsstruct_arrayedge_fluid_scalar('comps')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class vestructureedge_fluid_vector_simplestruct\n'
ret = ret + space + 'Attribute comps\n ' + self.comps.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comps.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type vestructureedge_fluid_vector_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.time = self.time
self.comps.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type vestructureedge_fluid_vector_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type vestructureedge_fluid_vector_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.putNonTimed(path, cpopath)
status = ull.putVect1DInt(self.idx, path, cpopath + 'align', numpy.array(self.align).astype(numpy.int32), False)
check_status(status)
status = ull.putVect1DString(self.idx, path, cpopath + 'alignid', self.alignid, False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type vestructureedge_fluid_vector_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.getSlice(path, cpopath, inTime, interpolMode)
status, ret_align = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
if not status:
self.align = ret_align
status, ret_alignid = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type vestructureedge_fluid_vector_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
compsList = self.comps.build_non_resampled_data(path, cpopath, nbslice)
status, alignVal = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
status, alignidVal = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
for i in range(nbslice):
slice = vestructureedge_fluid_vector_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.comps = compsList[i]
slice.align = alignVal
slice.alignid = alignidVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vestructureedge_fluid_vector_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putTimedElt(path, cpopath + 'comps', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vestructureedge_fluid_vector_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comps.getTimedElt(path, cpopath + 'comps', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vestructureedge_fluid_vector_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vestructureedge_fluid_vector_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.comps.getNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'comps')
ull.deleteData(self.idx, path, cpopath + 'align')
ull.deleteData(self.idx, path, cpopath + 'alignid')
[docs]class compsstruct_arrayedge_fluid_scalar:
'''
class compsstruct_arrayedge_fluid_scalar
Components of the vector. Array of structures(ndim); Time-dependent;
Attributes:
- array : list of compsstruct_arrayedge_fluid_scalarObj
'''
[docs] def __init__(self, base_path_in='comps'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class compsstruct_arrayedge_fluid_scalar\n'
for i in range(len(self.array)):
ret = ret + space + 'compsstruct_arrayedge_fluid_scalar[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(compsstruct_arrayedge_fluid_scalarObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type compsstruct_arrayedge_fluid_scalar, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type compsstruct_arrayedge_fluid_scalar, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type compsstruct_arrayedge_fluid_scalar, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type compsstruct_arrayedge_fluid_scalar, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type compsstruct_arrayedge_fluid_scalar, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(compsstruct_arrayedge_fluid_scalar(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(compsstruct_arrayedge_fluid_scalar(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = compsstruct_arrayedge_fluid_scalar(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type compsstruct_arrayedge_fluid_scalar, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type compsstruct_arrayedge_fluid_scalar, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type compsstruct_arrayedge_fluid_scalar, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type compsstruct_arrayedge_fluid_scalar, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class compsstruct_arrayedge_fluid_scalarObj:
'''
class compsstruct_arrayedge_fluid_scalarObj
Components of the vector. Array of structures(ndim); Time-dependent;
Attributes:
- value : class valuestruct_arraycomplexgrid_scalar: array of valuestruct_arraycomplexgrid_scalarObj objects
Value of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndvalue : class bndvaluestruct_arraycomplexgrid_scalar: array of bndvaluestruct_arraycomplexgrid_scalarObj objects
Boundary values of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- flux : class fluxstruct_arraycomplexgrid_vector: array of fluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndflux : class bndfluxstruct_arraycomplexgrid_vector: array of bndfluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- transpcoeff : class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff: array of transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj objects
Transport coefficients; Time-dependent; Array of structures (nsubgrid_quantity)
- source : class sourcestruct_arraycomplexgrid_scalar: array of sourcestruct_arraycomplexgrid_scalarObj objects
Source; Time-dependent; Array of structures (nsubgrid_quantity)
'''
[docs] def __init__(self, base_path_in='comps'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.value = valuestruct_arraycomplexgrid_scalar('value')
self.bndvalue = bndvaluestruct_arraycomplexgrid_scalar('bndvalue')
self.flux = fluxstruct_arraycomplexgrid_vector('flux')
self.bndflux = bndfluxstruct_arraycomplexgrid_vector('bndflux')
self.transpcoeff = transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff('transpcoeff')
self.source = sourcestruct_arraycomplexgrid_scalar('source')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class compsstruct_arrayedge_fluid_scalarObj\n'
ret = ret + space + 'Attribute value\n ' + self.value.__str__(depth+1)
ret = ret + space + 'Attribute bndvalue\n ' + self.bndvalue.__str__(depth+1)
ret = ret + space + 'Attribute flux\n ' + self.flux.__str__(depth+1)
ret = ret + space + 'Attribute bndflux\n ' + self.bndflux.__str__(depth+1)
ret = ret + space + 'Attribute transpcoeff\n ' + self.transpcoeff.__str__(depth+1)
ret = ret + space + 'Attribute source\n ' + self.source.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.value.setExpIdx(idx)
self.bndvalue.setExpIdx(idx)
self.flux.setExpIdx(idx)
self.bndflux.setExpIdx(idx)
self.transpcoeff.setExpIdx(idx)
self.source.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type compsstruct_arrayedge_fluid_scalarObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.value.putTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type compsstruct_arrayedge_fluid_scalarObj, run function getTimedElt'
cpopath = cpopath + '/'
self.value.getTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getTimedElt(path, cpopath + 'source', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type compsstruct_arrayedge_fluid_scalarObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.value.putNonTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putNonTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putNonTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putNonTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putNonTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type compsstruct_arrayedge_fluid_scalarObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.value.getNonTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getNonTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getNonTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getNonTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getNonTimedElt(path, cpopath + 'source', i, obj)
[docs]class vistruct_arrayedge_fluid_vector:
'''
class vistruct_arrayedge_fluid_vector
Ion velocity [m/s] (per species).Array of structures(nspecies); Time-dependent;
Attributes:
- array : list of vistruct_arrayedge_fluid_vectorObj
'''
[docs] def __init__(self, base_path_in='vi'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class vistruct_arrayedge_fluid_vector\n'
for i in range(len(self.array)):
ret = ret + space + 'vistruct_arrayedge_fluid_vector[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(vistruct_arrayedge_fluid_vectorObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type vistruct_arrayedge_fluid_vector, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type vistruct_arrayedge_fluid_vector, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type vistruct_arrayedge_fluid_vector, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type vistruct_arrayedge_fluid_vector, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type vistruct_arrayedge_fluid_vector, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(vistruct_arrayedge_fluid_vector(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(vistruct_arrayedge_fluid_vector(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = vistruct_arrayedge_fluid_vector(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type vistruct_arrayedge_fluid_vector, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type vistruct_arrayedge_fluid_vector, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type vistruct_arrayedge_fluid_vector, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type vistruct_arrayedge_fluid_vector, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class vistruct_arrayedge_fluid_vectorObj:
'''
class vistruct_arrayedge_fluid_vectorObj
Ion velocity [m/s] (per species).Array of structures(nspecies); Time-dependent;
Attributes:
- comps : class compsstruct_arrayedge_fluid_scalar: array of compsstruct_arrayedge_fluid_scalarObj objects
Components of the vector. Array of structures(ndim); Time-dependent;
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim);
- alignid : list of str
Alignment of vector components, string description. String vector(ndim);
'''
[docs] def __init__(self, base_path_in='vi'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.comps = compsstruct_arrayedge_fluid_scalar('comps')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class vistruct_arrayedge_fluid_vectorObj\n'
ret = ret + space + 'Attribute comps\n ' + self.comps.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comps.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vistruct_arrayedge_fluid_vectorObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putTimedElt(path, cpopath + 'comps', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vistruct_arrayedge_fluid_vectorObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comps.getTimedElt(path, cpopath + 'comps', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vistruct_arrayedge_fluid_vectorObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type vistruct_arrayedge_fluid_vectorObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.comps.getNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs]class testructureedge_fluid_scalar_simplestruct:
'''
class testructureedge_fluid_scalar_simplestruct
Electron temperature [eV]; Time-dependent;
Attributes:
- value : class valuestruct_arraycomplexgrid_scalar: array of valuestruct_arraycomplexgrid_scalarObj objects
Value of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndvalue : class bndvaluestruct_arraycomplexgrid_scalar: array of bndvaluestruct_arraycomplexgrid_scalarObj objects
Boundary values of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- flux : class fluxstruct_arraycomplexgrid_vector: array of fluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndflux : class bndfluxstruct_arraycomplexgrid_vector: array of bndfluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- transpcoeff : class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff: array of transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj objects
Transport coefficients; Time-dependent; Array of structures (nsubgrid_quantity)
- source : class sourcestruct_arraycomplexgrid_scalar: array of sourcestruct_arraycomplexgrid_scalarObj objects
Source; Time-dependent; Array of structures (nsubgrid_quantity)
'''
[docs] def __init__(self, base_path_in='te'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.value = valuestruct_arraycomplexgrid_scalar('value')
self.bndvalue = bndvaluestruct_arraycomplexgrid_scalar('bndvalue')
self.flux = fluxstruct_arraycomplexgrid_vector('flux')
self.bndflux = bndfluxstruct_arraycomplexgrid_vector('bndflux')
self.transpcoeff = transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff('transpcoeff')
self.source = sourcestruct_arraycomplexgrid_scalar('source')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class testructureedge_fluid_scalar_simplestruct\n'
ret = ret + space + 'Attribute value\n ' + self.value.__str__(depth+1)
ret = ret + space + 'Attribute bndvalue\n ' + self.bndvalue.__str__(depth+1)
ret = ret + space + 'Attribute flux\n ' + self.flux.__str__(depth+1)
ret = ret + space + 'Attribute bndflux\n ' + self.bndflux.__str__(depth+1)
ret = ret + space + 'Attribute transpcoeff\n ' + self.transpcoeff.__str__(depth+1)
ret = ret + space + 'Attribute source\n ' + self.source.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.value.setExpIdx(idx)
self.bndvalue.setExpIdx(idx)
self.flux.setExpIdx(idx)
self.bndflux.setExpIdx(idx)
self.transpcoeff.setExpIdx(idx)
self.source.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type testructureedge_fluid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.time = self.time
self.value.putSlice(path, cpopath)
self.bndvalue.time = self.time
self.bndvalue.putSlice(path, cpopath)
self.flux.time = self.time
self.flux.putSlice(path, cpopath)
self.bndflux.time = self.time
self.bndflux.putSlice(path, cpopath)
self.transpcoeff.time = self.time
self.transpcoeff.putSlice(path, cpopath)
self.source.time = self.time
self.source.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type testructureedge_fluid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.replaceLastSlice(path, cpopath)
self.bndvalue.replaceLastSlice(path, cpopath)
self.flux.replaceLastSlice(path, cpopath)
self.bndflux.replaceLastSlice(path, cpopath)
self.transpcoeff.replaceLastSlice(path, cpopath)
self.source.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type testructureedge_fluid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.putNonTimed(path, cpopath)
self.bndvalue.putNonTimed(path, cpopath)
self.flux.putNonTimed(path, cpopath)
self.bndflux.putNonTimed(path, cpopath)
self.transpcoeff.putNonTimed(path, cpopath)
self.source.putNonTimed(path, cpopath)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type testructureedge_fluid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.getSlice(path, cpopath, inTime, interpolMode)
self.bndvalue.getSlice(path, cpopath, inTime, interpolMode)
self.flux.getSlice(path, cpopath, inTime, interpolMode)
self.bndflux.getSlice(path, cpopath, inTime, interpolMode)
self.transpcoeff.getSlice(path, cpopath, inTime, interpolMode)
self.source.getSlice(path, cpopath, inTime, interpolMode)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type testructureedge_fluid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
valueList = self.value.build_non_resampled_data(path, cpopath, nbslice)
bndvalueList = self.bndvalue.build_non_resampled_data(path, cpopath, nbslice)
fluxList = self.flux.build_non_resampled_data(path, cpopath, nbslice)
bndfluxList = self.bndflux.build_non_resampled_data(path, cpopath, nbslice)
transpcoeffList = self.transpcoeff.build_non_resampled_data(path, cpopath, nbslice)
sourceList = self.source.build_non_resampled_data(path, cpopath, nbslice)
for i in range(nbslice):
slice = testructureedge_fluid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.value = valueList[i]
slice.bndvalue = bndvalueList[i]
slice.flux = fluxList[i]
slice.bndflux = bndfluxList[i]
slice.transpcoeff = transpcoeffList[i]
slice.source = sourceList[i]
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type testructureedge_fluid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.value.putTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type testructureedge_fluid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
self.value.getTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getTimedElt(path, cpopath + 'source', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type testructureedge_fluid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.value.putNonTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putNonTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putNonTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putNonTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putNonTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type testructureedge_fluid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.value.getNonTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getNonTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getNonTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getNonTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getNonTimedElt(path, cpopath + 'source', i, obj)
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'value')
ull.deleteData(self.idx, path, cpopath + 'bndvalue')
ull.deleteData(self.idx, path, cpopath + 'flux')
ull.deleteData(self.idx, path, cpopath + 'bndflux')
ull.deleteData(self.idx, path, cpopath + 'transpcoeff')
ull.deleteData(self.idx, path, cpopath + 'source')
[docs]class tistruct_arrayedge_fluid_scalar:
'''
class tistruct_arrayedge_fluid_scalar
Ion temperature [eV] (per species). Array of structures(nspecies).; Time-dependent;
Attributes:
- array : list of tistruct_arrayedge_fluid_scalarObj
'''
[docs] def __init__(self, base_path_in='ti'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class tistruct_arrayedge_fluid_scalar\n'
for i in range(len(self.array)):
ret = ret + space + 'tistruct_arrayedge_fluid_scalar[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(tistruct_arrayedge_fluid_scalarObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type tistruct_arrayedge_fluid_scalar, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type tistruct_arrayedge_fluid_scalar, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type tistruct_arrayedge_fluid_scalar, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type tistruct_arrayedge_fluid_scalar, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type tistruct_arrayedge_fluid_scalar, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(tistruct_arrayedge_fluid_scalar(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(tistruct_arrayedge_fluid_scalar(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = tistruct_arrayedge_fluid_scalar(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type tistruct_arrayedge_fluid_scalar, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type tistruct_arrayedge_fluid_scalar, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type tistruct_arrayedge_fluid_scalar, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type tistruct_arrayedge_fluid_scalar, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class tistruct_arrayedge_fluid_scalarObj:
'''
class tistruct_arrayedge_fluid_scalarObj
Ion temperature [eV] (per species). Array of structures(nspecies).; Time-dependent;
Attributes:
- value : class valuestruct_arraycomplexgrid_scalar: array of valuestruct_arraycomplexgrid_scalarObj objects
Value of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndvalue : class bndvaluestruct_arraycomplexgrid_scalar: array of bndvaluestruct_arraycomplexgrid_scalarObj objects
Boundary values of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- flux : class fluxstruct_arraycomplexgrid_vector: array of fluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndflux : class bndfluxstruct_arraycomplexgrid_vector: array of bndfluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- transpcoeff : class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff: array of transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj objects
Transport coefficients; Time-dependent; Array of structures (nsubgrid_quantity)
- source : class sourcestruct_arraycomplexgrid_scalar: array of sourcestruct_arraycomplexgrid_scalarObj objects
Source; Time-dependent; Array of structures (nsubgrid_quantity)
'''
[docs] def __init__(self, base_path_in='ti'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.value = valuestruct_arraycomplexgrid_scalar('value')
self.bndvalue = bndvaluestruct_arraycomplexgrid_scalar('bndvalue')
self.flux = fluxstruct_arraycomplexgrid_vector('flux')
self.bndflux = bndfluxstruct_arraycomplexgrid_vector('bndflux')
self.transpcoeff = transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff('transpcoeff')
self.source = sourcestruct_arraycomplexgrid_scalar('source')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class tistruct_arrayedge_fluid_scalarObj\n'
ret = ret + space + 'Attribute value\n ' + self.value.__str__(depth+1)
ret = ret + space + 'Attribute bndvalue\n ' + self.bndvalue.__str__(depth+1)
ret = ret + space + 'Attribute flux\n ' + self.flux.__str__(depth+1)
ret = ret + space + 'Attribute bndflux\n ' + self.bndflux.__str__(depth+1)
ret = ret + space + 'Attribute transpcoeff\n ' + self.transpcoeff.__str__(depth+1)
ret = ret + space + 'Attribute source\n ' + self.source.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.value.setExpIdx(idx)
self.bndvalue.setExpIdx(idx)
self.flux.setExpIdx(idx)
self.bndflux.setExpIdx(idx)
self.transpcoeff.setExpIdx(idx)
self.source.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type tistruct_arrayedge_fluid_scalarObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.value.putTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type tistruct_arrayedge_fluid_scalarObj, run function getTimedElt'
cpopath = cpopath + '/'
self.value.getTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getTimedElt(path, cpopath + 'source', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type tistruct_arrayedge_fluid_scalarObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.value.putNonTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putNonTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putNonTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putNonTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putNonTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type tistruct_arrayedge_fluid_scalarObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.value.getNonTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getNonTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getNonTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getNonTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getNonTimedElt(path, cpopath + 'source', i, obj)
[docs]class te_anisostructureedge_fluid_vector_simplestruct:
'''
class te_anisostructureedge_fluid_vector_simplestruct
Anisotropic electron temperature [eV]; Time-dependent;
Attributes:
- comps : class compsstruct_arrayedge_fluid_scalar: array of compsstruct_arrayedge_fluid_scalarObj objects
Components of the vector. Array of structures(ndim); Time-dependent;
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim);
- alignid : list of str
Alignment of vector components, string description. String vector(ndim);
'''
[docs] def __init__(self, base_path_in='te_aniso'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.comps = compsstruct_arrayedge_fluid_scalar('comps')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class te_anisostructureedge_fluid_vector_simplestruct\n'
ret = ret + space + 'Attribute comps\n ' + self.comps.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comps.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type te_anisostructureedge_fluid_vector_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.time = self.time
self.comps.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type te_anisostructureedge_fluid_vector_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type te_anisostructureedge_fluid_vector_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.putNonTimed(path, cpopath)
status = ull.putVect1DInt(self.idx, path, cpopath + 'align', numpy.array(self.align).astype(numpy.int32), False)
check_status(status)
status = ull.putVect1DString(self.idx, path, cpopath + 'alignid', self.alignid, False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type te_anisostructureedge_fluid_vector_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.getSlice(path, cpopath, inTime, interpolMode)
status, ret_align = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
if not status:
self.align = ret_align
status, ret_alignid = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type te_anisostructureedge_fluid_vector_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
compsList = self.comps.build_non_resampled_data(path, cpopath, nbslice)
status, alignVal = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
status, alignidVal = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
for i in range(nbslice):
slice = te_anisostructureedge_fluid_vector_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.comps = compsList[i]
slice.align = alignVal
slice.alignid = alignidVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type te_anisostructureedge_fluid_vector_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putTimedElt(path, cpopath + 'comps', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type te_anisostructureedge_fluid_vector_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comps.getTimedElt(path, cpopath + 'comps', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type te_anisostructureedge_fluid_vector_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type te_anisostructureedge_fluid_vector_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.comps.getNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'comps')
ull.deleteData(self.idx, path, cpopath + 'align')
ull.deleteData(self.idx, path, cpopath + 'alignid')
[docs]class ti_anisostruct_arrayedge_fluid_vector:
'''
class ti_anisostruct_arrayedge_fluid_vector
Anisotropic ion temperature [eV] (per species). Array of structures(nspecies); Time-dependent;
Attributes:
- array : list of ti_anisostruct_arrayedge_fluid_vectorObj
'''
[docs] def __init__(self, base_path_in='ti_aniso'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class ti_anisostruct_arrayedge_fluid_vector\n'
for i in range(len(self.array)):
ret = ret + space + 'ti_anisostruct_arrayedge_fluid_vector[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(ti_anisostruct_arrayedge_fluid_vectorObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type ti_anisostruct_arrayedge_fluid_vector, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type ti_anisostruct_arrayedge_fluid_vector, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type ti_anisostruct_arrayedge_fluid_vector, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type ti_anisostruct_arrayedge_fluid_vector, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type ti_anisostruct_arrayedge_fluid_vector, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(ti_anisostruct_arrayedge_fluid_vector(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(ti_anisostruct_arrayedge_fluid_vector(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = ti_anisostruct_arrayedge_fluid_vector(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type ti_anisostruct_arrayedge_fluid_vector, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type ti_anisostruct_arrayedge_fluid_vector, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type ti_anisostruct_arrayedge_fluid_vector, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type ti_anisostruct_arrayedge_fluid_vector, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class ti_anisostruct_arrayedge_fluid_vectorObj:
'''
class ti_anisostruct_arrayedge_fluid_vectorObj
Anisotropic ion temperature [eV] (per species). Array of structures(nspecies); Time-dependent;
Attributes:
- comps : class compsstruct_arrayedge_fluid_scalar: array of compsstruct_arrayedge_fluid_scalarObj objects
Components of the vector. Array of structures(ndim); Time-dependent;
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim);
- alignid : list of str
Alignment of vector components, string description. String vector(ndim);
'''
[docs] def __init__(self, base_path_in='ti_aniso'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.comps = compsstruct_arrayedge_fluid_scalar('comps')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class ti_anisostruct_arrayedge_fluid_vectorObj\n'
ret = ret + space + 'Attribute comps\n ' + self.comps.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comps.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type ti_anisostruct_arrayedge_fluid_vectorObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putTimedElt(path, cpopath + 'comps', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type ti_anisostruct_arrayedge_fluid_vectorObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comps.getTimedElt(path, cpopath + 'comps', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type ti_anisostruct_arrayedge_fluid_vectorObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type ti_anisostruct_arrayedge_fluid_vectorObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.comps.getNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs]class postructureedge_fluid_scalar_simplestruct:
'''
class postructureedge_fluid_scalar_simplestruct
Electric potential [V]; Time-dependent;
Attributes:
- value : class valuestruct_arraycomplexgrid_scalar: array of valuestruct_arraycomplexgrid_scalarObj objects
Value of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndvalue : class bndvaluestruct_arraycomplexgrid_scalar: array of bndvaluestruct_arraycomplexgrid_scalarObj objects
Boundary values of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- flux : class fluxstruct_arraycomplexgrid_vector: array of fluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- bndflux : class bndfluxstruct_arraycomplexgrid_vector: array of bndfluxstruct_arraycomplexgrid_vectorObj objects
Flux of the quantity. Possibly stored on multiple (boundary) subgrids.; Time-dependent; Array of structures (nsubgrid_quantity)
- transpcoeff : class transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff: array of transpcoeffstruct_arrayedge_fluid_scalar_transpcoeffObj objects
Transport coefficients; Time-dependent; Array of structures (nsubgrid_quantity)
- source : class sourcestruct_arraycomplexgrid_scalar: array of sourcestruct_arraycomplexgrid_scalarObj objects
Source; Time-dependent; Array of structures (nsubgrid_quantity)
'''
[docs] def __init__(self, base_path_in='po'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.value = valuestruct_arraycomplexgrid_scalar('value')
self.bndvalue = bndvaluestruct_arraycomplexgrid_scalar('bndvalue')
self.flux = fluxstruct_arraycomplexgrid_vector('flux')
self.bndflux = bndfluxstruct_arraycomplexgrid_vector('bndflux')
self.transpcoeff = transpcoeffstruct_arrayedge_fluid_scalar_transpcoeff('transpcoeff')
self.source = sourcestruct_arraycomplexgrid_scalar('source')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class postructureedge_fluid_scalar_simplestruct\n'
ret = ret + space + 'Attribute value\n ' + self.value.__str__(depth+1)
ret = ret + space + 'Attribute bndvalue\n ' + self.bndvalue.__str__(depth+1)
ret = ret + space + 'Attribute flux\n ' + self.flux.__str__(depth+1)
ret = ret + space + 'Attribute bndflux\n ' + self.bndflux.__str__(depth+1)
ret = ret + space + 'Attribute transpcoeff\n ' + self.transpcoeff.__str__(depth+1)
ret = ret + space + 'Attribute source\n ' + self.source.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.value.setExpIdx(idx)
self.bndvalue.setExpIdx(idx)
self.flux.setExpIdx(idx)
self.bndflux.setExpIdx(idx)
self.transpcoeff.setExpIdx(idx)
self.source.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type postructureedge_fluid_scalar_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.time = self.time
self.value.putSlice(path, cpopath)
self.bndvalue.time = self.time
self.bndvalue.putSlice(path, cpopath)
self.flux.time = self.time
self.flux.putSlice(path, cpopath)
self.bndflux.time = self.time
self.bndflux.putSlice(path, cpopath)
self.transpcoeff.time = self.time
self.transpcoeff.putSlice(path, cpopath)
self.source.time = self.time
self.source.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type postructureedge_fluid_scalar_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.replaceLastSlice(path, cpopath)
self.bndvalue.replaceLastSlice(path, cpopath)
self.flux.replaceLastSlice(path, cpopath)
self.bndflux.replaceLastSlice(path, cpopath)
self.transpcoeff.replaceLastSlice(path, cpopath)
self.source.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type postructureedge_fluid_scalar_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.putNonTimed(path, cpopath)
self.bndvalue.putNonTimed(path, cpopath)
self.flux.putNonTimed(path, cpopath)
self.bndflux.putNonTimed(path, cpopath)
self.transpcoeff.putNonTimed(path, cpopath)
self.source.putNonTimed(path, cpopath)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type postructureedge_fluid_scalar_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.value.getSlice(path, cpopath, inTime, interpolMode)
self.bndvalue.getSlice(path, cpopath, inTime, interpolMode)
self.flux.getSlice(path, cpopath, inTime, interpolMode)
self.bndflux.getSlice(path, cpopath, inTime, interpolMode)
self.transpcoeff.getSlice(path, cpopath, inTime, interpolMode)
self.source.getSlice(path, cpopath, inTime, interpolMode)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type postructureedge_fluid_scalar_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
valueList = self.value.build_non_resampled_data(path, cpopath, nbslice)
bndvalueList = self.bndvalue.build_non_resampled_data(path, cpopath, nbslice)
fluxList = self.flux.build_non_resampled_data(path, cpopath, nbslice)
bndfluxList = self.bndflux.build_non_resampled_data(path, cpopath, nbslice)
transpcoeffList = self.transpcoeff.build_non_resampled_data(path, cpopath, nbslice)
sourceList = self.source.build_non_resampled_data(path, cpopath, nbslice)
for i in range(nbslice):
slice = postructureedge_fluid_scalar_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.value = valueList[i]
slice.bndvalue = bndvalueList[i]
slice.flux = fluxList[i]
slice.bndflux = bndfluxList[i]
slice.transpcoeff = transpcoeffList[i]
slice.source = sourceList[i]
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type postructureedge_fluid_scalar_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.value.putTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type postructureedge_fluid_scalar_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
self.value.getTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getTimedElt(path, cpopath + 'source', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type postructureedge_fluid_scalar_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.value.putNonTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putNonTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.flux.putNonTimedElt(path, cpopath + 'flux', i, obj)
obj = self.bndflux.putNonTimedElt(path, cpopath + 'bndflux', i, obj)
obj = self.transpcoeff.putNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
obj = self.source.putNonTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type postructureedge_fluid_scalar_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.value.getNonTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getNonTimedElt(path, cpopath + 'bndvalue', i, obj)
self.flux.getNonTimedElt(path, cpopath + 'flux', i, obj)
self.bndflux.getNonTimedElt(path, cpopath + 'bndflux', i, obj)
self.transpcoeff.getNonTimedElt(path, cpopath + 'transpcoeff', i, obj)
self.source.getNonTimedElt(path, cpopath + 'source', i, obj)
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'value')
ull.deleteData(self.idx, path, cpopath + 'bndvalue')
ull.deleteData(self.idx, path, cpopath + 'flux')
ull.deleteData(self.idx, path, cpopath + 'bndflux')
ull.deleteData(self.idx, path, cpopath + 'transpcoeff')
ull.deleteData(self.idx, path, cpopath + 'source')
[docs]class jstructureedge_fluid_vector_simplestruct:
'''
class jstructureedge_fluid_vector_simplestruct
Electric current [A]; Time-dependent;
Attributes:
- comps : class compsstruct_arrayedge_fluid_scalar: array of compsstruct_arrayedge_fluid_scalarObj objects
Components of the vector. Array of structures(ndim); Time-dependent;
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim);
- alignid : list of str
Alignment of vector components, string description. String vector(ndim);
'''
[docs] def __init__(self, base_path_in='j'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.comps = compsstruct_arrayedge_fluid_scalar('comps')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class jstructureedge_fluid_vector_simplestruct\n'
ret = ret + space + 'Attribute comps\n ' + self.comps.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comps.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type jstructureedge_fluid_vector_simplestruct, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.time = self.time
self.comps.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type jstructureedge_fluid_vector_simplestruct, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type jstructureedge_fluid_vector_simplestruct, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.putNonTimed(path, cpopath)
status = ull.putVect1DInt(self.idx, path, cpopath + 'align', numpy.array(self.align).astype(numpy.int32), False)
check_status(status)
status = ull.putVect1DString(self.idx, path, cpopath + 'alignid', self.alignid, False)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type jstructureedge_fluid_vector_simplestruct, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.comps.getSlice(path, cpopath, inTime, interpolMode)
status, ret_align = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
if not status:
self.align = ret_align
status, ret_alignid = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type jstructureedge_fluid_vector_simplestruct, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
compsList = self.comps.build_non_resampled_data(path, cpopath, nbslice)
status, alignVal = ull.getVect1DInt(self.idx, path, cpopath + 'align')
check_status(status)
status, alignidVal = ull.getVect1DString(self.idx, path, cpopath + 'alignid')
check_status(status)
for i in range(nbslice):
slice = jstructureedge_fluid_vector_simplestruct(self.base_path)
slice.setExpIdx(self.idx)
slice.comps = compsList[i]
slice.align = alignVal
slice.alignid = alignidVal
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type jstructureedge_fluid_vector_simplestructObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putTimedElt(path, cpopath + 'comps', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type jstructureedge_fluid_vector_simplestructObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comps.getTimedElt(path, cpopath + 'comps', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type jstructureedge_fluid_vector_simplestructObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.comps.putNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type jstructureedge_fluid_vector_simplestructObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.comps.getNonTimedElt(path, cpopath + 'comps', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'comps')
ull.deleteData(self.idx, path, cpopath + 'align')
ull.deleteData(self.idx, path, cpopath + 'alignid')
[docs]class kineticstructureedge_kinetic:
'''
class kineticstructureedge_kinetic
Kinetic description of edge plasma. Time-dependent.
Attributes:
- f : class fstruct_arrayedge_kinetic_distribution: array of fstruct_arrayedge_kinetic_distributionObj objects
Distribution function [1/m^3 (m/s)^-3]. Array of structuresr(nspecies); Time-dependent;
'''
[docs] def __init__(self, base_path_in='kinetic'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.f = fstruct_arrayedge_kinetic_distribution('f')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class kineticstructureedge_kinetic\n'
ret = ret + space + 'Attribute f\n ' + self.f.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.f.setExpIdx(idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type kineticstructureedge_kinetic, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.f.time = self.time
self.f.putSlice(path, cpopath)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type kineticstructureedge_kinetic, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.f.replaceLastSlice(path, cpopath)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type kineticstructureedge_kinetic, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.f.putNonTimed(path, cpopath)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type kineticstructureedge_kinetic, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
self.f.getSlice(path, cpopath, inTime, interpolMode)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type kineticstructureedge_kinetic, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
fList = self.f.build_non_resampled_data(path, cpopath, nbslice)
for i in range(nbslice):
slice = kineticstructureedge_kinetic(self.base_path)
slice.setExpIdx(self.idx)
slice.f = fList[i]
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type kineticstructureedge_kineticObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.f.putTimedElt(path, cpopath + 'f', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type kineticstructureedge_kineticObj, run function getTimedElt'
cpopath = cpopath + '/'
self.f.getTimedElt(path, cpopath + 'f', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type kineticstructureedge_kineticObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.f.putNonTimedElt(path, cpopath + 'f', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type kineticstructureedge_kineticObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.f.getNonTimedElt(path, cpopath + 'f', i, obj)
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'f')
[docs]class fstruct_arrayedge_kinetic_distribution:
'''
class fstruct_arrayedge_kinetic_distribution
Distribution function [1/m^3 (m/s)^-3]. Array of structuresr(nspecies); Time-dependent;
Attributes:
- array : list of fstruct_arrayedge_kinetic_distributionObj
'''
[docs] def __init__(self, base_path_in='f'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class fstruct_arrayedge_kinetic_distribution\n'
for i in range(len(self.array)):
ret = ret + space + 'fstruct_arrayedge_kinetic_distribution[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(fstruct_arrayedge_kinetic_distributionObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fstruct_arrayedge_kinetic_distribution, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fstruct_arrayedge_kinetic_distribution, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fstruct_arrayedge_kinetic_distribution, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type fstruct_arrayedge_kinetic_distribution, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type fstruct_arrayedge_kinetic_distribution, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(fstruct_arrayedge_kinetic_distribution(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(fstruct_arrayedge_kinetic_distribution(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = fstruct_arrayedge_kinetic_distribution(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fstruct_arrayedge_kinetic_distribution, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fstruct_arrayedge_kinetic_distribution, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fstruct_arrayedge_kinetic_distribution, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fstruct_arrayedge_kinetic_distribution, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class fstruct_arrayedge_kinetic_distributionObj:
'''
class fstruct_arrayedge_kinetic_distributionObj
Distribution function [1/m^3 (m/s)^-3]. Array of structuresr(nspecies); Time-dependent;
Attributes:
- value : class valuestruct_arraycomplexgrid_scalar: array of valuestruct_arraycomplexgrid_scalarObj objects
Value of distribution function. Possibly stored on multiple subgrids.; Vector (nsubgrid_quantity). Time-dependent;
- bndvalue : class bndvaluestruct_arraycomplexgrid_scalar: array of bndvaluestruct_arraycomplexgrid_scalarObj objects
Boundary value of distribution function. Possibly stored on multiple subgrids.; Vector (nsubgrid_quantity). Time-dependent;
- fluxes : class fluxesstruct_arraycomplexgrid_vector: array of fluxesstruct_arraycomplexgrid_vectorObj objects
Fluxes in phase space. Possibly stored on multiple subgrids.; Vector (nsubgrid_quantity). Time-dependent;
- source : class sourcestruct_arraycomplexgrid_scalar: array of sourcestruct_arraycomplexgrid_scalarObj objects
Sources in phase space. Possibly stored on multiple subgrids.; Vector (nsubgrid_quantity). Time-dependent;
'''
[docs] def __init__(self, base_path_in='f'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.value = valuestruct_arraycomplexgrid_scalar('value')
self.bndvalue = bndvaluestruct_arraycomplexgrid_scalar('bndvalue')
self.fluxes = fluxesstruct_arraycomplexgrid_vector('fluxes')
self.source = sourcestruct_arraycomplexgrid_scalar('source')
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class fstruct_arrayedge_kinetic_distributionObj\n'
ret = ret + space + 'Attribute value\n ' + self.value.__str__(depth+1)
ret = ret + space + 'Attribute bndvalue\n ' + self.bndvalue.__str__(depth+1)
ret = ret + space + 'Attribute fluxes\n ' + self.fluxes.__str__(depth+1)
ret = ret + space + 'Attribute source\n ' + self.source.__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.value.setExpIdx(idx)
self.bndvalue.setExpIdx(idx)
self.fluxes.setExpIdx(idx)
self.source.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fstruct_arrayedge_kinetic_distributionObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.value.putTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.fluxes.putTimedElt(path, cpopath + 'fluxes', i, obj)
obj = self.source.putTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fstruct_arrayedge_kinetic_distributionObj, run function getTimedElt'
cpopath = cpopath + '/'
self.value.getTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getTimedElt(path, cpopath + 'bndvalue', i, obj)
self.fluxes.getTimedElt(path, cpopath + 'fluxes', i, obj)
self.source.getTimedElt(path, cpopath + 'source', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fstruct_arrayedge_kinetic_distributionObj, run function putNonTimedElt'
cpopath = cpopath + '/'
obj = self.value.putNonTimedElt(path, cpopath + 'value', i, obj)
obj = self.bndvalue.putNonTimedElt(path, cpopath + 'bndvalue', i, obj)
obj = self.fluxes.putNonTimedElt(path, cpopath + 'fluxes', i, obj)
obj = self.source.putNonTimedElt(path, cpopath + 'source', i, obj)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fstruct_arrayedge_kinetic_distributionObj, run function getNonTimedElt'
cpopath = cpopath + '/'
self.value.getNonTimedElt(path, cpopath + 'value', i, obj)
self.bndvalue.getNonTimedElt(path, cpopath + 'bndvalue', i, obj)
self.fluxes.getNonTimedElt(path, cpopath + 'fluxes', i, obj)
self.source.getNonTimedElt(path, cpopath + 'source', i, obj)
[docs]class fluxesstruct_arraycomplexgrid_vector:
'''
class fluxesstruct_arraycomplexgrid_vector
Fluxes in phase space. Possibly stored on multiple subgrids.; Vector (nsubgrid_quantity). Time-dependent;
Attributes:
- array : list of fluxesstruct_arraycomplexgrid_vectorObj
'''
[docs] def __init__(self, base_path_in='fluxes'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.array = []
[docs] def __getitem__(self, key):
return self.array[key]
[docs] def __len__(self):
return len(self.array)
[docs] def __iter__(self):
return self.array.__iter__()
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class fluxesstruct_arraycomplexgrid_vector\n'
for i in range(len(self.array)):
ret = ret + space + 'fluxesstruct_arraycomplexgrid_vector[%d] = \n' %(i) + self.array[i].__str__(depth+1)
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
for i in range(len(self.array)):
self.array[i].setExpIdx(idx)
[docs] def resize(self, nbelt):
self.array = []
for i in range(nbelt):
self.array.append(fluxesstruct_arraycomplexgrid_vectorObj(self.base_path))
self.array[i].setExpIdx(self.idx)
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fluxesstruct_arraycomplexgrid_vector, run function putSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj_time = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
obj = ull.beginObject(self.idx, obj_time, 0, 'ALLTIMES', TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
obj_time = ull.putObjectInObject(self.idx, obj_time, 'ALLTIMES', 0, obj)
if (dev()):
print 'putObjectSlice('+path+', '+cpopath+self.base_path+', '+str(self.time)+', '+str(obj_time)+')'
status = ull.putObjectSlice(self.idx, path, cpopath + self.base_path, self.time, obj_time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fluxesstruct_arraycomplexgrid_vector, run function replaceLastSlice'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, TIMED)
for i in range(len(self.array)):
obj = self.array[i].putTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'replaceLastObjectSlice('+path+', '+cpopath+self.base_path+', '+str(obj)+')'
status = ull.replaceLastObjectSlice(self.idx, path, cpopath + self.base_path, obj)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type fluxesstruct_arraycomplexgrid_vector, run function putNonTimed'
if (dev()):
print 'beginObject(None, 0, '+path+'/'+cpopath+self.base_path+', NON_TIMED)'
obj = ull.beginObject(self.idx, None, 0, path + '/' + cpopath + self.base_path, NON_TIMED)
for i in range(len(self.array)):
obj = self.array[i].putNonTimedElt(path, self.base_path, i, obj)
if (dev()):
print 'putObject('+path+', '+cpopath+self.base_path+', '+str(obj)+', NON_TIMED)'
status = ull.putObject(self.idx, path, cpopath + self.base_path, obj, NON_TIMED)
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type fluxesstruct_arraycomplexgrid_vector, run function getSlice'
if (dev()):
print 'getObjectSlice('+path+', '+cpopath+self.base_path+', '+str(inTime)+')'
status, obj_time = ull.getObjectSlice(self.idx, path, cpopath + self.base_path, inTime)
if status:
print 'Failed to get slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ')'
return
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', 0)
if status:
print 'No data found for slice: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
return
obj_size = ull.getObjectDim(self.idx, obj)
self.resize(obj_size)
for i in range(obj_size):
self.array[i].getTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return
obj_size = ull.getObjectDim(self.idx, obj)
if (obj_size != 0) and (obj_size != len(self.array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(self.array))
else:
for i in range(obj_size):
self.array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type fluxesstruct_arraycomplexgrid_vector, run function build_non_resampled_data'
list=[]
if nbslice > 0:
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', TIMED)'
status, obj_time = ull.getObject(self.idx, path, cpopath + self.base_path, TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (TIMED)'
for i in range(nbslice):
list.append(fluxesstruct_arraycomplexgrid_vector(self.base_path))
return list
for n in range(nbslice):
status, obj = ull.getObjectFromObject(self.idx, obj_time, 'ALLTIMES', n)
if status:
print 'Failed to get object[' + n + '] from timed array of structures: ' + path + '/' + cpopath + self.base_path + ' (time = ' + str(inTime) + ', object = ALLTIMES)'
list.append(fluxesstruct_arraycomplexgrid_vector(self.base_path))
continue
obj_size = ull.getObjectDim(self.idx, obj)
slice = fluxesstruct_arraycomplexgrid_vector(self.base_path)
slice.setExpIdx(self.idx)
slice.resize(obj_size)
for i in range(obj_size):
slice.array[i].getTimedElt(path, self.base_path, i, obj)
list.append(slice)
ull.releaseObject(self.idx, obj_time)
if (dev()):
print 'getObject('+path+', '+cpopath+self.base_path+', NON_TIMED)'
status, obj = ull.getObject(self.idx, path, cpopath + self.base_path, NON_TIMED)
if status:
print 'Failed to get data: ' + path + '/' + cpopath + self.base_path + ' (NON_TIMED)'
return list
obj_size = ull.getObjectDim(self.idx, obj)
for n in range(nbslice):
if (obj_size != 0) and (obj_size != len(list[n].array)):
print 'error: wrong size of object, ' + str(obj_size) + ' != ' + str(len(list[n].array))
else:
for i in range(obj_size):
if list[n]:
list[n].array[i].getNonTimedElt(path, self.base_path, i, obj)
ull.releaseObject(self.idx, obj)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fluxesstruct_arraycomplexgrid_vector, run function putTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
if (dev()):
print 'putObjectInObject('+str(obj)+', '+cpopath+', '+str(i)+', '+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fluxesstruct_arraycomplexgrid_vector, run function getTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getTimedElt(path, self.base_path, j, obj2)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fluxesstruct_arraycomplexgrid_vector, run function putNonTimedElt'
if (dev()):
print 'beginObject idx=%d' %(self.idx)
if (dev()):
print 'beginObject('+str(obj)+', '+str(i)+', '+path+'/'+cpopath+', NON_TIMED)'
obj2 = ull.beginObject(self.idx, obj, i, path + '/' + cpopath, NON_TIMED)
if (dev()):
print 'obj = ' + str(obj)
for j in range(len(self.array)):
if (dev()):
print 'struct_array loop elt %d' %(j)
obj2 = self.array[j].putNonTimedElt(path, self.base_path, j, obj2)
if (dev()):
print 'putObjectInObject('+str(self.idx)+','+str(obj)+','+cpopath+','+str(i)+','+str(obj2)+')'
obj = ull.putObjectInObject(self.idx, obj, cpopath, i, obj2)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'field '+self.base_path+' of type fluxesstruct_arraycomplexgrid_vector, run function getNonTimedElt'
if (dev()):
print 'getObjectFromObject('+str(obj)+', '+cpopath+', '+str(i)+')'
status, obj2 = ull.getObjectFromObject(self.idx, obj, cpopath, i)
if status:
print 'No data found for non-timed array of structures: ' + path + '/' + cpopath
return
obj_size = ull.getObjectDim(self.idx, obj2)
if (len(self.array)>0):
if (obj_size != 0) and (len(self.array) != obj_size):
print 'error, wrong size of object:'+str(obj_size)+' != '+str(len(self.array))
else:
self.resize(obj_size)
for j in range(obj_size):
self.array[j].getNonTimedElt(path, self.base_path, j, obj2)
[docs]class fluxesstruct_arraycomplexgrid_vectorObj:
'''
class fluxesstruct_arraycomplexgrid_vectorObj
Fluxes in phase space. Possibly stored on multiple subgrids.; Vector (nsubgrid_quantity). Time-dependent;
Attributes:
- label : str
Label describing the data
- comp : class compstruct_arraycomplexgrid_scalar: array of compstruct_arraycomplexgrid_scalarObj objects
Components of the vector. Vector of griddata(ndim). Time-dependent; FIXME: inherit time-dependence for this element
- align : numpy.ndarray 1D with int)
Alignment of vector components, numerical flag. Int vector(ndim)
- alignid : list of str
Alignment of vector components, string description. String vector(ndim)
'''
[docs] def __init__(self, base_path_in='fluxes'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.label = ''
self.comp = compstruct_arraycomplexgrid_scalar('comp')
self.align = numpy.zeros(0, numpy.int32, order='C')
self.alignid = ['']
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class fluxesstruct_arraycomplexgrid_vectorObj\n'
ret = ret + space + 'Attribute label: ' + str(self.label) + '\n'
ret = ret + space + 'Attribute comp\n ' + self.comp.__str__(depth+1)
s = self.align.__str__()
ret = ret + space + 'Attribute align\n' + space + s.replace('\n', '\n'+space) + '\n'
s = self.alignid.__str__()
ret = ret + space + 'Attribute alignid\n' + space + s.replace('\n', '\n'+space) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
self.comp.setExpIdx(idx)
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluxesstruct_arraycomplexgrid_vectorObj, run function putTimedElt'
cpopath = cpopath + '/'
obj = self.comp.putTimedElt(path, cpopath + 'comp', i, obj)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluxesstruct_arraycomplexgrid_vectorObj, run function getTimedElt'
cpopath = cpopath + '/'
self.comp.getTimedElt(path, cpopath + 'comp', i, obj)
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluxesstruct_arraycomplexgrid_vectorObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'label', i, self.label)
obj = self.comp.putNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'putVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
obj = ull.putVect1DIntInObject(self.idx, obj, cpopath + 'align', i, numpy.array(self.align).astype(numpy.int32))
if (dev()):
print 'putVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
obj = ull.putVect1DStringInObject(self.idx, obj, cpopath + 'alignid', i, self.alignid)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type fluxesstruct_arraycomplexgrid_vectorObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'label'
print 'obj = ' + str(obj)
status, ret_label = ull.getStringFromObject(self.idx, obj, cpopath + 'label', i)
check_status(status)
if not status:
self.label = ret_label
self.comp.getNonTimedElt(path, cpopath + 'comp', i, obj)
if (dev()):
print 'getVect1DIntInObject : ' + cpopath + 'align'
print 'obj = ' + str(obj)
status, ret_align = ull.getVect1DIntFromObject(self.idx, obj, cpopath + 'align', i)
check_status(status)
if not status:
self.align = ret_align
if (dev()):
print 'getVect1DStringInObject : ' + cpopath + 'alignid'
print 'obj = ' + str(obj)
status, ret_alignid = ull.getVect1DStringFromObject(self.idx, obj, cpopath + 'alignid', i)
check_status(status)
if not status:
self.alignid = ret_alignid
[docs]class codeparamstructurecodeparam:
'''
class codeparamstructurecodeparam
Code parameters
Attributes:
- codename : str
Name of the code
- codeversion : str
Version of the code (as in the ITM repository)
- parameters : str
List of the code specific parameters, string expected to be in XML format.
- output_diag : str
List of the code specific diagnostic/output, string expected to be in XML format.
- output_flag : int
Output flag : 0 means the run is successful, other values meaning some difficulty has been encountered, the exact meaning is then code specific. Negative values mean the result shall not be used. Exact rules could discussed and implemented in the module wrapper. Time-dependent.
'''
[docs] def __init__(self, base_path_in='codeparam'):
self.base_path = base_path_in
self.idx = EMPTY_INT
self.time = EMPTY_DOUBLE
self.codename = ''
self.codeversion = ''
self.parameters = ''
self.output_diag = ''
self.output_flag = EMPTY_INT
[docs] def __str__(self, depth=0):
space = depth*'\t'
ret = space + 'class codeparamstructurecodeparam\n'
ret = ret + space + 'Attribute codename: ' + str(self.codename) + '\n'
ret = ret + space + 'Attribute codeversion: ' + str(self.codeversion) + '\n'
ret = ret + space + 'Attribute parameters: ' + str(self.parameters) + '\n'
ret = ret + space + 'Attribute output_diag: ' + str(self.output_diag) + '\n'
ret = ret + space + 'Attribute output_flag: ' + str(self.output_flag) + '\n'
return ret
[docs] def setExpIdx(self, idx):
self.idx = idx
[docs] def putSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type codeparamstructurecodeparam, run function putSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putIntSlice(self.idx, path, cpopath + 'output_flag', self.output_flag, self.time)
check_status(status)
[docs] def replaceLastSlice(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type codeparamstructurecodeparam, run function replaceLastSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.replaceLastIntSlice(self.idx, path, cpopath + 'output_flag', self.output_flag)
check_status(status)
[docs] def putNonTimed(self, path, cpopath):
if (verb()):
print 'field '+self.base_path+' of type codeparamstructurecodeparam, run function putNonTimed'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status = ull.putString(self.idx, path, cpopath + 'codename', self.codename, len(self.codename))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'codeversion', self.codeversion, len(self.codeversion))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'parameters', self.parameters, len(self.parameters))
check_status(status)
status = ull.putString(self.idx, path, cpopath + 'output_diag', self.output_diag, len(self.output_diag))
check_status(status)
[docs] def getSlice(self, path, cpopath, inTime, interpolMode):
if (verb()):
print 'field '+self.base_path+' of type codeparamstructurecodeparam, run function getSlice'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
status, ret_codename = ull.getString(self.idx, path, cpopath + 'codename')
check_status(status)
if not status:
self.codename = ret_codename
status, ret_codeversion = ull.getString(self.idx, path, cpopath + 'codeversion')
check_status(status)
if not status:
self.codeversion = ret_codeversion
status, ret_parameters = ull.getString(self.idx, path, cpopath + 'parameters')
check_status(status)
if not status:
self.parameters = ret_parameters
status, ret_output_diag = ull.getString(self.idx, path, cpopath + 'output_diag')
check_status(status)
if not status:
self.output_diag = ret_output_diag
status, ret_output_flag, retTime = ull.getIntSlice(self.idx, path, cpopath + 'output_flag', inTime, interpolMode)
check_status(status)
if not status:
self.output_flag = ret_output_flag
self.time = retTime
[docs] def build_non_resampled_data(self, path, cpopath, nbslice):
if (verb()):
print 'field '+self.base_path+' of type codeparamstructurecodeparam, run function build_non_resampled_data'
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
list=[]
if nbslice > 0:
status, codenameVal = ull.getString(self.idx, path, cpopath + 'codename')
check_status(status)
status, codeversionVal = ull.getString(self.idx, path, cpopath + 'codeversion')
check_status(status)
status, parametersVal = ull.getString(self.idx, path, cpopath + 'parameters')
check_status(status)
status, output_diagVal = ull.getString(self.idx, path, cpopath + 'output_diag')
check_status(status)
status, output_flagList = ull.getVect1DInt(self.idx, path, cpopath + 'output_flag')
if len(output_flagList) == 0:
output_flagList = numpy.resize(output_flagList, (nbslice))
check_status(status)
for i in range(nbslice):
slice = codeparamstructurecodeparam(self.base_path)
slice.setExpIdx(self.idx)
slice.codename = codenameVal
slice.codeversion = codeversionVal
slice.parameters = parametersVal
slice.output_diag = output_diagVal
slice.output_flag = int(output_flagList[i].copy())
list.append(slice)
else:
print 'error, nbslice must be > 0 and got:' + str(nbslice)
return list
[docs] def putTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type codeparamstructurecodeparamObj, run function putTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putIntInObject : ' + cpopath + 'output_flag'
print 'obj = ' + str(obj)
obj = ull.putIntInObject(self.idx, obj, cpopath + 'output_flag', i, self.output_flag)
return obj
[docs] def getTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type codeparamstructurecodeparamObj, run function getTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getIntInObject : ' + cpopath + 'output_flag'
print 'obj = ' + str(obj)
status, ret_output_flag = ull.getIntFromObject(self.idx, obj, cpopath + 'output_flag', i)
check_status(status)
if not status:
self.output_flag = ret_output_flag
[docs] def putNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type codeparamstructurecodeparamObj, run function putNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'putStringInObject : ' + cpopath + 'codename'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'codename', i, self.codename)
if (dev()):
print 'putStringInObject : ' + cpopath + 'codeversion'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'codeversion', i, self.codeversion)
if (dev()):
print 'putStringInObject : ' + cpopath + 'parameters'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'parameters', i, self.parameters)
if (dev()):
print 'putStringInObject : ' + cpopath + 'output_diag'
print 'obj = ' + str(obj)
obj = ull.putStringInObject(self.idx, obj, cpopath + 'output_diag', i, self.output_diag)
return obj
[docs] def getNonTimedElt(self, path, cpopath, i, obj):
if (verb()):
print 'object of type codeparamstructurecodeparamObj, run function getNonTimedElt'
cpopath = cpopath + '/'
if (dev()):
print 'getStringInObject : ' + cpopath + 'codename'
print 'obj = ' + str(obj)
status, ret_codename = ull.getStringFromObject(self.idx, obj, cpopath + 'codename', i)
check_status(status)
if not status:
self.codename = ret_codename
if (dev()):
print 'getStringInObject : ' + cpopath + 'codeversion'
print 'obj = ' + str(obj)
status, ret_codeversion = ull.getStringFromObject(self.idx, obj, cpopath + 'codeversion', i)
check_status(status)
if not status:
self.codeversion = ret_codeversion
if (dev()):
print 'getStringInObject : ' + cpopath + 'parameters'
print 'obj = ' + str(obj)
status, ret_parameters = ull.getStringFromObject(self.idx, obj, cpopath + 'parameters', i)
check_status(status)
if not status:
self.parameters = ret_parameters
if (dev()):
print 'getStringInObject : ' + cpopath + 'output_diag'
print 'obj = ' + str(obj)
status, ret_output_diag = ull.getStringFromObject(self.idx, obj, cpopath + 'output_diag', i)
check_status(status)
if not status:
self.output_diag = ret_output_diag
[docs] def deleteData(self, path, cpopath):
if cpopath=='':
cpopath = self.base_path + '/'
else:
cpopath = cpopath + self.base_path + '/'
if (verb()):
print 'path = ' + path + ' and cpopath = ' + cpopath
ull.deleteData(self.idx, path, cpopath + 'codename')
ull.deleteData(self.idx, path, cpopath + 'codeversion')
ull.deleteData(self.idx, path, cpopath + 'parameters')
ull.deleteData(self.idx, path, cpopath + 'output_diag')
ull.deleteData(self.idx, path, cpopath + 'output_flag')