Abstract
In this paper, we present efficient algorithms for generating hierarchical molecular skin meshes with decreasing size and guaranteed quality. Our algorithms generate a sequence of coarse meshes for both the surfaces and the bounded volumes. Each coarser surface mesh is adaptive to the surface curvature and maintains the topology of the skin surface with guaranteed mesh quality. The corresponding tetrahedral mesh is conforming to the interface surface mesh and contains high quality tetrahedral that decompose both the interior of the molecule and the surrounding region (enclosed in a sphere). Our hierarchical tetrahedral meshes have a number of advantages that will facilitate fast and accurate multigrid PDE solvers. Firstly, the quality of both the surface triangulations and tetrahedral meshes is guaranteed. Secondly, the interface in the tetrahedral mesh is an accurate approximation of the molecular boundary. In particular, all the boundary points lie on the skin surface. Thirdly, our meshes are Delaunay meshes. Finally, the meshes are adaptive to the geometry.
1 Introduction
Years of research in biology have established that all cellular functions are deeply connected to the shape and dynamics of their molecular actors, mostly bio-molecules. As a response, geometric modeling has emerged as an essential partner in structural biology and computational biology studies. For example, the computer aided geometric design community has been involved in various aspects of molecular modeling including rational drug design, surface representations of biomolecules as well as for the development of geometry-based energy functions that measure the stability of macromolecules. [3, 35, 36, 34]. In this paper, we address a specific geometric problem recurrent in many applications in computational biology, namely the problem of computing quality hierarchical meshes of skin surfaces and their bounded volumes. We note however that the methodology we propose should facilitate other applications in computer graphics such as shape deformation and physically based animations [24, 10].
Many simulations in computational biology involve solving partial differential equations (PDE) like the Poisson-Boltzmann equation (PBE) using numerical methods such as finite element methods (FEM) [22]. An essential step of these numerical solvers is to generate a well-shaped mesh M that approximate the problem domain Ω, including the boundary S, the interior I and surrounding regions O of a molecule. A subset T of M approximates the boundary S, namely, the surface mesh, separates M into two parts that approximate I and O respectively. Then the PDE is discretized into a system of linear or non-linear equations using the mesh M. Among the various numerical techniques for solving this linear system, the multigrid methods have become one of the most effective and successful techniques [23]. Multigrid methods solve a linear system by first constructing a hierarchy of meshes M0, ⋯,Mk, where M0 = M is the finest mesh that discretizes the problem domain Ω and Mi, 0 < i < k, is a geometric coarsening of Mi−1. The solution of the linear system is then obtained and improved using two transformations based on the hierarchy of meshes, namely, the interpolation technique from mesh Mi to Mi−1 and the restriction from Mi−1 to Mi. The mesh quality of Mi and the accuracy at which Ti approximates the boundary S significantly influence both the accuracy of the solution and the efficiency of the multigrid methods [30].
In this paper, we present algorithms for constructing a hierarchy of high quality coarse meshes for biomolecular simulation using molecular skin meshes. In the following of this section, we first review the previous work about biomolecular mesh generation and mesh coarsening. Then we summarize our main contributions.
1.1 Related Work
High quality mesh generation for biomolecules has been a long standing problem due to the complex geometry of the molecular boundary S. There are three competing definitions for the boundary which correspond to the van der Waals surface, the accessible surface and the molecular surface [13]. The van der Waals surface is defined as the boundary of union of balls representing all the atoms as balls centered at the atomic positions with their van der Waals radius. The solvent accessible is the surface generated by the center of the probe sphere rolling on the van der Waals surface. The molecular surface is the lower envelop of the rolling probe sphere. The main difficulties of triangulating these surfaces with high quality relate to the smoothness or rather lack of smoothness of the surface models. The van der Waals surface and the solvent accessible surface are not smooth at the intersection of the spheres. The molecular surface is smooth in most cases but it contains self-intersections that results in cusps on the surface. To overcome these singularity problems, Edelsbrunner [15] introduced the molecular skin surface based on the framework of the Delaunay triangulation and Voronoi diagram of a set of weighted points. The skin model is smooth, free of self-intersection, and can be triangulated with good quality. Recently, Chavent et al [27] developed MetaMol to visualize the molecular skin surfaces with ray casting techniques. Kruithof and Vegter [25] developed an algorithm for meshing skin surfaces using a tetrahedral complex to decompose the skin into a collection of topological disks. The method depends on an assumption that all the anchor points lie inside the mixed cell, which however is generally not true for molecular models. Lu et al [26] used the existing softwares to set up a tool chain that automates the generation of tetrahedral meshes for biomolecules. Cheng and Shi [7, 8] developed efficient algorithms for triangulating the skin surface and the volumes bounded by the surface with guaranteed quality, which can be easily extended to generate the fine mesh M0 with an accurate subset T0 that approximates the boundary S of the molecule. Our algorithms in this paper take as input the skin surface mesh T0 generated by the algorithm in [7] and generates a hierarchy of high quality tetrahedral meshes M1,⋯,Mk with the corresponding hierarchy of subsets T1,⋯,Tk each approximating the boundary S.
Mesh coarsening has received much attention in computational geometry and numerical analysis research. To facilitate efficient and accurate multigrid solvers, mesh quality and conformity to the problem domain of each coarse mesh Mi are two important issues in mesh coarsening algorithms. Unstructured mesh coarsening can be classified into node-nested and non-nested coarsening. A coarse mesh Mi is called node-nested if the set of vertices of Mi is a subset of that of Mi−1; otherwise, it is called non-nested. Non-nested coarsening has the advantage of introducing new vertices to guarantee the mesh quality and conformity that are degraded by vertices removal. Various approaches to non-nested coarsening differ in the methods used for choosing the vertices to remove and for placing new vertices. Miller et al [28] presented an algorithm for generating both node-nested and non-nested coarse triangular meshes in two dimensions with quality guarantees based on a spacing function specified by the fine mesh. Mesh vertices are removed according to the coarsening of the space function. A number of three dimensional mesh coarsening techniques have been proposed; in most of these techniques however, the mesh qualities are usually not guaranteed [29, 19]. A closely related topic is mesh simplification, which has been much discussed in computer graphics literature motivated by the demands of efficient rendering, storage and transmission of large three dimensional polygonal models (for a recent overview, see Botsch et al [5]). Our algorithm does not deviate significantly from these techniques: we still use basic operations such as edge contraction, edge flipping and vertex insertion; the main contribution of our approach however is that we provide guaranteed mesh quality and adaptivity.
In this paper, we will investigate non-nested mesh coarsening with guarantees on both coarse mesh quality and conformity. Our choice of mesh vertices removal and placement is driven by the geometry of the molecular boundary.
1.2 Our Contribution
Our algorithms construct a hierarchy M1,⋯,Mk of high quality tetrahedral meshes for a macromolecule using the skin surface and its fine surface mesh T0 generated by the algorithm in [7]. We firstly generate a hierarchy of coarse surface meshes T1,⋯,Tk by coarsening the fine surface mesh T0 with guaranteed topology and mesh quality. By taking advantages of the restricted Delaunay property and of the high mesh quality of the input surface mesh T0, our surface mesh coarsening procedure guarantees that the coarse mesh Ti is still a subset of the Delaunay triangulation of the surface mesh vertices. As a result, we build the corresponding tetrahedral mesh Mi from Ti by computing the Delaunay triangulation of the surface mesh vertices and identifying the subset Ti thereafter. Finally, the tetrahedral mesh quality is improved using prioritized Delaunay refinement. We note that alternatively it would be possible to build first the fine tetrahedral mesh M0 and then to coarsen M0 directly to generate coarse meshes M1⋯Mk; this approach however runs into the difficulties to preserve a subset Ti that approximates the boundary S.
As the size and quality of the surface mesh Ti determines those of the corresponding tetrahedral mesh Mi, we established two curvature adaptive conditions for the surface mesh using two parameters Ci and Qi to control the resolution and quality of Ti respectively. We extended the mesh density control conditions proposed by Cheng et al [6] to bound the mesh size and quality of surface mesh Ti and derived new ranges for choosing pair of feasible values of Ci and Qi, which is introduced in Section 3. We then enforce the conditions parameterized by C1 and Q1 on the surface mesh T0 to generate T1. Thereafter, we generate Ti starting from Ti−1 for all i in [2, k]. To enforce the conditions, we use three operations, namely, edge contraction, edge flipping, and vertex insertion. The edge contraction reduces the mesh size, the edge flipping maintains the restricted Delaunay property of the coarse mesh and the vertex insertion improves the mesh quality. Once the coarse surface meshes have been derived, we build quality tetrahedral meshes Mi for each level of the surface mesh Ti. With judiciously chosen Ci and Qi, we guarantee that Ti is a subset of the Delaunay triangulation of the set vertices in Ti. As a result, the first step for building Mi is to compute the Delaunay triangulation of the surface vertices of Ti and identifying Ti that decompose the Delaunay triangulation into interior and exterior regions. Then, we apply the prioritized Delaunay refinement to the interior and exterior tetrahedral mesh respectively for achieving quality tetrahedral meshes Mi.
Our main contributions are:
Formulation and implementation of the adaptive skin mesh coarsening algorithm;
Refinement of the adaptive mesh conditions and enforcement operations for generating quality coarse surface meshes;
Proof of constraint conditions for Ci and Qi such that the vertex set of a coarse mesh Ti is an εi–sampling of the skin surfaces with their restricted Delaunay triangulation homeomorphic to the skin surface.
Our hierarchical tetrahedral meshes have a number of advantages that will facilitate fast and accurate multigrid based numerical solvers. Firstly, the quality of both the surface triangulations and tetrahedral meshes is guaranteed. Secondly, the interface in the tetrahedral mesh is an accurate approximation of the molecular boundary. In particular, all the boundary points are on the surface. Thirdly, our meshes are Delaunay meshes. Finally, the meshes are adaptive to the geometry. Our implementation verifies the high efficiency of the algorithms.
Outline
Section 2 describes previous works in the field that are relevant to the algorithms we present. Section 3 describes our surface mesh coarsening algorithm; it is followed in section 4 by the methods for generating conforming tetrahedral meshes for each level of coarse surface mesh. Section 5 illustrates our implementation through applications to meshing protein surfaces and their corresponding interior. We conclude our paper in section 6.
2 Previous Works
We review some previous results for the skin surface from [15] and its triangulation from [6] and [7]. A skin surface FB is specified by a set of weighted points
where bi is a weighted point with zi as its position and wi as its weight. The skin surface FB is a closed C1-continuous surface in ℝ3. It consists of one or more disjoint components and each one is free of self-intersections and intersections with other components. Intuitively, the skin surface is geometrically similar to the boundary of the union of balls but with a smooth appearance by blending the spheres with quadratic patches, which lends itself to a smooth surface model for molecules. For a molecule, the weighted points bi are the atoms whose coordinates zi are derived either from experiments (X-ray crystallography or NMR), or from modeling. The weight wi of atom bi is equal to times the sum of its van der Waals radius (i.e. the radius of atom in a hard-sphere model) and the radius of a probe sphere, Rp. If Rp is set to 0, the corresponding skin surface matches the van der Waals surface of the molecule, while is Rp is set to 1.4 Å(i.e. the radius of a water molecule), the skin surface mimics the accessible surface of the molecule.
In the following, we will review the skin definition and its curvature properties followed by the previous results about skin surface triangulations.
2.1 Skin Surfaces
We can consider a sphere bi ∈ B as the zero-set of the weighted distance function πi(x) = ‖x − zi‖2 − wi. Following the addition and the scalar multiplication operations of the weighted distance functions πi(x), the convex hull of X ⊆ B can be defined as
The convex hull of X consists of an infinite family of spheres. For any sphere bj ∈ conv(X), we can write the expression of its center and radius as following,
That is, the center of bj is in the convex hull of the centers of the spheres in X. The skin surface FB specified by B is defined as the envelope of the infinite family of spheres in the convex hull of B after shrinking, namely,
in which the shrinking operation of a sphere bi is defined as , and for a set of spheres . The envelope is the boundary of the union of balls in the shrinking convex hull of B. Even though the skin surface is the boundary of a family of infinite many spheres, it can be decomposed into a finite collection of quadratic patches, which enables efficient computation of the surface.
Skin Patches
A skin surface is decomposed into a collection of sphere patches and hyperboloid patches by the mixed complex, which is the collection of polyhedron obtained by shrinking the Minkowski sum of the Delaunay triangulation of B and its dual Voronoi complex. Each polyhedron is called a mixed cell and is defined as following,
in which νX is the Voronoi cell defined by the independent subset X and δ X is its dual Delaunay simplex. The skin patches join each other smoothly at the intersection of two mixed cells and form a closed smooth surface.
Curvature variation
The maximum principle curvature of skin surfaces is continuous and varies slowly on the surface. We denote the maximum curvature at x ∈ FB as κ(x). The reciprocal 1/κ(x), that is, the radius of the maximum curvature, is called the local length scale at x, denoted as ϱ(x). The variation of the local length scale of two points x, y ∈ FB can be controlled through a Lipschitz condition,
We will use the local length scale to control the density of the surface meshes Ti.
2.2 Triangulation of skin surfaces
The triangulation of a skin surface FB is a 2-manifold that approximates the surface accurately and maintain its topology. For a skin surface with arbitrary topology, we seek to find a set of sample points P ⊂ FB and a subset of the Delaunay triangulation of P that forms its triangulation. In particular, we have found that the restricted Delaunay triangulation of an εi–sampling of the skin surface is homeomorphic to the surface for a feasible ε value. We refer to the results from [6] and [7].
ε–sampling
A finite subset P ⊂ FB is an ε-sampling of FB if for every point x ∈ FB there is a point p ∈ P such that ‖x − p‖ ≤ εϱ(x). We call a ε–sampling Pi an εi–sampling if the ε has a constant value εi.
Restricted Delaunay triangulation
The restricted Delaunay triangulation RP of P ⊂ FB is the subset of the triangles t of Delaunay triangulation of P, DT, such that the dual Voronoi edge of t intersects the skin surface FB,
Homeomorphism theorem
The restricted Delaunay triangulation RP of an ε-sampling P of FB is homeomorphic to FB for 0 < ε < ε0 = 0.279.
The theorem implies that we can build a skin surface mesh with guaranteed topology by generating an ε0–sampling and computing its restricted Delaunay triangulation. However, bad shaped triangles may exist in such a mesh. Cheng and Shi [7] used the restricted union of balls to generate an ε0-sampling with a lower bound on the distance between any two sample points. The restricted Delaunay triangulation of such a sampling is a high quality surface mesh with guaranteed topology.
Quality Skin Surface Meshes
A surface mesh T0 generated by the algorithm [7] is homeomorphic to the input skin surface FB. Each triangle abc in T0 is a restricted Delaunay triangle with bounded circumradius and edge lengths, namely,
in which Rabc is the circumradius of a triangle abc and ‖xy‖ is the distance between x and y. The local length scales ϱabc and ϱxy of a triangle abc and edge xy are defined as ϱabc = min{ϱ(a), ϱ(b), ϱ(c)} and ϱxy = max{ϱ(x), ϱ(y)} respectively.
We use the mesh T0 as our starting mesh for generating a hierarchy of coarse surface meshes. The properties of the mesh T0 are used to guarantee the topology and qualities of the coarse mesh. Firstly, the homeomorphism between the mesh T0 and the skin surface FB guarantees the topological correctness of the coarse meshes as long as we do not change the topology of the mesh during the coarsening process. Secondly, the restricted Delaunay property of T0 provides for the possibility of guaranteeing that the coarse mesh maintains the restricted Delaunay property as well. Thirdly, the adaptivity of T0 to the surface curvature and its high quality pave the way for adaptive coarsening.
Next, we describe the surface mesh coarsening algorithms and analyze its correctness and guarantees.
3 Skin Surface Mesh Coarsening
In this section, we first introduce the two conditions parametrized by the constants Ci and Qi that control the mesh resolution and quality. Then, we give an overview of our surface mesh coarsening algorithms followed by a detail description of three key operations used in the algorithm. Finally, we discuss the termination of the algorithm and the constraints for choosing the value of Ci and Qi.
3.1 Adaptive Mesh Conditions
In order to minimize the approximation error and use the least number of triangles in a coarse mesh, we adapt the triangle size to the surface curvature. In particular, we control the sizes of the triangle in the meshes to be proportional to the radius of the maximum curvature, i.e. the local length scale of the skin surface, which satisfies the Lipschitz condition. We adapt the two conditions proposed by Cheng et al [6] with different pair of values to bound the edge length and triangle size respectively in each coarse mesh Ti, namely,
In Condition [Li], Rab refers to the size of an edge ab ∈ Ti which is equal to ‖ab‖/2. Similarly, the size of a triangle abc ∈ Ti is defined as Rabc, i.e. the circumradius of the triangle abc. The constant Ci controls how closely the mesh approximates the surface; we expect to increase Ci to generate coarser meshes. The constant Qi controls the quality of the mesh and we choose values for Qi such that the minimum angle in the triangle mesh is close to 20°. In order to guarantee that the coarse mesh Ti is the restricted Delaunay triangulation of its vertex set, Ci cannot be too large. A feasible bound will be provided in the end of this section. Another constraint for our system is the coarsening factor: our aim is to generate three levels of coarse meshes, such that the coarsest mesh has 1/10-th the number of vertices of the finest mesh. See Figure 1 for an example of such a third level coarse mesh. The values of Ci and Qi clearly define the coarsening factor. We have judiciously chosen and implemented 3 pairs of feasible values of Ci and Qi that results in three levels of coarse meshes with coarsening factors of 0.25, 0.125 and 0.1. In figure 1, we have used C3 = 0.42 and Q3 = 1.414 to get a coarse mesh with 10 times less vertices than the original skin surface mesh. The choices of values for Ci and Qi will be justified at the end of this section.
Fig. 1.
Molecular skin surface meshes for a protein. A fine mesh and a coarse mesh of the surface of a protein (PDB ID 15C8) are showed in the top row and bottom row respectively. The left panels show the whole surface meshes while the right panels show a zoomed in view of the partial mesh corresponding to the red box in the left. The fine surface mesh contains 141,262 triangles while the coarse mesh contains 15,252 triangles. All the triangles in the mesh have a minimum angle of at least 31.4°.
After we set up the adaptive conditions for each coarse mesh, we enforce the conditions Li and Ui over all the triangles in Ti−1 to generate Ti. We use three operations, namely, edge contraction, edge flipping and vertex insertion for the enforcement. Using edge contraction, we delete the short edges that violate the condition [Li]. Such a contraction however may introduce new badly shaped triangles that violate the condition [Ui] and also breaks the restricted Delaunay property. We use vertex insertion operations to break the big triangles violating the condition [Ui] and use edge flipping operations to restore the restricted Delaunay property locally. In the next section, we first give an overview of the algorithm. Then each of the three operations is described in detail.
3.2 Coarsening Algorithm
The input of the algorithm is a pair of parameters Ci and Qi, the skin surface FB and a fine surface mesh Ti−1. The output of the algorithm is a coarse surface mesh Ti satisfying the two conditions [Li] and [Ui]. The algorithm is divided into two stages, namely, initialization stage and coarsening stage. In the initialization stage, we check every triangle in the input triangulation against the two conditions [Li] and [Ui]. We put all the edges violating the condition [Li] to a queue called eq and all the triangles violating the condition [Ui] to a stack called ts. We note that ts is usually empty at the initialization stage since the value of CiQi is usually greater than that of Ci−1Qi−1.
Next, we successively get short edges from eq and perform edge contractions until the eq is empty. After each edge contraction, we check the restricted Delaunay property for the newly added triangles and put the non-restricted Delaunay edges to a Stack fs for performing edge flips. We also check all the newly added edges and triangles against the conditions [Li] and [Ui] and update the Queue eq and the Stack ts accordingly. The pseudo code of the coarsening algorithm CoarsenSkinMesh is illustrated below.
Algorithm 1.
CoarsenSkinMesh(Ci, Qi, FB, Ti−1)
| 1: | while eq is not empty do |
| 2: | ab = deQueue(eq); |
| 3: | edgeContraction(ab); |
| 4: | Update fs; |
| 5: | flipEdges(fs); |
| 6: | Update eq and ts; |
| 7: | vertInsertion(ts); |
| 8: | Update fs; |
| 9: | flipEdges(fs); |
| 10: | end while |
Edge Contraction
We successively contract the short edges until all the edges satisfy the condition [Li]. To contract an edge ab, we remove the vertex with larger local length scale and all the triangles attached to that vertex. For sake of simplicity, we refer to that vertex as b. This results in a hole that is subsequently filled by a set of new triangles. In order to preserve the topology, we check the link condition before we do the edge contraction [14]. That is, an edge is contractible only if the link of edge ab is the same as the intersection of the links of its vertices a and b. The link of a vertex p in a surface mesh is defined as the collection of vertices and edges on the boundary of all the triangles attached to p. The link of an edge ab refers to the vertices of the triangles sharing edge ab other than a and b. Figure 2 illustrates a contractible edge ab on the left and a non-contractible edge ab on the right.
Fig. 2.
Examples of a contractible edge (left) and a non-contractible edge (right). The link of vertices a, b and edge ab are drawn in blue, red and green color respectively.
When an edge ab satisfies the link condition, we remove its vertices b and fill the created hole with a set of new triangles. As the input surface mesh is a two manifold, the boundary of the hole is always a three dimensional closed polygon without self intersections. We fill the hole by adding diagonal edges that maintain the manifold property.
One option for creating these new triangles is simply to snap the edges ending at vertex b to a; this may however lead to the formation of folded triangles. Alternatively, we note that the lengths of all the edges connecting to vertex b are bounded from above by our adaptive condition [Ui]. This implies that all the vertices on the boundary of the three dimensional polygon are almost coplanar with vertex b since the normal and curvature of skin surface are continuous and vary slowly on the surface. As a result, we can project the polygon to the tangent plane at the point b. If the projected polygon is convex, that is, the internal angle at each vertex is not greater than π, we can iteratively connect the diagonals of the polygon to fill the hole. If however the polygon is concave, we use the ear-clipping algorithms proposed in [21]. The vertices of the polygon is first stored along a counter clockwise orientation following the edge order of the three dimensional polygon. We then label each projected vertex as either convex or reflex. A vertex is called convex if its internal angle is less than π, and reflex otherwise. Then, we check every three consecutive vertices p−pp+ of the polygon whether they form an ear according to the following two conditions,
the point p is a convex vertex;
there are no other reflex vertex that are contained inside or that lay on the boundary of the triangle p−pp+.
We iteratively form new triangles with three ear vertices and update the ears information as well. The procedure stops when only three vertices are left. We add the triangle formed by these three vertices which completes the triangulation of the concave polygon. As the newly added triangles may still violate the condition [Li] and [Ui], we update the queue eq and the stack ts. Furthermore, the newly added triangles may not be restricted Delaunay any more; we remediate this problem by performing edge flipping operations.
Edge Flipping
Edge flipping restores the restricted Delaunay property of the surface mesh, which may be locally broken after an edge contraction or a vertex insertion. We flip a non-restricted Delaunay edge ac by replacing the two triangles acb and acd with the two triangles bda and bdc. Figure 3 illustrates an example of the edge flipping. In left panel of Figure 3, since the intersection point x of the two lines following the Voronoi edges of triangles acb and acd is outside the skin surface, the Voronoi edges will not intersect the skin surfaces. After replacing the edge ac by the edge bd, the intersection point x of the line corresponding to the new Voronoi edges is pushed inside the skin surface, which makes the triangles bda and bdc restricted Delaunay triangles. A symmetric situation for edge flipping exists when the skin surface is inverted.
Fig. 3.
Illustration of an edge flipping operation. The two non-restricted Delaunay triangles acb and acd on the left figure are replaced by triangles abd and cbd in the right. lt, t ∈ {a, b, c, d} is the normal of the triangle with t as one of the vertices passing its circumcenter. x is the intersection of two lines. The right panel is rotated by 90° with respect to the left panel for clarity
Vertex Insertion
We add a new vertex on the surface to break a triangle abc that violates the condition [Ui]. We firstly locate the new vertex to be inserted on the surface. Let the circumcenter of the triangle abc be z and L be the line of points at equal distance from a, b and c. The line L intersects the skin surface at two or more points. We choose the intersection point x; that is closest to z as the new vertex to be inserted. Then we search the triangle pqr in the mesh that intersects the line L; pqr is either the triangle abc or one of the triangles that share an edge with abc, since the distance between z and x is necessarily small relative to the circumradius of the triangle abc. We replace the triangle pqr with three new triangles pqx, prx and qrx. Finally, we push the link edges of x into the stack fs and perform edge flipping operation until fs is empty. As a result, the violating triangle abc is destroyed either by the operation of creating 3 triangles by inserting x in abc, or by the following edge flipping operations.
3.3 Termination and Quality Guarantees
The algorithm 1 terminates and outputs a coarse surface mesh Ti satisfying the conditions [Li] and [Ui], which guarantees that the minimum angle of any triangle in Ti is at least arcsin . As the coarsening procedure preserves the topology of the input surface mesh, the coarse Ti is homeomorphic to the mesh Ti−1. Together with the fact that the input surface T0 is homeomorphic to the input skin surface, we can claim that each coarse surface mesh Ti is homeomorphic to the input skin surface. Moreover, we restore the restricted Delaunay property of the surface mesh immediately after it is broken by an edge contraction or vertex insertion. As a result, every triangle in the coarse mesh Ti is a restricted Delaunay triangle.
In the rest of this section, we will first prove that the algorithm terminates. Then, we derive two lemmas that bound the values of Ci and Qi such that there is no other restricted Delaunay triangles other than Ti in the Delaunay triangulation of all the vertices of Ti. We apply this result to build the initial tetrahedral mesh for the inside and outside of the molecule, which will be discussed in the Section 4.
Lemma 1. The algorithm 1 terminates.
Proof. We first prove that the sequence of edge flipping operations after each edge contraction or vertex insertion terminates. As edge flips are performed only if the two triangles are not restricted Delaunay, a flipped edge will not be flipped again. Moreover, an edge contraction or a vertex insertion creates a finite number of new non-restricted Delaunay triangles. Thus, the edge flips terminates.
Next, we prove that we cannot have infinite loops of edge contraction and vertex insertion. Firstly, the number of edge contraction is finite as at some point a putative edge contraction will violate the condition [Ui]. Secondly, all the new edges created by the vertex insertion operation are longer than CiQiϱabc and therefore satisfy the condition [Li] and will not be contracted. As a result, the termination of the algorithm follows.
Next, we show that our coarsening algorithm decreases the mesh density while maintaining an εi–sampling where εi is specified by the value of Ci and Qi.
Lemma 2. The set of vertices Pi of the surface mesh Ti is an εi–sample of the skin surface provided that εi satisfies the following condition,
Proof. It is obvious that the set of vertices of Ti−1 is an εi–sampling since εi is always greater than εi−1. In order to find an upper bound for εi, we track the changes of εi starting from εi−1 as we perform the coarsening operation. After an edge contraction, εi value gets larger; the increase however is limited, as vertex insertion ultimately increases the density and therefore decreases εi. At some points during the construction of Ti, there will be a point x ∈ FB such that the sphere of center x and radius X = εiϱ(x) is empty. To find the minimum value for εi, we assume that this sphere passes through a vertex a of a triangle abc. We then increase the radius of the sphere while keeping its center on the surface until the sphere passes through the two other vertices b and c. We denote the center of the new sphere as y and its radius is Y. According to the curvature variation property, we get .
Next, We denote the circumcenter of triangle abc as z. According to the condition [Ui], we have ‖za‖ = Rabc < CiQiϱabc. Moreover, the distance between z and y is smaller than . Thus we have . Together with the lower bound of Y, we have the condition in Lemma 2.
The Lemma 2 tells us that a feasible pair of values for Ci and Qi will enable the algorithm 1 to output a mesh Ti whose vertex set is an εi–sampling. We want to provide bounds for Ci and Qi that will ensure that the surface mesh Ti is the exact restricted Delaunay triangulation of the εi–sampling formed by its set of vertices. That is, there are no other restricted Delaunay triangles in the Delaunay triangulation of the εi–sampling. As Ti is homeomorphic to the skin surface and consists of restricted Delaunay triangles, we can validate this by proving that the restricted Delaunay triangulation of the εi–sampling is homeomorphic to the skin surface. This condition requires that the restricted Delaunay triangulation satisfies the closed ball property [17]. We follow the proofs in [6] and apply the conditions [Li] and [Ui] to improve the bounds on εi. It turns out that we only need to prove a new bound for the angle between the normal of a restricted Delaunay triangle and the normal at its dual restricted Voronoi vertex, which is described in the following lemma.
Lemma 3. Given an εi–sampling Pi of the skin surface FB, if each restricted Delaunay triangle abc ∈ RPi satisfies the conditions [Li] and [Ui], then the angle between the normal nabc of the triangle abc and the surface normal nx at the restricted dual Voronoi vertex x of abc is at most arcsin .
Proof. As shown in Figure 4, the point x is the dual Voronoi vertex of the triangle abc. The solid circle represents a sphere centered at x with radius r passing through the vertices a, b and c. The two dotted circles represent the two sandwich spheres tangent to x with radius ϱ(x) centered at z1 and z2. The solid sphere intersects the two sandwich spheres at two parallel disks, which are represented by the two dashed lines. Point o is the intersection of z1z2 with the upper disk and px is a diameter of the upper sandwich sphere. Let edge bc be the longest edge and at be the shortest height. We draw a line from t that is parallel to z1z2; it intersects the lower disk at s. As the line segment ts is parallel to the normal nx at x and is perpendicular to the two parallel planes containing the two disks, the angle α between the normal nabc and the surface normal nx is equal to ∠tas. That is, we have sin .
Fig. 4.
Illustration of the angle between the normal of a restricted Delaunay triangle and the normal at its restricted Voronoi vertex.
Next, we bound the lengths of ts and at to derive a bound for the angle α. As the triangle pbx is similar to the triangle box, we have . That is, . As a result, . Since the line segment at is the shortest height, using Heron’ formula for the triangle abc, we have . As the edge length is bounded by [Li], we have
As Pi is an εi–sampling, we have r ≤ εiϱ(x). Thus,
The Lemmas 2 and 3 define the constraints for choosing pairs of feasible values for Ci and Qi such that the coarse surface Ti is the restricted Delaunay triangulation of its set of vertices. For example, we chose C1 = 0.245,Q1 = 1.632; C2 = 0.340,Q2 = 1.707 and C3 = 0.424,Q3 = 1.414 in our implementation to generate three levels of coarse meshes that decrease the surface mesh size with a factor of 4, 8 and 10 respectively. We can further increase the value Ci to generate coarser surface mesh Ti however the restricted Delaunay triangulation of its vertices set would be a superset of Ti. Next, we describe our tetrahedral mesh generation based on the coarse mesh Ti under the condition that Ti is the exact restricted Delaunay triangulation of its vertices set.
4 Tetrahedral Skin Mesh Generation
We describe our algorithm for generating tetrahedral meshes for each coarse surface mesh Ti in this section. We first review the existing tetrahedral mesh generation techniques and give an overview of our tetrahedral mesh generation algorithm. Then we present the extraction of the surface mesh Ti from the Delaunay triangulation of the set of vertices of the mesh Ti, and the classification of the tetrahedra in the Delaunay triangulation into interior and exterior. We introduce the prioritized Delaunay refinement to improve tetrahedral quality at last.
Constrained Delaunay triangulations (CDT) together with Delaunay refinement [11, 31, 12] are well-established techniques for generating tetrahedral meshes from surface meshes. For example, CGAL [1] provides a package for generating quality tetrahedral meshes starting from a surface mesh using Delaunay refinement. Si et al [33, 32] also developed a software called TetGen to construct high quality tetrahedral meshes for a piecewise linear complex. However, there are a few factors that encourage us to develop our own tetrahedral mesh generation algorithm and implementation. First, our skin surface meshes are consisted of a large set of vertices lying on the common spheres and robust geometric predicates, e.g., point-in-sphere test, using symbolic perturbation [16] are necessary during the construction of the Delaunay triangulation of the surface mesh vertices. While both TetGen and CGAL have robust implementations of the predicates, it is different from the implementation in our Delaunay code for generating skin surface meshes. As a result, our surface meshes are often not be considered as Delaunay by both CGAL and TetGen. Second, our Delaunay triangulation code runs more efficiently than both the CGAL and Tetgen implementations. Finally, we observed that our prioritized Delaunay refinement algorithm (see below) inserts less Steiner points for achieving same quality guarantees.
We developed our tetrahedral mesh generation algorithm on the base of the restricted Delaunay triangulation and prioritized Delaunay refinement [8]. We note that the restricted Delaunay triangulation differs from the constrained Delaunay triangulation as follows: the restricted Delaunay triangulation is the subset of the Delaunay triangulation of a set of sample points on a smooth surface that their dual Voronoi edges intersect the surface; the constraint Delaunay triangulation is a Delaunay-like tetrahedralization that is constrained to respect the boundary of an input PLC.
Overview of the Algorithm
Given a coarse surface mesh Ti generated by the algorithm 1 and the skin surface, we construct the corresponding tetrahedral mesh using three steps, namely, construction of the initial Delaunay triangulation, extraction of the interface, and Delaunay refinement. See Figure 5 for an illustration of the three steps.
Fig. 5.
Illustration of the tetrahedral mesh generation algorithm with a 2D example. The left figure shows the initial Delaunay triangulation of the sample points on the skin curve and the red polygonal curve is the extracted interface between the interior triangles such as those two in blue and exterior triangles such as the green one. The middle figure shows the Delaunay triangulation after inserting the centers (blue) and the vertex on the bounding circle (black). The right figure shows the Delaunay triangulation after performing refinement on the interior triangles.
Our algorithm builds an initial Delaunay triangulation of the mesh vertices of Ti using the incremental algorithm [18] at the first stage. As the coarse surface mesh has the restricted Delaunay property, we extract such a subset from the Delaunay triangulation and use it to classify the tetrahedra in the Delaunay triangulation as being either interior or exterior. Then, we insert the centers of all the atoms as well as a set of vertices defining the bounding spheres into the Delaunay triangulation. The interior and exterior Delaunay tetrahedra are updated as well. Finally, we apply the prioritized Delaunay refinement to the interior and exterior tetrahedra separately in order to generate quality tetrahedral meshes. We present the last two stages of the algorithm in detail next.
Interface Extraction and Tetrahedra Classification
We extract Ti as the interface between interior and exterior tetrahedra from the Delaunay triangulation by labeling all the restricted Delaunay triangles. We do not have to check the restricted Delaunay property for every triangle t in the Delaunay triangulation since the circumradius of t is bounded by the condition [Ui], which accelerates the extraction procedure.
Then, we use the extracted interface to classify the tetrahedra of the initial Delaunay triangulation into exterior and interior to the skin surface. In particular, all the triangles in the interface but not on the convex hull of the vertices are shared by two tetrahedra, one inside the skin surface and the other outside. We can distinguish them by comparing the vector formed by the circumcenters of the two tetrahedra to the surface normal at the intersection point of the line segment between these circumcenters with the surface. The interface triangles on the convex hull are shared by only one interior tetrahedron. As a result, all the tetrahedra attached to the surface have been labeled as either interior or exterior. We then take these labeled tetrahedra as seeds and perform a breadth first search to label all the other tetrahedra. Before we perform the Delaunay refinement to improve the mesh quality, we insert the atom centers that specify the skin surface as well as vertices on the bounding sphere into the Delaunay triangulation. Since these extra points are outside of the equatorial sphere of the triangles in the interface, the interface triangles are kept in the new Delaunay triangulation. Moreover, all the new tetrahedra attached to the atom centers are interior and these attached to a vertex on the bounding sphere are exterior. See the center figure in Figure 5 for an example.
Tetrahedral Quality Improvement
We improve the tetrahedral quality for the interior and exterior meshes separately by inserting the circumcenter of the badly shaped tetrahedra iteratively. The size of the final tetrahedral meshes will be determined by the resolution of the coarse surface meshes. In order to decrease the size of the tetrahedral mesh and keep the interface surface mesh stable in the tetrahedral mesh, our algorithm inserts the circumcenters of badly shaped tetrahedra with a priority parameterized by the value of the distance function defined by the surface [8]. That is, we insert the circumcenters furthest to the surface first and the circumenters closest to the surface at last. As a result, the algorithm can achieve an upper bound on radius-edge ratio of the tetrahedral mesh before any points close or on the skin surface need to be inserted. All the slivers are then removed in a post processing procedure described in [9]. The right panel in Figure 6 illustrates an example of the tetrahedral mesh after performing the refinement.
Fig. 6.
Tetrahedral skin mesh of a protein. The coordinates for the centers of the atoms of the protein are taken from the PDB [4] file 9HVP. The left panel shows a partial tetrahedral mesh obtained by cutting the original mesh by a plane. The right panel shows a zoomed in view of the center part of the left panel. Red tetrahedra are inside the molecule while green tetrahedra are outside.
5 Results
We implemented the algorithms on a Linux platform using C++ starting from the skin surface meshing software built by the authors. We generate 3 levels of coarse meshes such that the coarsest mesh decreases the number of triangles by a factor of 10. Figure 7 illustrates the input fine mesh and the three levels of output coarse surface and the interior tetrahedral meshes for the protein with PDB Id 8PTI. Table 1 lists the statistics of the four levels of surface and tetrahedral meshes. These data shows that our algorithm reduce both the number of vertices and triangles from the finest to the coarsest surface mesh by a factor of around 10. For the tetrahedral mesh, we find that the reducing factor varies for different proteins and that they are slightly smaller than the factor for surface meshes. Moreover, all the triangles and tetrahedra in the meshes have high quality. That is, all the triangles in each level of the surface mesh have a minimum angle of at least 20°. Among them, more than 50% triangles have the minimum angle around 60°. All the tetrahedra have a radius-edge ratio of at most 2 and they are well graded according to their distance to the surface.
Fig. 7.
Hierarchical skin surface and tetrahedral meshes for a protein (PDB ID 8PTI). The top row shows the 4 levels of surface meshes while the bottom row shows the interior tetrahedral meshes using a cutting plane.
Table 1.
The statistics of the surface and tetrahedral mesh data at four levels of resolution. The number of vertices, triangles and tetrahedra of each level are listed in the table for 5 proteins.
| PID | Level 0 | Level 1 | Level 2 | Level 3 |
|---|---|---|---|---|
| Surface Mesh | ||||
| # Vert # Tri | # Vert # Tri | # Vert # Tri | # Vert # Tri | |
| 1APH | 10,137 20,270 | 2,359 4,714 | 1,244 2,484 | 994 1,984 |
| 8PTI | 27,036 54,068 | 6,475 12,946 | 3,492 6,980 | 2,871 5,738 |
| 9HVP | 35,674 71,344 | 8,525 17,046 | 4,616 9,228 | 3,839 7,674 |
| 15C8 | 70,623 141,262 | 16,991 33,998 | 9,186 18,388 | 7,618 15,252 |
| 4GRT | 76,740 153,480 | 18,420 36,840 | 9,934 19,868 | 8,255 16,510 |
| Tetrahedral Mesh | ||||
| # Vert # Tet | # Vert # Tet | # Vert # Tet | # Vert # Tet | |
| 1APH | 15,741 93,145 | 4,621 28,502 | 2,639 16,167 | 2,113 12,770 |
| 8PTI | 40,866 241,846 | 11,492 71,063 | 6,336 39,229 | 4,986 30,611 |
| 9HVP | 54,719 325,198 | 15,937 99,307 | 9,295 58,021 | 7,547 47,025 |
| 15C8 | 107,884 641,898 | 31,493 197,393 | 18,138 114,230 | 14,722 92,398 |
| 4GRT | 117,444 698,917 | 34,071 213,607 | 19,703 124,144 | 15,990 100,489 |
The surface mesh coarsening method we present here has a number of advantages compared with the existing mesh simplification algorithms. Firstly, the coarse meshes generated by our method have guaranteed quality. Second, these meshes are adaptive to the surface curvature. Finally, the method guarantees that the coarse meshes are Delaunay meshes and that they maintain the surface topology. These advantages are not only desirable for geometric modeling using polygonal meshes, they also provide better input to a tetrahedral mesh generation program. Figure 8 illustrates this property on the classical example of a Bunny. The mesh of its skin surface that contains 37,603 vertices and 75,202 faces was subjected to two independent coarsening scheme, one following the method described here and the second using the Qslim program developed by Garland [20]. The resulting coarsened meshes are shown in the center and left panels of figure 8; they both correspond to a decimation of the original mesh and include 3,962 vertices and 7,920 faces. These two meshes were subsequently used to generate Delaunay tetrahedral meshes. Starting with the surface mesh generated with our method, we obtained a tetrahedral mesh that includes 4,488 vertices and 13,931 tetrahedra; in comparison, the tetrahedral mesh generated from the surface mesh computed by Qsim using TetGen contains 8,026 vertices and 30,147 tetrahedra, for the same quality criteria, e.g., no tetrahedra have radius-edge ratio greater than 2. The main reason for this difference is that the Delaunay refinement of the tetrahedral mesh generated from the Qsim surface mesh requires more Steiner points.
Fig. 8. A comparison of our skin mesh coarsening algorithm with Qslim.
The left panel shows the mesh generated for a Bunny that has been modeled with a skin surface consisting of 37,603 vertices and 75,202 faces. The skin model of the bunny are specified by a set of spheres output from the PowerCrust[2] with surface sample points of a Stanford Bunny model. The center and right panels show the corresponding coarse meshes generated by our adaptive coarsening algorithm and by Qslim [20], respectively. These two coarsened meshes include the same number of vertices (3,962) and the same number of faces (7,920).
Given the same input surface mesh, our method for generating quality tetrahedral meshes often achieves a smaller size mesh than the mesh generated with TetGen, with the same guarantees on the mesh quality. For example, the tetrahedral mesh inside the protein shown in figure 6 generated by our method contains 165,766 tetrahedra. In comparison, Tetgen generated a mesh with 219,459 tetrahedra to achieve the same quality guarantee, starting from the same surface mesh.
We note that it is computational costly to check if a new edge created after edge contraction or vertex insertion is restricted Delaunay or not since we need to compute the Voronoi vertex of the triangles that are deleted. In our implementation, we flip an edge if it improves the minimum angle of the two triangles; this procedure generates an almost restricted Delaunay triangulation, i.e. more than 95% of the triangles in the coarse mesh are restricted Delaunay and the left ones can be transformed into restricted Delaunay by edge flipping operations. Such an approximation improves the efficiency of our algorithm dramatically. For example, it takes only 39 seconds to reduce a surface mesh of 141,262 triangles to 15,252 triangles with guaranteed quality and preserved topology on a Mac PC with a 2.66GHz Dual Core Intel Xeon processor. The computing time needed for generating the coarse surface meshes versus the number of triangles in the fine surface mesh increases almost linearly as the input mesh size grows. It is noteworthy that there are no obvious relationships between the computing time and the number of the atoms because the number of triangles in the input surface mesh is a function of the surface area and the curvature of the surface, with no direct relationship to the number of atoms.
6 Conclusion
This paper presents efficient algorithms for constructing a hierarchy of surface and tetrahedral meshes with decreasing resolution for a given molecular skin surface. The mesh resolution and quality of the coarse meshes are controlled by a pair of parameters Ci and Qi. The coarse surface meshes are adaptive to the surface curvature and have guaranteed mesh quality and topology. The tetrahedral meshes are built for each level of coarse surface mesh using the restricted Delaunay triangulation and Delaunay refinement techniques. The tetrahedral meshes are conforming to the interface mesh which separates the tetrahedral meshes into interior and exterior. All of the tetrahedra have guaranteed quality.
An immediate future work is to apply our hierarchical tetrahedral mesh to multigrid solvers of PDE, and in particular of the PBE. We believe that using the hierarchy of meshes described here will improve the convergence of the solver as well as the accuracy of the solution since the mesh conformity and the element quality are essential factors for the accuracy and convergence of FEM. It will be interesting to investigate the application of our methods to other smooth surfaces such as implicit surfaces. The essential component in such an extension would be the curvature adaptivity conditions, which is determined by the nature of the surface.
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.Cgal, Computational Geometry Algorithms Library. http://www.cgal.org.
- 2.Amenta N, Choi S, Kolluri RK. The power crust, union of balls, and the medial axis transform. International Journal of Computational Geometry and its Applications. 2001;vol. 19:127–153. [Google Scholar]
- 3.Bajaj CL, Pascucci V, Shamir A, Holt RJ, Netravali AN. Dynamic maintenance and visualization of molecular surfaces. Discrete Applied Mathematics. 2003;127(1):23–51. [Google Scholar]
- 4.Berman H, Westbrook J, Feng Z, Gilliland G, Bhat T, Weissig H, Shindyalov J, Bourne P. The protein data bank. Nucl. Acids. Res. 2000;28:235–242. doi: 10.1093/nar/28.1.235. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 5.Botsch M, Pauly M, Kobbelt L, Alliez P, Lévy B, Bischoff S, Rössl C. ACM SIGGRAPH 2007 courses. New York, NY, USA: SIGGRAPH ’07, ACM; 2007. Geometric modeling based on polygonal meshes. [Google Scholar]
- 6.Cheng H, Dey TK, Edelsbrunner H, Sullivan J. Dynamic Skin Triangulation. Discrete Comput. Geom. 2001;25:525–568. [Google Scholar]
- 7.Cheng H, Shi X. Quality mesh generation for molecular skin surfaces using restricted union of balls. Proceedings of IEEE Visualization. 2005:399–405. [Google Scholar]
- 8.Cheng H-L, Shi X. Quality tetrahedral mesh generation for macromolecules. ISAAC. 2006:203–212. [Google Scholar]
- 9.Cheng S-W, Dey TK, Edelsbrunner H, Facello MA, Teng S-H. Sliver exudation. Proceedings of the fifteenth annual symposium on Computational geometry; ACM Press; 1999. pp. 1–13. [Google Scholar]
- 10.Chentanez N, Feldman BE, Labelle F, O’Brien JF, Shewchuk JR. Liquid simulation on lattice-based tetrahedral meshes. Proceedings of the 2007 ACM SIGGRAPH/Eurographics symposium on Computer animation; SCA ’07; 2007. pp. 219–228. [Google Scholar]
- 11.Chew LP. Constrained delaunay triangulations. SCG ’87: Proceedings of the third annual symposium on Computational geometry; ACM Press; New York, NY, USA. 1987. pp. 215–222. [Google Scholar]
- 12.Cohen-Steiner D, de Verdiere EC, Yvinec M. Conforming delaunay triangulations in 3d. Proceedings of the eighteenth annual symposium on Computational geometry; ACM Press; 2002. pp. 199–208. [Google Scholar]
- 13.Connolly ML. Molecular surfaces: A review. Network Science. 1996 [Google Scholar]
- 14.Dey T, Edelsbrunner H, Guha S, Nekhayev D. Topology preserving edge contraction. Publ. Inst. Math. (Beograd) (N.S.) 1999;66:23–45. [Google Scholar]
- 15.Edelsbrunner H. Deformable smooth surface design. Discrete Comput. Geom. 1999;21:87–115. [Google Scholar]
- 16.Edelsbrunner H, Mucke EP. ACM Trans. Graph. vol. 9. ACM Press; 1990. Simulation of simplicity: a technique to cope with degenerate cases in geometric algorithms; pp. 66–104. [Google Scholar]
- 17.Edelsbrunner H, Shah N. Triangulating topological spaces; Proceedings 10th ACM Symposium on Computational Geometry; 1994. pp. 285–292. [Google Scholar]
- 18.Edelsbrunner H, Shah NR. Incremental topological flipping works for regular triangulations; Symposium on Computational Geometry; 1992. pp. 43–52. [Google Scholar]
- 19.Feng YT, Peric D. Coarse mesh evolution strategies in the galerkin multigrid method with adaptive remeshi ng for geometrically non-linear problems. International Journal for Numerical Methods in Engineering. 2000;49:547–571. [Google Scholar]
- 20.Garland M, Heckbert PS. Surface simplification using quadric error metrics. SIGGRAPH. 1997:209–216. [Google Scholar]
- 21.Held M. FIST: Fast industrial-strength triangulation of polygons. Algorithmica. 2001;30(4):563–596. [Google Scholar]
- 22.Holst M, Baker NA, Wang F. Adaptive multilevel finite element solution of the Poisson-Boltzmann equation i. algorithms and examples. J. Comp. Chem. 2000;21(15):1319–1342. [Google Scholar]
- 23.Holst MJ, Saied F. Numerical solution of the nonlinear Poisson-Boltzmann equation: Developing more robust and efficient methods. J. Comp. Chem. 1995;16(3):337–364. [Google Scholar]
- 24.Kobbelt LP, Bareuther T, Seidel H-P. Multiresolution shape deformations for meshes with dynamic vertex connectivity. Computer Graphics Forum. 2003;19(3):249–260. [Google Scholar]
- 25.Kruithof N, Vegter G. Meshing skin surfaces with certified topology. Comput. Geom. 2007;36(3):166–182. [Google Scholar]
- 26.Lu B, Zhou YC, Huber GA, Bond SD, Holst MJ, McCammon JA. Electrodiffusion: A continuum modeling framework for biomolecular systems with realistic spatiotemporal resolution. J. Chem. Phys. 2007 Oct;127 doi: 10.1063/1.2775933. 5102–+ [DOI] [PubMed] [Google Scholar]
- 27.Matthieu Chavent, Bruno Levy BM. Metamol: High-quality visualization of molecular skin surface. Journal of Molecular Graphics and Modelling. 2007;27:209–216. doi: 10.1016/j.jmgm.2008.04.007. [DOI] [PubMed] [Google Scholar]
- 28.Miller, Talmor, Teng Optimal good-aspect-ratio coarsening for unstructured meshes; SODA: ACM-SIAM Symposium on Discrete Algorithms; 1997. [Google Scholar]
- 29.Ollivier-Gooch C. Coarsening unstructured meshes by edge contraction. International Journal for Numerical Methods in Engineering. 2003;57:391–414. [Google Scholar]
- 30.Pebay PP, J.Baker T. A comparison of triangle quality measures; Proceedings 10th International Meshing Roundtable; 2001. Oct, pp. 327–340. [Google Scholar]
- 31.Shewchuk JR. PhD thesis. Vol. 22. Carnegie-Mellon University; 1997. Delaunay refinement mesh generation. [Google Scholar]
- 32.Si H. On refinement of constrained delaunay tetrahedralizations; Proceedings of the 15th International Meshing Roundtable; 2006. [Google Scholar]
- 33.Si H, Gaertner K. Meshing piecewise linear complexes by constrained delaunay tetrahedralizations; Proceedings of the 14th International Meshing Roundtable; 2005. pp. 147–163. [Google Scholar]
- 34.Wolters HJ. Geometric modeling applications in rational drug design: a survey. Computer Aided Geometric Design. 2006;23(6):482–494. [Google Scholar]
- 35.Zhang Y, Xu G, Bajaj C. Quality meshing of implicit solvation models of biomolecular structures. Computer Aided Geometric Design. 2006;23(6):510–530. doi: 10.1016/j.cagd.2006.01.008. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 36.Zomorodian A, Guibas L, Koehl P. Geometric filtering of pair-wise atomic interactions applied to the design of efficient statistical potentials. Computer Aided Geometric Design. 2006;23(6):531–544. [Google Scholar]








