def selectTag(zones, Filter, vars): if len(vars) == 0: return None res = findVar(vars[0]) if res == 0: return None if res == 1: # tag en noeuds Z = C.initVars(zones, '__tag__', Filter, vars) Z = P.selectCells2(Z, '__tag__') C._rmVars(Z, '__tag__') else: # tag en centres Z = C.initVars(zones, 'centers:__tag__', Filter, vars) Z = P.selectCells2(Z, 'centers:__tag__') C._rmVars(Z, 'centers:__tag__') for z in Z: z[0] = C.getZoneName(z[0]) return Z
def suppressCells(): if CTK.t == []: return if CTK.__MAINTREE__ <= 0: CTK.TXT.insert('START', 'Fail on a temporary tree.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return W = WIDGETS['suppress'] if CTK.__BUSY__ == False: CPlot.unselectAllZones() CTK.__BUSY__ = True TTK.sunkButton(W) CPlot.setState(cursor=1) while CTK.__BUSY__: l = [] while (l == []): nz = CPlot.getSelectedZone() l = CPlot.getActivePointIndex() CPlot.unselectAllZones() time.sleep(CPlot.__timeStep__) W.update() if (CTK.__BUSY__ == False): break if CTK.__BUSY__: nob = CTK.Nb[nz] + 1 noz = CTK.Nz[nz] CTK.saveTree() z = CTK.t[2][nob][2][noz] C._initVars(z, 'centers:__tag__', 1) C.setValue(z, 'centers:__tag__', l[1], 0) try: z = P.selectCells2(z, 'centers:__tag__') CTK.replace(CTK.t, nob, noz, z) except: pass CTK.TKTREE.updateApp() CPlot.render() CTK.__BUSY__ = False TTK.raiseButton(W) CPlot.setState(cursor=0) else: CTK.__BUSY__ = False TTK.raiseButton(W) CPlot.setState(cursor=0)
def viewQual(): if CTK.t == []: return qtype = VARS[1].get() if qtype == 'Neg. volume cells': res = findVar('vol') if res == 0: CTK.t = G.getVolumeMap(CTK.t) if CTK.__MAINTREE__ == 1: CTK.__MAINACTIVEZONES__ = CPlot.getActiveZones() active = [] zones = Internal.getZones(CTK.t) for z in CTK.__MAINACTIVEZONES__: active.append(CTK.t[2][CTK.Nb[z]+1][2][CTK.Nz[z]]) temp = C.newPyTree(['Base']); temp[2][1][2] += active Z = C.initVars(temp, 'centers:__tag__', F1, ['centers:vol']) Z = P.selectCells2(Z, 'centers:__tag__') if Z is not None: CTK.TXT.insert('START', 'Viewing '+qtype+'.\n') CTK.dt = Z CTK.display(CTK.dt, mainTree=CTK.MESHQUAL) elif qtype == 'Mesh': CTK.display(CTK.t)
import Generator.PyTree as G import Post.PyTree as P import KCore.test as test def F(x, y, z): if (x + 2 * y + z > 20.): return True else: return False # test sur une zone a = G.cart((0, 0, 0), (1, 1, 1), (11, 11, 11)) a = C.addBC2Zone(a, 'wall1', 'BCWall', 'imin') a = C.addBC2Zone(a, 'overlap1', 'BCOverlap', 'jmin') a = C.addBC2Zone(a, 'match1', 'BCMatch', 'imax', a, 'imin', [1, 2, 3]) a = C.initVars(a, 'tag', F, ['CoordinateX', 'CoordinateY', 'CoordinateZ']) a = C.initVars(a, 'centers:G', 12.) b = P.selectCells2(a, 'tag') test.testT(b, 1) # test sur une base t = C.newPyTree(['Base']) t[2][1][2] += [a] t[2][1] = C.addState(t[2][1], 'Mach', 0.6) b = P.selectCells2(t[2][1], 'tag') test.testT(b, 2) # test sur un arbre t = P.selectCells2(t, 'tag') test.testT(b, 3)
# - selectCells2 (pyTree) - import Converter.PyTree as C import Generator.PyTree as G import Post.PyTree as P a = G.cart((0, 0, 0), (1, 1, 1), (11, 11, 11)) a = C.initVars(a, 'tag', 1.) b = P.selectCells2(a, 'tag') C.convertPyTree2File(b, 'out.cgns')
def F2(x): if (x > 15.): return True else: return False # test sur une zone + tag aux centres a = G.cart((0, 0, 0), (1, 1, 1), (11, 11, 11)) a = C.addBC2Zone(a, 'wall1', 'BCWall', 'imin') a = C.addBC2Zone(a, 'overlap1', 'BCOverlap', 'jmin') a = C.addBC2Zone(a, 'match1', 'BCMatch', 'imax', a, 'imin', [1, 2, 3]) a = C.initVars(a, 'Density', F, ['CoordinateX', 'CoordinateY', 'CoordinateZ']) a = C.node2Center(a, 'Density') a = C.initVars(a, 'centers:tag', F2, ['centers:Density']) b = P.selectCells2(a, 'centers:tag') t = C.newPyTree(['Base']) t[2][1][2] += [b] test.testT(t, 1) # test sur une base t = C.newPyTree(['Base']) t[2][1][2] += [a] t[2][1] = C.addState(t[2][1], 'Mach', 0.6) b = P.selectCells2(t[2][1], 'centers:tag') test.testT(b, 2) # test sur un arbre t = P.selectCells2(t, 'centers:tag') test.testT(t, 3)