Example #1
0
def streamLine():
    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('Stream: 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.streamLine(CTK.t, (l[0], l[1], l[2]), [v1, v2, v3], N=npts)
        CTK.add(CTK.t, nob, -1, stream)
        CTK.TXT.insert('START', 'Stream line created.\n')
    except Exception as e:
        Panels.displayErrors([0, str(e)], header='Error: streamLine')
        CTK.TXT.insert('START', 'Stream line fails.\n')
        CTK.TXT.insert('START', 'Error: ', 'Error')
    (CTK.Nb, CTK.Nz) = CPlot.updateCPlotNumbering(CTK.t)
    CTK.TKTREE.updateApp()
    CPlot.render()
Example #2
0
# - streamLine (pyTree) -
import Converter.PyTree as C
import Post.PyTree as P
import Generator.PyTree as G
import math as M
import KCore.test as test

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.streamLine(t, (x0,y0,z0),['u','v','w'])
t = C.addBase2PyTree(t,'Base2',1); t[2][2][2] = [p]
test.testT(t, 1)