def refineCells():
    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['refine']
    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__', 0)
                C.setValue(z, 'centers:__tag__', l[1], 1)
                try:
                    z = P.refine(z, '__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)
# - refine (pyTree) -
import Post.PyTree as P
import Converter.PyTree as C
import Generator.PyTree as G
import Geom.PyTree as D

# Linear with indicator field
a = G.cartTetra((0, 0, 0), (1, 1, 1), (10, 10, 1))
a = C.initVars(a, 'centers:indic', 1.)
a = P.refine(a, 'indic')
C.convertPyTree2File(a, 'out.cgns')
Example #3
0
import Generator.PyTree as G
import Transform.PyTree as T
import KCore.test as test

# test sur une zone
ni = 21
nj = 21
nk = 1
hi = 2. / (ni - 1)
hj = 2. / (nj - 1)
m = G.cart((0., 0., 0.), (hi, hj, 1.), (ni, nj, nk))
m = T.perturbate(m, 0.51)
tri = G.delaunay(m)
tri = C.initVars(tri, 'centers:indic', 1.)
tri = C.initVars(tri, 'G', 2.)
sol = P.refine(tri, 'indic')
test.testT(sol, 1)

# test sur une base
m = G.cartTetra((2, 2, 2), (0.1, 0.1, 0.1), (10, 5, 1))
m = C.initVars(m, 'centers:indic', 1)
m = C.initVars(m, 'G', 0)
t = C.newPyTree(['Base', 2])
t[2][1][2] += [m, tri]
t[2][1] = C.addState(t[2][1], 'Mach', 0.6)
sol = P.refine(t[2][1], 'indic')
test.testT(sol, 2)

# test sur un arbre
t2 = P.refine(t, 'indic')
test.testT(t2, 3)
# - refine (pyTree) -
import Post.PyTree as P
import Converter.PyTree as C
import Generator.PyTree as G
import Geom.PyTree as D

# Refine with butterfly interpolation
a = G.cartTetra((0, 0, 0), (1, 1, 1), (10, 10, 1))
a = P.refine(a, w=1. / 64.)
C.convertPyTree2File(a, 'out.cgns')