Source code for ual.edge

# -*- 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')