def dual(): 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 nzs = CPlot.getSelectedZones() if (nzs == []): CTK.TXT.insert('START', 'Selection is empty.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return CTK.saveTree() fail = False errors = [] for nz in nzs: nob = CTK.Nb[nz] + 1 noz = CTK.Nz[nz] z = CTK.t[2][nob][2][noz] try: a = T.dual(z) CTK.replace(CTK.t, nob, noz, a) except Exception as e: fail = True errors += [0, str(e)] if not fail: CTK.TXT.insert('START', 'Dual of zones computed.\n') else: Panels.displayErrors(errors, header='Error: dual') CTK.TXT.insert('START', 'Dual fails for at least one zone.\n') CTK.TXT.insert('START', 'Warning: ', 'Warning') #C._fillMissingVariables(CTK.t) (CTK.Nb, CTK.Nz) = CPlot.updateCPlotNumbering(CTK.t) CTK.TKTREE.updateApp() CPlot.render()
# - dual (pyTree) import Converter.PyTree as C import Transform.PyTree as T import Geom.PyTree as D import Generator.PyTree as G import KCore.test as test # NGON 2D ne contenant pas de faces externes a = D.sphere((0, 0, 0), 1., 15) a = C.convertArray2NGon(a) a = G.close(a) a = C.initVars(a, 'F', 1.) a = C.initVars(a, 'centers:G', 1.) res = T.dual(a) t = C.newPyTree(['Base']) t[2][1][2] += [res] test.testT(t) # NGON 2D contenant des faces externes a = D.sphere((0, 0, 0), 1., 15) a = T.subzone(a, (1, 1, 1), (15, 15, 1)) a = C.convertArray2NGon(a) a = G.close(a) a = C.initVars(a, 'F', 1.) res = T.dual(a) t = C.newPyTree(['Base']) t[2][1][2] += [res] test.testT(t, 2) # NGON 3D a = G.cartHexa((0, 0, 0), (1, 1, 1), (11, 11, 11))