def importFile(event=None): if CTK.t == []: return s = VARS[4].get() s = s.split(';') try: t1 = [] for filename in s: if filename != '': t2 = C.convertFile2PyTree(filename) # Fusion des bases de t et t2 if t1 == []: t1 = t2 else: t1 = C.mergeTrees(t1, t2) except: CTK.TXT.insert('START', 'Import failed.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return if t1 == []: CTK.TXT.insert('START', 'Import failed.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return CTK.saveTree() nzs = CPlot.getSelectedZones() # Essaie de trouver une methode adaptee method = 1 # match by geom import sets zoneNames = sets.Set(C.getZoneNames(CTK.t, prefixByBase=False)) zoneNames1 = sets.Set(C.getZoneNames(t1, prefixByBase=False)) inter = zoneNames & zoneNames1 linter = len(inter) * 1. comp = min(len(zoneNames), len(zoneNames1)) * 1. if linter / comp > 0.9: method = 0 # try match by name (safer) if CTK.__MAINTREE__ <= 0 or nzs == []: CTK.t = P.importVariables(t1, CTK.t, method=method) else: zones = C.newPyTree(['Base']) for nz in nzs: nob = CTK.Nb[nz] + 1 noz = CTK.Nz[nz] zone = CTK.t[2][nob][2][noz] zones[2][1][2].append(zone) zones = P.importVariables(t1, zones, method=method) c = 0 for nz in nzs: nob = CTK.Nb[nz] + 1 noz = CTK.Nz[nz] CTK.t[2][nob][2][noz] = zones[2][1][2][c] c += 1 CTK.TXT.insert('START', 'Variable file %s imported.\n' % filename) #C._fillMissingVariables(CTK.t) (CTK.Nb, CTK.Nz) = CPlot.updateCPlotNumbering(CTK.t) CTK.TKTREE.updateApp() CTK.display(CTK.t) if CTK.TKPLOTXY is not None: CTK.TKPLOTXY.updateApp()
import Post.PyTree as P import Converter.Internal as Internal import KCore.test as test # z2 sans solutions z1 = G.cart((0., 0., 0.), (0.1, 0.1, 0.1), (3, 3, 3)) C._addBC2Zone(z1, 'overlap', 'BCOverlap', 'imin') C._fillEmptyBCWith(z1, 'nref', 'BCFarfield') t1 = C.newPyTree(['Base', z1]) t2 = Internal.copyRef(t1) C._initVars(t1, 'centers:cellN', 1.) C._initVars(t1, 'Pressure', 10.) C._initVars(t1, 'Density', 1.) C._addState(t1[2][1], 'Mach', 0.6) C._addState(t2[2][1], 'Mach', 0.6) t2 = P.importVariables(t1, t2) test.testT(t2, 1) # z2 avec cellN = 0 C._initVars(t2, 'centers:cellN', 0.) t2 = P.importVariables(t1, t2) test.testT(t2, 2) # z1 en centres avec z2 sans solution Internal._rmNodesByType(t2, 'FlowSolution_t') t1 = C.node2Center(t1) t2 = P.importVariables(t1, t2) test.testT(t2, 3) # test t1 en centres/ t2 en noeuds Internal._rmNodesByType(t2, 'FlowSolution_t')