# - distance2Walls (pyTree) - # - Dump TurbulentDistance node to a file - import Dist2Walls.PyTree as DW import Generator.PyTree as G import Converter.PyTree as C import Geom.PyTree as D import Converter.Internal as Internal import Converter import numpy a = G.cart((0., 0., 0.), (0.1, 0.1, 0.1), (10, 10, 10)) a = C.initVars(a, 'centers:cellnf', 1.) sphere = D.sphere((1.2, 0., 0.), 0.2, 100) sphere = C.initVars(sphere, 'centers:cellnf', 1.) t = C.newPyTree(['Base', a]) bodies = C.newPyTree(['Bodies', sphere]) t = DW.distance2Walls(t, bodies) nodes = Internal.getNodesFromName(t, 'TurbulentDistance') c = 0 for n in nodes: ni = n[1].shape[0] nj = n[1].shape[1] nk = n[1].shape[2] a = numpy.reshape(n[1], (ni * nj * nk), order='Fortran') a = numpy.reshape(a, (1, ni * nj * nk)) array = ['walldistance', a, ni, nj, nk] array = Converter.initVars(array, 'wallglobalindex', 1) Converter.convertArrays2File([array], 'dist' + str(c) + '.v3d', 'bin_v3d') c += 1
# - setPrescribedMotion3 (pyTree) - # Motion defined by a constant speed and rotation speed import RigidMotion.PyTree as R import Converter.PyTree as C import Geom.PyTree as D a = D.sphere((1.2, 0., 0.), 0.2, 30) a = R.setPrescribedMotion3(a, 'mot', transl_speed=(1, 0, 0)) C.convertPyTree2File(a, 'out.cgns')
#!/usr/bin/env python # coding: utf-8 r"""<TBC>""" import Generator.PyTree as G import Converter.PyTree as C import Transform.PyTree as T import Geom.PyTree as D a = G.cart((-2, -2, -2), (0.04, 0.04, 0.04), (100, 100, 100)) a = T.splitSize(a, N=100000) b = D.sphere((0, 0, 0), 1., N=100) t = C.newPyTree(['Base']) t[2][1][2] += a C.convertPyTree2File(t, 'in.cgns') t = C.newPyTree(['Base']) t[2][1][2] += [b] C.convertPyTree2File(t, 'walls.cgns')
# - plaster (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Transform.PyTree as T import Post.PyTree as P import Geom.PyTree as D a = D.sphere((0, 0, 0), 1) a = T.subzone(a, (6, 1, 1), (50, 200, 1)) a = C.convertArray2Hexa(a) a = G.close(a) # contours c = P.exteriorFaces(a) cs = T.splitConnexity(c) # plaster hole p = G.plaster([cs[0]], [a]) t = C.newPyTree(['Sphere', 2, 'Contours', 1, 'Plaster', 2]) t[2][1][2].append(a) t[2][2][2] += cs t[2][3][2].append(p) C.convertPyTree2File(t, 'out.cgns')
# - prepareIBMData (pyTree) - import Converter.PyTree as C import Generator.PyTree as G import Connector.ToolboxIBM as IBM import Post.PyTree as P import Geom.PyTree as D import Dist2Walls.PyTree as DTW import KCore.test as test N = 51 a = G.cart((0, 0, 0), (1. / (N - 1), 1. / (N - 1), 1. / (N - 1)), (N, N, N)) body = D.sphere((0.5, 0, 0), 0.1, N=20) t = C.newPyTree(['Base', a]) tb = C.newPyTree(['Base', body]) tb = C.addState(tb, 'EquationDimension', 3) tb = C.addState(tb, 'GoverningEquations', 'NSTurbulent') t = DTW.distance2Walls(t, bodies=tb, loc='centers', type='ortho') t = P.computeGrad(t, 'centers:TurbulentDistance') t, tc = IBM.prepareIBMData(t, tb, DEPTH=2, frontType=1) C.convertPyTree2File(t, 't.cgns') C.convertPyTree2File(t, 'tc.cgns')
t[2][1][2].append(a) # celln init t = C.initVars(t, 'centers:cellN', 1.) #C.convertPyTree2File(t, 'b.plt') # Blanking t = X.blankCellsTri(t, [[m]], [], blankingType="cell_intersect", tol=1.e-12, cellnval=4, overwrite=1) #C.convertPyTree2File(t, 'out3t.cgns') test.testT(t, 3) # Test 4 # Tri mask m = D.sphere((0, 0, 0), 20., 50) m = C.convertArray2Tetra(m) m = G.close( m) ## IMPORTANT : sinon des triangles degeneres sont engendres aux poles #C.convertPyTree2File(m, 'before.mesh') #C.convertPyTree2File(m, 'after.mesh') #C.convertPyTree2File(m, 'm.plt') # Mesh to blank a = G.cart((-5., -5., -5.), (0.5, 0.5, 0.5), (100, 100, 100)) t = C.newPyTree(['Cart']) t[2][1][2].append(a) # celln init t = C.initVars(t, 'nodes:cellN', 1.) #C.convertPyTree2File(t, 'b.plt') # Blanking t = X.blankCellsTri(t, [[m]], [],
# - conformUnstr (pyTree) - # Conforming 1 or 2 TRI/BAR together (same type for both operands) import Generator.PyTree as G import Intersector.PyTree as XOR import Converter.PyTree as C import Geom.PyTree as D from Geom.Parametrics import base import Transform.PyTree as T s1 = D.sphere((0, 0, 0), 1, N=20) s2 = D.surface(base['plane'], N=30) s2 = T.translate(s2, (0.2, 0.2, 0.2)) s1 = C.convertArray2Tetra(s1) s1 = G.close(s1) s2 = C.convertArray2Tetra(s2) s2 = G.close(s2) x = XOR.conformUnstr(s1, s2, tol=0.) C.convertPyTree2File(x, 'out.plt') c1 = D.circle((0, 0, 0), 1, N=100) c2 = D.circle((0.2, 0, 0), 1, N=50) c1 = C.convertArray2Tetra(c1) c1 = G.close(c1) c2 = C.convertArray2Tetra(c2) c2 = G.close(c2) x = XOR.conformUnstr(c1, c2, tol=0.)
# - extractPlane (pyTree) - import Converter.PyTree as C import Post.PyTree as P import Geom.PyTree as D import KCore.test as test # test structure m = D.sphere((0., 0., 0.), 1., N=20) m = C.addBC2Zone(m, 'wall', 'BCWall', 'kmin') m = C.initVars(m, 'F', 1.) m = C.initVars(m, 'centers:G', 3.) t = C.newPyTree(['Base', 2]) t[2][1] = C.addState(t[2][1], 'Mach', 0.6) t[2][1][2].append(m) p = P.extractPlane(t, (0., 0., 1., -0.5)) test.testT(p, 1) # test non structure tri m2 = C.convertArray2Tetra(m) m2 = C.initVars(m2, 'F', 1.) m2 = C.initVars(m2, 'centers:G', 3.) t = C.newPyTree(['Base', 2]) t[2][1] = C.addState(t[2][1], 'Mach', 0.6) t[2][1][2].append(m2) p = P.extractPlane(t, (0., 0., 1., -0.5)) test.testT(p, 2) # test non structure quad m2 = C.convertArray2Hexa(m) m2 = C.initVars(m2, 'F', 1.) m2 = C.initVars(m2, 'centers:G', 3.)
# - identifySolutions (pyTree) - import Converter.PyTree as C import Generator.PyTree as G import Geom.PyTree as D # A mesh with a field ni = 21; nj = 21; nk = 21 m = G.cart((0,0,0), (1./(ni-1),1./(nj-1),1./(nk-1)), (ni,nj,nk)) m = C.initVars(m, '{Density}={CoordinateX}') # Create extraction mesh a = D.sphere((0,0,0),0.1) # Identify solutions hook = C.createGlobalHook([m], 'nodes') a = C.identifySolutions(a, m, hookN=hook) C.freeHook(hook) C.convertPyTree2File(a, 'out.cgns')
# - adaptOctree (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Geom.PyTree as D import KCore.test as test # Quadtree s = D.circle((0,0,0), 1., N=100); snear=0.1 o = G.octree([s], [snear], dfar=5.,balancing=1) o = C.initVars(o, 'centers:indicator', 1.) res = G.adaptOctree(o) t = C.newPyTree(['OCTREE',2]); t[2][1][2] += [res] test.testT(t) # Octree s = D.sphere((0,0,0), 1., N=100); snear=0.5 o = G.octree([s], [snear], dfar=5., balancing=1) o = C.initVars(o,'centers:indicator',1.) res = G.adaptOctree(o) t = C.newPyTree(['OCTREE']); t[2][1][2] += [res] test.testT(t,2) # 9-tree s = D.circle((0,0,0), 1., N=100); snear=0.1 o = G.octree([s], [snear], dfar=5.,balancing=1,ratio=3) o = C.initVars(o,'centers:indicator',1.) res = G.adaptOctree(o,ratio=3) t = C.newPyTree(['OCTREE',2]); t[2][1][2] += [res] test.testT(t,3) # 27-tree s = D.sphere((0,0,0), 1., N=100); snear=0.5 o = G.octree([s], [snear], dfar=5., balancing=1,ratio=3) o = C.initVars(o,'centers:indicator',1.) res = G.adaptOctree(o,ratio=3)
import Generator.PyTree as G import Connector.PyTree as X import Geom.PyTree as D import Post.PyTree as P import Dist2Walls.PyTree as DTW import Transform.PyTree as T import Initiator.PyTree as I import Converter.Internal as Internal import Connector.ToolboxIBM as IBM import KCore.test as test import numpy, sys N = 41 a = G.cart((0, 0, 0), (1. / (N - 1), 1. / (N - 1), 1. / (N - 1)), (N, N, N)) xm = 0.5 * N / (N - 1) s = D.sphere((xm, xm, xm), 0.1, N=20) s = C.convertArray2Tetra(s) s = G.close(s) t = C.newPyTree(['Base', a]) # Blanking bodies = [[s]] BM = numpy.array([[1]], numpy.int32) t = X.blankCells(t, bodies, BM, blankingType='center_in') t = X.setHoleInterpolatedPoints(t, depth=-2) # Dist2Walls DTW._distance2Walls(t, [s], type='ortho', loc='centers', signed=1) t = C.center2Node(t, 'centers:TurbulentDistance') # Gradient de distance localise en centres => normales t = P.computeGrad(t, 'TurbulentDistance') I._initConst(t, MInf=0.2, loc='centers')
import Converter.PyTree as C import Dist2Walls.PyTree as DTW import Generator.PyTree as G import Geom.PyTree as D import Connector.PyTree as X import Transform.PyTree as T import Connector.ToolboxIBM as TIBM N = 11 N2 = 2 * N - 1 h = 1. / (N - 1) a = G.cart((-1., -1., -1.), (h, h, h), (N2, N2, 2)) zmean = C.getMeanValue(a, 'CoordinateZ') surf = D.sphere((0, 0, zmean), 0.5, 20) t = C.newPyTree(['Cart', a]) C.convertPyTree2File(surf, "in.cgns") bodies = [[surf]] # Matrice de masquage (arbre d'assemblage) import numpy BM = numpy.array([[1]]) C._initVars(t, 'centers:cellN', 1.) t = X.blankCells(t, bodies, BM, blankingType='center_in', delta=0.) DTW._distance2Walls(t, surf, loc='centers', type='ortho') C._initVars(t, "{centers:F}={centers:cellN}") TIBM._blankClosestTargetCells(t) C.convertPyTree2File(t, 'out.cgns')
# - display (pyTree) - # Affichage du shader vector (mode solid) import Geom.PyTree as D import CPlot.PyTree as CPlot import Converter.PyTree as C a = D.sphere((0,0,0),1.,N=50) #a = C.convertArray2Hexa(a) C._initVars(a, '{fx}=-{CoordinateY}') C._initVars(a, '{fy}={CoordinateX}') C._initVars(a, '{fz}={CoordinateZ}') C.convertPyTree2File(a, 'out.cgns') CPlot.display(a, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=1, vectorScale=80.) #CPlot.display(a, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=1, vectorScale=80.) #CPlot.display(a, mode='Vector', vectorField1='fx', vectorField2='fy', vectorField3='fz', vectorStyle=1, vectorScale=80., vectorNormalize=1) #CPlot.display(a, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=0) #CPlot.display(a, displayBB=0, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=1, vectorScale=0.25) #CPlot.display(a, displayBB=0, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=2, vectorScale=0.25) #CPlot.display(a, displayBB=0, mode='Vector', vectorField1='fx', vectorField2='fy', vectorField3='fz', vectorStyle=1, vectorScale=80., vectorNormalize=1) #CPlot.display(a, displayBB=0, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=0)
# - normalize (pyTree) - # aux centres import Converter.PyTree as C import Generator.PyTree as G import Geom.PyTree as D import KCore.test as test def f1(x1,x2,x3): return 3*x1*x2 + x3 # Structure a = D.sphere( (0,0,0), 1., 50 ) a = C.node2Center(a, 'GridCoordinates') a = C.initVars(a, 'centers:sx', f1, ['CoordinateX','CoordinateY','CoordinateZ']) a = C.initVars(a, 'centers:sy', f1, ['CoordinateX','CoordinateY','CoordinateZ']) a = C.initVars(a, 'centers:sz', f1, ['CoordinateX','CoordinateY','CoordinateZ']) a = C.normalize(a, ['centers:sx','centers:sy','centers:sz']) test.testT(a, 1) # Non structure a = D.sphere( (0,0,0), 1., 50 ) a = C.convertArray2Hexa(a) a = C.node2Center(a, 'GridCoordinates') a = C.initVars(a, 'centers:sx', f1, ['CoordinateX','CoordinateY','CoordinateZ']) a = C.initVars(a, 'centers:sy', f1, ['CoordinateX','CoordinateY','CoordinateZ']) a = C.initVars(a, 'centers:sz', f1, ['CoordinateX','CoordinateY','CoordinateZ']) a = C.normalize(a,['centers:sx','centers:sy','centers:sz']) test.testT(a,2) # On lists b = D.sphere((2.,0,0), 1., 50 ) b = C.node2Center(b, 'GridCoordinates')
# - dist2WallsEikonal (pyTree) - import Converter.PyTree as C import Connector.PyTree as X import Converter.Internal as Internal import Dist2Walls.PyTree as DTW import Geom.PyTree as D import Generator.PyTree as G import numpy DEPTH = 2 # Bloc cartesien N = 128; h = 0.1 a = G.cart((0.,0.,0.),(h,h,h),(N,N,1)) # Init wall sphere = D.sphere((6.4,6.4,0), 1., 100) sphere = C.convertArray2Tetra(sphere) sphere = G.close(sphere) t = C.newPyTree(['Base']); t[2][1][2] = [a]; C._initVars(t,'cellN=1') t = X.blankCellsTri(t, [[sphere]], numpy.array([[1]]), blankingType='node_in') # Condition aux limites t = X.setHoleInterpolatedPoints(t,depth=1,loc='nodes') C._initVars(t,'flag=({cellN}>1.)') t = DTW.distance2WallsEikonal(t,sphere,DEPTH=DEPTH,nitmax=10) C.convertPyTree2File(t, 'out.cgns') # Bloc cartesien N = 64; h = 0.2 a = G.cart((0.,0.,0.),(h,h,h),(N,N,1)); a[0] = 'cart2' # Init wall sphere = D.sphere((6.4,6.4,0), 1., 100)
# - sphere (pyTree) - import Geom.PyTree as D import Converter.PyTree as C import KCore.test as test a = D.sphere((0, 0, 0), 1., 20) t = C.newPyTree(['Base', 2, a]) test.testT(t, 1) test.writeCoverage(100)
# - getTriQualityMap (pyTree) - import Geom.PyTree as D import Generator.PyTree as G import Converter.PyTree as C import KCore.test as test a = D.sphere((0, 0, 0), 1, 50) a = C.convertArray2Tetra(a) a = G.close(a) t = C.newPyTree(['Base', 2]) t[2][1][2].append(a) t = C.initVars(t, 'Density', 2.) t = C.initVars(t, 'centers:cellN', 1.) t[2][1] = C.addState(t[2][1], 'Mach', 0.6) t = G.getTriQualityMap(t) test.testT(t)
# - octree (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Geom.PyTree as D import KCore.test as test # 2D : QUADTREE s = D.circle((0,0,0), 1., N=100); snear = 0.1 s = C.addVars(s,'ro'); s = C.initVars(s,'centers:cellN',1.) res = G.octree([s], [snear], dfarList=[], dfar=5.) test.testT(res, 1) # 3D : octree HEXA s = D.sphere((0,0,0), 1., 100); snear = 0.1 s = C.addVars(s,'ro'); s = C.initVars(s,'centers:cellN',1.) res = G.octree([s],[snear], dfar=5.) test.testT(res, 2)
# - adaptOctree (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Geom.PyTree as D import KCore.test as test s = D.circle((0,0,0), 1., N=100); snear = 0.1 o = G.octree([s], [snear], dfar=5.,balancing=1) o = C.initVars(o,'centers:indicator', 2.) res = G.adaptOctree(o) t = C.newPyTree(['OCTREE',2]); t[2][1][2] += [res] test.testT(t) s = D.sphere((0,0,0), 1., N=20); snear = 0.5 o = G.octree([s], [snear], dfar=5., balancing=1) o = C.initVars(o,'centers:indicator',2.) res = G.adaptOctree(o) t = C.newPyTree(['OCTREE']); t[2][1][2] += [res] test.testT(t,2)
# - magnitude (pyTree) - import Converter.PyTree as C import Geom.PyTree as D import Generator.PyTree as G import KCore.test as test a = D.sphere((0, 0, 0), 1., 50) a = G.getNormalMap(a) a = C.magnitude(a, ['centers:sx', 'centers:sy', 'centers:sz']) t = C.newPyTree(['Base', 2, a]) test.testT(t, 1)
# test maskXRay : points de percage (pyTree) import Connector.PyTree as X import Generator.PyTree as G import Geom.PyTree as D import Transform.PyTree as T import Converter.PyTree as C # retourne les pierce pts sous forme de 'NODE' surf = D.sphere((0, 0, 0), 0.5, 20) surf = T.rotate(surf, (0., 0., 0.), (0., 1., 0.), 90.) xray = X.maskXRay__(surf)
# - collarMesh (pyTree) import Converter.PyTree as C import Geom.PyTree as D import Transform.PyTree as T import Generator.PyTree as G s1 = D.sphere((0., 0., 0.), 1, 20) s2 = T.translate(s1, (1.2, 0., 0.)) s2 = T.homothety(s2, (0, 0, 0), 0.5) dhj = G.cart((0., 0., 0.), (1.e-2, 1, 1), (21, 1, 1)) dhk = G.cart((0., 0., 0.), (1.e-2, 1, 1), (11, 1, 1)) a = G.collarMesh(s1, s2, dhj, dhk, niterj=100, niterk=100, type='union') C.convertPyTree2File(a, "out.cgns")
#!/usr/bin/env python # coding: utf-8 r"""<TBC>""" import Generator.PyTree as G import Converter.PyTree as C import Transform.PyTree as T import Geom.PyTree as D N = 4 # Donor mesh a = G.cart((-2, -2, -2), (0.04, 0.04, 0.04), (200, 100, 100)) a = C.initVars(a, '{Density} = {CoordinateX}') a = T.splitNParts(a, N=3 * N) t = C.newPyTree(['Base']) t[2][1][2] += a C.convertPyTree2File(t, 'donor.cgns') # Receiver mesh b = D.sphere((1, 1, 1), 0.5, N=100) b = T.splitNParts(b, N=N) t = C.newPyTree(['Base']) t[2][1][2] += b C.convertPyTree2File(t, 'receiver.cgns')
# Mesh to blank a = G.cart((-5., -5., -5.), (0.5, 0.5, 0.5), (100, 100, 100)) t = C.newPyTree(['Cart']) t[2][1][2].append(a) # celln init t = C.initVars(t, 'centers:cellN', 1.) # Blanking t = X.blankCellsTetra(t, [[mT4]], [], blankingType="cell_intersect", tol=1.e-12) #C.convertPyTree2File(t, 'out3.cgns') test.testT(t, 3) # Test 4 # Tet mask mT4 = D.sphere((0, 0, 0), 20., 50) mT4 = C.convertArray2Tetra(mT4) mT4 = G.close(mT4) mT4 = G.tetraMesher(mT4, algo=1) #C.convertPyTree2File(mT4, 'sph.cgns') # Mesh to blank a = G.cart((-5., -5., -5.), (0.5, 0.5, 0.5), (100, 100, 100)) t = C.newPyTree(['Cart']) t[2][1][2].append(a) # celln init t = C.initVars(t, 'nodes:cellN', 1.) # Blanking t = X.blankCellsTetra(t, [[mT4]], [], blankingType="node_in", tol=1.e-12) #C.convertPyTree2File(t, 'out4.cgns') test.testT(t, 4)
# - moveCamera (pyTree) - import Geom.PyTree as D import CPlot.PyTree as CPlot import Converter.PyTree as C import Transform.PyTree as T import Generator.PyTree as G # Model a = D.sphere((0, 0, 0), 1., N=20) a = C.convertArray2Hexa(a) a = G.close(a) CPlot.display(a, posCam=(3, -1, 0.7), posEye=(0, 0, 0)) t = 0. for i in range(1000): # change model C._initVars(a, '{df}=0.1*cos(%f)*sin(10*pi*{CoordinateX})' % (t)) b = T.deformNormals(a, 'df') # Move camera CPlot.moveCamera([(3, -1, 0.7), (3, 5, 0.7), (3, 7, 0.7)], N=1000, pos=i) CPlot.display(b) t += 0.05
# - boolean difference (pyTree) - import Intersector.PyTree as XOR import Generator.PyTree as G import Converter.PyTree as C import Geom.PyTree as D import KCore.test as test s1 = D.sphere((0, 0, 0), 1, N=20) s2 = D.sphere((0., 1., 0.), 1, N=30) s1 = C.convertArray2Tetra(s1) s1 = G.close(s1) s2 = C.convertArray2Tetra(s2) s2 = G.close(s2) x = XOR.booleanMinus(s1, s2, tol=0.) test.testT(x)
#!/usr/bin/python # coding: utf-8 r"""<TBC>""" # Extraction de bandes x=cte sur un maillage surfacique import Converter.PyTree as C import Post.PyTree as P import Geom.PyTree as D import Generator.PyTree as G import Transform.PyTree as T # IN: surface+solution # Attention: les normales doivent etre dirigees vers l'exterieur a = D.sphere((0, 0, 0), 1, N=100) a = C.initVars(a, 'p={CoordinateX}+{CoordinateY}') a = C.convertArray2Tetra(a) a = G.close(a) # Extraction de lignes x = cste bb = G.bbox(a) xmin = bb[0] ymin = bb[1] zmin = bb[2] xmax = bb[3] ymax = bb[4] zmax = bb[5] bands = [] dx = 1. / 10 for i in range(10): x = i / 10.
#!/usr/bin/env python # coding: utf-8 r"""Generator : refine an octree inside a surface""" import numpy as np # Refine an octree mesh inside a surface defined by a sphere import Converter.PyTree as C import Generator.PyTree as G import Geom.PyTree as D import Connector.PyTree as X # IN: sphere a = D.sphere((0, 0, 0), 2, N=20) # Octree mesh generation around the sphere o = G.octree([a], [0.5], dfar=15., balancing=1) t = C.newPyTree(['Base']) t[2][1][2] += [o] BM = np.array([[1]]) def F(c, vol): r"""F Parameters ---------- c vol
# - octree (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Geom.PyTree as D import KCore.test as test # 2D : QUADTREE s = D.circle((0, 0, 0), 1., N=100) snear = 0.1 s = C.addVars(s, 'ro') s = C.initVars(s, 'centers:cellN', 1.) res = G.octree([s], [snear], dfar=5.) test.testT(res, 1) # 3D : octree HEXA s = D.sphere((0, 0, 0), 1., 100) snear = 0.1 s = C.addVars(s, 'ro') s = C.initVars(s, 'centers:cellN', 1.) res = G.octree([s], [snear], dfar=5.) test.testT(res, 2)
import Converter.PyTree as C import Connector.PyTree as X import Generator.PyTree as G import KCore.test as test import Geom.PyTree as D import Converter # transfers at centers a = D.sphere((5.,5.,5.),1) C._initVars(a,"centers:cellN=2.") C._initVars(a,"centers:Density=0.") indicesI,XI,YI,ZI = X.getInterpolatedPoints(a,loc='centers') zdnr = G.cart((0.,0.,0.),(1,1,1),(11,11,11)) C._initVars(zdnr,"centers:Density=1.") C._initVars(zdnr,"centers:cellN=1.") zdnrc = C.node2Center(zdnr) adt = C.createHook(zdnrc,'adt') fields = X.transferFields(zdnrc, XI, YI, ZI, hook=adt, variables=['Density']) C.freeHook(adt) test.testA(fields,1) # transfers at nodes a = D.sphere((5.,5.,5.),1) C._initVars(a,"cellN=2.") C._initVars(a,"Density=0.") indicesI,XI,YI,ZI = X.getInterpolatedPoints(a,loc='nodes') zdnr = G.cart((0.,0.,0.),(1,1,1),(11,11,11)) C._initVars(zdnr,"Density=1.") C._initVars(zdnr,"cellN=1.")