def extractMesh(t, extractionMesh, order=2, extrapOrder=1, constraint=40., tol=1.e-6, mode='robust', hook=None, graph=None): if graph is None: tb = Cmpi.createBBoxTree(t) tb2 = Cmpi.createBBoxTree(extractionMesh) graph = Cmpi.computeGraph(tb, type='bbox3', t2=tb2) tl = Cmpi.addXZones(t, graph) tl = Cmpi.convert2PartialTree(tl) ext = Cmpi.convert2PartialTree(extractionMesh) # print info zones = Internal.getZones(tl) print('Rank %d has %d source zones.' % (Cmpi.rank, len(zones))) ext = P.extractMesh(tl, ext, order=order, extrapOrder=extrapOrder, constraint=constraint, tol=tol, mode=mode, hook=hook) return ext
def optimizeOverlap(t, double_wall=0, priorities=[], graph=None, intersectionsDict=None): if graph is None: tb = Cmpi.createBBoxTree(t) graph = Cmpi.computeGraph(tb, type='bbox2', intersectionsDict=intersectionsDict) tl = Cmpi.addXZones(t, graph) tl = Cmpi.convert2PartialTree(tl) # print info zones = Internal.getZones(tl) #print 'Rank %d has %d zones.'%(Cmpi.rank, len(zones)) tl = X.optimizeOverlap(tl, double_wall, priorities, intersectionsDict) tl = Cmpi.rmXZones(tl) return tl
# - convert2PartialTree (pyTree) - import Converter.PyTree as C import Converter.Mpi as Cmpi import Distributor2.PyTree as Distributor2 import Generator.PyTree as G # Cree le fichier test if Cmpi.rank == 0: a = G.cart((0,0,0), (1,1,1), (10,10,10)) b = G.cart((12,0,0), (1,1,1), (10,10,10)) t = C.newPyTree(['Base',a,b]) C.convertPyTree2File(t, 'test.cgns') Cmpi.barrier() # Relit des zones par procs t = Cmpi.convertFile2SkeletonTree('test.cgns') (t, dic) = Distributor2.distribute(t, NProc=Cmpi.size, algorithm='fast') t = Cmpi.readZones(t, 'test.cgns', proc=Cmpi.rank) # Arbre partiel (sans zones squelettes) t = Cmpi.convert2PartialTree(t) if Cmpi.rank == 0: C.convertPyTree2File(t, 'out.cgns')
# - convert2PartialTree (pyTree) - import Converter.PyTree as C import Converter.Mpi as Cmpi import Distributor2.PyTree as Distributor2 import Generator.PyTree as G import KCore.test as test # Cree le fichier test if (Cmpi.rank == 0): a = G.cart((0, 0, 0), (1, 1, 1), (10, 10, 10)) b = G.cart((12, 0, 0), (1, 1, 1), (10, 10, 10)) t = C.newPyTree(['Base']) t[2][1][2] += [a, b] C.convertPyTree2File(t, 'test.cgns') Cmpi.barrier() # Relit des zones par procs t = Cmpi.convertFile2SkeletonTree('test.cgns') (t, dic) = Distributor2.distribute(t, NProc=Cmpi.size, algorithm='fast') t = Cmpi.readZones(t, 'test.cgns', proc=Cmpi.rank) # Arbre partiel (sans zones squelettes) t2 = Cmpi.convert2PartialTree(t) if (Cmpi.rank == 0): test.testT(t2, 1) t2 = Cmpi.convert2PartialTree(t, Cmpi.rank) if (Cmpi.rank == 0): test.testT(t2, 2)