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')
def f1(x, y): return 2 * x + y def f2(x, y): return 3 * x * y + 4 # STRUCT 2D 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', f1, ['CoordinateX', 'CoordinateY']) m = C.initVars(m, 'vy', f2, ['CoordinateX', 'CoordinateY']) m = C.initVars(m, 'vz', 1.) res = P.integMoment(m, center=(5., 5., 1.), vector=['vx', 'vy', 'vz']) test.testO(res, 1) #TRI ni = 30 nj = 40 m2 = G.cartTetra((0, 0, 0), (10. / (ni - 1), 10. / (nj - 1), 1), (ni, nj, 1)) m2 = C.initVars(m2, 'vx', f1, ['CoordinateX', 'CoordinateY']) m2 = C.initVars(m2, 'vy', f2, ['CoordinateX', 'CoordinateY']) m2 = C.initVars(m2, 'vz', 1.) res = P.integMoment(m2, center=(5., 5., 1.), vector=['vx', 'vy', 'vz']) test.testO(res, 2) # ARBRE t = C.newPyTree(['Base', 2, 'Base2', 2]) t[2][1] = C.addState(t[2][1], 'Mach', 0.6)
# - integMoment (pyTree) - import Converter.PyTree as C import Generator.PyTree as G import Post.PyTree as P m = G.cartTetra((0., 0., 0.), (0.1, 0.1, 0.2), (10, 10, 1)) C._initVars(m, 'vx', 1.) C._initVars(m, 'vy', 0.) C._initVars(m, 'vz', 0.) res = P.integMoment(m, center=(5., 5., 0.), vector=['vx', 'vy', 'vz']) print(res)