Пример #1
0
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)