def compute(): 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 type = VARS[0].get() var1 = VARS[2].get() if (type == 'INT((v1,v2,v3).ndS)' or 'INT((v1,v2,v3)^OMdS)'): var2 = VARS[3].get() var3 = VARS[4].get() vector = [var1, var2, var3] if (type == 'INT((v1,v2,v3)^OMdS)' or type == 'INT(v1n^OMdS)'): center = CTK.varsFromWidget(VARS[1].get(), type=1) if (len(center) != 3): CTK.TXT.insert('START', 'Center for moment integration is incorrect.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return nzs = CPlot.getSelectedZones() if (nzs == []): CTK.TXT.insert('START', 'Selection is empty.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return res1 = 0. res2 = 0. res3 = 0. for nz in nzs: nob = CTK.Nb[nz] + 1 noz = CTK.Nz[nz] z = CTK.t[2][nob][2][noz] if (type == 'INT(v1dS)'): res1 += P.integ(z, var1)[0] elif (type == 'INT(v1.ndS)'): res = P.integNorm(z, var1)[0] res1 += res[0] res2 += res[1] res3 += res[2] elif (type == 'INT((v1,v2,v3).ndS)'): res1 += P.integNormProduct(z, vector) elif (type == 'INT((v1,v2,v3)^OMdS)'): res = P.integMoment(z, center, vector) res1 += res[0] res2 += res[1] res3 += res[2] elif (type == 'INT(v1n^OMdS)'): res = P.integMomentNorm(z, center, var1)[0] res1 += res[0] res2 += res[1] res3 += res[2] if (type == 'INT((v1,v2,v3)^OMdS)' or type == 'INT(v1n^OMdS)' or type == 'INT(v1.ndS)'): res = [res1, res2, res3] else: res = res1 CTK.TXT.insert('START', 'Res=' + str(res) + '.\n')
import Generator.PyTree as G import Post.PyTree as P import KCore.test as test # 2D ni = 30 nj = 40 m = G.cart((0, 0, 0), (10. / (ni - 1), 10. / (nj - 1), 1), (ni, nj, 1)) m = C.addBC2Zone(m, 'overlap', 'BCOverlap', 'imin') m = C.initVars(m, 'vx', 1.) m = C.initVars(m, 'centers:vy', 1.) m = C.initVars(m, 'ratio', 1.) t = C.newPyTree(['Base', 2]) t[2][1] = C.addState(t[2][1], 'Mach', 0.6) t[2][1][2].append(m) res = P.integ(t, 'vx') + P.integ(t, 'centers:vy') test.testO(res, 1) # 1D ni = 30 m = G.cart((0, 0, 0), (10. / (ni - 1), 1, 1), (ni, 1, 1)) m = C.initVars(m, 'vx', 1.) m = C.initVars(m, 'centers:vy', 1.) m = C.initVars(m, 'ratio', 1.) m = C.addBC2Zone(m, 'overlap', 'BCOverlap', 'imin') m = C.initVars(m, 'vx', 1.) m = C.initVars(m, 'centers:vy', 1.) m = C.initVars(m, 'ratio', 1.) t = C.newPyTree(['Base', 1]) t[2][1] = C.addState(t[2][1], 'Mach', 0.6) t[2][1][2].append(m)
# - integ (pyTree) - import Converter.PyTree as C import Generator.PyTree as G import Post.PyTree as P ni = 30 nj = 40 m = G.cart((0, 0, 0), (10. / (ni - 1), 10. / (nj - 1), 1), (ni, nj, 1)) m = C.initVars(m, 'vx', 1.) m = C.initVars(m, 'ratio', 1.) resn = P.integ(m, 'vx') print resn
test.testT(a, 2) # reorder a QUAD mesh a = G.cartHexa((0, 0, 0), (1, 1, 1), (8, 9, 1)) C._initVars(a, '{Density}={CoordinateX}**2+2*{CoordinateY}') C._initVars(a, '{centers:F}={centers:CoordinateX}') a = T.reorder(a, (-1, )) test.testT(a, 3) # reorder a NGON mesh: sphere case a = D.sphere6((0, 0, 0), 1., 20) a = C.convertArray2NGon(a) a = T.join(a) a = G.close(a) a = T.reorder(a, (1, )) G._getNormalMap(a) a = C.initVars(a, '{centers:DensityX}=12.*{centers:sx}') C._initVars(a, '{centers:DensityY}=12.*{centers:sy}') C._initVars(a, '{centers:DensityZ}=12.*{centers:sz}') resX = P.integ(a, var='centers:DensityX') resY = P.integ(a, var='centers:DensityX') resZ = P.integ(a, var='centers:DensityX') test.testT(a, 4) # reorder a NGON mesh v2 a = G.cartNGon((0, 0, 0), (1, 1, 1), (8, 9, 1)) C._initVars(a, '{Density}={CoordinateX}**2+2*{CoordinateY}') C._initVars(a, '{centers:F}={centers:CoordinateX}') a = T.reorder(a, (-1, )) #test.testT(a,5)
# - usurp (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Post.PyTree as P import KCore.test as test a = G.cart((-5, -5, 0.), (1, 1, 1), (10, 10, 1)) C._initVars(a, 'centers:cellN=1') b = G.cylinder((0, 0, 0.), 1, 2, 360, 0, 1, (30, 30, 1)) C._initVars(b, 'centers:cellN=1') t = C.newPyTree(['Base', 2, a, b]) try: P._usurp(t) f = P.integ(t, 'centers:cellN') test.testT(t, 1) except: pass