# - compIndicatorField (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Geom.PyTree as D import Post.PyTree as P #---------------------- # indicateur en centres #---------------------- s = D.circle((0, 0, 0), 1., N=100) snear = 0.1 o = G.octree([s], [snear], dfar=10., balancing=1) npts = o[1][0][0] o = G.getVolumeMap(o) o, valInf, valSup = P.computeIndicatorField(o, 'centers:vol', nbTargetPts=2 * npts, bodies=[s]) C.convertPyTree2File(o, 'out.cgns')
K = 1./math.sqrt(0.001*2*math.pi) K2 = 1./(2*0.001) def F(x, y): if 0.05 < abs(y) < 0.7: return K*math.exp(-(x-0.5)**2*K2) else: return 0. o = C.initVars(o, 'F', F, ['CoordinateX', 'CoordinateY']) # Computation of the indicator onto the octree mesh npts = Internal.getZoneDim(o)[1] o2, valInf, valSup = P.computeIndicatorField(o, 'F', nbTargetPts=1.2*npts, refineFinestLevel=0, bodies=[naca]) # Adaptation of the octree wrt the indicator o2 = G.adaptOctree(o2) # Interpolate solution on adapted octree o = C.rmVars(o, ['centers:indicator', 'F']) o2 = P.extractMesh([o], o2) # Save file t = C.newPyTree(['Octree', 'Octree2']) t[2][1][2] += [o] t[2][2][2] = [o2] C.convertPyTree2File(t, 'out.cgns')
# - compIndicatorField (pyTree) - import Generator.PyTree as G import Converter.PyTree as C import Geom.PyTree as D import Post.PyTree as P import KCore.test as test #---------------------- # indicateur en centres #---------------------- s = D.circle((0, 0, 0), 1., N=100) snear = 0.1 o = G.octree([s], [snear], dfar=10., balancing=1) o = G.getVolumeMap(o) # test sans bodies o, valInf, valSup = P.computeIndicatorField(o, 'centers:vol') test.testT(o, 1) # test avec bodies indicator, valInf, valSup = P.computeIndicatorField(o, 'centers:vol', nbTargetPts=5000, bodies=[s]) test.testT(o, 2) # indicateur en noeuds def initIndic(v, w): return 3 * v + 4 * v * v