Forming and Resolving Wedges in the Spatial Twist ... - CiteSeerX

0 downloads 0 Views 176KB Size Report
3. Analogous to the two dimensional case, this construction is only possible for the dual of a hexahedral mesh. A chord represents a column of hexes passing ...
Forming and Resolving Wedges in the Spatial Twist Continuum Ted Blacker Fluid Dynamics International, 500 Davis St., Suite 600, Evanston, IL 60201

Scott A. Mitchell Comp. Mechanics and Visualization Dept, Sandia National Laboratories, Albuquerque, NM 87185

Timothy J. Tautges Comp. Mechanics and Visualization Dept., Sandia National Laboratories, Albuquerque, NM 87185

Peter Murdoch Mercury Marine, 455 Rd., Oshkosh, WI 56901

Steven Benzley Brigham Young University, 270 CB, Provo, UT 89604

Abstract The spatial twist continuum (STC) is a powerful extension of the dual of a hexahedral mesh[1]. The STC captures the global connectivity constraints inherent in hexahedral meshing. Whisker Weaving is an advancing-front type of algorithm based on the STC[2]. During the Whisker Weaving algorithm, certain types of degenerate elements called wedges[3] arise. This paper describes wedges and how they are formed, and presents collapsing and driving, two strategies for removing these degeneracies.

1. Introduction The spatial twist continuum[1] (STC) and the Whisker Weaving algorithm[2] were recently introduced. The STC is a powerful way to represent the connectivity of a hexahedral mesh, based on the mesh dual. The STC captures the global connectivity of the mesh. Given a partial mesh, the STC provides insight into how the rest of the mesh must be formed in order to be properly connected. In particular, a quadrilateral mesh of a surface imposes numerous constraints about how a hexahedral mesh may fill the volume it encloses. Whisker Weaving is an advancing-front type of algorithm based on the STC. Starting with a surface mesh, Whisker Weaving incrementally builds the STC one centroid (hexahedron) at a time. Whisker Weaving takes advantage of the global constraints encoded in the STC it order to generate valid connectivity. However, certain types of local degeneracies arise during Whisker Weaving. These degeneracies can be easily detected from the STC. This paper describes how to remove one type of degeneracy called a wedge, working entirely

1

within the STC. These wedges are strikingly similar to their hexahedral namesakes found in Plastering[3]. The rest of this paper is organized as follows. Section 2 reviews the STC and Section 3 reviews Whisker Weaving. Section 4 presents a degenerate geometric entity called a wedge and describes its formation by Whisker Weaving and representation in the STC. Section 5 describes some algorithms for removing wedges and using them to refine a mesh. Section 6 presents conclusions.

2. STC review This section reviews the definitions of the STC entities. Any type of mesh admits a dual, but the dual of a quadrilateral or hexahedral mesh has a special structure that allows it to be represented as an arrangement of curves (chords) or surfaces (sheets). The STC is described in full by Murdoch et. al[1], where sheets were called twist planes. As an introduction, the STC for a quadrilateral mesh is described first. The dual entities of dimension 0, 1 and 2 are called STC centroids, STC edges, and STC 2-cells. Each mesh quadrilateral has a STC centroid at its center. Two quadrilaterals that share a mesh edge have a STC edge joining the corresponding centroids. Each mesh node is surrounded by a STC 2-cell, a polygon of STC edges. The STC contains all this standard dual information, plus a “higher level” interpretation of the global connectivity of the mesh. Since each mesh element has four edges, each STC centroid has exactly four edges, ordered around the centroid in the same way that mesh edges are ordered around the quadrilateral element. A special property exists for the dual of a quadrilateral mesh: opposite edges can be considered to be part of the same continuous curve, called a chord. This observation forms the basis for the STC. Identifying opposite edges for centroids throughout the mesh, chords form either closed curves (blind chords) or have both endpoints on the object boundary; see Figure 1. A centroid is the simple, nontangent intersection of two chords. For hexahedral meshes, the dual has an additional, three-dimensional entity called a STC 3-cell. STC 3-cells correspond to mesh nodes, for example the (+x,+y,+z) octant corresponds to the (+x,+y,+z) node in Figure 4. In the 3D STC, 2-cells correspond to mesh edges, STC edges correspond to quadrilaterals, and centroids correspond to hexahedra, as enumerated in Table 1 Each centroid now has six edges. Analogous to the two-dimensional case, STC edges passing through opposite hex-quadrilaterals are identified as belonging to the same chord.

2

blind chord

centroid edge 2-cell

selfintersecting chord Figure 1. A quadrilateral mesh and the corresponding chords of the STC, shown as wide curves. Mesh Entity

Dimension

STC Entity

Dimension

Hex Element

3

Centroid

0

Face

2

Edge

1

Edge

1

2-Cell

2

Node

0

3-Cell

3

Table 1: Correspondence of hex mesh entities to 3D STC dual entities. Analogous to the two dimensional case, this construction is only possible for the dual of a hexahedral mesh. A chord represents a column of hexes passing through the mesh; see Figure 3. The real power of the STC is demonstrated by the identification of two-dimensional surfaces called sheets. As seen in Figure 4, each chord perpendicularly intersects four 2-cells at a centroid. These four 2-cells are identified as belonging to the same sheet. For example, in Figure 4 the horizontal sheet cuts the four faces parallel to the z-axis. Each hexahedron contains three such sheets and the STC centroid is actually the intersection of these three. Similarly identifying 2-cells throughout the mesh, each sheet is can be thought of as a smooth, continuous surface, extending until it closes on itself or hits the geometric boundary; see Figure 5. Any topological type of manifold is theoretically possible for a sheet. Holes appear as loops on the surface mesh (see below). Whisker Weaving only creates sheets that can be combinatorially represented in a plane. A sheet has a standard logical projection in the plane called a sheet diagram, which is described below.

Surface Loop Chords Whisker Weaving starts with (the STC of) a quadrilateral surface mesh and works inward to incrementally build the full three-dimensional STC of a hexahedral mesh. As such, the chords (loops) of the two-dimensional surface mesh serve as the start of the three-dimen3

edge

centroid chord y 2-cell

2-cell

edge

Figure 2. A four hex mesh and its dual. The 2-cells divide the volume inside the mesh into 3-cells, one for each hex node.

Figure 3.

A chord in the three-dimensional STC represents a column of hexahedra.

sional STC constructed by Whisker Weaving. In particular, each loop forms a component of the boundary of a sheet. Note that all chords on a surface mesh form closed curves, i.e. 2D blind chords, called loops. This follows from the fact that the object’s surface encloses a volume. A loop is drawn as a combinatorial circle in the plane, with the sheet represented in the disk enclosed by the circle. This drawing is called a sheet diagram; see Figure 6. A sheet diagram is a combinatorial representation of the loop and sheet. In particular, the spacing of the chords around the circle is regular, regardless of where the corresponding faces lie in relationship to one another. Only the sequence of faces is important.

4

z

x y

Figure 4.

The 3D STC inside a single hexahedron.

ch o z rd

chord x

sh yz eet

chord y sheet xy centroid xyz

sheet xz chord y sheet xy

chord x

chord y Figure 5.

The STC of a four hex mesh. Like colored surfaces are the same sheet.

In this diagram, each segment initially perpendicular to the circle represents a 2D centroid, where the loop crosses another loop (or itself) on the surface. That is, it represents a quadrilateral of the surface mesh. In the three-dimensional STC, there will be a chord emanating from that quadrilateral and travelling into the interior of the mesh. Thus a segment also represents the beginning of a chord. A chord is the intersection of two sheets, so each chord has a segment representing it on both of the sheet diagrams. The segment itself is called a sheetchord, to distinguish it from the abstract chord of intersection that it represents. The sheetchord of an uncompleted chord is called a whisker. Whiskers that have no other whiskers between them on the meshing front are called adjacent. At some 2D surface centroids, a loop crosses itself. This situation is actually quite common: the more irregular the surface mesh, the more centroids are the self-intersection of a loop. The chord emanating from such a centroid is called a self-intersecting chord, and plays an

5

21

20

22

rd

6

19

3

7

ll

ce 2-

5

adjacent chords

co m

2

18

23

pl et ed

loop

1

9

ch o

7

4

hex

17

1

= 3D centroid Sheet 1 meshing front

6

surface quadrilateral = 2D surface centroid

24

2

9

8

34

2

16

1

chord 1-3

whisker

5

8

15

hex 1-2-3 chord 1-2 2

3

4

4

3

14

3

13

Figure 6.

A sheet diagram after some Whisker Weaving progress.

important role in Whisker Weaving. In particular, it is these chords which give rise to the formation of wedges. It is important to note that even when a loop intersects itself, it can still be drawn as a circle in the plane; see Figure 7. The centroids of self-intersection merely appear twice on the combinatorial circle, once for each time the loop passes through the corresponding face. The two segments representing a self-intersecting chord appear on the same sheet, instead of on two different sheets. Before describing wedges, it is first necessary to review the basic operations of Whisker Weaving.

3. Whisker Weaving basics The whisker weaving algorithm is reviewed in this section. The goal of Whisker Weaving is to create an all-hexahedral mesh of an arbitrary volume. Whisker Weaving first creates a three-dimensional STC, and then converts it to a hexahedral mesh. Whisker Weaving is an advancing-front type of algorithm, constructing the STC starting from the geometric boundaries and moving inward. At the highest level, Whisker Weaving has the following outline. These steps are described in more detail below. 1. Construct initial loops, sheets, chords and sheetchords from the given surface mesh. While any chord remains uncompleted: 2. Find three pairwise adjacent chords. 3. Construct a centroid (hexahedron) by crossing these three chords. 4. Join chords. 1. Forming loops is the first step of the whisker weaving algorithm. The loops for a given surface mesh can be easily generated by traversing the meshes quadrilaterals in an ordered

6

25

128

124

119

104

112

95

85

4

5

62

69

1

3

3

3

1

5

27

Y

6

14 9

4

22

48

3

X

1

135

7

146

10

2

4

3

8

147

21

3

3

148

20 5

3

6

3

139

10

5

10

2

44

31

1

7

4

58

73

2 Z

Y

8

9

77

89

9

6

35

116

4

5

6

122

2

3

X

Y

25 1

126

W

17 1

3

3

Z

1 107

1

3 16

2

3

2

98

6

4

8

39

65

9

7

3

81

51

6

6

10

83

132

5

3

4

110

129

3

5

Z

152 6

10 149

X

7

140

8

5

W

43

9

4 57

108

3

107

3

106

1

3 105

5

2

78

104

6

1

3

9 2

4

103

36

102

5

91

17

18 8

2

2 109

3

1

W

1

75 33

1

1

X 3 W

Y

5 4

6 Z

6 3

2

Figure 7. A self-intersecting loop on the “macaroni” test problem: Left is the loop with the input geometry/surface mesh, lower right is a drawing of the loop in the plane, and upper right is the loop’s sheet diagram. Letters W, X, Y, and Z are 2D centroids of self-intersection, while points 1-6 are only for reference. Arrows show the relative orientations of the drawings. Note that since the loop passes through W, X, Y, and Z twice, they each appear twice on the sheet diagram in the upper right. way. Loops are drawn as combinatorial circles, with the 3D chord emanating from each loop centroid pointing towards the circle center. Since the hexahedral mesh has not yet been created, each of these “chords” is simply a small segment called a whisker. A chord is called completed if it has both ends on the surface mesh, or closes upon itself to form a closed curve. Initially, no chord is complete. 2. The next main task is to find three chords, 1-2, 1-3 and 2-3, such that 1-2 is adjacent to 1-3, 1-3 is adjacent to 2-3, and 2-3 is adjacent to 1-2 on some sheet diagrams. Here chord 1-2 is a chord of intersection between sheets 1 and 2, etc. As a technicality, sheet 1 and sheet 2 are the same in the case of a self-intersecting chord. This corresponds to finding three quadrilaterals on the meshing front that pairwise share edges. Note that this means that the quadrilaterals are connected so as to form three faces of a hexahedron that share a corner. Occasionally, no such triple of chords can be found. In this case, two chords that are adjacent suffice, and the third chord is created. This third chord does not intersect the surface mesh, and is called blind. This corresponds to finding only two quadrilaterals on

7

the meshing front that share an edge, and creating a third quadrilateral that forms a hexahedron corner. 3. These three chords are then pairwise crossed, locally constructing the STC shown in Figure 4. This corresponds to adding additional faces to the three previous faces to form a hexahedron. Recall that a chord lies on two sheets, and a whisker hex on three sheets. In the sheet diagrams, this means three pairs of whiskers are crossed to form 3 vertices. For example, suppose hex 1-2-3 was just formed in the bottom center of Figure 6 by crossing chord 1-2 and chord 1-3. Then similar figures appear on sheets 2 and 3: chord 1-2 crosses some chord 2-3 to form hex 1-2-3 on sheet 2, and chord 1-3 crosses chord 2-3 to form hex 1-2-3 on sheet 3. 4. Whenever two chords are adjacent to each other on two sheet diagrams the chords are joined. Note that both chords are necessarily the intersection of these two sheets. This double adjacency corresponds to two quadrilaterals that share two edges, and joining the chords corresponds to merging the two faces into one. This type of operation is called seaming[3] in the Plastering algorithm. Occasionally chords are joined that are only adjacent on one sheet, where the second sheets through the chords are different. This results in merging the two second sheets into a single sheet that resembles a cylinder (topological sphere with two holes). Before merging two sheets, certain geometric tests are performed to determine if this is a good idea. If the chords that are joined start on a loop (i.e. start on the sheet boundary), then the combined chord has both ends on the geometric boundary and the chord is complete. Occasionally a blind chord will be joined to itself to form a closed loop, also completing the chord. Completed chords are not crossed, so aggressively joining chords tends to lead to earlier termination of the algorithm, and to adding fewer centroids (hexes). In most mesh generation algorithms, the twin goals of small mesh size and good element shape compete. However, in this phase of the whisker weaving algorithm there is little geometric information, so element shape is not a consideration. Hence the algorithm simply tries to add as few elements as possible by joining chords whenever possible. Ideally, a self-intersecting chord is completed by joining it with some other selfintersecting chord on the same sheet. However, in practice it is often the case that after some weaving the two sheetchords for a self-intersecting chord are immediately adjacent to one another. This implies a certain type of degeneracy in the mesh called a wedge; see Section 4. In order to make progress, the algorithm (temporarily) joins these two sheetchords and calls the chord completed. The degeneracy is resolved later; see Section 5. Other types of improper connectivity are also detected and resolved in step 4, but these are beyond the scope of this paper.

8

4. Wedge Formation This section describes the connectivity of a wedge. In the next section we discuss how to remove wedges. A wedge hexahedron occurs when the two sheetchords of a self-intersecting chord are adjacent to each other. This chord is called the base chord of the wedge. As is always the case, the last centroid on each of its sheetchords represent the same hexahedron (a chord passes through certain hexahedron, regardless of which sheetchord one happens to be looking at). Recall that a STC edge corresponds to a mesh face, as shown in Figure 1. Let z be the face corresponding to the dangling end of the base chord beyond the last centroid. Call the other hex’s face that the base chord passes through, the face between the last and second to last centroid, the base face and denote it by y. Consider the four side faces of this hexahedron, a, b, c, and d, perpendicular to the base chord; see Figure 8. Since the base sheetchords are immediately adjacent, without loss of generality the STC edges representing faces a and b are in the same 2-cell as face z (the left 2-cell in Figure 8 bottom). Since a 2-cell represents a mesh edge, a and b share a mesh edge in common with face z. Moreover, z appears twice in this 2-cell, and thus two of its mesh edges are the same! Assuming that the meshing front of the base sheet containing c and d is eventually completed, faces c, d, and z will be in another common 2-cell and will share mesh edges as well. The side faces also appear (ordered abdc) around a 2-cell on another sheet, called the side sheet; see Figure 8 lower right and upper left. The chords through ad and cb are called the side chords. A wedge is a special kind of degenerate hexahedron: A wedge can be obtained from a hexahedron by merging two nodes that are opposite each other on a face (z). For obvious reasons, the edges of degenerate face z are called the blade edges[3]. In order to save wedges for later and continue with weaving, the algorithm joins the two base sheetchords. Technically, in order for the sheet to be a smooth surface, there is a small singularity at the point where the sheetchords are “joined.” This singularity represents the fact that a chord of intersection (the base chord) terminates inside the mesh: Along the line of the base chord the sheet suddenly goes from crossing itself to not crossing itself; see Figure 9. This transition is impossible to make smoothly. Figure 10 shows the completely woven sheet for the loop in Figure 7. Note that this sheet contains two wedges, formed by self-intersecting chords W and Y respectively. Whisker Weaving doesn’t always form wedges: chords X and Z were successfully joined to each other during the course of the algorithm. The collapsing of wedge base chord W is chronicled below.

9

c

d

c

d

bas

y

z

z

she

b

et

eet

e sh

y

a

b

side

a

base chord y d wedge centroid

2-cell base sheet

a

z

wedge centroid

Singularity c

z

b

b d

a

2-cell

c

y base chord

side sheet

Figure 8. A wedge in three-dimensional space (top) and represented by sheet diagrams (bottom). Lower case letters denote faces. z is a degenerate face consisting of just two edges.

base sheet doesn’t cross itself driving

collapsing

base sheet crosses itself Figure 9. Collapsing/driving a wedge. Faded lines shows how the base sheet intersects the mesh. The chord in the center is the base chord, with the singularity at the arrow tip.

5. Wedge Resolution 10

Y

X

25

128 119

124

104

112

85

95

62

69

1

1

3

3

3

1

5

27

48

3

6

135

14 8

9

98 76

36

114 7

4 4

146

22 3 33

97 10

10

75

124 113

35 128

149 159 147

21

3

3

171 34

59

123

129

20

148

163 5

3 152

127

38 164 3

6

172 69

10

139

153 130

156 170

5 10

10

44

31 31

37

2 138 7

4

77

58

73

99

8

9

115 32 77

89

181 9

6 182

126

123

35

116

4

5

29

122

6

1

10

3 190

194

Y

W

116

25

17

1

1 186

30

125 126

3

3

1

196

100

179

Z

62

1

3

107

16 176 176 144

46 150

79

10

3

2

98 135

10 180

4

8

65

39

47 40 151

131

9

7

81

51

81

147 6

191

6

10

39

83

132

102 5

3

168 78

176

129

110 109

3

5 132

193

152

169

109

42 111

6

3

186 1

10

108

149 194

100

134 7

185 41 3

7

107

140 105 125 182 165

3

8

108 164 44

43

106 133

1

9

97

104 80

101 3

4

Z

105

57 30 30

8 5

10 45 43 43 78

104

6

1

9

3 10

4 99 103

36

5

W

102

91

17

X

75

18 8

33

Figure 10. The completely woven sheet from the “macaroni”. Whisker Weaving joined X to Z, and formed a wedge for each of W and Y. Whisker weaving resolves wedges in a separate pass, after the mesh is otherwise completely woven. A wedge can be “moved” by one of two operations, collapsing or driving[3]. Moving a wedge destroys it and, generally, causes a new one to be created next to it. Either collapsing or driving must be repeated until the geometric boundary is reached, where no new wedge is formed, and the wedge is said to be resolved. In very rare circumstances it is also possible to resolve a wedge by driving it into the blade edges of another wedge. Collapsing moves the wedge backwards by collapsing the base face. Driving moves the wedge forward by opening the blade edges into a new face. Figure 9 shows how a wedge moves as it is collapsed or driven. Note that there is often some flexibility about which direction a wedge can be driven, but a collapsed wedge must follow its base chord. When successful, driving tends to produce elements that are better shaped than collapsing. However, a wedge can only be driven in a fairly regular mesh: there must be two faces that share an edge, each of which contains one of the blade edges. Collapsing, and then fixing up the poor elements, promises to be much more robust. A preprocessing step to resolve a wedge is to “un-join” the base sheetchords which were artificially joined earlier to allow Whisker Weaving to continue. This step is shown in Figure 11 upper left.

Collapsing a wedge To collapse a wedge in the STC: • The three vertices representing the wedge are removed from the base sheet and side sheet diagrams; see Figure 11 center. • The side chords are rejoined in a new way as the base face is collapsed and the side

11

faces are merged; see Figure 11 left. Originally, side chords connect opposite side faces of the wedge (Figure 8). Removing the wedge vertices breaks each of the side chords into two, leaving four dangling whiskers on each of the sheets. The whiskers corresponding to side faces that share a blade edge are adjacent to each other on the base sheet diagram; see Figure 11 center top. As the side faces sharing a blade edge are merged into one, the whiskers corresponding to those faces are joined. 25

128

48

146

128

D

149 159 147

3

3

171 34

59

123

129

20

62

5 152

33

97

10 124

D

10

75 113

35 128

149 159

21

147

3

3

171

34

59

148

163

3

123

129

20

135

7

146

3

5

152

33

97

10 124

D

10

75 113

35 128

149 159

21

147

3

3

171

34

59

148

163

3

1

48

8

22

3

21

114

4

146

22

10

95

98

4

3

75 113

3

9

76

36

33

97

124

104

14

7

4

4

10

35

1

6

135 8

114 4

22

124

5

27

3

98

7

3

3

1

9

76

36

114 4

1

3

3

6

14

98 76

36

25

69

1

1

3 3

5

27

135 8

9

85

62

69

1

48

3

6

112

95

85

62

1

5

119

104

112

95

3

3

128 124

119

104

1

3

25

128 124

119

112

85

69

27

14

123

129

20

148

163

3

5

152

127 127

127

38

38

38

164 3

6

172

3 139

153

6

164

172 69

10

3

6

164

172 139

10

139

10

69 130

69

153

130

153

130

156

156

156

170

170

170

5

5

5

10

10

10

10

10

10

31

44

31

31

44

31

44

31

31

37

37

37 138

138

2 2

2

138 7

4

7

4

58

7

4

77

77

73

77

58

73

58

73

126

99

126

99

8

9

99

8

9

8

9

32 115

32

115

115

32 77

89

77

89

77

89

181

181

181 9

6 182

9

6

9

6

126 182

123

182

123

35

116

35

116

4

5

123

35

116

4

5

4

5

29

29

29

122

6

1

6

122

194

25

17 1

1 186

30

6 1

10

3

190

116

10

3

190

W

190

194

116

25

17 1

1 186

30

125

W

3

3

1

126

W

194

116

25

17

1

1 186

30

125

196

125 126

122

1

10

3

196 3

3

1

126

3

3

1

196 100

100

100

179 179

179

62 62

1

3

62

1

107

16

3

1

107

16

3

107

16

176 144

144

144

150

150

46 46

150

46

79

79

79

10

3

10

3

2

98

10

3

2

98

2

98

135 135

135

10 10

180

10

180 4

8

65

180 4

8

39

47

4

8

40

65

39

40

65

39

47

40

47

151 131

131 151

151

131

9

7

9

7

9

7

147 81

51

81

147

81

51

81

51

81

6

147

81

6

6

191

191 6

10

191 6

10

6

10

39

39

A

39

A

83

132

102 5

3

168 78

176

129

110 109

3

5 132

83

132

102

3

5

78

168

110

129

109 3

5 132

102

3

168

110

109 3

5 132

169

169

193

193

42 109

42 111

6

C

108 100

185 41 3

107

140

42

6

C

1 194

134 7

7

109

152

3

186 10 149

105 125

111

6

C

1 108 194

100

7

185

41 134

3

7

107

140

109

152

3

186 10 149

111

1 108 194

100

7

185

41 134

3

7

107

140 105

182

182

165

165

3

165

3

8

3

8

108

108

108

164

164 44

106

43

3

186 10 149

105

182

8

43

5

78

129

169

193

152

A

83

132

164 106

125

43

106

125

133 44 1

9

44 1

9

1

9 97

133

97

97

133

104

104

104

101

101

80

101

80 3

4

80 3

4 105

57

3

4 105

57

105

57

30

8

8

8 30

5

10

30 5

10

3

78

43

3

78

10

3

9

4

10

4

9 103

18

102

5

91

17

B

75 33

103

36

102

5

91

17

9 103

36

102

18

75

W

8

33

86

W

18

75 8

33

85

86

84

A

1

3

3

87

84

6

86

A

1

3

3

87

83

84

6

3

87

6

83

76

76

82

3

1

A

1

3

83

76

82

B 91

17

B

85

85

104

6

1

9

4 9

8

104

6

1

9 10

5

3

45

43 104

6

1

36

W

5

10

45

45 43 78

1

82

3

1

87

87

87

149

149

149

90 90

90

81

81

88

81

88

82

82

88

82

141

141

141 3

3

3

3

3

3

152

152

152

151

92 92

92

94 94

94

151

151

177 156

156

89

156

89

55

55

89

55

177

1

177

77

1

8

8

77

1

8

77

180

180

155

155 74

74

155 74

180

86

86

90

3

41

7

90

86

7

3

41

90

3

7

41

175

28 175

175

28

134

28

134

134

80

B

80

176

80

1

10

91

142

63

132

B

1

10

91

142

63

132

B

1

10

91

142

63

132

93

93

93

126

126

3

126

3

3

3

3

3

42 42

92

150

42

92

150

92

150

73

73

73

31

31

31

8

8

1

C

27 59

149

7

1

10

45

D 148

138

8

1

27

59

149

7

1

10

45

148

138

C

D

1

C

27

59

149

7

1

10

45

D 148

138

Figure 11. Collapsing a wedge. Left shows the base sheet (top) and side sheet (bottom) of the wedge before collapsing: Chords A-D, B-C, and W cross at the wedge. Center shows the breaking of chords by the removal of the wedge centroid vertices from the base sheet (top) and side sheet (bottom): Two whisker are left for each of A, B, C, D, and W. Left shows the new way of joining side chords as the side faces are merged: A is joined with B, and C is joined with D. Note A-B and C-D do not cross. Removing the wedge vertices shortens the base chord by one hex. The last hex of the base chord becomes the new wedge; see Figure 11 left top. The old base face of the wedge gets collapsed and becomes the blade edges for the new wedge; see Figure 9. Note that Figure 11 left top bears a certain symmetry to Figure 11 right top: the wedge has moved and is now ready to be collapsed again. These two steps are repeated until the object’s boundary is reached. In this particular example, in Figure 11 lower right, a new type of degeneracy called a degree-2 2-cell is formed. That is, there is an STC 2-cell that is a polygon of only two

12

D

D

D C

C

B

B A W

C

A

B

A

W

Figure 12. The changes in the side chords as a wedge is collapsed. edges. This corresponds to two hexahedra sharing two quadrilaterals. Forming this type of degeneracy is quite common when collapsing wedges. A robust strategy to remove all such degeneracies will be described in future work.

Driving a wedge When a wedge is driven its blade opens into a face and the wedge becomes a hexahedron; see Figure 9. The STC changes are the reverse of what happens when a wedge is collapsed: First one STC edge in each of the 2-cells containing the whiskers of the base chord is broken to form side whiskers. Second the side whiskers adjacent to a base whisker are joined. This crosses two chords on the side sheet, and the base whisker is extended to cross the joined chords on the base sheet. The new vertices of crossing are the new wedge. For an example, simply read Figures 11 and 12 from right to left. When driving a wedge, the segments of the side chords that are broken correspond to mesh faces. This pair of faces each contain a blade edge and also share an edge in common. There is often some choice as to which face pair to use. For example, in a completely regular mesh, there are three choices (left, right or straight). However, in an irregular mesh, often the point is reached where no pair of faces meet these criteria and it is impossible to drive; see Figure 13.

Figure 13. To drive, two faces must share an edge and each contain a blade edge (left). Often it is not possible to drive (right).

13

Reaching the surface. Recall that when a wedge is collapsed or driven, the side chords are broken and rejoined in a new way. The analogous changes happen to loops when a wedge eventually reaches the surface mesh. Consider collapsing a wedge whose base face lies on the surface mesh. Suppose mesh edges a, b, c and d define the base face as shown in Figure 14. Also assume that in collapsing the wedge, edge a is merged with b, and likewise edge c is merged with d. There are three cases of what happens to the loop(s) when a surface face is collapsed, depending on the order in which a, b, c and d are passed through by the loop(s). These cases are illustrated in Figure 14.

Case 1: a, b consecutive

Case 2: a, c consecutive

a

b

driving

a

b

c

d

collapsing

c

d

a

b

driving

a

b

c

d

c

d

a

b

c

d

collapsing Case 3: a, d consecutive

a

b

c

d

driving collapsing

Opened

Collapsed

Figure 14. Splicing loops as a face is collapsed or opened. In Case 1 a loop breaks into two separate loops. In Case 2 the loop stays as one loop. In Case 3 two loops are spliced into one. Consider driving a wedge whose blade edges lie on the surface mesh. This corresponds to opening a face on the surface. There are three cases, which are just the reverse of the three cases for collapsing faces in Figure 14. Collapsing a wedge after Whisker Weaving always leads to Case 1 of Figure 14. The reasons are as follows. In Whisker Weaving, the base chord of a wedge always starts from a surface face where a loop self-intersects. Hence Case 3 does not occur. Furthermore, when collapsing a wedge, side chords A and B are joined and chords C and D are joined. When the surface mesh is reached, this breaks the sheet into two; see Figure 15. Hence the loop breaks into two, which is Case 1. The alternative of consistently joining A with C and B with D leads to Case 2, but also always leaves a complicated degeneracy at the original wedge blade. Thus Whisker Weaving avoids collapsing wedges in that way. Figure 15

14

shows the base sheet and Figure 16 shows the surface mesh when base chord W is collapsed all the way to the surface of the “macaroni.”

119 112 95

128 85

104

62

25

69 124

48

124

27

104 135

25

14 3

5

1 3

1

3

6

11

95

8

1 9

22

3

3

76

36

7

128

98

4

146

4

62 1

114

1

10

3

10 21 35 3

128 149

33

48

147

119

124

3

159 3

3

8

20 59 171

75

129

3

135 113 113 152

97 97

163

34

7

5

3

75 75 10

148

112

38

97 97 123

3

33 33 33

130 146 10

172

156 5 170

5

10

31

6

127 113 3

139

85

37 147

69

34 164

4

73

127 77 153

6

10

5

148

153

99 9

69

44

31

69 89 6 115 114

164 2

9

7

98

139 6

124

116

138

10

123

76 138

58

27 31

5 44

2 182

8

4

181 36 7

123 122

3

32

58

4

159

14

77

8

9

10

190 190

25

149 171 126

116 1 194 194 126

128

77 32

9

186 35

181

126

35

22

3

163

4

3

196 196

100

35

29

4

152

179

172

107 1

129

1

59 1 29

10

182

6 21

10

3

6

150 150

79

3 98

3

170 1

8

10

3 156 38 130

65

8

20

5

40

3 131

16

147

62 7

44

51 46 6

10

10

36

10

132

55

2 128

4

25

119

10

124

39 10

112

104

194 37 37

132

132

85

4

95

190

135 69

9

4

39

123 123

3

115 115

47 99 99

1

1

179

77 77

78

62

3 3

3 41

31 5

27

1

48

144

78

9

129

6

3 196 151 42 5

14

186

81

135 9

8 81 98

8

9

76 6

36 114 4

7

152

4

22

146

180

6

3

191

124

147

83

10 97

57

73 41

10 33 75

5

113

35 128

102

149 159

21

147 44

149

7

6

7

150 3

168

3

116

10 7 171 42

110 34

109

3

59

129

20

123

43

89

148

163

3

5

152

193 140

7 169 10

5

134

127

3

111

109 38

131 3

78

100

6 172

164

10

139

8

69 130

43

133

153

186 140

116

1 194

156 170

6

3

100 108 5

9 10

10

8 185 79

31

57

44

3

37

182

4

105 39

107

165

5

1

2

31

149

122 3

4

7 108

78

164 10

40

77 43 80 1

138

73

58

106

97

45 1

101

3

3

104 3

36

99

25 9

10

11

8 5

152

6

3

105

10 6 4

3

9

9

115

5

89

7 8

77

104 129

126

17

181

6

103

9

123

18

182

107

132

102 8 32

91 33

98

75

51 65

116

35 126

5

4

122

6

3

10 190

W

1

194

116

29 25

17

1

1 186

196

126

3

3 100

102

119 112 128 85 25

69

91

103 124

27

1

179

104 5

11

14 3

5

1 3

6 95 1 6

9

22

3 3

76

36

98

4 4 1

3

107

62

16

1

114 150

75 104

10 21 35 62

3

128

79

149 48 124

3

159

46

3

10 8

20

104

59 98

101

171

2

9 1

3

129 135 113 113 152

97 97

163

10 7

75 75 10 8

38

4

123

3

97 33 33 33

147

40 131

130

65

146

39

10

172 135 156

47 5

164

170 10

31 132

80 7

9 33

3 105

37 147

144 34 164 6

51

81 151

4

73

81

127 77 4

39

153

10

182

3

45

5

6

108

148

99 9 132

165

83 180 78

69 89 191 6

3

115

5 102

139 6 42

168

129

110

5

109

116

3

9

185

10

123 138

31 41 105 5 44 193 44

2

169 152

109 182 6

181

3 111 8 7

106

134 122

194

10 3 3 10

186

7

1

149

108

58

100

194 133

8

185 190 190

25 7

3

116 140

107 1 194 194

105

126 186

182

134

165 77 8

3

32

9

108

133 164

186

8

43

106

9

126

1 97

3

80 104 101 45

4

43 100

3

43

57

105

196 196

100

35 4

10

5

78

1

104

6

179 107 1

3

9 193 10

4 9 3

36

107

103

18

1

1 29

10

6

150 150 5

102 79

3 17

91

18

W

98

75 8

33

169

3 1

8

65 40

3 131 111 16

147

62 7

144

51 46 6

180

10

62 3 132

3

2

191 10

39 1

10 108

132 4

135 78

39 168

3 47

144

9

129

151 42

109

5 81

81

6 151 152

180

6 41

3

191 83

3

5 102 46 44

149

135 168 16

10 109

7

102

110 109

3

193 140

7 169 134

3

111

109

8

43

133 186 1

10

81

194

5 100 108

9 8 185

57

10

3 47

182

4

105 107

165

2 110

3

108

78

164 10 43 80 1 106

97

45

4 6

1

101

104 3

36

3 5

105

9

10 6 4 9

9

5

104

39 83 17

103

18

102 81

8 91 33

75

Figure 15. Eventually, a collapsing wedge reaches the object surface and its loop and sheet are broken into two. The sheet diagrams are angularly scaled and smoothed so that they resemble disks. The “broken” gap on each loop is next filled with a loop edge.

Wedges for refinement In addition to finishing a mesh of a volume, a wedge may also be used to refine a completed mesh. To coarsen a mesh, a surface face is collapsed, forming a wedge which is then resolved by collapsing. This can always be done, but element quality may suffer. To make a mesh more fine, two surface edges that share a vertex are opened into a face, forming a wedge which is then driven. In mapping algorithms refinement is usually propagated along all three principle directions. However, wedges only propagate in one direction. In the case of driving through a fairly regular mesh, the direction of propagation may curve according to the desires of an analyst. However, if the mesh is irregular, the wedge may become stuck in the middle of the mesh with nowhere to drive. Any surface face may be collapsed: its chord need not be, and usually is not, the selfintersection of a loop. This is Case 3 from left to right, which was forbidden for weaving. However, once the face is collapsed, the loops join, splicing the sheets into one. Thus the wedge still exists on a self-intersecting sheet. The base chord of the wedge is necessarily a chord of some other intersection of the loops. When the chord is completely collapsed, the sheet breaks into two again (by Case 1). Figures 17 and 18 illustrate this sequence for a simple 4x4x4 mesh of a cube.

15

4 5

5

4



2

1

1

2 Z

Y X 6

6

3 3 1 X 5

3



Y

6

4

Z 2

Figure 16. The surface mesh after collapsing self-intersecting chord W. The loop containing W was split into two. Note the degenerate faces formed near where W collapsed: two surface quadrilaterals share two edges and look like triangles.

A

A

C

C

B

B

D

D

Figure 17. Splicing two sheets by a face collapse (Case 3). Originally A connects to D, and B connects to C on the far side of the cube. After the wedge collapses, the loops split back into two: on the far side, A connects to B, and C connects to D. Note that a non-surface face of a completed mesh may also be collapsed. This creates two wedges. In this case each base chord need not start at the self intersection of a loop. However, the base chords are the self-intersection of a sheet: The sheets for the two loops

16

27

23 10

9

31

19 11

8 40

38 67

11

2

26 12

12

23

27

57 62 19

31

55

33 2 2

10

71

6

2

67

5

5

8

11

23

27

19

12

31

12

11

26 2 2

6

10

71 38 40

2

67 8

5

11

5

58 12

12

64

11

26

38 33

40 55 6

10

71

75

34 57 56 62 6

6 5

5

6

6

33

55

75

10

34 57 56 10

75 62

14

79

58

6

6

64 7

7

34 19

56

31

14

79

64

50

7

19

31

34

7

46

8

19

11

50

7

7

31

79

14

34

46 50

8

37

1

10

11

42

11

8

2

10 46

34

37

1

10

42

21

7

3

95

39

42 51

21

7

44

3

58 95 6

39

4

91

40

60

23

51

44 42

57

6

4

37

5

7 46

59 91

87

40

62

39

95

23

1

9

60

12

6

45

13

42

5

7

3

7

38

57 46

87

37 83

62

58

59

1

5

21

17

12

6

13

40

91

45

2

12

24

54 38

83 3

58

4

4

6

37

1

23

5

50

17

22

21

2

12

24

54

4

44

51

3

23

50

21

62 7

58 59

13

83

6

12

57

46

42

60

58

5

87

23

22

23

27

19 45

31

2 2

10

2 38

67

5

11

54

24

1

8

38 11 12

12

26 40

6

37

71

5

5

33

17

55

10

75

2

12

62

6

50

23

6

56

4

3

34

14

79

64 7

21

22

7

31

19

34

46

8

11

50

37

1

10

42

21

23

27

19

31

7

3

95

39

2 2

10

2

67 8

51

11

44

26

12

12

11

40

6

6

4

71

91

40

23

5

5

60

55

33

42

5

10

7

75

87

62 6

62

46

6

59

12

6

13 56

14

45

79

83

7

58

38

7

1

5 37

34

17 31

2

12

24

54

3

4

64 34

46 19

8

11

23

50

22

21

50

37

1

10

42

21

44

7

3

51

95

39

60

6

4

91

40

23

42

5

7 46

87

62 59

12

6

13

45

83

58

1

5

37

17

2

12

24

54

3

4

23

50

22

21

71 10

75

67 5 6

2

14

6

6

12 7

5

79

31 26 11

7 55 56

34

2

8

12

40 31 19

27

46

34

10

11 62

33

11

64 50 3

22 8

10

1

42

37

19

21

59 37 44

60 51 4

3

42

21

39 17

7

1

95

24

13

45 46 23 12

4

50

40

6

12

7

5 91

83

13

6

5

62

54 58 87

10

58

62

6

54

2

14

6

13

6

7

7

5

5

40

50

4

12

23

46

34

45

2

8

12

17

19

39

21

3

4

34

51

33

60

59

11

37

37

1

8

19

42

10

3

22

50 21

64

44

62

40

42 11

13

10

46

27

31

7

1

95

24

56

55

26

11

7

31

79

12

6

12

6

83

91

5

5

67

75

87

71

Figure 18. A surface face is collapsed, splicing two loops into one and creating a wedge. The wedge is then collapsed, until the surface mesh is reached again and the loop breaks into two again. Note that each final sheet contains pieces of both of the original sheets.

17

are joined smoothly between the two wedge singularities, but intersect each other along the base chords. Similarly, any surface edge pair that shares a node and are contained in two internal faces that share an internal edge may be opened into the base face of a wedge. Any one of the three cases is possible. Most likely, a pair of loops will be spliced into one by Case 1, then split back into two by Case 3 when the wedge is resolved. Figure 19 illustrates a wedge that 59

63 6

7

55

44 5

4 24 52

51

43

12

3 40

51

wedge base chord

Z

22 25

314

71

72

4

13 73 70 61

26

3

2

38

47 62 69 37 58

Z

57 2

13 68 48

27

244 65

Y

66 67 1

Y

1 18

28

41 12 35 36 12

7

82

94 5

6 9

86

90

Figure 19. A regular mesh with a wedge driven through it. is opened at Y, then driven in and curved back near its starting point to Z. Note that the areas of the sheet inside and outside of the thick base chord were originally on separate sheets that were spliced together. There is also another sheet with the same basic structure passing perpendicularly through faces Y and Z. The intersection of these two sheets forms the thick base chord in Figure 19.

6. Conclusions The spatial twist continuum (STC) captures the connectivity of a hexahedral mesh. It also compactly represents global connectivity information that is non-obvious in either a hexahedral or simple dual representation of a mesh. The STC is used to guide an advancing-front type of algorithm called Whisker Weaving. A certain type of degeneracy called a wedge sometimes arises as Whisker Weaving builds the STC. A wedge can be easily detected and two strategies (collapsing and driving) exist for resolving it. Driving is not always possible, but yields well shaped elements when successful. Although collapsing always removes the wedge, another type of degeneracy called a degree-2 2-cell can result. Driving and collapsing wedges has been implemented in the CUBIT mesh generation environment developed at Sandia National Labs. A robust

18

algorithm to remove degree-2 2-cells will be described in future work. Once wedges are resolved, the STC can be converted into a hexahedral mesh. Wedges can also be used to coarsen and refine a completed mesh.

References 1. P. Murdoch, S. Benzley, T. D. Blacker, S. A. Mitchell, “The spatial twist continuum captures the connectivity of an all-hexahedral mesh”. Submitted to Int. J. Numer. Methods Eng. (1995). 2. T. J. Tautges, T. D. Blacker, S. A. Mitchell, “The Whisker Weaving algorithm: a connectivity based method for constructing all–hexahedral finite element meshes”. Submitted to Int. J. Numer. Methods Eng. (1995). 3. T. D. Blacker, R. J. Meyers, “Seams and wedges in Plastering: a 3-D hexahedral mesh generation algorithm”. Engineering with Computers, 9:83-93 (1993).

19

20

Suggest Documents