THREE-DIMENSIONAL CONSTRAINED :

A MINIMALIST APPROACH. 2 Paulo Roma Cavalcanti1 , Ulisses T. Mello

1 Federal University of Rio de Janeiro, Rio de Janeiro, RJ, Brazil. ([email protected]) Present Address: IBM T.J. Watson Research Center

2 IBM T.J. Watson Research Center, Yorktown Heights, NY, U.S.A. ([email protected])

ABSTRACT D

In this paper we summarize our experiences with 3 constrained Delaunay triangulation algorithms for D industrial applications. In addition, we report a robust implementation process for constructing 3 con- strained triangulations from initial unconstrained triangulations, based on a minimalist approach, in which we minimize the use of geometrical operations such as intersections. This is achieved by inserting Steiner

points on missing constraining edges and faces in the initial unconstrained triangulations. This approach D allowed the generation of tetrahedral meshes for arbitrarily complex 3 domains.

Keywords: Delaunay triangulation, constrained triangulations, three-dimensional ,

industrial strength triangulations, tetrahedralization, computational geometry.

D 3D 1 INTRODUCTION Unlike the 2 case, Delaunay triangulations do not have the property of maximizing the minimum an- The automatic generation of unstructured meshes for gle. Nonetheless, they are very attractive from a ro-

bustness point of view due to the simplicity of the De- D three-dimensional (3 ) objects is essential for many areas of applied sciences, such as Finite Element Anal- launay criteria and because they require only two pred- ysis (FEA), Computer Graphics, Biomechanics, and icates. In addition, the quality of Delaunay triangu- etc. Automatic mesh generation is needed for produc- lations can be improved by various local transforma- tivity reasons; it takes an extensive amount of time and tions [12]. effort to generate meshes by any technique that is not The generation of unconstrained triangulations is triv- fully automated [1].

ial [3, 13]. However, the application of the aforemen- D A general problem for automatic mesh generation is to tioned algorithms to generate 3 triangulations sub-

ject to constraining external and internal boundaries is D create a mesh that represents 3 objects bounded by polygonal faces and possibly with interior constrain- complex and, in general implementations of these al- ing faces and edges. Algorithms for mesh generation gorithms, have robustness problems when applied to have been a research topic over the last two decades. industrial applications. This occurs due to the finite Basically, three main families of algorithms have been precision of the representation of floating point num- described in the literature: octree methods [2, 1]; De- bers and the associated round-off errors, which may launay-based methods [3, 4, 5, 6]; and advancing front cause in some cases an implementation to abort, get methods [7, 8, 9, 10]. A good survey of these methods trapped in infinite loops or produce invalid meshes. can be found in Owen [11].

119 For industrial purposes, a mesh generator should be 2 DELAUNAY TRIANGULATIONS

capable of handling thousands of describing

the constraining boundaries, and it is expected to pro- In n dimensions, a triangulation of a set of points

T (V ) duce a valid mesh in a reasonable wall-clock time. Fur- V is a set of non-intersecting simplices , whose thermore, there should not be restrictions on the po- vertices form V , and whose union completely fills the sitioning of points defining polygons other than their of V . Simplices of dimension 3 are called topological consistency. In this study, we discuss a tetrahedra, whose faces are simplices of dimension 2 process that: (triangles), whose edges are simplices of dimension 1 (segment lines), and whose vertices are simplices of dimension 0 (points). 1) uses known techniques to produce Delaunay-based

meshes that honor the geometry of the boundary There are many ways to triangulate the set V , and the

of the object; Delaunay triangulation is the one in which, for any

(V ) n of T , there is an empty dimensional 2) produces valid meshes; and sphere that passes through its vertices. A sphere is said to be empty if there is no vertex in its interior. A De-

3) requires only the topological consistency of the launay triangulation is unique if and only if there are

n + 2) V

input polygons. no ( co-spherical vertices in the set . D A 3 constrained Delaunay triangulation of a set of A prerequisite for the automatic mesh generation is the planar simple polygons F is the triangulation in which

robustness of the algorithms, which is directly depen- F V is the set of vertices of and any is ob-

dent on the type of geometric operations necessary to

(V ) tained as the union of faces of T . generate the mesh. In the literature, two methods heav- ily dependent on intersections have been reported to Delaunay triangulations can be constructed by reduc- generate constrained Delaunay triangulations [14, 15]. ing all geometric operations to only two predicates:

In our implementation, intersections are used only to P recover missing constraining faces which were not re- 1 - point-in-sphere testing.

covered by an heuristic that we have created for insert- P

2 - locating a point in relation to a and its two ing Steiner points. Generally, we obtain conforming associated semi-spaces. meshes without calculating any intersection and using only two predicates. This reduction is an important step to minimize the Although there are various techniques for mesh im- errors associated with the computer’s finite precision, provement (e.g.,[16, 17]), an initial mesh is necessary which affects directly the robustness of the mesh gen- to apply any of these techniques. Here, we will focus eration process. A detailed discussion of a robust adap- our discussion on the generation of the initial mesh, but tive implementation, based on exact arithmetic of these we will not discuss refinement or mesh improvement predicates, can be found in [6]. techniques. The traditional unconstrained Delaunay triangulation This paper summarizes our approach to generate a con- algorithm uses only pointsets, and thus there is no guar- strained Delaunay Triangulation in the following four antee that the boundary faces will be present on the steps: triangulation of its convex hull. This occurs if there is a set of faces that do not appear in any triangulation of the input points [14]. However, an unconstrained 1) generate unconstrained Delaunay triangulation us- mesh generator can be used as the starting point for ing the object pointset (section 2.1). the implementation of a constrained mesh generator. This is normally achieved by either adding extra points 2) recover missing constraining edges (section 3.1). (Steiner points) to the triangulation on missing faces, or in some cases, by flipping faces of the tetrahedra of 3) recover missing constraining faces (section 3.2). the starting mesh. Our process relies on Steiner points tied to a simple way of choosing their positions. 4) perform local triangulation of tetrahedra if there still are missing faces (section 3.3). Two-dimensional constrained Delaunay triangulation

120 D is considered a closed problem [18], but in 3 there hand, comparisons with floating point numbers gener-

are still many issues to be solved. Although it is al- ally need tolerances. The best compromise is obtained P

ways possible to produce a constrained triangulation by using the predicate 2 . D of a general 2 domain without Steiner points, this is

An alternative approach for the cavity algorithm is the D

not true in 3 . This is the main factor that precludes D

3 flip algorithm created by Barry Joe [4, 5], which

D 3D

the simple generalization of 2 algorithms to .

D 2D generalizes to 3 the well known flip algorithm of Lawson [20]. The flip algorithm is very elegant 2.1 Computing Delaunay Triangulations and has the advantage of keeping a triangulation at all times. However, it is more complex to implement.

Watson [3] and Bowyer [13] described the first incre- D

The 3 flip algorithm is based on the fact that there mental algorithms to compute n dimensional Delau- are only two ways for triangulating a five point convex nay triangulations. These algorithms are based on the

hexahedron: one with 2 tetrahedra and the other with 3

n + 1) n fact that choosing the ( points that lie on di-

tetrahedra. One of the two possible triangulations must mensional empty spheres, for defining n dimensional be the Delaunay triangulation of the five points. There- simplices, guarantees the appearance of Voronoi ver- fore, two local transformations switch between these tices (circumcenters of the spheres) in the dual Voronoi

two triangulations (from 2 to 3 tetrahedra and vice-

n + 1) tesselation. Therefore, these ( points form a min- versa), and a third local transformation is used when imal cluster of data that are immediately adjacent. four out of the five points are coplanar (a 4 4 flip). Watson’s incremental algorithm adds one point at a In the flip algorithm, the that contains the time to the triangulation, which initially has a single

newly inserted point v is retriangulated by connecting

n dimensional simplex large enough to envelop all v its vertices to v . If falls on a face or on an edge, the

points in the set V . His algorithm is generically known

procedure is basically the same, but the triangulation is as the cavity algorithm, since it deletes all n dimen-

more complex. Then, a list l F of all faces that defines a sional simplices that are no longer empty after the in-

tetrahedron when connected to v is constructed. These sertion of the new point, forming a polyhedral cavity faces are the initial candidates to be flipped. The point- enveloping the newly inserted point.

in-sphere testing is performed using the sphere defined l F The cavity is then triangulated by connecting the newly by the three points of a face f in plus the fourth

inserted point to all vertices on the cavity boundary. vertex belonging to the tetrahedron at the opposite side

v v f To prevent structural inconsistencies, the cavity must of f from . If the sphere contains , the face is be star-shaped [19], satisfying the condition of point considered for flipping. convexity. This condition is easily added to the cavity The preconditions to use the three different types of algorithm by enforcing:

flips are the following:

v

(p x ) 00

n 3 2 flip: there must be an edge incident to with i i (1)

exactly three incident faces.

th

n i

f

where i is the normal to the face on the cavity, 2 3 flip: the two tetrahedra sharing (one of them

th

x i p v i is any point on the face, and is the position of incident to ) must define a convex set.

the newly inserted point. When a face on the cavity

v f is not strictly point convex, the simplex to which it is 4 4 flip: has to be on the same plane of and

connected is deleted, forming a larger cavity. there has to be four faces incident to the visible v edge of f from (the edge that is going to be One can easily verify by looking at the corresponding flipped). Voronoi diagram that no vertex is disconnected dur- ing this process. A word of caution: we have noticed After a flip, two to four new faces are added to l F , that if tolerances are used on the right hand side of in- and the process is repeated until l F is empty. Note equality (1) instead of 0.0, the produced cavity can be that the 3 2 flip is the only one that does not require a incorrect. The deletion of simplices may disconnect a geometric test, and therefore should be tried first. set of vertices, or even a part of the triangulation, in the case that a newly inserted point is located too close The sequence of flips is completely arbitrary, but some- to an existing vertex or group of vertices. On the other times the preconditions for a flip are not satisfied, and

121 the face is considered non-flippable. Joe [4] describes Since the recovery of a missing face may cause the in detail the circumstances in which every non-locally removal of a previously recovered edge, a new edge optimal interior face in the triangulation is not trans- recovery phase is then executed. formable (there is a connected NLONT-cycle). In these

A necessary step in generating a constrained triangu- D circumstances, the 3 flip algorithm produces a pseudo- locally optimal Delaunay triangulation. In our opin- lation is finding the constraining edges and faces that ion, this is the major flaw of the algorithm. are missing in the unconstrained triangulation. For this

purpose, we maintain a list of pointers linking the tri- D

Because there are many common tasks shared by 2 angulation vertices to the points defining the constrain-

++

D C and 3 algorithms, we designed a base class ing polygons.

from which we derive the classes responsible for the

D 3D 3D 2 and triangulations. From the triangulation class we further derive two classes to perform triangu- 3.1 Edge Recovery lations based on the flipping and the cavity algorithms. The process of recovering missing edges that we have 2.2 Point Location used is called stitching [21, 15], and in this process a vertex is inserted in the triangulation at the midpoint In an incremental algorithm, an accurate localization of a missing edge. This recovery process exploits a of a point in the triangulation is a critical factor to ob- property of Delaunay triangulations that each vertex in tain a valid mesh. Although mathematically simple, a the triangulation is connected to its closest vertex by robust implementation of point location is not a sim- an edge. The midpoint insertion process is recursively ple task. To avoid a naive implementation that tests repeated to each remaining missing half segment of an every simplex for point containment, the adjacency in- edge until the edge is recovered as a collection of tri- formation available in the triangulation should be used angulation edges. to guide the point location throughthe mesh. Although the use of baricentric coordinates is the simplest way Every vertex inserted in the triangulation must also be of performing a point-in-simplex testing, we use pred- inserted on the corresponding bounding edge of the

polygon. However, because a newly inserted vertex P icate 2 in order to enhance the robustness of point location query. may cause the deletion of a previously present con- strained edge in the triangulation, a list of deleted edges When input points are too closely clustered very small must be kept. This process is repeatedly applied until tetrahedra are generated, and they may cause numeri- this list is empty. Unfortunately, this process does not cal problems for the point location routines. We have always converge. Two constraining edges with differ-

adopted a useful procedure that minimizes this prob- ent lengths, incident to a high degree vertex, and bear-  lem by delaying the insertion of points that are closer ing an angle smaller than 60 , may lead to a mutually than a predefined distance to the previously inserted destructive and diminishing spiral, since there may be points. These clustered points are only inserted in the an interaction among all constraining edges incident to triangulation at the end of the insertion process. the same vertex.

Ruppert has cleverly solved this convergence problem D 3 CONSTRAINED TRIANGULATIONS in 2 by creating the concept of protecting circles

around vertices [22]. We have extended this concept D Delaunay-based algorithms described on the previous to 3 using protecting spheres that are centered at ver- section are used to triangulate the convex hull of a set tices to which constraining edges are incident. When of input points without any constraint. When a set these incident edges are divided at the intersection with of polygonal faces defining the external and internal the protecting sphere, no part of any edge remains miss- boundaries of a model has to be part of the final trian- ing or is removed, since all intersecting points are co- gulation, the missing edges and polygonal faces of the spherical. bounding surface must be inserted into the triangula- tion. To recover a missing edge, Ruppert [22] describes the following edge subdivision procedure: the first subdi- We generate these constrained triangulations in two vision is at its midpoint, while the second subdivision steps. First, all constraining edges are recovered, and is at the closest power-of-two distance from the orig- then the constraining faces are recovered sequentially. inal vertex. All other subdivisions are at edge mid-

122 Figure 1: Triangulation of a head (base view). Note the Figure 2: Constraining edges defining the base of the result of the application of a protecting sphere around head shown in Figure 1. Note the high degree central the central vertex. vertex with 30 incident edges bearing small angles. points and, consequently, will also be at a power-of-

two distances. D form a 2 Delaunay triangulation over the polygon [23].

This process works for any arbitrarily small, constrain- We use this property to verify the presence of a con-

D T (V ) ing, missing edge because after a few subdivisions, ev- straining face in a 3 triangulation, .

ery vertex inserted to recover a piece of a constraining D edge will be at the same power-of-two distance from The verification process constructs a draft 2 trian- the original vertex. In Figure 1, we display the result gulation of all vertices bounding a polygon P . This

draft triangulation partitions P into a set of simplices, D

of this process applied to the 3 triangulation of a hu-

(P ) = f (p p p )g

a b c

man head. The base of the head is not planar (Figure 2) i . To simplify and speed up

P ) and possesses a high degree vertex, in the center, with the generation of ( , we pre-triangulate all non- constraining incident edges bearing small angles. The convex constraining polygons.

protecting sphere around the central vertex eliminates

(P ) (p p p ) (P )

a b c Using , we check if i

the non-convergent destructive process during the re-

(p p p ) T (V ) P

a b c i i . If any is missing, is covery of its incident constraining edges.

recovered by inserting Steiner points, SP , with an

heuristic described later in this section, in such a way

 

P = T (V ) V = V SP

i i 3.2 Face Recovery that: i , and .

The recovery of constraining faces is much more com- If there are four or more co-circular points on P , the

P ) plicated than the process of edge recovery. The first verification process may fail because ( is not uni-

difficulty occurs in the verification of the presence of que. It is worthy to note that this verification pro-

(V ) a constraining polygon in the triangulation. Even if all cess only works if T is strictly Delaunay. To solve

the edges bounding the polygon are in the triangula- this problem we make a copy of the polygon that is

(V ) tion, this does not imply that the corresponding polyg- partitioned by the edges in T connecting pairs of onal face is also in the triangulation. In addition, a its bounding vertices. We then verify which partition

constraining polygon may be present in the triangula- pieces on the polygon copy are triangular and corre-

(V ) tion as a collection of adjacent triangles. spond to a face in T . Using this approach, it is pos- sible to detect the presence of triangular pieces even In a Delaunay triangulation, if a planar polygon is pre- when the points defining the polygon are not in gen- sent as a collection of triangular faces, these faces must eral position.

123 Figure 3: Resulting triangulation of the union of a do- Figure 4: Distribution of Steiner points on a model decahedron and an icosahedron after refinement and with small dihedral angles. using Steiner points to recover constraining boundary faces. tive to anything but vertices, and a cycle of recovering faces coupled with simultaneous destruction of previ-

Our heuristic for inserting Steiner points on the faces ously inserted faces may never converge. is simple: for each missing triangular piece i , we find if any of its bounding edges is missing. In the case The non-convergence is a function of the dihedral an-

that there are missing edges, one of them is chosen gle between input polygonal faces, and if all angles 

and a vertex is inserted at its midpoint. When all three are greater or equal 90 the convergence holds [6]. In edges are present but i is not, a vertex is inserted at the practice, this is a very restrictive limitation and unac- midpoint of all three edges, as displayed in Figure 3. ceptable for several applications. In this figure, we show a triangulated model resulting from the union of a dodecahedron and an icosahedron. In our implementation, we mark a face as non-reco-

vered when either the precision of the machine is rea-

For each missing i , one or three Steiner points may be ched or a predefined number of Steiner points have

P )

inserted, and ( is rebuilt. This process is repeated been inserted on a single face.



P ) T (V ) until ( . Because the insertion of new points may cause the removal of previously recovered 3.3 Handling Non-recovered Faces faces, we maintain a list of constraining faces to be reinserted. When the process of face recovering described in the previous section fails, we are forced to abandon the This heuristic facilitates significantly the process of global Delaunay criteria and accept triangulations that creating Steiner points on the edges of missing sub-

are not strictly Delaunay. Hazlewood [14] has shown faces i , by using essentially the same process described that it is possible to produce constrained triangulations earlier for edge recovery in section 3.1. by just retriangulating the tetrahedra whose interiors In Figure 4, we show the Steiner points inserted to re- are intersected by a missing, constraining, convex poly- cover all the polygonal faces of a model composed by gon. First, all points on the intersection of the miss- four pyramids touching upon their apices and an inter- ing polygon and the edges and faces of tetrahedra are secting block. found. Then, every intersected tetrahedron is retrian- gulated locally using the Delaunay criteria. The vertex Unfortunately, the process of face recovery does not set on each side of the polygon plane is triangulated always converge. The reason for the non-convergence separately and there should be no visibility across this is the Delaunay criteria, which is completely insensi- plane during the triangulation.

124 Note that the local retriangulation can be obtained by tainment attribute of all tetrahedra that can be reached other criteria than Delaunay. If constrained edges are from the seed without crossing the region boundary. already part of the triangulation, the local retriangula- Simplices classified as being in the external region are tion can be easily obtained by using local operators as simply deleted, eliminating the tetrahedra outside the described in [15]. These operators basically treat the model. cases that occur when the polygon completely inter- sects a tetrahedron, and partitions it into a set of new Finally, the attributes of each vertex, edge and face of tetrahedra, and/or pyramids with quadrilateral bases, the model are assigned to the corresponding set of sim- and/or prisms with two triangular and three quadrilate- plices in the triangulation. ral faces.

Since each tetrahedron is processed separately, there 5 EXAMPLES is no guarantee that all intersected tetrahedra will be retriangulated consistently by these operators. This We have selected four examples with complex shapes is because a prism resulting from an intersection may (Figures 5, 6, 9, and 10) to discuss important aspects have all its quadrilateral faces already triangulated (by involved in the triangulation process, as well as to pro- preprocessed adjacent tetrahedra) in such a way that vide a general assessment of the number of simplices the prism cannot be triangulated without inserting a generated during the triangulation. In all these ex- point in its interior. amples, the constraining faces were recovered with- out any intersection, and the resulting triangulations are strictly Delaunay.

4 SIMPLEX CLASSIFICATION The first example is the triangulation of a typical me- chanical part with relatively large dihedral angles (Fig- After recovering all faces, we obtain a triangulation of ure 5). In the initial unconstrained mesh, there were 24 the convex hull containing the constrained Delaunay missing edges out of a total of 3054 edges, and 3 miss-

triangulation of the model. Hence, the triangulation ing faces out of 1622 faces. From these, a total of 26 D of the convex hull needs to be carved out by remov- edges, and 3 faces had to be reinserted. The 3 un-

ing the tetrahedra outside the model, and its simplex constrained triangulation of the convex hull had 8101 D attributes must be set according to the properties of tetrahedra whereas the final constrained 3 triangu- the model. We have implemented an efficient classi- lation had practically half as many (4047 tetrahedra). fication scheme that takes advantage of the adjacency The reduction in the number of tetrahedra occurred be- information to minimize containment tests. cause the unconstrained mesh included all the tetrahe- dra in the convex hull.

In our applications we have to mesh multi-domain mod- D els that are composed of several regions, each one with The second example is the 3 triangulation of a model a distinct property and composition (e.g.,[24, 25]). For with 3 regions generated by a “genetic experiment” in- completeness, we also define an external region that volving the union of a deer and a dolphin (Figure 6). represents the region of the space outside the model. It is important to realize the impact of the intersection After a model is triangulated and refined, each sim- of constraining input surfaces on the number of tetra- plex of the mesh is classified in order to assign proper- hedra in the final triangulation. These intersections in- ties to the elements in each region of the model and to duce a significant increase in the number of tetrahedra specify the simplices corresponding to surfaces defin- in the final mesh. A good measure for this increase can ing boundary conditions, as required by FEA. be assessed by comparing the initial number of miss- ing edges and faces in the initial unconstrained trian- During the edge and face recovery phases, we mark the gulation with its respective number in the constrained simplices that correspond to vertices, edges and faces triangulation. Another relevant metric is the number of of the original model. These marked simplices define edges and faces that were removed and subsequently

the internal and external boundaries of the model in the reinserted in the triangulation when a vertex was in- D 3 triangulation. To classify the simplices, we make a serted into their equatorial sphere. point-in-region testing just to a single tetrahedron and determine the region where it belongs. Then, we use In Figure 7, for instance, we show the vertices on the this tetrahedron as a seed for the traversing. Using curve at the intersection of the two animals. Note the the adjacency information, we visit and set the con- high density of the vertex distribution along this curve

125 Figure 5: Triangulation of a mechanical part.

Figure 6: Triangulation of the union of two models when compared with the average distance of vertices representing a deer and a dolphin. in the model. This poor vertex distribution provides a good robustness test.

In contrast to the first example, the final constrained D 3 triangulation had 14944 whereas the initial uncon- strainded triangulation of the convex hull was com- posed by only 5869 tetrahedra. The number of missing edges and faces in the initial unconstrained triangula- tion also increases substantially. There were 503 miss- ing edges, and 24 missing faces out of a total of 2989 edges and 2052 faces, respectively. From these, 1473 edges, and 130 faces had to be reinserted.

The third example is the triangulation of a geological model with 6 regions generated by the intersection of surfaces representing a salt dome, three horizons, and a bounding box (Figure 8). Here, 818 edges and 20 faces were missing of a total of 6169 edges and 4259 faces, respectively. From these, a total of 5698 edges and 103 faces had to be reinserted. The initial un-

constrained triangulation of the convex hull and the fi- D nal constrained 3 triangulation had 11300 and 50935

tetrahedra, respectively. D In Figure 9, we show the 3 triangulation of the ge- ological model with 31505 tetrahedra. This mesh was generated using an automatic point creation scheme to Figure 7: Curve at the intersection of the models add points within the domain and onto the constraining shown in Figure 6. faces. In spite of the creation of these points, no inter- section was also necessary to obtain the mesh. Note the high concentration of small tetrahedra around the

126 Figure 10: Triangulation of a porous sediment frame- work containing only 8 grains. Figure 8: Input surfaces of a geological model. salt dome at the center.

The last example is a typical result of our approach af- ter using a set of techniques to improve the mesh qual- ity, such as automatic point creation and smart smooth- ing [17]. In Figure 10 we show the triangulation of a model with 9 regions representing the porous frame- work of a sedimentary rock in micro-scale with only 8 grains. The final triangulation had 21895 tetrahedra and 2398 points automatically inserted within the do- main and onto the constrained faces.

The quality of this mesh can be assessed by the dis- tribution of the minimum dihedral angles as shown in Figure 11. It is noteworthy that the majority of the

tetrahedra has the minimum dihedral angle larger than



85 89194%)

24 ( . The dihedral angles in the mesh

 

208 1762 ]

are in the range [2 and the solid angles

 

1749 2036 ]

in the range [0 . Only 14 tetrahedra

06394%)

(0 have minimum dihedral angles smaller



55 than 3 .

6 CONCLUSIONS Figure 9: Triangulation of the geological model shown

in Figure 8. In this paper we summarize our experiences with the D implementation of a robust 3 mesh generator using a minimalist approach to generate constrained Delau- nay triangulations. This mesh generator has been a

127 present, it may fail to converge. We circumvent this problem by using a local triangulation process when Histogram of Minimum Dihedral Angles the recovery of a constraining face fails. These local 30 triangulations require the computation of intersections, which it is not desirable because of its impact on the 20 robustness of the entire process.

10 Acknowledgement 0 number of tetrahedra (%) 0 10 20 30 40 50 60 70 minimum dihedral angle We would like to thank Wendell Wiggins for his in- sights on tetrahedralization issues in geophysics and Mike Henderson and Tom Jackman for critically re- viewing this manuscript. We would also like to thank Figure 11: Histogram of minimum dihedral angles of Western Geophysical for partially funding this work. the mesh shown in Figure 10.

References valuable tool for us to generate meshes to geological and engineering applications using the Finite Element [1] Mark S. Shephard and Marcel K. Georges. Auto- Method. matic three-dimensional mesh generation by the finite octree technique. International Journal for

In spite of some robustness issues, the generation of Numerical Methods in Engineering, 32:709–749, D

unconstrained 3 Delaunay triangulations is straight- 1991. D forward. However, the generation of constrained 3 Delaunay triangulations requires a considerable effort. [2] Will J. Schroeder and Mark S. Shephard. A com- bined octree/Delaunay method for fully auto- In Geoscience it is common to create multi-domain matic 3-d mesh generation. International Journal earth models by the intersection of a set of input polyg- for Numerical Methods in Engineering, 29:37– onal surfaces. These intersection operations may gen- 55, 1990. erate vertices closely clustered. For instance, we have

built geological models in which the distance between [3] David F. Watson. Computing the n-dimensional

7 4

Delaunay tesselation with application to Voronoi

10 ] vertices is in the range [10 . Despite this poor vertex distribution, we have been successful in trian- polytopes. The Computer Journal, 24(2):167– gulating these models. 172, 1981.

Based on our experiences, both the cavity and flip al- [4] Barry Joe. Three-dimensional triangulations gorithms are equivalent in terms of robustness. How- from local transformations. SIAM J. Sci. Stat. ever, we tend to use the cavity algorithm more fre- Comput., 10(4):718–741, July 1989. quently because it is slightly faster and always pro- [5] Barry Joe. Construction of three-dimensional duces a strict Delaunay triangulation, which is impor- Delaunay triangulations using local transforma- tant for checking the presence of constrained faces in tion. Computer Aided Geometric Design, 8:123– the triangulation. Flipping operations, nevertheless, 142, 1991. are also useful for mesh improvement algorithms (e.g., [16]). [6] Jonathan Richard Shewchuk. Delaunay Refine- ment Mesh Generation. PhD thesis, Department In our approach, we rely on a scheme for inserting of Computer Science, Carnegie Mellon Univer- Steiner points to recover missing faces. This scheme sity, Pittsburgh, PA, 1997. avoids geometrical operations involving intersections, and for most models it is sufficient to generate good [7] Rainald Lohner. Generation of three-dimensional quality meshes. The advantage of our implementation unstructured grids by the advancing front is that we constrain our operations to just two predi- method. In Proceedings of the 26th AIAA cates most of the time. However, in some cases, when Aerospace Sciences Meeting, Reno, Nevada, small dihedral angles between constraining faces are 1988.

128 [8] T.J. Barth and D.C. Jesperson. The design [20] C.L. Lawson. Transforming triangulations. Dis- and application of upwind schemes on unstruc- crete Math., 3:365–372, 1972. tured meshes. In Proceedings of the 27th AIAA Aerospace Sciences Meeting, Reno, Nevada, [21] Nigel P. Weatherill. Delaunay triangulation in 1989. computational fluid dynamics. Computers and Mathematics with Applications, 24(5/6):129– [9] Dimitri J. Mavriplis. An advancing front Delau- 150, September 1992. nay triangulation algorithm designed for robust- [22] Jim Ruppert. Results on Triangulation and High ness. Technical report 92-49, ICASE, October Quality Mesh Generation. PhD thesis, Depart- 1992. ment of Computer Science, University of Cali- [10] Rainald Lohner. Progress in grid generation via fornia at Berkeley, Berkeley, CA, 1992. the advancing front technique. Engineering with [23] Jean-Daniel Boissonnat. Shape reconstruction Computers, 12:186–210, 1996. from planar cross sections. Computer Vision, Graphics and Image Processing, 44:1–29, 1988. [11] Steven Owen. A survey of unstructured mesh generation technology. In Proceedings of [24] Paulo Roma Cavalcanti, Paulo C.P. Carvalho, and the Seventh International Meshing Roundtable, Luiz F. Martha. Nonmanifold modeling: An ap- Dearborn, Michigan, October 1998. Sandia Na- proach based on spatial subdivisions. Computer- tional Laboratories. Aided Design, 29(3):209–220, March 1997. [12] Barry Joe. Delaunay versus max-min solid angle [25] Ulisses T. Mello and Paulo Roma Cavalcanti. triangulations for three-dimensional mesh gener- A topologically-based framework for simulating ation. International Journal for Numerical Meth- complex geological processes. Research report ods in Engineering, 31:987–997, 1991. RC21339, IBM T.J. Watson Research Center, Yorktown Heights, New York, November 1998. [13] Adrian Bowyer. Computing Dirichlet tessela- tions. Computer Journal, 24(2):162–166, 1981.

[14] Carol Hazlewood. Approximating constrained tetrahedralizations. Computer Aided Geometric Design, 10:67–87, 1993.

[15] Nigel P. Weatherill and O. Hassan. Efficient three-dimensional Delaunay triangulation with automatic point creation and imposed boundary constraints. International Journal for Numerical Methods in Engineering, 37:2005–2039, 1994.

[16] Lori Freitag and Carl Olliver-Gooch. Tetrahe- dral mesh improvement using face swapping and smoothing. International Journal for Numerical Methods in Engineering, 40:3979–4002, 1997.

[17] Lori Freitag. On combining Laplacian and optimization-based mesh smoothing techniques. Trends in Unstructured Mesh Generation, ASME Applied Mechanical Division, 220:37–44, 1997.

[18] Joseph O’Rourke. Computational Geometry in C. Cambridge University Press, New York, 1994.

[19] F. P. Preparata and M. I. Shamos. Computational Geometry: An Introduction. Springer-Verlag, New York, 1985.

129