# octree s = D.sphere((0, 0, 0), 1., 100) snear = 0.1 t = G.octree([s], [snear], dfar=5., balancing=1, ratio=2) # ngon converion t = C.convertArray2NGon(t) # ngon conformization t = C.conformizeNGon(t) t = G.close(t) # ngon close cells t = XOR.closeOctalCells(t) #t = XOR.reorientExternalFaces(t) # ngon converion of the sphere s = C.convertArray2NGon(s) # ngon converion to the nuga format s = XOR.convertNGON2DToNGON3D(s) #s = XOR.reorientExternalFaces(s) # Boolean operation x = XOR.diffSurf(t, s, tol=0., preserve_right=1, agg_mode=2) # agg_mode=2 : full mode aggregation x = XOR.agglomerateSmallCells(x, 0., 10.) t = C.newPyTree(['Base', 2]) t[2][1][2].append(x) C.convertPyTree2File(t, 'diffs.cgns')
t2 = G.close(t2) #C.convertPyTree2File(t1, 'm.plt') #C.convertPyTree2File(t2, 's.plt') # test 1 : volume/volume res = XOR.getOverlappingFaces(t1, t2, RTOL=0.05, ps_min=0.95) # create a list of polygon list (t1), one list per zone nb_zones = len(res) t1zones_pgids = [] for i in range(nb_zones): t1zones_pgids.append(res[i][0]) t = XOR.agglomerateCellsWithSpecifiedFaces(t1, t1zones_pgids) test.testT(t, 1) #test 2 : volume/surface t2 = P.exteriorFaces(t2) t2 = XOR.convertNGON2DToNGON3D(t2) res = XOR.getOverlappingFaces(t1, t2, RTOL=0.05, ps_min=0.95) t1zones_pgids = [] for i in range(nb_zones): t1zones_pgids.append(res[i][0]) t = XOR.agglomerateCellsWithSpecifiedFaces(t1, t1zones_pgids) test.testT(t, 2)