def streamRibbon(): if CTK.t == []: return npts = CTK.varsFromWidget(VARS[0].get(), type=2) if len(npts) != 1: CTK.TXT.insert('START', 'Number of points in stream incorrect.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return npts = npts[0] v1 = VARS[1].get() v2 = VARS[2].get() v3 = VARS[3].get() CTK.TXT.insert('START', 'Click to select starting point...\n') l = [] while (l == []): l = CPlot.getActivePoint() time.sleep(0.1) print('Ribbon: starting point %d' % l) CTK.saveTree() CTK.t = C.addBase2PyTree(CTK.t, 'STREAMS', 2) b = Internal.getNodesFromName1(CTK.t, 'STREAMS') nob = C.getNobOfBase(b[0], CTK.t) try: stream = P.streamRibbon(CTK.t, (l[0], l[1], l[2]), (0, 0, 0.01), [v1, v2, v3], N=npts) CTK.add(CTK.t, nob, -1, stream) CTK.TXT.insert('START', 'Stream ribbon created.\n') except Exception as e: Panels.displayErrors([0, str(e)], header='Error: streamRibbon') CTK.TXT.insert('START', 'Stream ribbon fails.\n') CTK.TXT.insert('START', 'Error: ', 'Error') (CTK.Nb, CTK.Nz) = CPlot.updateCPlotNumbering(CTK.t) CTK.TKTREE.updateApp() CTK.display(CTK.t)
# - streamRibbon (pyTree) - import Converter.PyTree as C import Post.PyTree as P import Generator.PyTree as G import math as M def F(x): return M.cos(x) ni = 30 nj = 40 m1 = G.cart((0, 0, 0), (10. / (ni - 1), 10. / (nj - 1), 1), (ni, nj, 2)) m2 = G.cart((5.5, 0, 0), (9. / (ni - 1), 9. / (nj - 1), 1), (ni, nj, 2)) t = C.newPyTree(['Base', 'StreamR']) t[2][1][2] = [m1, m2] t = C.initVars(t, 'vx', 1.) t = C.initVars(t, 'vy', F, ['CoordinateX']) t = C.initVars(t, 'vz', 0.) x0 = 0.1 y0 = 5. z0 = 0.5 p = P.streamRibbon(t, (x0, y0, z0), (0., 0.2, 0.), ['vx', 'vy', 'vz']) C.convertPyTree2File(p, "out.cgns")
ni = 30 nj = 40 def F(x): return M.cos(x) # Maillage en noeuds # 3D m1 = G.cart((0, 0, 0), (10. / (ni - 1), 10. / (nj - 1), 1), (ni, nj, 2)) m2 = G.cart((5.5, 0, 0), (9. / (ni - 1), 9. / (nj - 1), 1), (ni, nj, 2)) m = [m1, m2] m = C.initVars(m, 'u', 1.) m = C.initVars(m, 'v', F, ['CoordinateX']) m = C.initVars(m, 'w', 0.) m = C.initVars(m, 'centers:G', 1.) m = C.addBC2Zone(m, 'wall', 'BCWall', 'imin') m = C.addBC2Zone(m, 'BCOverlap', 'BCOverlap', 'imax') # 3D struct x0 = 0.1 y0 = 5. z0 = 0. t = C.newPyTree(['Base']) t[2][1][2] += m t[2][1] = C.addState(t[2][1], 'Mach', 0.6) p = P.streamRibbon(t, (x0, y0, z0), (0., 0.2, 0.), ['u', 'v', 'w']) t = C.addBase2PyTree(t, 'Base2', 2) t[2][2][2] = [p] test.testT(t, 1)