11
Compurers & Srrucrures Vol. 36, No. 2. pp. 309-319, 1990 Printed in Great Britain. 004s7949/90 $3.00 + 0.00 0 1990 Pergamon Press plc TWO-DIMENSIONAL FINITE ELEMENT MESH GENERATION BASED ON STRIPWISE AUTOMATIC TRIANGULATION R. P. BHATIA and K. L. LAWRENCE University of Texas at Arlington, Arlington, TX 76019, U.S.A. (Received 3 July 1989) Abstract-A new mesh generator, capable of discretizing arbitrary, two-dimensional, multiply connected domains into triangles with a prescribed spatial density, has been developed. The technique is based on stripwise automatic triangulation. The triangulation strategy has been enhanced using two heuristics. The first is a method to temporarily reorient a region before submitting it for generation. The second is a technique to find and repair ‘omitted patches’ near sharply curved boundaries. Despite employing a set of heuristics, the resulting scheme is versatile, robust, and demonstrates a near linear growth rate. INTRODUCTION A variety of mesh generation schemes have been developed over the past decade. The focus has moved from coordinate transformation schemes [l-5], which are input intensive, and automatic triangula- tion [6-lo], which is fairly robust but involves time consuming searching, to hierarchical spatial decom- position schemes [ 1l-1 31, which are versatile, robust, and are based on certain principles of computational geometry, which enable them to function without applying too many heuristics. Automatic triangulation, which is a more direct way to generate triangular elements, in general, involves: (a) inserting nodes in the interior and on the boundary of the region to be meshed; and (b) connecting the nodes in some optimal manner to create well shaped triangles. Various methods exist for automatic triangulation. The most well known of these is the scheme devel- oped by Cavendish [8] which is based on Dirichlet Tesselation followed by Delaunay Triangulation. Lo has developed two very interesting schemes 19, lo]. In [9] nodes are inserted on the domain boundaries and sorted into horizontal levels stacked one above the other. Internal nodes are added in each level from left to right between each pair of boundary nodes that are more than a specified spacing apart. This effectively divides the region into a set of strips stacked one above the other. Elements are then conveniently generated between these strips. Lo’s later approach [lo] has a somewhat similar node generation scheme but performs element generation in a different way, using the concept of a ‘generation front’. It was felt that the scheme in [9], due to its simplicity, would result in a computationaly efficient mesh generation. However, on initial experimen- tation it was found that ill-conditioned meshes with high aspect ratio triangles, discontinuities, and omit- ted regions near sharply re-entrant boundaries were sometimes generated. Moreover, modifications are required to include a provision to treat mesh density variations. In the present paper the direct automatic triangu- lation strategy of [9] is re-examined, and an effective implementation of stripwise mesh generation is presented [ 171. The first section explains in detail our adaptation of Lo’s central scheme. It casts light on the various ambiguous situations that may arise and how these have been overcome. The second section explains the two innovations that have been implemented to yield well formed meshes. The first of these is a method of orienting domain subregions in an optimal manner before generation in order to ensure that similar meshes are generated in geometrically similar domains even if they are oriented differently. The second is a technique to repair omitted sections at strip ends in cases of sharply re-entrant boundaries. The third section describes the implementation of the automatic mesh generator in an interactive graphic preprocessor. The fourth section explores the effec- tiveness of the generator in terms of versatility and demonstrates near linear growth rates with examples. CENTRAL MESH GENERATION Assume that a given geometry has been divided into subregions, with a different mesh density specified in each subregion by the user. The genera- tion begins by sorting subregions of the domain in the order of decreasing specified nodal density, recording common boundaries between subregions, and insert- ing nodes on all boundaries according to a spacing derived from the nodal density. Each subregion is 309

Two-dimensional finite element mesh generation based on stripwise automatic triangulation

Embed Size (px)

Citation preview

Page 1: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

Compurers & Srrucrures Vol. 36, No. 2. pp. 309-319, 1990 Printed in Great Britain.

004s7949/90 $3.00 + 0.00 0 1990 Pergamon Press plc

TWO-DIMENSIONAL FINITE ELEMENT MESH GENERATION BASED ON STRIPWISE AUTOMATIC

TRIANGULATION

R. P. BHATIA and K. L. LAWRENCE

University of Texas at Arlington, Arlington, TX 76019, U.S.A.

(Received 3 July 1989)

Abstract-A new mesh generator, capable of discretizing arbitrary, two-dimensional, multiply connected domains into triangles with a prescribed spatial density, has been developed. The technique is based on stripwise automatic triangulation. The triangulation strategy has been enhanced using two heuristics. The first is a method to temporarily reorient a region before submitting it for generation. The second is a technique to find and repair ‘omitted patches’ near sharply curved boundaries.

Despite employing a set of heuristics, the resulting scheme is versatile, robust, and demonstrates a near linear growth rate.

INTRODUCTION

A variety of mesh generation schemes have been developed over the past decade. The focus has moved from coordinate transformation schemes [l-5], which are input intensive, and automatic triangula- tion [6-lo], which is fairly robust but involves time consuming searching, to hierarchical spatial decom- position schemes [ 1 l-1 31, which are versatile, robust, and are based on certain principles of computational geometry, which enable them to function without applying too many heuristics.

Automatic triangulation, which is a more direct way to generate triangular elements, in general, involves: (a) inserting nodes in the interior and on the boundary of the region to be meshed; and (b) connecting the nodes in some optimal manner to create well shaped triangles.

Various methods exist for automatic triangulation. The most well known of these is the scheme devel- oped by Cavendish [8] which is based on Dirichlet Tesselation followed by Delaunay Triangulation. Lo has developed two very interesting schemes 19, lo]. In [9] nodes are inserted on the domain boundaries and sorted into horizontal levels stacked one above the other. Internal nodes are added in each level from left to right between each pair of boundary nodes that are more than a specified spacing apart. This effectively divides the region into a set of strips stacked one above the other. Elements are then conveniently generated between these strips. Lo’s later approach [lo] has a somewhat similar node generation scheme but performs element generation in a different way, using the concept of a ‘generation front’.

It was felt that the scheme in [9], due to its simplicity, would result in a computationaly efficient mesh generation. However, on initial experimen-

tation it was found that ill-conditioned meshes with high aspect ratio triangles, discontinuities, and omit- ted regions near sharply re-entrant boundaries were sometimes generated. Moreover, modifications are required to include a provision to treat mesh density variations.

In the present paper the direct automatic triangu- lation strategy of [9] is re-examined, and an effective implementation of stripwise mesh generation is presented [ 171.

The first section explains in detail our adaptation of Lo’s central scheme. It casts light on the various ambiguous situations that may arise and how these have been overcome. The second section explains the two innovations that have been implemented to yield well formed meshes. The first of these is a method of orienting domain subregions in an optimal manner before generation in order to ensure that similar meshes are generated in geometrically similar domains even if they are oriented differently. The second is a technique to repair omitted sections at strip ends in cases of sharply re-entrant boundaries. The third section describes the implementation of the automatic mesh generator in an interactive graphic preprocessor. The fourth section explores the effec- tiveness of the generator in terms of versatility and demonstrates near linear growth rates with examples.

CENTRAL MESH GENERATION

Assume that a given geometry has been divided into subregions, with a different mesh density specified in each subregion by the user. The genera- tion begins by sorting subregions of the domain in the order of decreasing specified nodal density, recording common boundaries between subregions, and insert- ing nodes on all boundaries according to a spacing derived from the nodal density. Each subregion is

309

Page 2: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

310 R. P. BHATIA and K. L. LAWRENCE

meshed in turn by recording its boundaries and associated information into scratch arrays and sub- mitting these to a central generation program (CGP).

The CGP divides the subregion into a set of horizontal strips at different heights, and collects and sorts the boundary nodes in each strip (from left to right and from bottom to top) to obtain a set of node levels stacked one above the other. Interior node points are added at each level and triangulation is performed between levels until the entire subregion is covered.

Boundary node insertion

The subregions specified by the user during input are at first sorted in the order of decreasing nodal density. The average element size in a subregion is related to the nodal density by the relation

average size

= max extent of subregion/nodal density.

Sorting regions on the basis of nodal density ensures that when two regions share a common boundary, the nodes on the common boundary will be spaced according to the higher nodal density. A subsequent sort traverses all the subregion boundaries (SB) in the subdivided domain and makes a note of all boundary segments that are common to two or more subregions. Thus, for each SB, a record is made of all higher density subregions sharing that SB with that particular subregion.

Insertion of nodes on the boundaries is performed by processing the boundaries of each subregion in turn. Each segment of a given SB is traversed and nodes are inserted on every segment that has not already been subdivided in a previous higher density subregion. The boundary data are organized such that segments common to two or more subregions do not have to be processed more than once. A set of interrogation functions determines whether nodes have to be generated along a straight line, arc, circle, or general curve.

After boundary nodes have been inserted, the data for each subregion are supplied in turn to the mesh generator. For clarity the terms ‘SB’ (subregion boundary) and ‘subregion’ will be replaced by the terms ‘boundary’ and ‘region’ for the remainder of this section.

Interior node generation

The first step required for generation of a valid set of interior nodes is to recognize the potential start nodes, end nodes, and intermediate nodes of the bands in the region to be meshed. Nodes on an external left-hand or internal right-hand boundary are potential start nodes. Conversely, nodes on an internal left-hand or external right-hand boundary are potential end nodes. All other nodes are consid- ered internal.

Start nodes, end nodes and intermediate nodes are marked as + 1, - 1 and 0, respectively. The entire region is then divided into a set of vertically stacked levels. The number of levels is found by dividing the height of the subregion by the nodal spacing.

The first and last strip are half the width of the intermediate strips to accommodate lower and upper boundary nodes, especially in the case of regular shapes such as squares or rectangles.

The boundary nodes are now recorded in ‘level’ arrays depending on the strip to which they belong. The nodes at each level are then arranged from left to right. Also, the levels themselves are subsequently separated into bands such that each band begins with a positively marked (or left boundary) node and ends with a negatively marked (or right boundary) node. Figure 1 shows the markings on the boundary nodes of a square region.

While sorting the nodes into levels, checks must be made at every step to ensure that each level has both left-hand and right-hand nodes assigned to it. If a level has only right-hand or only left-hand nodes, it is considered invalid. A level which does not contain any nodes at all is also invalid. Exceptions to this rule are ‘one-node levels’ located at the bottom or top of the domain (extrema). Invalid levels are ‘cancelled’, that is, all nodes belonging to them are confiscated and supplied to the previous level.

Band separation also involves detailed checking for the variety of cases that may arise. Each band runs from the first positively marked to the last negatively marked node of a series of consecutive nodes in a level. Care must be taken to ensure, for instance, that two consecutive nodes with the same sign are also consecutive boundary nodes. If not, they cannot be assigned to the same band.

Interior nodes are now inserted into the bands on each level in turn (Fig. 2). Any pair of consecutive nodes in a band that are more than 1.5 times the

I’ L.n.n.o.R.e-1

Fig. 1. Marked boundary nodes.

Page 3: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

Two-dimensional finite element mesh generation 311

35 31

22 24

92 33

25 26

I 34 35

27 28

16 17 18 19 29 21

I 9 19 11 12 13 14

.L.L. 9..-.L.b 7

Fig. 2. Array of generated nodes.

specified spacing apart qualify to have interior nodes added between them.

After node insertion, the nodes of the region are renumbered from left to right, bottom to top.

Element generation

Elements are formed by triangulating the region between consecutive levels. The essence of the tri- angulation process is illustrated in Fig. 3. Let Ll, L2, L3 and Ul, U2, U3 be consecutive nodes on the lower and upper levels, respectively, at the start of generation. UlLl represents the ‘generation front’ at the starting point. This front moves across the strip from left to right and generates elements as it progresses.

The situation in Fig. 3 indicates that the next position of the front can be selected from four candidate possibilities, namely LlU2, LlL3, Ul L2 and UlU3. The selection depends on which new position produces the best shaped triangle. The ‘qual- ity’ of each of the four possible triangles (LlU2U1,

Upper level nodes

LHS boundary

+lLw3 Lower level nodes

i2 Generation front at LlUl

Case la LlUZUl beat triangle Case lb UlLZLl beat triangle

UlU2U3 shifted (encircled) ~lL2L3 shifted (encircled) Front moves to LlU2 Front moves to L2Ul

Case 2a ~lL2L3 best triangle Case 2b UlU2U3 best triangle

L2L3 shifted (encircled) U2U3 ehifted (encircled) Front stays at LlUl Front stays at LlUl

Fig. 3. Triangulation between levels.

Page 4: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

312 R. P. BHATIA and K. L. LAWRENCE

- - --eNAt’

CO68 lb

- - - ,NA2’ N82’- ---

NAl, NBl are shifted, by eearching along the boundary, to new positions NAl’, NBl * on level 1

NA2, NB2 am shifted, by searching along the boundary, to new position8 NA2’, NBP’ on level 2

Fig. 4. Triangulation case 1. Adjacent levels have only one band each.

LIL2L3, UIL2Ll and UlU2U3) is evaluated by dividing the area of each by the square of its perimeter. The closer this value is to the correspond- ing value for an equilateral triangle, the better the triangle.

Each time a triangle is formed, the front moves to a new position to generate the next triangle. If Ll IJ2U 1 is selected as the best quality triangle, then the front is moved to LlU2 and U2, U3 and U4 become the next set of three upper nodes. If the best triangle, then the front stays at LlUl and Ll, L3 and L4 become the next set of three lower nodes. The cases where UlL2Ll or UlU2U3 form the best triangles are similar.

After selecting one of the four t~angulation op tions, the resulting situation is similar to the starting one. That is, a new set of nodes Ll, L2, L3 and Ul, U2, U3 are designated from which the next triangu- lation option is chosen. The front moves on in a similar fashion until it reaches the end of the strip.

It is necessary to have a procedure that monitors the triangulation because all cases do not necessarily lead to a direct application of the scheme indicated above. Two consecutive levels may constitute more than one mesh strip depending on the number of bands at each level, which in turn depends on boundary protrusions, multiple connectedness, and other irregularities in the domain geometry. The procedure outlined above is therefore a general rou- tine, which is supplied ‘clean’ data by a triangulation monitoring procedure. The monitor distinguishes four possible situations for generating elements between consecutive levels. In each case it is required that the start nodes on the two strips be consecutive nodes on a positively signed (left-hand) boundary and that the end nodes be consecutive on a negative (right-hand) boundary. The assignment of boundary directions (external ccw and internal cw) enables the program to identify adjacent nodes in a convenient manner.

Case 1. Levels 1 and 2 both have one band each (Fig. 4). In this case the left-hand boundary is traversed in the direction of the boundary starting at the first node NA2 of the upper level. Each boundary node (Ncheck) encountered is examined to determine the level to which it belongs. If Ncheck lies on the upper level, then Ncheck becomes the new NA2. If Ncheck lies on the lower Ievel then Ncheck becomes the new start node for level 1 (NAI) and the left-hand check is terminated.

Similarly, the right-hand boundary is traversed again in the boundary direction starting at the last node NBI of the lower level. Again nodes are up- dated to yield two consecutive boundary nodes NBI and NB2 on the ~ght-hand sides of levels 1 and 2, respectively.

NAl, NBI and NA2, NB2 on levels 1 and 2 are now submitted for element generation.

Case 2. Level 1 has one band, level 2 has more (Fig. 5). This is a simple variation of case 1. Each band of level 2 is processed for meshing in turn. The search for adjacent nodes starts from level 2 on both ends. Figure 5 shows how the search is made for subsequent nodes on the left-hand side of the boundary and for previous nodes on the right-hand boundary. The nodes NBIl and NA12 have been identified for the two bands of level 2 (there could be any number).

Case 3. Level 1 has more than one band; level 2 has one band. This is similar to case 2 (Fig. 6).

Case 4. Levels 1 and 2 both have more than one band each (Fig. 7). For this situation the search switches adaptively between the techniques of cases 2 and 3. The search begins with the first node NA21 of level 2 and finds NAil on level 1 by searching the boundary as in case 2. It then attempts to find a right-hand node NBl 1 on level 1 by starting a search at NB21. If the node NBl 1 found does not lie on level f (as in Fig. 7) then the search switches to level 1. In other words, the search is now started from NBl1 on

Page 5: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

Two-dimensional finite element mesh generation 313

Case 2a

Case 2b

Searches are made along the boundaries for each node set NAli, NBli, on level 1, starting at nodee NA2i, NB2i on each band i of Level 2.

Fig. 5. Triangulation case 2. Level 1 has one band: level 2 has more.

level 1 and a corresponding NB21 found. NAl 1, NBll, NA21 and NB21 are then submitted for element generation and the search continued. Since the search flag is now located on level 1, the first node of the next band on level 1 (NA12) is the starting point for the next search, and NA22, NB22 and NB12 are found as in case 3. This continues until all the bands in either level are exhausted.

Assembly and Laplacian smoothing

During subregion node generation, the generated nodes are immediately stored in global node arrays. In addition, during generation, all elements in a subregion are given global node labels. Thus there is no need to postprocess subregion meshes for global assembly.

Case 3a

Figure 8 shows the mesh generated in the marked and sorted region of Fig. 1, at the end of the processes described above. Figure 9 shows a multiply connected domain, which has been subdivided into regions, before and after generation.

The generated mesh almost always appears to be under ‘tension’, i.e. interior elements may look some- what ‘stretched’ with non-optimal aspect ratios. At this stage a mesh relaxation option can be exercised by the user.

This performs a Laplacian smoothing operation [4] on the interior nodes during which each node is repositioned at the center of the polygon formed by its immediate neighbors. A tree structure of con- nected nodes is developed to facilitate mesh relax- ation. When the mesh is submitted to the finite

Level 2

NA23 3.

NB21 NA22 NE22 NA2 Z

4

f t

4 k NE2

8 NA,, NW, NE12

Searches are made along the boundaries for each node set NAPI, NBZi, on level 2. startinn at

Case

NAZI

3b nodes Nki, NBli on each band i of level 1

Fig. 6. Triangulation case 3. Level 2 has one band; level 1 has more.

Page 6: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

314 R. P. BHATZA and K. L. LAWRENCE

Level 2 ,Internal boundory

External boundary

Searches are made along the boundaries, starting at NAZI, NB2i on level 2 or NAli, NBli on level 1 adaptively, depending on which starting set yields valid nodes on the other level

Fig. 7. Triangulation ease 4. Adjacent levels both have more than one band each.

element solver, the same tree structure is used to facilitate bandwidth optimization [2, 14, 151.

ENHANCEMENTS TO THE CENTRAL SCHEME

Subregion reor~e~iafi~n

Experiments with the above generation scheme have led to the conclusion that the method works best when the domain to be meshed is ‘vertically oriented with respect to the horizontal strips. For a rectangu- lar shape this means that it should be oriented such that it rests on its shorter side. For a trapezoid this means that the larger diagonal should be vertical.

This heuristic is implemented as follows. The cen- troid of a subregion is found and the four furthest points from the centroid are determined. These points define two major axes for the subregion. If the major axes are unequal in length, the subregion is oriented to make the longer axis vertical. If the axes are equal in length, the subregion is oriented such that the line bisecting them is vertical. Orientations for a number of different shapes are shown in Figs l&13. The dotted line plots represent the optimal orientation in which the meshes are constructed, and these are followed by plots of the final mesh.

Fig. 8. Final square region mesh.

Figure 13 shows the orientations af a highly re-entrant subregion before and after rdtation. The transformation parameters are stored for inverse transformation after generation.

Apart from creating a well formed mesh, another advantage of the orientation procedure is that it ensures similar meshes in geometrically similar do- mains, independent of their orientations.

Boundary repair

In certain cases the nodes selected by the mesh generation monitor for submission to the element generation routine may not correspond to the start and end nodes of the levels concerned. This is espe- cially apparent in the case of domains which have sharply re-entrant boundaries. In such cases the triangulation leaves out potential elements at either end. A typical illustration of this situation is shown in Fig. 14.

Such cases are identified by the triangulation monitor, and submitted for correction to a boundary repair routine. The input to the repair routine consists of a list of nodes in the incomplete level that were left out of the element generation proce- dure. The repair routine identifies the ‘cut-off’ point for these nodes. In the case of Fig. 14 the cut-off occurs at node 7 on the left-hand side and node 80 on the right-hand side. Separate calls to the repair routine are made for the left-hand side and right-hand side.

For the left-hand side, after having identified the cut-off point, the region nodes from Nl to N2P (Fig. 14) are meshed, depending on their locations on the boundary. For each set of three consecutive level nodes Ni, Nipl, and Nip2, that are encountered while traveling from Nl to N2P, the routine identifies one of the following possibilities and takes the corre- sponding action.

Case 1. Nip 1 and Nip2 are non -adjacent boundary nodes. In this case Ni, Nip1 and Nip2 are the three nodes of the element introduced for repair. Nip1 becomes the new Ni further repair.

Page 7: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

Two-dimensional finite element mesh generation 315

4’: : ! ‘I : ! 7

1: @ -- 0 --

Fig. 9. Illustration of multiple mesh density regions.

Fig. 10. Reorientation example 1.

Fig. 11. Reorientation example 2.

CAS %/Z-l

Page 8: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

316 R. P. BHATIA and K. L. LAWRENCE

Fig. 12. Reorientation example 3.

Case 2. Ni and Nip 1 are non-adjucent, while Nip 1 and Nip2 are adjacent boundary nodes. In this case the nodes Ni to Nip3 are distributed as shown in Fig. 14, case a. Two triangles are formed by connecting a diagonal between Ni and Nip2, or Nip1 and Nip3 (whichever rest&s in higher quality tri- angles). These form two new elements. Nip2 becomes the new Ni for further repair. The repair work is considered to be over when Ni reaches the node N2- 1.

Fig. 13. Reorientation example 4.

The procedure to repair the right-hand side is similar, except that the cut-off point is at node Nl, repair proceeds backwards from N2 to N 1 M, and the process is considered complete when Ni reaches NI + 1 (Fig. 14, case b).

IMPLEMENTATtON

The mesh generator outlined above has been written in Apollo Domain Fortran, as part of a complete interactive graphic finite element modeling and analysis package for plane stress and pIane strain problems. Geometric input can be taken directly from a commercial CAD package. The geometry and topology of an input drawing are interpreted by reading the Drawing Exchange File created by AutoCAD [16] and other CAD packages which can produce graphics files in the DXF format. The geometry is reproduced and presented to the user. Interactive screens enable the user to subdivide the domain into regions with different material properties and mesh density parameters.

The subdivided domain is then submitted for mesh generation. An interactive graphic mesh editor en- ables the user to interactively modify the generated mesh by adding and deleting nodes and elements, adjusting node positions, shrinking elements for a better view, fixing specific node positions so that they remain unaffected during a mesh relaxation cycle, and zooming or panning different portions of the displayed mesh. The user can complete the model by interactively adding loads or boundary conditions to specific nodes.

RESULTS

~~~putati~n~l growth rate of mesh generator

Computational growth has been used as a formal indicator of the performance of mesh generation schemes [12]. This indicator measures the rate of increase of CPU time with increasing numbers of elements generated. The advantage of this measure over the use of CPU time alone, is that it is

Page 9: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

Two-dimensional finite element mesh generation 317

Owing to the sharpness of boundaries on the left and right hand sides, all nodes in regions A and B are assigned as Level: 2 nodes. Aence, when mesh generation between levels is performad, these nodes get left out.

LHS X=1 N2=7 NZP-N2+1

-8 RHS -80

Case a Nip1 and Nip2 are non-adjacent boundary nodes

Triangles formed

0 N2 0 N2

Next element is NiNiplNip2 Next two elements are either Ni is moved to Nip1 NiNiplNip3 and NiNip3Nip2

N2-85 NM-Nl-1

-79

Case b Ni and Nip2 are non-adjacent Nip1 and Nip2 are adjacent boundary nodes

0 N2P

or NiNiplNip2 and NiNipZNip3 Ni is roved to Nip2

Fig. 14. Boundary repair strategy.

independent of the computational speed of the The best growth rate to have been published to machine used. In general, a plot of CPU time vs date is found in the quadtree scheme [12] in which the number of elements is used as a measure of growth in CPU time required is linearly proportional to the rate for mesh generation schemes. number of elements generated.

17

16

15 -

14 -

13 -

12 -

11 -

10 -

9-

0’

7-

6_

5’

4’

0 200 400 600 800

Number of Elements

Fig. 15. Growth rate for square region.

Page 10: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

318 R. P. BIWTIA and K. L. LAWRENCE

Number of Ekmenk

Fig. 16. Growth rate for region with curved boundaries.

Experimentally determined growth rates for the mesh generator described in this paper are shown for a square region (Fig. 15) and for a complex curved domain (Fig. 16). (The complex curved region is the right-most example shape in Fig. 17.) These results indicate that a near linear growth rate has been achieved.

The structure of the algorithm supports this view, and it is evident that presorting the nodes into strips and considering only one strip at a time makes for a very efficient strategy.

The quadtree mesh generation localizes element formation to within individual quadrants. When information must be exchanged between a terminal boundary quadrant and its neighbors, there are only four directions in which to conduct a search no

matter the level of the quadrant. The interior quad- rants, moreover, can be triangulated directly without further processing. This results in a linear growth rate for the quadtree mesh generation scheme.

The stripwise triangulation scheme also effectively localizes searches by decomposing the domain into strips and bands. Each time an element is to be formed, it limits the number of possible new locations for the generation front to four, and an exhaustive search is thereby avoided.

In other words, the growth rate of a mesh gener- ator can be effectively improved by an appropriate spatial decomposition. This has been illustrated by the hierarchical spatial decomposition of the finite quadtree, as well as by the stripwise spatial decom- position scheme of this paper.

Fig. 17. Example meshes.

Page 11: Two-dimensional finite element mesh generation based on stripwise automatic triangulation

Two-dimensional finite element mesh generation 319

Algorithmic constraints REFERENCES

The major limitation of the mesh generator de- scribed here is that mesh density variations can be made only in discrete steps, i.e. from one subregion to the next, and gradual mesh gradations are not possible within a subregion. Lo [lo] overcame this problem by adding a conditional branch in his pro- gram to achieve gradation in specific cases, such as those of a mesh radiating from a point or between two concentric arcs. These cases, however, had to be identified by the user and could not be automatically distinguished by the program.

1.

2.

3.

4.

Further development is also required in terms of adaptive mesh density adjustments. In stray situa- tions, a particular mesh density may lead to a level which has nodes on only one side. Elements are left out in these levels. For added robustness, it is sug- gested that, when such a case is identified, the mesh density should be changed by a small amount and the generation process repeated.

5.

6.

7.

Extension to three dimensions

An advantage of stripwise element formation is that the dimension of the problem is effectively reduced by one. While most triangulation proce- dures [7-91 search for nodes in a plane, here the search is along a strip. Extending the concept to three dimensions, one could visualize nodes being gener- ated in a set of vertically stacked planes and tetrahe- dral elements being formed by moving a generating front across every pair of consecutive planes, using a method similar to the one described here. The only factor that remains to be explored in such a scheme is the overhead of the interrogation procedures in three dimensions.

8.

9.

10.

11.

12.

SUMMARY AND CONCLUSIONS 13.

In summary, a reasonably robust automatic tri- angulation scheme has been developed which has a near linear growth rate and the ability to effectively treat complex multiply-connected domains. Sample meshes generated using this program are shown in Fig. 17.

14.

15.

The strategies for vertically re-orienting subregions before mesh generation and for repairing sharply re-entrant boundaries are original and effective.

The implementation of the mesh generator, more- over, is in keeping with current trends where the mesh generator is interfaced with a geometric modeler through a set of geometric inquiry routines.

16.

17.

0. C. Zienkiewicz and D. V. Phillips, An automatic mesh generation scheme for plane and curved surfaces by isoparametric co-ordinates. Int. J. Numer. Meth. Engng 1, 519-528 (1971). L. L. Durocher, A versatile two-dimensional mesh generator with automatic bandwidth reduction. Cornput. Struct. 19, 561-575 (1979). W. J. Gordon and C. A. Hall. Construction of curvi- linear coordinate systems and applications to mesh gen- eration. Int. J. Numer. Meth. Engng 7,461477 (1973). R. Haber, M. S. Shephard, J. F. Abel, R. H. Gallagher and D. P. Greenberg, A general two dimensional graphical finite element preprocessor utilizing discrete transfinite mappings. Int. J. Numer. Meth. Engng 17, 1015-1044 (1981).

W. A. Cook, Body oriented (natural) coordinates for generating three dimensional meshes. Int. J. Numer. keth. En&g 8, 27-34 (1974). A. 0. Moscardini. B. A. Lewis and M. Cross. AGTHOM-automatic generation of triangular and higher order meshes. ht. J. Numer. Meth. Engng 19, 1331-1353 (1983).

A. Bykat, Automatic generation of triangular grid. I--subdivision of a general polygon into convex subregions. II-triangulation of convex polygons. Int. J. Numer. Meth. Engng 10, 1329-1342 (1976). J. C. Cavendish, Automatic triangulation of arbitrary planar domains for the finite element method. ht. J. kmer. Meth. Engng 8, 679-696 (1974). S. H. Lo. A. Y. T. Leunu and Y. K. Cheune. Automatic finite element mesh generation. 1nterna;onal Con- ference on Finite Element Methods, Shanghai, China, pp. 931-937 (1982). S. H. Lo, A new mesh generation scheme for arbitrary planar domains. Int. J. Numer. Meth. Engng 21, 1403-1426 (1985).

M. A. Yerry and M. S. Shephard, A modified quadtree approach to finite element mesh generation. IEEE Comput. Graph. Applic. 3, 3946 (1983).

P. L. Baehmann, S. L. Wittchen, M. S. Shephard, K. R. Grice and M. A. Yerry, Robust, geometrically based, automatic two-dimensional mesh generation. Int. J. Numer. Meth. Engng 24, 1043-1078 (1987). A. Kela, R. Perucchio and H. Voelcker, Toward auto- matic finite element analysis. Comput. mech. Engng 57-71 (1986). R. J. Collins, Bandwidth reduction by automatic renumbering. Int. J. Numer. Meth. Engng 6, 345-356 (1971). E. Cuthill and J. McKee, Reducing the band- width of sparse symmetric matrices. Proceedings of A.C.M. National Conference. San Francisco. CA. pp. 157-172. Association for ‘Computing Machinery (1969). Autodesk Inc., AutoCAD Reference Manual Version 2.5 (1986). R. P. Bhatia, An interactive graphic finite element preprocessor incorporating automatic mesh generation. M.S. thesis, University of Texas at Arlington, TX (1988).