Skip to main content
NIHPA Author Manuscripts logoLink to NIHPA Author Manuscripts
. Author manuscript; available in PMC: 2013 Dec 1.
Published in final edited form as: Comput Aided Geom Des. 2012 Jul 13;29(9):707–721. doi: 10.1016/j.cagd.2012.07.001

Quality Tetrahedral Mesh Smoothing via Boundary-Optimized Delaunay Triangulation

Zhanheng Gao a,b, Zeyun Yu a,*, Michael Holst c
PMCID: PMC3489504  NIHMSID: NIHMS394738  PMID: 23144522

Abstract

Despite its great success in improving the quality of a tetrahedral mesh, the original optimal Delaunay triangulation (ODT) is designed to move only inner vertices and thus cannot handle input meshes containing “bad” triangles on boundaries. In the current work, we present an integrated approach called boundary-optimized Delaunay triangulation (B-ODT) to smooth (improve) a tetrahedral mesh. In our method, both inner and boundary vertices are repositioned by analytically minimizing the Inline graphic error between a paraboloid function and its piecewise linear interpolation over the neighborhood of each vertex. In addition to the guaranteed volume-preserving property, the proposed algorithm can be readily adapted to preserve sharp features in the original mesh. A number of experiments are included to demonstrate the performance of our method.

Keywords: Tetrahedral Mesh Smoothing, Optimal Delaunay Triangulation, Mesh Quality, Feature-Preserving, Volume-Preserving

1. Introduction

In scientific and engineering applications, partial differential equations (PDEs) are often used for modeling the development and evolution of the underlying phenomena. In most cases, however, it is difficult and sometimes impossible to find the exact analytic solutions of the PDEs so that numerical approaches have to be employed to approximate the desired solutions. The finite element analysis (FEA) is one of the most useful tools for this purpose. In the FEA, the domain over which the PDEs are defined is partitioned into a mesh containing a large number of simple elements, such as triangles and quadrilaterals in 2D cases and tetrahedra and hexahedra in 3D cases (Djidjev, 2000; Phillippe and Baker, 2001; Ohtake et al., 2001; Knupp, 2002, 2003; Brewer et al., 2003). The quality of the mesh, typically measured by the minimum and maximum angles, can significantly affect the interpolation accuracy and solution stability of the FEA (Babuska and Aziz, 1976; Shewchuk, 2002). Therefore, improving the mesh quality has been an active research area in computational mathematics and computer science. Due to the great popularity in the FEA, 3D tetrahedral meshes will be the focus of our present work.

The methods of mesh quality improvement can be classified into three categories as follows. (1) topology optimization, which modifies the connectivity between mesh vertices while keeping vertex positions unchanged. The edge- or face-swapping methods are commonly used in topology optimization (Freitag and Ollivier-Gooch, 1997; Klingner and Shewchuk, 2008). (2) vertex insertion/deletion, which inserts/deletes vertices to/from the mesh (Chew, 1997; Nave et al., 2004; Escobar et al., 2005; Klingner and Shewchuk, 2008). (3) vertex smoothing, which repositions the coordinates of the vertices while keeping the connectivity unchanged (Bank and Smith, 1997; Freitag, 1997; Canann et al., 1998). Generally speaking, mesh quality improvement is best achieved when all the three methods are properly combined in the mesh smoothing scheme (Klingner and Shewchuk, 2008). In our method described below, we shall focus on the vertex repositioning strategy, i.e. vertex smoothing.

One of the most popular vertex smoothing method is Laplacian smoothing, which moves a mesh vertex to the weighted average of its incident vertices (Herrmann, 1976; Field, 1988; Hansbo, 1995). If the neighborhood of the vertex is not a convex polyhedron, the Laplacian smoothing may not lead to a well-positioned mesh. Some angle-based methods were proposed for smoothing 2D triangular and 3D surface meshes (Zhou and Shimada, 2000; Xu and Newman, 2006; Yu et al., 2008). However, these methods are difficult to extend to 3D tetrahedral meshes. Du and Wang (2003) presented a method based on the Centroid Voronoi Tessellation (CVT) concept that is restricted to inner vertices of a mesh. A peeling off operation has to be taken to improve bad tetrahedra on boundaries. Freitag and Plassmann (2001) proposed a method of smoothing planar quadrilateral meshes. Some researchers presented methods for smoothing hexahedral mesh (Li et al., 1999; Knupp, 2001, 2000b; Delanaye et al., 2003; Menédez-Díaz et al., 2005). More recently, some new techniques of vertex smoothing were proposed. Vartziotis et al. (2008, 2009) presented methods of stretching the vertices of a tetrahedron at one time. The methods were extended by Vartziotis and Wipper (2010) to hexahedral mesh. Xu et al. (2009) assigned a quality coordinate for every vertex and calculated the new position by maximizing the combined quality of tetrahedra incident to it. Sirois et al. (2010) used a metric non-conformity driven method to smooth hybrid meshes such as a mesh with hexahedral and tetrahedral elements.

In addition to the above methods, approaches using numerical optimization to compute the new position of a vertex has been an important branch of the vertex smoothing category. The new position of a vertex is computed by optimizing a function that measures the local or global quality of the mesh (Parthasarathy and Kodiyalam, 1991; Canann et al., 1993; Chen et al., 1995; Zavattieri et al., 1996; Freitag Diachin and Knupp, 1999; Knupp, 2000a; Freitag and Plassmann, 2000; Freitag and Knupp, 2002; Escobar et al., 2003; Mezentsev, 2004). In particular, the optimal Delaunay triangulation (ODT) approach (Chen and Xu, 2004) tries to minimize the Inline graphic error between a paraboloid function and its piecewise linear interpolation over the neighborhood of a vertex. This idea has been extended to 3D tetrahedral mesh smoothing in Tournois et al. (2009). Despite its great success in mesh quality improvement, the original ODT method was derived to optimize the positions of inner vertices only. In other words, the tetrahedral mesh to be smoothed must possess quality triangles on boundaries. In many real mesh models, however, “bad” tetrahedra often occur near or on the boundaries of a domain (Labelle and Shewchuk, 2007; Zhang et al., 2010). Therefore, how to handle the boundary vertex smoothing is an important yet unsolved problem in the original ODT method.

In the present work, we shall provide an analytical method named boundary-optimized Delaunay triangulation (B-ODT) to find the optimal positions of all mesh vertices, including those on boundaries, by minimizing an Inline graphic error function that is defined in the incident neighborhood of each vertex. The minimization is an unconstrained quadratic optimization problem and has an exact analytic solution when the coefficient matrix of the problem is positive definite. As mentioned above, the quality improvement is often limited if we only perform one method of the three categories (Klingner and Shewchuk, 2008). For this reason, the vertex insertion operation is utilized prior to the vertex repositioning technique.

The remainder of the present paper is organized as follows. Section 2 is focused on the details of the B-ODT mesh smoothing algorithms. The original ODT as well as the vertex insertion schemes are also discussed in this section. We present some experimental results and quality analysis in Section 3, followed by our conclusions in Section 4.

2. Boundary-Optimized Delaunay Triangulation

The framework of our mesh quality improvement method is shown in Fig. 1. The vertex insertion operation is performed prior to the vertex repositioning. We try to insert as few vertices as possible in order to maintain the size of the original mesh. The detail of vertex insertion is described in Subsection 2.3. As for vertex smoothing, three algorithms are summarized below and the details will follow.

Figure 1.

Figure 1

The framework of our mesh quality improvement method

  • Algorithm 1. The original ODT algorithm for smoothing inner vertices

  • Algorithm 2. The basic B-ODT algorithm for smoothing boundary vertices. This algorithm is guaranteed to preserve the volume of the mesh.

  • Algorithm 3. The advanced B-ODT algorithm for smoothing boundary vertices. This algorithm preserves both the volume and sharp features of the mesh.

Algorithm 1.

Original ODT for Smoothing Inner Vertices

for every inner vertex x0 do
  1. For every adjacent tetrahedron τ do

    Compute Sτ, nτ and ||xτ,ix0||2

  2. Sum up all the values of 13Sτnτk=13||xτ,k-x0||2

  3. Compute the volume of Ω0, i.e. |Ω0|

  4. Compute x* using (3)

Algorithm 2.

Basic B-ODT Smoothing for Boundary Vertices with Volume Perserving

for every boundary vertex x0 do
  1. Compute the the normal vector of the tangent plane at x0, then select two orthogonal unit vectors s, t on the tangent plane.

  2. Compute the following coefficients:

    1. E=14Ω0-160i=1m(<s,Yi+Yi+1><s,Yi×Yi+1>)
    2. F=14Ω0-160i=1m(<t,Yi+Yi+1><t,Y1×Y2>)
    3. G=-160i=1m(<s,Yi+Yi+1><t,Yi×Yi+1>+<t,Yi+Yi+1><s,Yi×Yi+1>)
    4. H=112<s,τΩSτnτLτ>-160i=1m(Yi2+Yi+12+YiYi+1)<s,Yi×Yi+1>
    5. I=112<t,τΩSτnτLτ>-160i=1m(Yi2+Yi+12+YiYi+1)<t,Yi×Yi+1>

      where Lτ=j=13||xτ,j-x0||2, (· × ·) is the cross product operation.

  3. Solve the following degree-2 linear equation system:

    [2EGG2F][uv]=[-H-I] (10)
  4. The solution of (10) gives rise to the optimal solution of x* as x* = x0 + us + vt.

Algorithm 3.

Advanced B-ODT Smoothing for Boundary Vertices with Feature Preserving

for every boundary vertex x0 do
  1. Compute the feature line of x0, suppose the unit vector of this line is d.

  2. Compute the following coefficients:

    1. A=14Ω0-160i=1m<d,Yi+Yi+1><d,Yi×Yi+1>
    2. B=112<d,τΩSτnτLτ>-160i=1m(Yi2+Yi+12+YiYi+1)<d,Yi×Yi+1>
  3. Compute x* as x* = x0 + f d with f=-B2A.

Since the advanced B-ODT algorithm can preserve both the volume and sharp features of the original mesh, in the rest of this paper, we will refer to B-ODT algorithm as the advanced B-ODT algorithm, unless otherwise specified.

2.1. Original ODT algorithm

For an inner vertex x0 in a tetrahedral mesh Inline graphic, suppose the neighborhood of x0 is Ω0 consisting of a set of tetrahedra {τ}. Let x* be the smoothing result of x0 and Ω* the neighborhood of x* (or the union of tetrahedra incident to x*) in Inline graphic, then x* can be computed by the following original ODT formula (Chen and Xu, 2004):

x=x0-12Ω0τΩ0(τi=13||xτ,i-x0||2) (1)

where xτ,i are the (three) vertices except x0 of the incident tetrahedron τ. Theoretically, (1) is the unique solution of an optimization problem in which the objective function is the Inline graphic interpolation error between the paraboloid function f(x) = ||xx0||2 and its linear approximation fI (x) over Ω*. fI (x) is constructed by lifting the the vertices of Ω* onto f(x). The Inline graphic error between f(x) and fI (x) is:

Error=||f-fI||L1=xΩf(x)-fI(x)dx (2)

We would point out that for an inner vertex x0, the neighborhoods Ω0 and Ω* are identical but it is not true when x0 is a boundary vertex, which explains why the original ODT approach cannot be directly used to optimize boundary vertices. Another important property of (2) is that, if all vertices are fixed, the solution of (2) is proved to be the Delaunay triangulation of these vertices (Chen and Xu, 2004). However, Delaunay triangulation does not guarantee high quality – the positions of the vertices are sometimes more important. In (2) we restrict the optimization problem to the neighborhood of x* with the assumption that all other vertices are fixed. The optimization problem hence becomes finding the optimal position of x* to minimize the error in (2).

A more direct way to compute the optimal position of x* is (Chen, 2004):

x=x0-12Ω0τΩ0(13Sτnτi=13||xτ,i-x0||2) (3)

Here Sτ and nτ are the area and unit normal vector of tτ, which is the opposite triangle of x0 in τ, nτ points to the inside of τ.

The following is the algorithm of smoothing inner vertices based on the original ODT method:

2.2. B-ODT algorithms

Let x* be the smoothing result of a boundary vertex x0 using the method described below. Ω0 and Ω* are the neighborhoods of x0 and x* respectively (since x0 is a boundary vertex, the two neighborhoods are not identical any more). The basic idea of our B-ODT algorithms is to minimize the error in (2). According to (Chen and Xu, 2004), (2) can be rewritten in the following form:

Error=14xkΩ(||xk-x0||2ωk)-xΩ||x-x0||2dx (4)

where xk denotes one of the vertices of Ω*, ωk is xk’s neighborhood restricted in Ω*, and |ωk| is its volume.

Note that x* is also a vertex in Ω*, we rewrite (4) into the following equation:

Error=14(||x-x0||2Ω+τΩ(τi=13||xτ,i-x0||2))-Ω||x-x0||2dx (5)

Since x0 is a boundary vertex, we let x* move on the tangent plane of the boundary surface at x0. Specifically, let x*x0 = us + vt, where s and t are two orthogonal vectors on the tangent plane and u and v are the corresponding shifting distances. Furthermore, we prove in Appendix B that the tangent plane constraint guarantees that the volumes of Ω* and Ω0 are equal.

By using the constraint x* = x0 + us + vt, we have:

||x-x0||2Ω=(u2+v2)Ω (6)
τi=13||xτ,i-x0||2=13Sτ<nτ,us+vt+x0-cτ>i=13||xτ,i-x0||2 (7)

where Sτ and nτ are defined the same as in (3). cτ is any vertex in the triangle tτ. Here we take cτ as the barycenter of tτ. < ·, ·> is the inner product operation.

Now we represent the integral ∫Ω*||xx0||2dx in (5) by x* in order to compute the gradient of the objective function. The details are given in Appendix A. Suppose {yi}i=1m are the neighboring vertices of x0 on the boundary of the tetrahedral mesh Inline graphic. The order of yi is determined in the following way: for any i = 1, · · ·, m, the cross product between x0yi and x0yi+1 points to the outside of Ω0 (let ym+1 = y1). Thus the integral ∫Ω*||xx0||2dx has the following form:

xΩ||x-x0||2dx=xΩ0||x-x0||2dx+160i=1m(X2+Yi2+Yi+12+XYi+XYi+1+YiYi+1)det(X,Yi,Yi+1) (8)

Here X* = x*x0, Yi = yix0, det(·) is the determinant operation. Note that x* is limited on the tangent plane at x0, (8) can be rewritten as:

xΩ||x-x0||2dx=xΩ0||x-x0||2dx+160i=1m[u2+v2+Yi2+Yi+12+<us+vt,Yi>+<us+vt,Yi+1>+<Yi,Yi+1>]det(us+vt,Yi,Yi+1) (9)

(9) appears as a cubic function of u, v. However, we prove in Appendix C that the coefficients of all cubic terms are actually zero. Therefore, (9) reduces to a quadratic function of u, v.

Now we can safely say that the objective function in (5) is in fact a quadratic function of u, v. By setting the gradient of (5) as zero, we get a linear system and the solution of this system gives rise to the minimization of (5). In Appendix C, we prove that the coefficient matrix of this linear system is identical to the Hessian matrix of (5). According to the optimization theory, (5) has a unique solution as long as the Hessian matrix is positive definite.

The algorithm of smoothing boundary vertices based on the above discussion is given below.

Besides keeping x* on the tangent plane at x0, we further restrict x* moving along the features of the mesh to preserve the sharp features. Here, we refer to the feature direction at x0 as the line that passes through x0 and has the minimal curvature value among all the directions. This line is on the tangent plane; thus the volume is still preserved when x* moves along this feature line. The direction of the feature line is found by computing the eigenvalues of the following tensor voting matrix at x0:

M=i=1mSininiT (11)

Here Si is the area of surface triangle x0yiyi+1 and ni = (nix, niy, niz)T is the unit normal vector of x0yiyi+1. The matrix M is a positive definite matrix and has three orthogonal eigenvectors. The feature line is determined in the following way. Suppose that the three eigenvalues of M are μ0, μ1, μ2 with μ0μ1μ2 and e0, e1, e2 are the corresponding eigenvectors. If μ0μ1μ2 ≈ 0, then the neighborhood of x0 corresponds to a planar feature. In this case, the above Algorithm 2 is used to smooth x0. If μ0μ1μ2 ≈ 0, then x0 lies on an edge (linear) feature and the direction of the edge is e2. In this case, the following Algorithm 3 is used to smooth x0. If μ0μ1μ2 ≫ 0, then x0 is at a corner which should not be changed during the vertex smoothing process.

2.3. Removing bad tetrahedra by vertex insertion

There are several types of tetrahedra that can cause very large and/or small dihedral angles (Cheng et al., 1999) (see Fig. 2). One of the most important properties of ODT and B-ODT is the circumsphere property (Tournois et al., 2009), i.e., the lengths of edges incident to vertex x0 tend to be equal after ODT or B-ODT smoothing. Therefore, the ODT and B-ODT algorithms can automatically improve the quality of spire, spear, spindle, spike, splinter and wedge, as the bad angles in these tetrahedra are caused by one or more short edges. For the spade, cap and sliver types of tetrahedra, we shall insert one or two vertices in order to make some short edges, which are then improved by the ODT or B-ODT algorithms, thereby improving the quality of the entire mesh. The details are given below.

Figure 2.

Figure 2

Types of bad tetrahedron with too large and/or too small dihedral angles (Cheng et al., 1999)

For a spade in Fig. 3(a), we first compute the projection of A onto the edge BC, i.e. E. Thus the edge BC is split into two new edges BE, CE and the tetrahedron ABCD is split into two new tetrahedra ABDE, ACDE (Fig. 3(b)). Because AE is a short edge, we smooth A using the ODT or B-ODT method according to the type of A (Fig. 3(c)).

Figure 3.

Figure 3

Vertex insertion and smoothing for a spade

For a cap in Fig. 4(a), we first compute the projection of A on face BCD, i.e. E. Then we split the face BCD into three new faces BCE, CDE and DBE, and split the original tetrahedron ABCD into three new tetrahedra ABCE, ACDE and ADBE (Fig. 4(b)). Finally, the ODT and B-ODT methods are applied to the new tetrahedra to improve the quality of the mesh (Fig. 4(c)).

Figure 4.

Figure 4

Vertex insertion and smoothing for a cap

For a sliver in Fig. 5(a), we insert two vertices E and F on the edge AC and BD respectively. The two new vertices are selected such that the distance between E and F is the minimum between AC and BD. Then AC and BD are both split into two edges, and the tetrahedron ABCD is split into four new tetrahedra (Fig. 5(b)). By performing the ODT or B-ODT methods on E and F, the quality of the new tetrahedra can be improved (Fig. 5(c)).

Figure 5.

Figure 5

Vertex insertion and smoothing for a sliver

3. Results

The proposed B-ODT algorithms were tested on several tetrahedral meshes generated from triangular surface meshes that serve as the boundaries of the domains. For every mesh, the smoothing process shown in Fig. 1 is repeated for 20 times. The mesh smoothing results are summarized in Table 1. The comparisons between the B-ODT algorithm (Algorithm 3) and several other approaches, including the original ODT algorithm, topology optimization and the Natural ODT algorithm (Tournois et al., 2009), are also provided in Tab. 1. In Fig. 612, the original and smoothed meshes are compared and from the histograms we can see significant improvement of dihedral angles in these meshes.

Table 1.

Comparisons of Dihedral Angles using Different Methods

Model Vertex Number min Angle max Angle
Random Sphere Original Mesh 729 5.86° 164.70°
B-ODT 731 15.20° 150.25°
ODT 729 6.28° 162.46°
Topology Optimization 729 5.86° 164.70°
NODT 729 6.21° 173.64°

2Cmp Original Mesh 10415 5.57° 163.24°
B-ODT 10415 18.10° 152.66°
ODT 10415 11.64° 158.06°
Topology Optimization 10415 5.57° 163.24°
NODT 10415 10.70° 157.19°

Retinal Original Mesh 14921 1.25° 173.85°
B-ODT 14948 15.10° 164.58°
ODT 14921 1.29° 168.13°
Topology Optimization 14921 1.25° 172.09°
NODT 14921 0.00° 179.99°

RyR Original Mesh 18585 6.19° 170.74°
B-ODT 18585 18.52° 149.25°
ODT 18585 10.34° 158.32°
Topology Optimization 18585 6.19° 170.74°
NODT 18585 7.78° 162.74°

2Torus Original Mesh 4635 5.96° 164.92°
B-ODT 4656 16.92° 152.05°
ODT 4635 9.46° 157.53°
Topology Optimization 4635 6.85° 164.75°
NODT 4635 0.01° 179.98°

FanDisk Original Mesh 9131 6.04° 164.98°
B-ODT 9162 16.80° 160.53°
ODT 9131 9.59° 163.53°
Topology Optimization 9131 6.78° 164.98°
NODT 9131 0.08° 179.86°

Figure 6.

Figure 6

The original mesh model (a) and the smoothed result (b). In both meshes, the outer and cross-section views are shown. The minimum dihedral angles of these two meshes are 5.86° and 15.20° respectively, and the maximum dihedral angles are 164.70° and 150.25° respectively.

Figure 12.

Figure 12

Original and smoothed FanDisk models. The minimum dihedral angles of these two meshes are 6.04° and 16.80° respectively, and the maximum dihedral angles are 164.98° and 160.53° respectively.

The main motivation of extending the original ODT method to the B-ODT algorithms is to find the optimal positions for boundary vertices such that the quality of the entire tetrahedral mesh is improved. To illustrate the quality improvement, we compare the smoothing results by using the B-ODT and ODT algorithms. In Table 1, all the minimum and maximum dihedral angles by using the B-ODT algorithm are better than those by the original ODT algorithm, especially on the Retinal model. Note that the minimum dihedral angle in Retinal model is very small and likely occurs on the boundary of the model. Therefore, the proposed B-ODT algorithm can perform much better than the original ODT method.

Although the topology optimization is utilized in many mesh smoothing algorithms, this technique alone may not always improve the quality of a mesh. To show this, we smooth all the meshes in Tab. 1 using only the topology optimization and compare the results with those obtained by using our B-ODT algorithm. From Tab. 1, we can see that the ability of improving mesh quality by using topology optimization alone is limited, compared to the B-ODT algorithm.

The tetrahedral mesh in Fig. 6 is generated by tetrahedralizing randomly-sampled point set on a unit sphere (Si et al., 2010). There are 642 points on the sphere and 87 inner vertices are inserted by the tetrahedralization algorithm. The minimum and maximum dihedral angles of this Random Sphere model are 5.86° and 164.70° respectively. After 20 times of running the B-ODT algorithm, the minimum and maximum dihedral angles are improved to 15.20° and 150.25° respectively. Note that the distribution of the boundary vertices of the smoothed mesh is much more uniform than that of the original mesh, demonstrating that the B-ODT algorithm can smooth both inner and boundary vertices in a tetrahedral mesh.

The B-ODT algorithm is also tested on tetrahedral meshes generated from several biomedical molecules: 2CMP molecule in Fig. 7, Retinal molecule in Fig 8 and Ryanodine receptor (RyR) in Fig. 9. The quality of 2CMP and RyR meshes reaches the best after only 3 B-ODT iterations although all the models in Tab. 1 are processed 20 times. We can also see from Tab. 1 that there are no new vertices introduced in 2CMP and RyR models and only 27 new vertices are inserted in the Retinal mesh. In Fig. 10, we demonstrate the convergence of minimum and maximum dihedral angles with respect to the number of iterations on the Retinal model using the B-ODT algorithm.

Figure 7.

Figure 7

Original and smoothed 2CMP models. The minimum dihedral angles of these two meshes are 5.57° and 18.10° respectively, and the maximum dihedral angles are 163.24° and 152.66° respectively.

Figure 8.

Figure 8

Original and smoothed Retinal models. The minimum dihedral angles of these two meshes are 1.25° and 15.10° respectively, and the maximum dihedral angles are 173.85° and 164.58° respectively.

Figure 9.

Figure 9

Original and smoothed RyR models. The minimum dihedral angles of these two meshes are 6.19° and 18.52° respectively, and the maximum dihedral angles are 170.74° and 149.25° respectively.

Figure 10.

Figure 10

The convergence of minimum and maximum dihedral angles with respect to the number of iterations on the Retinal model using the B-ODT algorithm. Note that on the left the curves of ODT and topology optimization are almost identical.

The 2Torus (Fig. 11) and FanDisk (Fig. 12) models show the feature-preserving property of the B-ODT algorithm. In order to measure the difference between the original and smoothed meshes, we compute the relative Hausdorff distances between the surface meshes of the original and smoothed models, as shown in Tab. 2. Here, the Hausdorff distance is first computed using the standard definition and then scaled as follows. Let h be the absolute Hausdorff distance between the original and smoothed meshes, and L be the largest side length of the bounding box of the original mesh. The relative Hausdorff distances is defined by hL, which measures the difference of the original and smoothed models relative to the size of the original model. From Tab. 2 we can see that the relative Hausdorff distances between the original and smoothed models are very small showing that our B-ODT algorithm preserves the shape of the original models quite well.

Figure 11.

Figure 11

Original and smoothed 2Torus models. The minimum dihedral angles of these two meshes are 5.96° and 16.92° respectively, and the maximum dihedral angles are 164.92° and 152.05° respectively.

Table 2.

Relative Hausdorff Distance between Original and Smoothed Meshes

Models Random Sphere 2Cmp Retinal RyR 2Torus FanDisk
Rel. Hausdorff Distance 0.37% 1.00% 0.63% 0.88% 0.15% 0.28%

The original ODT has also been extended by Tournois et al. (2009) to 3D tetrahedral mesh smoothing and the method is called Natural ODT (NODT). The NODT method computes the new position of a boundary vertex x0 in a tetrahedral mesh Inline graphic by adding a certain amount of compensation to the weighted centroid of the neighborhood of x0. The compensation is a weighted sum of the normal vectors of the boundary triangles around x0. Although boundary vertices are considered in the NODT method, the new positions calculated have to be projected onto the boundary of Inline graphic to preserve the volume and shape of the original mesh. Therefore, the NODT method does not optimize the positions for boundary vertices. The smoothing results by using the afore-mentioned NODT method are shown in Table 1, where we can see that our B-ODT algorithm significantly outperforms the NODT method. Sometimes the results obtained by the NODT method are even worse than the original meshes. The running time of B-ODT and NODT is compared in Tab. 3.

Table 3.

Comparison of Running Time (20 iterations)

Random Sphere 2Cmp Retinal RyR 2Torus FanDisk
B-ODT 13.94s 203.11s 382.53s 369.70s 92.14s 168.57s
NODT 11.85s 159.80s 323.12s 291.24s 64.08s 124.24s

4. Conclusions

We described a method of simultaneously smoothing both inner and boundary vertices of a tetrahedral mesh under a unified optimization framework. The B-ODT algorithm presented can preserve sharp features very well and is guaranteed to preserve the volume of the original mesh. For every boundary vertex, the optimal position is computed by solving a linear system. The algorithm is numerically robust and easy to implement because the order of the linear equation system is only degree 2. Although the vertex insertion operation is integrated into the B-ODT approach to further improve the quality of the mesh, the number of new vertices added is very small compared to the size of the original mesh. The experimental results have shown the effectiveness of the proposed method.

Acknowledgments

The work described was supported in part by an NIH Award (Number R15HL103497) from the National Heart, Lung, and Blood Institute (NHLBI) and by a subcontract from the National Biomedical Computation Resource (NIH Award Number P41 RR08605). The content is solely the responsibility of the authors and does not necessarily represent the official views of the sponsors.

Appendix A. Integral over Ω*

An important observation is that Ω0 and Ω* contain almost the same set of vertices except that x0 ∈ Ω0 and x* ∈ Ω*. There is an exact relationship between Ω0 and Ω*:

Ω=Ω0+i=1msign(((x-x0)×ni)z)τi, (A.1)

where τi is a tetrahedron with vertices x0, x*, yi, yi+1 and the definitions of {yi, i = 1, · · ·, m} are given in Section 2.2. ni is the normal vector of triangle Δx0yiyi+1 pointing outside of Ω0. (·)z is the z coordinate of a vector. We call τi a boundary tetrahedron. Thus, the integral ∫x∈Ω*||xx0||2dx can be rewritten as:

xΩ||x-x0||2dx=xΩ0||x-x0||2dx+i=1m(sign(((x-x0)×ni)z)xτi||x-x0||2dx) (A.2)

Without loss of generality, we only consider computing the integral of ||xx0||2 over the first boundary tetrahedron, τ1. For any point x in τ1, we represent x with respect to the four vertices of τ1 using the barycentric transformation:

x=λ0x+λ1y1+λ2y2+(1-λ0-λ1-λ2)x0 (A.3)

with λi ≥ 0 and λ0 + λ1 + λ2 ≤ 1. Then we have:

xτ1||x-x0||2dx=0λ010λ11-λ00λ21-λ0-λ1||λ0(x-x0)+λ1(y1-x0)+λ2(y2-x0)||2dλ2dλ1dλ0 (A.4)

The integrated function is a quadratic polynomial on λi and thus can be exactly computed.

Let X* = x*x0, Y1 = y1x0, Y2 = y2x0 and the integral becomes:

xτ1||x-x0||2dx=160((X)2+(Y1)2+(Y2)2+XY1+XY2+Y1Y2)·det(X,Y1,Y2) (A.5)

Note that the det(X*, Y1, Y2) has the same sign as ((x*x0) × n1)z, yielding the final formula as follows:

xΩ||x-x0||2dx=xΩ0||x-x0||2dx+160i=1m(X2+Yi2+Yi+12+XYi+XYi+1+YiYi+1)det(X,Yi,Yi+1) (A.6)

Appendix B. Volume preservation by tangent plane constraint

We shall prove that the constraint of limiting x* on the tangent plane can guarantee the volume preservation of the neighborhood of x0, i.e. |Ω*| ≡ |Ω0|. We take the following commonly-used formulae to compute the normal of the tangent plane at x0:

n=i=1mSini, (B.1)

where n is the normal vector of the tangent plane at x0, Si and ni are the area and unit normal vector of the boundary triangle Δx0yiyi+1, respectively. Again, refer to Section 2.2 for the definitions of {yi, i = 1, · · ·, m}.

Given x*, the volume of Ω* can be computed by adding all the volume of tetrahedra in Ω*. For any tetrahedron τ in Ω*, τ=13Sτ<nτ,x-xτ>, x*xτ >, where Sτ and nτ are the area and unit normal vector of the triangle ττ opposite to x* in τ and xτ is the barycenter of tτ. Thus, we have the following formula for the volume of Ω*:

Ω=τΩ(13Sτ<nτ,x-xτ>)=<τΩ13Sτnτ,x-x0>-C, (B.2)

where Inline graphic is a constant independent of x*. According to (B.2), if |Ω*| is constant (independent of x*), then we must have

<τΩ13Sτnτ,x-x0>=C¯ (B.3)

That means x* must be on a plane that passes through x0 with τΩ13Sτnτ being the normal vector. Therefore, we only need to prove that the normal vector of this plane is identical to that of the tangent plane at x0 given in (B.1). Note that Sτ and nτ are independent of x*, we only need to prove the follow equation (the coefficient 13 is omitted):

i=1mSini=τΩ0Sτnτ (B.4)

For any tetrahedron τ, suppose si and mi are the areas and unit normal vectors of the four triangles of τ, we have

i=14simi=0 (B.5)

Putting together all the tetrahedra in Ω0, we have

τΩ0(i=14sτ,imτ,i)=0. (B.6)

Note that the triangles shared by two adjacent tetrahedra in Ω0 are cancelled in (B.6) because of the same area but opposite normal vectors in the two tetrahedra. The remaining triangles in (B.6) exactly give rise to (B.4).

Appendix C. Simplification of the optimization problem

We have the following coefficients for the cubic items in (9):

u3=<s,160i=1mYi×Yi+1>v3=<t,160i=1mYi×Yi+1>u2v=uv2=u3+v3

Note that Yi = yix0 and Yi × Yi+1 = 2Sini, hence i=1mYi×Yi+1 is orthogonal to the tangent plane at x0. Therefore, the inner products of i=1mYi×Yi+1 and s, t are zeros, which means that u3, v3, u2v and uv2 are all zeros.

We rewrite the objective function in (5) as:

Error=Eu2+Fv2+Guv+Hu+Iv,

where the coefficients E, F, G, H, I have the forms as given in Algorithm 2. The gradient of Error* is (2Eu + Gv + H, 2Fv + Gu + I) and the Hessian matrix of Error* is (2EGG2F). Thus we can see that the optimization problem has a unique solution as long as 4EF > G2. In all the examples we have experimented so far, this condition is always satisfied. But a more theoretical analysis of whether or not this condition is guaranteed is part of our future work.

Footnotes

Publisher's Disclaimer: This is a PDF file of an unedited manuscript that has been accepted for publication. As a service to our customers we are providing this early version of the manuscript. The manuscript will undergo copyediting, typesetting, and review of the resulting proof before it is published in its final citable form. Please note that during the production process errors may be discovered which could affect the content, and all legal disclaimers that apply to the journal pertain.

References

  1. Babuska I, Aziz A. On the angle condition in the finite element method. SIAM Journal on Numerical Analysis. 1976;13:214–226. [Google Scholar]
  2. Bank R, Smith R. Mesh smoothing using a posteriori error estimates. SIAM Journal on Numerical Analysis. 1997;34:979–997. [Google Scholar]
  3. Brewer M, Freitag Diachin L, Knupp P, Leurent T, Melander D. The mesquite mesh quality improvement toolkit. 12th International Meshing Roundtable; 2003. pp. 239–250. [Google Scholar]
  4. Canann S, Stephenson M, Blacker T. Optismoothing: An optimization-driven approach to mesh smoothing. Finite Elements in Analysis and Design. 1993;13:185–190. [Google Scholar]
  5. Canann SA, Tristano JR, Staten ML. An approach to combined laplacian and optimization-based smoothing for triangular, quadrilateral and quad-dominant meshes. 7th International Meshing Roundtable; 1998. pp. 419–494. [Google Scholar]
  6. Chen C, Szema K, Chakravarthy S. Optimization of unstructured grid. 33rd Aerospace Sciences Meeting and Exhibit; Reno, NV. January; 1995. pp. 1–10. AIAA 95-0217. [Google Scholar]
  7. Chen L. Mesh smoothing schemes based on optimal Delaunay triangulations. 13th International Meshing Roundtable; 2004. pp. 109–120. [Google Scholar]
  8. Chen L, Xu J. Optimal delaunay triangulations. Journal of Computational Mathematics. 2004;22:299–308. [Google Scholar]
  9. Cheng SW, Dey TK, Edelsbrunner H, Facello MA, Teng SH. Sliver Exudation. Proceedings of the fifteenth annual symposium on Computational geometry; ACM. 1999. pp. 1–13. [Google Scholar]
  10. Chew LP. Guaranteed-quality Delaunay meshing in 3D. The 13th Annual Symposium on Computational Geometry; 1997. pp. 391–393. [Google Scholar]
  11. Delanaye M, Hirsch C, Kovalev K. Untangling and optimization of unstructured hexahedral meshes. Computational mathematics and mathematical physics. 2003;43:807–814. [Google Scholar]
  12. Djidjev H. Force-directed methods for smoothing unstructured triangular and tetrahedral meshes. 9th International Meshing Roundtable; 2000. pp. 395–406. [Google Scholar]
  13. Du Q, Wang D. Tetrahedral mesh generation and optimization based on centroidal Voronoi tessellations. Int J Numer Meth Engng. 2003;56:1355–1373. [Google Scholar]
  14. Escobar J, Montenegro R, Montero G, Rodríguez E, Gonzáez-Yuste J. Smoothing and local refinement techniques for improving tetrahedral mesh quality. Computers & Structures. 2005;83:2423–2430. [Google Scholar]
  15. Escobar JM, Rodríguez E, Montenegro R, Montero G, González-Yuste JM. Simultaneous untangling and smoothing of tetrahedral meshes. Computer Methods in Applied Mechanics and Engineering. 2003;192:2775–2787. [Google Scholar]
  16. Field D. Laplacian smoothing and Delaunay triangulations. Communications in Applied Numerical Methods. 1988;4:709–712. [Google Scholar]
  17. Freitag L, Knupp P. Tetrahedral mesh improvement via optimization of the element condition number. International Journal for Numerical Methods in Engineering. 2002;53:1377–1391. [Google Scholar]
  18. Freitag L, Ollivier-Gooch C. Tetrahedral mesh improvement using swapping and smoothing. International Journal for Numerical Methods in Engineering. 1997;40:3979–4002. [Google Scholar]
  19. Freitag L, Plassmann P. Local optimization-based simplicial mesh untangling and improvement. International Journal for Numerical Methods in Engineering. 2000;49:109–125. [Google Scholar]
  20. Freitag L, Plassmann P. Local optimization-based untangling algorithms for quadrilateral meshes. 10th International Meshing Roundtable; 2001. pp. 397–406. [Google Scholar]
  21. Freitag LA. On combining Laplacian and optimization-based mesh smoothing techniques. Trends in unstructured mesh generation AMD. 1997;220:37–43. [Google Scholar]
  22. Freitag Diachin L, Knupp P. Tetrahedral element shape optimization via the jacobian determinant and condition number. 8th International Meshing Roundtable; 1999. pp. 247–258. [Google Scholar]
  23. Hansbo P. Generalized Laplacian smoothing of unstructured grids. Communications in Numerical Methods in Engineering. 1995;11:455–464. [Google Scholar]
  24. Herrmann L. Laplacian-isoparametric grid generation scheme. Journal of the Engineering Mechanics Division. 1976;102:749–907. [Google Scholar]
  25. Klingner BM, Shewchuk JR. Aggressive tetrahedral mesh improvement. Proceedings of the 16th international meshing roundtable; Springer. 2008. pp. 3–23. [Google Scholar]
  26. Knupp P. Algebraic mesh quality metrics. SIAM journal on scientific computing. 2002;23:193–218. [Google Scholar]
  27. Knupp P. Algebraic mesh quality metrics for unstructured initial meshes. Finite Elements in Analysis and Design. 2003;39:217–241. [Google Scholar]
  28. Knupp PM. Achieving finite element mesh quality via optimization of the Jacobian matrix norm and associated quantities. Part I-a framework for surface mesh optimization. International Journal for Numerical Methods in Engineering. 2000a;48:401–420. [Google Scholar]
  29. Knupp PM. Hexahedral mesh untangling & algebraic mesh quality metrics. 9th International Meshing Roundtable; 2000b. pp. 173–183. [Google Scholar]
  30. Knupp PM. Hexahedral and tetrahedral mesh untangling. Engineering with Computers. 2001;17:261–268. [Google Scholar]
  31. Labelle F, Shewchuk JR. Isosurface stuffing: fast tetrahedral meshes with good dihedral angles. ACM Transactions on Graphics. 2007;26:57:1–57:10. [Google Scholar]
  32. Li X, Freitag LA, Freitag LA. Technical Report. Argonne National Laboratory; 1999. Optimization-Based Quadrilateral and Hexahedral Mesh Untangling and Smoothing Techniques. [Google Scholar]
  33. Menédez-Díaz A, González-Nicieza C, Álvarez Vigil AE. Hexahedral mesh smoothing using a direct method. Computers & Geosciences. 2005;31:453–463. [Google Scholar]
  34. Mezentsev A. A generalized graph-theoretic mesh optimization model. 13th International Meshing Roundtable; 2004. pp. 255–264. [Google Scholar]
  35. Nave D, Chrisochoides N, Chew LP. Guaranteed-quality parallel Delaunay refinement for restricted polyhedral domains. Computational Geometry: Theory and Applications. 2004;28:191–215. [Google Scholar]
  36. Ohtake Y, Belyaev A, Bogaevski I. Mesh regularization and adaptive smoothing. Computer-Aided Design. 2001;33:789–800. [Google Scholar]
  37. Parthasarathy V, Kodiyalam S. A constrained optimization approach to finite element mesh smoothing. Finite Elements in Analysis and Design. 1991;9:309–320. [Google Scholar]
  38. Phillippe P, Baker T. A comparison of triangle quality measures. 10th International Meshing Roundtable; 2001. pp. 327–340. [Google Scholar]
  39. Shewchuk JR. What is a good linear element? interpolation, conditioning, and quality measures. 11th International Meshing Roundtable; 2002. pp. 115–126. [Google Scholar]
  40. Si H, Gärtner K, Fuhrmann J. Boundary conforming Delaunay mesh generation. Computational Mathematics and Mathematical Physics. 2010;50:38–53. [Google Scholar]
  41. Sirois Y, Dompierre J, Vallet MG, Guibault F. Hybrid mesh smoothing based on Riemannian metric non-conformity minimization. Finite Elements in Analysis and Design. 2010;46:47–60. [Google Scholar]
  42. Tournois J, Wormser C, Alliez P, Desbrun M. Interleaving delaunay refinement and optimization for practical isotropic tetrahedron mesh generation. ACM Transactions on Graphics. 2009;28:75:1–75:9. [Google Scholar]
  43. Vartziotis D, Athanasiadis T, Goudas I, Wipper J. Mesh smoothing using the geometric element transformation method. Computer Methods in Applied Mechanics and Engineering. 2008;197:3760–3767. [Google Scholar]
  44. Vartziotis D, Wipper J. A dual element based geometric element transformation method for all-hexahedral mesh smoothing. Computer Methods in Applied Mechanics and Engineering. 2010 In Press, Corrected Proof, –. [Google Scholar]
  45. Vartziotis D, Wipper J, Schwald B. The geometric element transformation method for tetrahedral mesh smoothing. Computer Methods in Applied Mechanics and Engineering. 2009;199:169–182. [Google Scholar]
  46. Xu H, Newman TS. An angle-based optimization approach for 2d finite element mesh smoothing. Finite Elements in Analysis and Design. 2006;42:1150–1164. [Google Scholar]
  47. Xu K, Cheng ZQ, Wang Y, Xiong Y, Zhang H. Quality encoding for tetrahedral mesh optimization. Computers & Graphics. 2009;33:250–261. [Google Scholar]; IEEE International Conference on Shape Modelling and Applications; 2009. [Google Scholar]
  48. Yu Z, Holst MJ, McCammon JA. High-fidelity geometric modeling for biomedical applications. Finite Elements in Analysis and Design. 2008;44:715–723. [Google Scholar]
  49. Zavattieri PD, Dari EA, Buscaglia GC. Optimization strategies in unstructured mesh generation. International Journal for Numerical Methods in Engineering. 1996;39:2055–2071. [Google Scholar]
  50. Zhang Y, Hughes TJ, Bajaj CL. An automatic 3D mesh generation method for domains with multiple materials. Computer methods in applied mechanics and engineering. 2010;199:405–415. doi: 10.1016/j.cma.2009.06.007. [DOI] [PMC free article] [PubMed] [Google Scholar]
  51. Zhou T, Shimada K. An angle-based approach to two-dimensional mesh smoothing. Proceedings of the 9th International Meshing Roundtable; Citeseer. 2000. pp. 373–384. [Google Scholar]

RESOURCES