def writeOutTriangulation(tri, filebase="mesh", nbase=0, verbose=0): """ collect necessary steps to write out files for triangle data structures """ failed = False if tri == None: failed = True return failed if not nbase in [0, 1]: print 'must have vertex base numbering = 0 or 1, got nbase= ', nbase failed = True return failed #end nodes = triangulate.getPoints(tri) patts = triangulate.getPointAttributes(tri) pmarks = triangulate.getPointMarkers(tri) if verbose > 0: print 'writing node file' printNodeFile(nodes, filebase, patts, pmarks, nbase=nbase) elems = triangulate.getTriangles(tri) eatts = triangulate.getTriangleAttributes(tri) if verbose > 0: print 'writing elements file' printElemFile(elems, filebase, eatts, nbase=nbase) segms = triangulate.getSegments(tri) segmmks = triangulate.getSegmentMarkers(tri) holes = triangulate.getHoles(tri) regions = triangulate.getRegions(tri) if verbose > 0: print 'writing poly file' printPolyFile(nodes, segms, filebase, patts, pmarks, segmmks, holes, regions, nbase=nbase) edges = triangulate.getEdges(tri) edgemks = triangulate.getEdgeMarkers(tri) if verbose > 0: print 'writing edges file' printEdgeFile(edges, filebase, edgemks, nbase=nbase) neigs = triangulate.getNeighbors(tri) if verbose > 0: print 'writing neighbors file' printNeighborFile(neigs, filebase, nbase=nbase) return failed
def writeOutTriangulation(tri,filebase="mesh",nbase=0,verbose=0): """ collect necessary steps to write out files for triangle data structures """ failed = False if tri == None: failed = True return failed if not nbase in [0,1]: print 'must have vertex base numbering = 0 or 1, got nbase= ',nbase failed = True return failed #end nodes = triangulate.getPoints(tri) patts = triangulate.getPointAttributes(tri) pmarks= triangulate.getPointMarkers(tri) if verbose > 0: print 'writing node file' printNodeFile(nodes,filebase,patts,pmarks,nbase=nbase) elems = triangulate.getTriangles(tri) eatts = triangulate.getTriangleAttributes(tri) if verbose > 0: print 'writing elements file' printElemFile(elems,filebase,eatts,nbase=nbase) segms = triangulate.getSegments(tri) segmmks= triangulate.getSegmentMarkers(tri) holes = triangulate.getHoles(tri) regions= triangulate.getRegions(tri) if verbose > 0: print 'writing poly file' printPolyFile(nodes,segms,filebase,patts,pmarks, segmmks,holes,regions,nbase=nbase) edges = triangulate.getEdges(tri) edgemks= triangulate.getEdgeMarkers(tri) if verbose > 0: print 'writing edges file' printEdgeFile(edges,filebase,edgemks,nbase=nbase) neigs = triangulate.getNeighbors(tri) if verbose > 0: print 'writing neighbors file' printNeighborFile(neigs,filebase,nbase=nbase) return failed
#construct boundary segments nsegs = 4 segsin= Numeric.zeros((nsegs,2),Numeric.Int) segsin[0,:] = [3,0] #left segsin[1,:] = [1,2] #right segsin[2,:] = [0,1] #bottom segsin[3,:] = [2,3] #top segmarks = Numeric.zeros((nsegs,),Numeric.Int) segmarks[:] = [0,1,2,3] print 'setting segments=\n',segsin print 'segmarks=\n',segmarks triangulate.setSegments(trin,segsin,segmarks) segsout = triangulate.getSegments(trin) segmarksout= triangulate.getSegmentMarkers(trin) print 'segmentsOut=\n',segsout print 'segmarksout=\n',segmarksout ntatts = 2 nelem = elems1.shape[0] tatts = Numeric.zeros((nelem,ntatts),Numeric.Float) for i in range(nelem): tatts[i,:] = Numeric.ones(ntatts,)*float(i) #end i print 'try to set triangle attributes \n',tatts triangulate.setTriangleAttributes(trin,tatts) carea = Numeric.ones((nelem,),Numeric.Float)
#construct boundary segments nsegs = 4 segsin = Numeric.zeros((nsegs, 2), Numeric.Int) segsin[0, :] = [3, 0] #left segsin[1, :] = [1, 2] #right segsin[2, :] = [0, 1] #bottom segsin[3, :] = [2, 3] #top segmarks = Numeric.zeros((nsegs, ), Numeric.Int) segmarks[:] = [0, 1, 2, 3] print 'setting segments=\n', segsin print 'segmarks=\n', segmarks triangulate.setSegments(trin, segsin, segmarks) segsout = triangulate.getSegments(trin) segmarksout = triangulate.getSegmentMarkers(trin) print 'segmentsOut=\n', segsout print 'segmarksout=\n', segmarksout ntatts = 2 nelem = elems1.shape[0] tatts = Numeric.zeros((nelem, ntatts), Numeric.Float) for i in range(nelem): tatts[i, :] = Numeric.ones(ntatts, ) * float(i) #end i print 'try to set triangle attributes \n', tatts triangulate.setTriangleAttributes(trin, tatts) carea = Numeric.ones((nelem, ), Numeric.Float) print 'try to set triangle area constraints \n', carea