Changeset 334

Show
Ignore:
Timestamp:
03/26/08 18:35:05 (8 months ago)
Author:
powell
Message:

Remove single-phase triangles (area test won't work when refined).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/matml/src/ternary/ternary.c

    r332 r334  
    122122  printf ("qhull version: %s\n", qh_version); 
    123123 
     124  /* Take out hull triangles which are on the main function (in one phase) */ 
     125  for (i=0; i<hullnumverts; i++) 
     126    { 
     127      double x0 = points [hullverts [3*i]].C2, 
     128        y0 = points [hullverts [3*i]].C3, 
     129        x1 = points [hullverts [3*i+1]].C2, 
     130        y1 = points [hullverts [3*i+1]].C3, 
     131        x2 = points [hullverts [3*i+2]].C2, 
     132        y2 = points [hullverts [3*i+2]].C3; 
    124133#ifdef DEBUG 
    125   for (i=0; i<hullnumverts; i++) 
    126     printf ("Facet %d vertices: %d %d %d\n", i, hullverts[3*i], 
    127             hullverts[3*i+1], hullverts[3*i+2]); 
     134      printf ("Facet %d vertices: %d %d %d\n", i, hullverts[3*i], 
     135              hullverts[3*i+1], hullverts[3*i+2]); 
    128136#endif 
     137      /* XY-projection area test (only works for uniform triangles) */ 
     138      if (fabs ((x1-x0)*(y2-y0) - (x2-x0)*(y1-y0)) <= 1.1/loop_max/loop_max) 
     139        { 
     140          for (j=i; j<hullnumverts-1; j++) 
     141            { 
     142              hullverts [3*j]   = hullverts [3*j+3]; 
     143              hullverts [3*j+1] = hullverts [3*j+4]; 
     144              hullverts [3*j+2] = hullverts [3*j+5]; 
     145            } 
     146          hullnumverts--; 
     147          i--; 
     148        } 
     149    } 
     150 
     151  printf ("Binodal region has %d facets\n", hullnumverts); 
    129152 
    130153  if (i=GeomviewDisplayTriangleCOFF 
    131       (pfd, "Free Energy Convex Hull", "ech", "-face +edge", 
     154      (pfd, "Binodal and Tie Lines", "ech", "-face +edge", 
    132155       (loop_max+1)*(loop_max+2)/2, points, hullnumverts, hullverts)) 
    133156    { printf ("main: Error %d in Geomview Display\n", i); exit (i); }