示例#1
0
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
示例#2
0
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
示例#3
0
#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)
示例#4
0
#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)