# - axisym (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Geom.PyTree as D # Axisym a curve a0 = D.line((0.5,0,0), (0.6,0,1)) a = D.axisym(a0,(0.,0.,0.),(0.,0.,1.),360.,360) C.convertPyTree2File(a, "out.cgns") # Axisym a curve with varying r a0 = D.line((1.0,0,0), (0.,0,1)) a1 = D.circle((0,0,0), 2.) a = D.axisym(a0, (0.,0.,0.), (0.,0.,1.), rmod=a1) C.convertPyTree2File([a,a0,a1], "out1.cgns") # Axisym a 2D cart grid a = G.cart((0.,0.,0.), (0.1,0.1,0.2),(10,10,1)) a = D.axisym(a,(1.,0.,0.),(0.,1.,0.),30.,4) C.convertPyTree2File(a, 'out2.cgns')
def revolve(): 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 # - axis - name = VARS[4].get() names = name.split(';') curve = [] for v in names: v = v.lstrip() v = v.rstrip() sname = v.split('/', 1) bases = Internal.getNodesFromName1(CTK.t, sname[0]) if bases != []: nodes = Internal.getNodesFromType1(bases[0], 'Zone_t') for z in nodes: if z[0] == sname[1]: curve.append(z) if len(curve) == 0: CTK.TXT.insert('START', 'Axis is incorrect.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return teta = CTK.varsFromWidget(VARS[5].get(), type=1) if len(teta) != 1: CTK.TXT.insert('START', 'Revolve angle is incorrect.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return teta = teta[0] Nteta = CTK.varsFromWidget(VARS[6].get(), type=2) if len(Nteta) != 1: CTK.TXT.insert('START', 'Number of points for revolve is incorrect.\n') CTK.TXT.insert('START', 'Error: ', 'Error') return Nteta = Nteta[0] # - Extrait 2 pts de l'axe - axis = curve[0] [xo, yo, zo] = C.getValue(axis, Internal.__GridCoordinates__, 0) dim = Internal.getZoneDim(axis) if dim[0] == 'Structured': np = dim[1] * dim[2] * dim[3] else: np = dim[1] [x1, y1, z1] = C.getValue(axis, Internal.__GridCoordinates__, np - 1) ntx = x1 - xo nty = y1 - yo ntz = z1 - zo # - Extrait rmod si il y en a if len(curve) > 1: rmod = curve[1] else: rmod = None 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: z = D.axisym(z, (xo, yo, zo), (ntx, nty, ntz), teta, Nteta, rmod) CTK.replace(CTK.t, nob, noz, z) except Exception as e: fail = True errors += [0, str(e)] if not fail: CTK.TXT.insert('START', 'Mesh revolved with axis.\n') else: Panels.displayErrors(errors, header='Error: revolve') CTK.TXT.insert('START', 'Revolution fails for at least one zone.\n') CTK.TXT.insert('START', 'Warning: ', 'Warning') (CTK.Nb, CTK.Nz) = CPlot.updateCPlotNumbering(CTK.t) CTK.TKTREE.updateApp() CPlot.render()
import Generator.PyTree as G import Converter.PyTree as C import Transform.PyTree as T import Geom.PyTree as D import KCore.test as test def F(x): return x # test 1D structure (i-array) + variable en noeuds a = D.circle((0, 0, 0), 1., 20., 60.) a = C.addVars(a, 'F') a = C.initVars(a, 'F', F, ['CoordinateY']) a = D.axisym(a, (0, 0, 0), (0, 1, 0), 360., 50) t = C.newPyTree(['Base', 2]) t[2][1][2].append(a) test.testT(t, 1) # test 2D structure (i,j-array) + variable en centres a = G.cart((0., 0., 0.), (0.1, 0.1, 0.2), (10, 10, 1)) a = C.addVars(a, 'centers:F') a = D.axisym(a, (1., 0., 0.), (0., 1., 0.), 30., 20) t = C.newPyTree(['Base', 3]) t[2][1][2].append(a) test.testT(t, 2) # test BAR-array + variable a = D.circle((0, 0, 0), 1., 20., 60., 10) a = C.convertArray2Tetra(a)