Changeset 4905


Ignore:
Timestamp:
Jan 4, 2008, 1:58:14 PM (16 years ago)
Author:
duncan
Message:

minor mod

Location:
anuga_core/source/anuga/pmesh
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/pmesh/graphical_mesh_generator.py

    r4902 r4905  
    849849            pass
    850850        meshArea = 0
    851         for triangle in tempMesh.getTriangulation():
    852              meshArea += triangle.calcArea()
    853         print "meshArea: ", meshArea
    854 
     851        #print "tempMesh.getTriangulation()", tempMesh.getTriangulation()
     852        meshArea = tempMesh.tri_mesh.calc_mesh_area()
    855853        maxArea = meshArea/numTriangles
    856854
     
    14281426        #self.createSetIcons()
    14291427        self.createVisualiseIcons()
    1430         #self.addCylinders() # !!!DSG start pmesh with a triangle
     1428        print "FIX THIS BEFORE "
     1429        self.addCylinders() # !!!DSG start pmesh with a triangle
    14311430        self.selectFunc('pointer')
    14321431        self.currentPath = os.getcwd()
  • anuga_core/source/anuga/pmesh/mesh.py

    r4902 r4905  
    568568                outline = colour,fill = ''
    569569                )
    570  
     570           
     571    def calc_mesh_area(self):
     572        area = 0
     573        for tri in self.triangles:
     574            vertices = []
     575            for v_index in range(3):
     576                vertices.append(self.vertices[tri[v_index]])
     577            ax = vertices[0][0]
     578            ay = vertices[0][1]
     579           
     580            bx = vertices[1][0]
     581            by = vertices[1][1]
     582           
     583            cx = vertices[2][0]
     584            cy = vertices[2][1]
     585           
     586            area += abs((bx*ay-ax*by)+(cx*by-bx*cy)+(ax*cy-cx*ay))/2
     587        return area           
    571588       
    572589class Mesh:
  • anuga_core/source/anuga/pmesh/test_mesh.py

    r4902 r4905  
    23472347        #print "", mode
    23482348       
     2349 
     2350   
     2351    def testgenerateMesh_calc_mesh_area(self):
     2352        a = Vertex (0.0, 0.0)
     2353        d = Vertex (0.0, 4.0)
     2354        f = Vertex (4.0,0.0)
     2355
     2356        s1 = Segment(a,d)
     2357        s2 = Segment(d,f)
     2358        s3 = Segment(a,f)
     2359
     2360        r1 = Region(0.3, 0.3,tag = 1.3,maxArea = .6)
     2361        #print r1
     2362        m = Mesh(userVertices=[a,d,f], userSegments=[s1,s2,s3], regions=[r1] )
     2363       
     2364        m.generateMesh("Q", maxArea = 2.1 )
     2365        calc_mesh_area = m.tri_mesh.calc_mesh_area()
     2366        #print "calc_mesh_area", calc_mesh_area
     2367        delta  = 0.0000000001
     2368        self.failUnless((8.0 < calc_mesh_area + delta) or
     2369                        (8.0 > calc_mesh_area - delta),
     2370                        'generated mesh is wrong!')
    23492371       
    23502372def list_comp(A,B):
Note: See TracChangeset for help on using the changeset viewer.