Mesh generation on planar domain
Lemma 3.1: Lemma of Delaunay
2. Compute the area co-ordinates of point p relative to triangle T
3.6 ADVANCING FRONT APPROACH .1 Introduction
The AFT, which debuted from the classical paper of Lo (1985), was proposed to generate tri-angular meshes with pre-placed interior nodes over planar domains of arbitrary boundary characteristics. The method was rapidly developed in the FE communities; it was extended
(a) (b)
(c) (d)
Figure 3.42 Segments recovered by diagonal swap (a, b) and by divideandconquer (c, d).
by Zhu et al. (1991a,b), Blacker and Stephenson (1991) and Blacker et al. (1991) to generate unstructured quadrilateral meshes and by Lohner and Parikh (1988), Peraire et al. (1988), Lo (1991b,c), Jin and Tanner (1993), Lohner (1994, 1995, 1996a,b, 1997) and Moller and Hansbo (1995) to generate tetrahedral meshes over 3D domains. The method could also be used to generate FE meshes directly over curved surfaces (Lau and Lo 1996; Lo and Lau 1998; Ito and Nakahashi 2002) or indirectly through a parametric mapping from 2D meshes generated based on an anisotropic metric computed from the surface curvatures (Lo 1988c; Borouchaki et al. 1997a,b; Lee 2003a,b).
It is interesting to note that the AFT can be merged with the well-known DT (George and Seveno 1994) in a harmonious manner to improve efficiency and robustness of the method especially for generating anisotropic meshes over surfaces and volume (Frey et al. 1998;
Borouchaki et al. 2000a). There are two possibilities in such a combination: (i) advanc-ing front–Delaunay approach (Frey et al. 1998; Borouchaki et al. 2000a) – in a classical DT procedure, points are created by the ADF strategy; and (ii) frontal Delaunay approach (Lo 1989a) – the ADF procedure is modified such that the Delaunay connection criterion is taken into account to reduce the check for intersections in the phase of element creation.
Other applications of the AFT include MG over objects composed of a variety of surfaces derived from surface intersections (Lo 1995; Shostko et al. 1999), to reconstruct surfaces from a seed triangle taken from a collection of triangular facets so as to study its geometry and topology (Lo 1998b), to fill up space with arbitrary-shaped objects (Lohner and Onate 2010), to generate unconstrained hex meshes (Staten et al. 2010a,b) and to build geometric models for granular structures in 2D and 3D to simulate nanostructures (Benabbou et al.
2010).
The AFT is known to be robust and versatile over domains of different dimensions with diverse geometrical and topological characteristics (Owen et al. 1998; Wang et al. 1999), and is able to produce elements of various shapes such as triangles, quadrilaterals, tetrahe-dra and hexahetetrahe-dra close to the well-shaped ideal geometry in compliance with the specified node spacing function (Owen 1999; Owen et al. 1999; Owen and Saigal 2000). However, the main difficulty with the AFT is its efficiency in dealing with a large number of elements.
Whenever a new element is formed with a node on the generation front or with an inserted interior node, one has to ensure that the segments created do not cut into the generation front. As the generation front during the meshing process is quite unpredictable and is allowed to evolve in whatever ways necessary for the generation of the most optimal ele-ments, to ensure no intersection, a rigorous search has to be performed over all the line seg-ments on the generation front, which is obviously quite a tedious time-consuming process.
Nevertheless, the searching process could be made localised, and some parallel procedures have been proposed to speed up the method in which the domain to be meshed is subdivided spatially into the cells by means of the Octree technique (Rassineux 1998; deCougny and Shephard 1999a,b).
Apart from a regular grid, the Quadtree partition of space is often used in MG over 2D domains. However, the main purpose is to provide a static background grid for a given object, which can be refined locally to capture the boundary and features to any desirable level of details. Based on a set of standard templates for inclined edges, quadrilateral ele-ments can be generated to fit boundaries (Liang et al. 2009; Ebeida et al. 2010). Adaptive refinement by means of progressive Quadtree subdivision can be applied to problems gov-erned by the Poisson equation over a regular planar domain (Tabarraei and Sukumar 2005).
Regular grids can also be employed to store nodes and other geometrical quantities to facilitate searching for the intersection of triangular facets (Ito and Nakahashi 2002). The intersected triangles are removed leaving gaps that could be filled up with new triangles by means of the AFT (Chand 2005). Anisotropic quadrilateral elements can be generated by
an indirect approach based on a triangulated surface (Merhof et al. 2007). Discrete fracture modelling by unstructured triangular mesh was generated by the Delaunay–AFT with data points being stored in a uniform grid (Sahimi et al. 2010). An Octree partition for parallel meshing rather than to facilitate local searching has also been proposed (Lohner 2001). The Octree subdivision has to be updated as the generation front progresses, and the sizes of the boxes and the smallest element have to be carefully controlled to ensure that the elements do not protrude into other zones. Octree as a background grid can also be used to discern boundaries of different material types, and tetrahedral elements are generated at the bound-ary between materials (Zhang et al. 2010). From this brief survey of recent publications on the use of background grids, it is clear that most of the applications are made to provide support for some geometrical issues, and very often the grid will turn into a mesh or part of the final mesh after some local modifications. The Delaunay–AFT has been developed to generate high-quality tetrahedral meshes (Frey et al. 1998) and anisotropic meshes speci-fied by a general metric for computational fluid dynamics (Borouchaki et al. 1997b). In the Delaunay–ADF meshing, the DT, which has been generated earlier, in fact, serves as an unstructured background grid (control space) to generate interior points by the AFT. A grid is often employed to reduce the CPU time for searching and matching of geometrical quanti-ties; however, it is usually used in a static manner under the condition that the position of every item is known a priori.
After a brief introduction of the basic idea of AFT, the procedure of ADF meshing will be presented in 10 steps. In Section 3.6.2, the generation of adaptive mesh governed by a speci-fied nodal spacing by the AFT will be discussed. The implementation details for each step of the AFT will also be given so as to explain when and why a search on the generation front would be needed. In order to speed up the check for intersections between the proposed ele-ment and the generation front, which is perhaps the weakest part in the ADF approach, the idea of using a dynamic grid is presented in Section 3.6.3. The setting of the background grid is to facilitate a search on the generation front for possible intersections in which details will be given on how the size of an individual cell in the partition can be determined, and formulas and procedure as to how segments are stored and deleted from intersecting cells will also be given. The dynamic grid has been designed to deal with an unknown number of quantities assigned to a cell, and those items could be added or deleted from time to time in a continuous manner throughout the MG process.
Test examples are given in Section 3.6.4 in which two series of meshes are generated with full statistics on their characteristics depicted in Tables 3.1 and 3.2 to show the characteris-tics of meshes generated by the AFT. Two examples on adaptive refinement meshing are also provided to assess the performance of the dynamic grid in practical applications. Finally, closing remarks and discussions are presented in which a brief note on how a straightfor-ward extension of the idea to three dimensions is also included.
3.6.2 Adaptive meshing by the AFT
The MG problem is completely defined by the boundary segments Γ, which is derived from the discretised boundary B of domain Ω, along with the node spacing function ρ, which governs the size of the elements to be generated. By virtue of the counter-clockwise order assigned to the nodes on the exterior boundary and clockwise order to the nodes on the internal boundaries, the domain to be meshed always situates to the left of a boundary segment. Following this convention, the list of segment in Γ need not follow any sequential or particular order as long as the segments are oriented correctly as exterior and interior boundary segments. This flexibility allows boundary segments to be entered and prepared independently in the collection of domain boundary edges for MG.
Table 3.2 Statistics for meshes of the second node spacing function and other meshes Mesh(ρmin) δ Grid Nn Ne CPU
Time(s) α Nb Nc Ns Efficiency
2A(0.1) 0.871
– 22592 45132 4.39 0.9062 4912 – 7.254 1
30 × 20 22527 45002 0.99 0.9046 4980 71.75 7.277 4.43 60 × 40 22491 44937 0.95 0.9039 4873 38.81 7.164 4.62 2B(0.05)
0.872
– 46256 92460 17.49 0.9031 9992 – 7.825 1
30 × 20 46338 92624 3.52 0.9039 10125 131.74 7.758 4.97 60 × 40 46305 92565 3.29 0.9044 9901 67.68 7.659 5.32 2C(0.02)
0.870
– 117496 234940 111.5 0.9013 24893 – 8.351 1
30 × 20 117160 234268 19.37 0.9011 24723 71.62 8.315 5.76 60 × 40 117400 234755 18.7 0.9019 24987 71.47 8.279 5.96 2D(0.01)
0.870
– 236052 472052 458.9 0.9009 50544 – 8.842 1
30 × 20 235684 471316 76.9 0.9010 50258 35.60 8.878 5.97 60 × 40 235698 471351 69.6 0.9014 50131 35.59 8.836 6.59 2E(0.005)
0.870
– 472442 944832 1945 0.9015 101777 – 9.361 1
30 × 20 471906 943760 374.2 0.9013 101245 17.78 9.346 5.20 60 × 40 471909 943766 340.4 0.9013 101251 17.78 9.346 5.71
3 – 66379 132428 29.25 0.9205 11570 – 6.091 1
(0.05) 30 × 20 66381 132432 7.86 0.9206 11564 126.7 6.091 3.72 0.878 60 × 40 66377 132424 7.75 0.9206 11562 67.55 6.091 3.77
4 – 155783 311304 151.7 0.9202 25322 – 6.442 1
(0.03) 30 × 20 155761 311260 28.9 0.9200 25301 53.90 6.444 5.25 0.879 60 × 40 155772 311282 28.3 0.9200 25309 53.90 6.444 5.36 Table 3.1 Statistics for meshes of the first node spacing function
Mesh
(ρmin) δ Grid Nn Ne CPU
Time(s) α Nb Nc Ns Efficiency
1A(0.1) 0.866
– 15412 30772 2.23 0.8931 3589 – 8.023 1
30 × 20 15525 31009 0.55 0.8959 3454 66.29 7.971 4.02 60 × 40 15218 30384 0.52 0.8952 3342 37.75 7.862 4.25 1B(0.05)
0.869
– 30514 60976 7.51 0.8971 6287 – 8.440 1
30 × 20 31303 62554 2.16 0.8958 7406 122.7 8.597 3.48 60 × 40 31306 62560 2.12 0.8956 7406 66.71 8.597 3.54 1C(0.02)
0.864
– 75740 151428 47.25 0.8925 16148 – 9.250 1 30 × 20 76395 152749 11.2 0.8950 16051 109.8 9.249 4.22 60 × 40 76067 152082 10.93 0.8931 16004 110.3 9.283 4.32 1D(0.01)
0.863
– 149559 299066 196.23 0.8930 33810 – 9.748 1 30 × 20 150923 301794 44.01 0.8930 32914 55.59 9.788 4.46 60 × 40 150935 301818 42.73 0.8930 32917 55.59 9.787 4.59 1E(0.005)
0.862
– 303577 607102 750.1 0.8934 63426 – 10.48 1 30 × 20 298292 596532 184.8 0.8937 67466 28.12 10.30 4.06 60 × 40 298292 596532 174.2 0.8936 67468 28.12 10.30 4.31 Note: Nn, number of nodes in the mesh; Ne, number of elements in the mesh; Nb, average number of boundary segments on the generation front; Nc, average number of neighbouring segments from the background grid; Ns, average number of seg
ments for intersection tests; CPU Time, computer time in seconds for MG and graphics display; α, mean element shape factor calculated by Equation 3.2; δ, mean spacing conformity coefficient of line segments by Equation 3.3; Efficiency, CPU time for meshing without grid/CPU time for meshing with grid.
A very important concept is that at the beginning of MG, the generation front Γ is exactly equal to the list of boundary segments. While the domain boundary B remains always the same, the generation front Γ changes continuously throughout the MG process and has to be updated from time to time whenever a new element is formed, as shown in Figure 3.43a and b. MG terminates when there is no more line segment left in Γ, or Γ is reduced to an empty set. The essential steps for the generation of adaptive meshes over a 2D domain in compli-ance with a specified node spacing function are given in the following.