fun sheet matching: towards automatic block decomposition for hexahedral meshes

13
ORIGINAL ARTICLE Fun sheet matching: towards automatic block decomposition for hexahedral meshes Nicolas Kowalski Franck Ledoux Matthew L. Staten Steve J. Owen Received: 19 February 2010 / Accepted: 22 December 2010 / Published online: 14 January 2011 Ó Springer-Verlag London Limited 2011 Abstract Depending upon the numerical approximation method that may be implemented, hexahedral meshes are frequently preferred to tetrahedral meshes. Because of the layered structure of hexahedral meshes, the automatic generation of hexahedral meshes for arbitrary geometries is still an open problem. This layered structure usually requires topological modifications to propagate globally, thus preventing the general development of meshing algorithms such as Delaunay’s algorithm for tetrahedral meshes or the advancing-front algorithm based on local decisions. To automatically produce an acceptable hexa- hedral mesh, we claim that both global geometric and global topological information must be taken into account in the mesh generation process. In this work, we propose a theoretical classification of the layers or sheets participat- ing in the geometry capture procedure. These sheets are called fundamental, or fun-sheets for short, and make the connection between the global layered structure of hexa- hedral meshes and the geometric surfaces that are captured during the meshing process. Moreover, we propose a first generation algorithm based on fun-sheets to deal with 3D geometries having 3- and 4-valent vertices. Keywords Hexahedral mesh Block-structured mesh Dual mesh Fundamental mesh Mesh generation 1 Introduction Computational [1] simulations depend upon the numerical approximation method used, such as finite element, finite difference, and finite volume methods (to name a few), that enable modeling of phenomena of interest to the science and engineering communities. Critical to each of these numerical approximation methods is the discretization of the physical domain into a ‘mesh’. Depending on the numerical approximations methods, hexahedral meshes are preferred to tetrahedral meshes. The automatic generation of hexahedral meshes for any geometric 3D object is, however, still an open problem. In recent decades, different approaches have been followed to generate a full hexahe- dral mesh for any geometric 3D object. Starting from a pre- meshed boundary surface some authors have proposed pure geometric approaches like plastering [2] or H-morph [3] algorithms, while other authors have followed a pure topological approach proposing different algorithms [49] with limited success. Some unfilled cavities can remain or inverted cells, and negative Jacobian cells can be generated inside the mesh. By relaxing the constraint of working with a pre-meshed boundary, inside-out algorithms [1012] or unconstrained plastering [13] have provided encouraging examples of all-hex meshes for arbitrary geometries. In spite of this, these methods have their weaknesses. For instance, inside-out algorithms [1012] do not consider the global topological structure and generally place the worst quality elements near the boundaries while the quality of elements in these areas can be very important for numerical simulation. N. Kowalski F. Ledoux (&) CEA, DAM, DIF, 91297 Arpajon, France e-mail: [email protected] N. Kowalski e-mail: [email protected] M. L. Staten S. J. Owen Sandia National Laboratories, Albuquerque, USA e-mail: [email protected] S. J. Owen e-mail: [email protected] 123 Engineering with Computers (2012) 28:241–253 DOI 10.1007/s00366-010-0207-5

Upload: steve-j

Post on 25-Aug-2016

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

ORIGINAL ARTICLE

Fun sheet matching: towards automatic block decompositionfor hexahedral meshes

Nicolas Kowalski • Franck Ledoux •

Matthew L. Staten • Steve J. Owen

Received: 19 February 2010 / Accepted: 22 December 2010 / Published online: 14 January 2011

� Springer-Verlag London Limited 2011

Abstract Depending upon the numerical approximation

method that may be implemented, hexahedral meshes are

frequently preferred to tetrahedral meshes. Because of the

layered structure of hexahedral meshes, the automatic

generation of hexahedral meshes for arbitrary geometries is

still an open problem. This layered structure usually

requires topological modifications to propagate globally,

thus preventing the general development of meshing

algorithms such as Delaunay’s algorithm for tetrahedral

meshes or the advancing-front algorithm based on local

decisions. To automatically produce an acceptable hexa-

hedral mesh, we claim that both global geometric and

global topological information must be taken into account

in the mesh generation process. In this work, we propose a

theoretical classification of the layers or sheets participat-

ing in the geometry capture procedure. These sheets are

called fundamental, or fun-sheets for short, and make the

connection between the global layered structure of hexa-

hedral meshes and the geometric surfaces that are captured

during the meshing process. Moreover, we propose a first

generation algorithm based on fun-sheets to deal with 3D

geometries having 3- and 4-valent vertices.

Keywords Hexahedral mesh � Block-structured mesh �Dual mesh � Fundamental mesh � Mesh generation

1 Introduction

Computational [1] simulations depend upon the numerical

approximation method used, such as finite element, finite

difference, and finite volume methods (to name a few), that

enable modeling of phenomena of interest to the science

and engineering communities. Critical to each of these

numerical approximation methods is the discretization of

the physical domain into a ‘mesh’. Depending on the

numerical approximations methods, hexahedral meshes are

preferred to tetrahedral meshes. The automatic generation

of hexahedral meshes for any geometric 3D object is,

however, still an open problem. In recent decades, different

approaches have been followed to generate a full hexahe-

dral mesh for any geometric 3D object. Starting from a pre-

meshed boundary surface some authors have proposed pure

geometric approaches like plastering [2] or H-morph [3]

algorithms, while other authors have followed a pure

topological approach proposing different algorithms [4–9]

with limited success. Some unfilled cavities can remain or

inverted cells, and negative Jacobian cells can be generated

inside the mesh. By relaxing the constraint of working with

a pre-meshed boundary, inside-out algorithms [10–12] or

unconstrained plastering [13] have provided encouraging

examples of all-hex meshes for arbitrary geometries. In

spite of this, these methods have their weaknesses. For

instance, inside-out algorithms [10–12] do not consider the

global topological structure and generally place the worst

quality elements near the boundaries while the quality of

elements in these areas can be very important for numerical

simulation.

N. Kowalski � F. Ledoux (&)

CEA, DAM, DIF, 91297 Arpajon, France

e-mail: [email protected]

N. Kowalski

e-mail: [email protected]

M. L. Staten � S. J. Owen

Sandia National Laboratories, Albuquerque, USA

e-mail: [email protected]

S. J. Owen

e-mail: [email protected]

123

Engineering with Computers (2012) 28:241–253

DOI 10.1007/s00366-010-0207-5

Page 2: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

The difficulty of automatic hexahedral mesh generation

is mainly due to the layered structure of hexahedral meshes

[14] that can require topological modifications to propagate

globally. Because an automatic general all-hex solution

that reliably produces high-quality elements for arbitrary

geometries has not been developed, it is often necessary

to follow a hand-made approach with software such as

CUBIT [15] (mainly based on the sweeping algorithm

[16–18]) or ICEM-CFD [19] (block-structured decompo-

sition) where the user drives the hexahedral mesh genera-

tion by clever geometry decompositions. With such tools,

the user must manually determine the relationship between

the geometric features of the 3D objects and the hexahedral

layers to form the final mesh.

To automatically produce an acceptable hexahedral

mesh, we claim that we must consider both global geo-

metric and global topological information in the mesh

generation process. Recent works have demonstrated the

need for this approach [13, 20]. For example, Staten et al.

[13] start from the boundary and build geometric layers of

hexahedra ‘‘parallel’’ to the surfaces. Final steps of the

procedure involve recognizing and fitting structured hexa-

hedral templates such as sweeping, mapping and midpoint

subdivision to fill the remaining cavity. Although promis-

ing, this geometric algorithm misses the theoretical foun-

dations to ensure that any remaining cavity in a 3D

geometry can be filled with hexahedra of sufficient quality.

Roca and Sarrate [20] start from a tetrahedral mesh and

build dual surfaces considering local dual contributions.

The dual surfaces that are introduced correspond to layers

of hexahedra along the geometric surfaces. Once these

layers are built, a hexahedral block structure can be derived

in a straightforward manner. Both of these approaches

attempt to produce layers of hexahedra parallel to the

geometric surfaces by using geometric and topological

local information. Experience has shown, however, that

having a local knowledge of topology is not enough. The

global topological structure must be considered to reliably

produce a quality hexahedral mesh. Failure to manage

global topology may result in unsolved configurations,

where it is impossible to fill a cavity with hexahedra [13] or

resolve topology conditions in the 3D model [20].

In this work, we propose a theoretical classification of

the layers or sheets participating in the geometry capture

procedure. This classification allows us to link geometric

and global topological constraints in a unique concept

known as fundamental sheets, or fun-sheets for short. Fun-

sheets will be used to derive a first generation algorithm for

the automatic all-hex problem and serve as the foundation

for forthcoming works.

The paper is organized as follows. In Sect. 2, we review

and enhance some basic mesh structure definitions required

for the understanding of the algorithm we present in

Sect. 3. In Sect. 3, we present our new algorithm for

automatic generation of block decompositions. In Sect. 4,

we provide conclusions and discussions on future work.

2 Fundamental sheet theory

Unlike tetrahedral meshes, hexahedral meshes have an

inherent layered structure, which makes both local modi-

fications [21–25] and automatic generation of all-hexahe-

dral meshes difficult. The layered structure in hexahedral

meshes is the primary reason for robustness issues with

previous attempts at all-hexahedral meshing which rely on

a pre-meshed boundary.1 This layered structure in hexa-

hedral meshes is formally defined as the dual, or the Spatial

Twist Continuum.

We claim that development of a reliable all-hexahedral

meshing algorithm for arbitrary geometry cannot be done

without taking this structure into account. Moreover, this

structure must be ‘‘connected’’ to the geometric features of

the physical domain that is to be meshed. In order to for-

malize this connection, Shepherd [27] defined the notion of

fundamental meshes.

2.1 Background

The traditional representation of a finite element mesh,

composed of hexahedra, quadrilaterals, edges and nodes, is

known as the primal mesh. In most cases, it is sufficient

to describe a hexahedral mesh as being a set of face-

connected hexahedra that discretizes a 3D object (corre-

sponding to a physical domain useful for a numerical

simulation). More precisely, we define [28]:

Definition 1 (Hexahedral mesh) A hexahedral mesh is a

4-tuple (H, F, E, N) where H is a non-empty set of hexa-

hedra, F is the non-empty set of all quadrilaterals incident

to one or more hexahedra in H, E is the non-empty set of

all edges incident to one or more hexahedra in H, and N is

the non-empty set of all nodes incident to one or more

hexahedra in H.

This is what we generally call the primal mesh. Hexa-

hedral meshes are used to discretize a physical domain X:The notion of ‘‘discretization’’ requires that any geometric

point in X belongs to only one mesh cell and the mesh

wholly fills X: This notion is captured by the following

definition.

1 Under the acceptable conditions of having a volume isomorphic to

a ball and an even number of quadrilaterals on the boundary [26].

242 Engineering with Computers (2012) 28:241–253

123

Page 3: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

Definition 2 (Hexahedral mesh discretizing a 3D boun-

ded domain) Let X be a 3D bounded domain, a hexahedral

mesh M = (H, F, E, N) discretizes X if and only if

• 8ðh1; h2Þ 2 H2; h1 \ h2 ¼ ;;• 8x 2 X; 8�[ 0; 9hi 2 H;Bx;� \ hi 6¼ ; where Bx,e is the

e-radius ball centered in x.

Throughout this paper, it is assumed that any mention of

a hexahedral mesh will satisfy both of these definitions.

Interestingly, neither of these primal definitions refers to

the layered structure inherent in hexahedral meshes. In

contrast, the Spatial Twist Continuum [26], or dual mesh, is

based on this layered structure. The dual is an arrangement

of surfaces. Every surface is called a sheet and is the dual

of a layer of hexahedra. The intersection of two sheets is a

chord, which is the dual of a column of hexahedra.

A chord, or column of hexahedra, is formed at the inter-

section of two sheets, or at the self-intersection of a single

sheet. However, for the purposes of this paper, we prefer to

work in the primal mesh.

A hexahedral cell H has 12 edges organized as three sets

of four topologically parallel edges E1, E2, and E3 (see

Fig. 1). Thus, two edges of H are said to be topologically

parallel one to the other if and only if they both belong to

the same subset E1, E2, or E3. Considering a hexahe-

dral mesh M = (H, F, E, N) and an edge e [ E, we have

He ¼ h1; . . .; hn the hexahedra incident to e, and we note

E==e ¼ feigi¼1;...;p the subset of E such that V i [ [1, p],

A k [ [1, n], e and ei are topologically parallel in hk. The

subset Ee// defines a topological surface that can be extended

to the adjacent hexahedra and so on, defining a primal

sheet. Examples of primal sheets are given in Fig. 2.

Definition 3 (Primal sheet) Let M = (H, F, E, N) be a

hexahedral mesh. Considering an edge e [ E, let us define

Ee as being the smallest subset of E such that e [ Ee and

8e� 2 Ee;E==e� � Ee: The set of hexahedra incident to any

edge in Ee forms the primal sheet relative to e.

Similarly, a hexahedral cell has six faces organized as

three pairs of topological opposite faces F1;F2; and F3.

Two faces are said to be topologically parallel if and only if

both faces belong to the same hexahedra and form either

F1;F2; or F3. Each of these sets defines a logical column

that can be extend to the adjacent hexahedral cells and so

on, defining a primal chord. Examples of primal chords are

given in Fig. 3. Ff// denotes the set of faces topologically

parallel to face f.2

Definition 4 (Primal chord) Let M = (H, F, E, N) be a

hexahedral mesh. Considering a face f [ F, let us define Ff

Fig. 3 On the left, two primal chords are shown while the

corresponding primal sheets that intersect each other are shown on

the right

e’

e

Fig. 1 a A hexahedral cell. b, c, d The three sets of four

topologically parallel edges of this cell. As edges e and e0 belong to

the same subset depicted in b, they are said to be topologically

parallel

Fig. 2 On the left, a hexahedral mesh generated using a sweeping

algorithm [16, 17]; on the right, three primal sheets of this mesh are

highlighted

2 In a hexahedral mesh discretizing a 3D bounded domain, this set is

reduced to one or two faces.

Engineering with Computers (2012) 28:241–253 243

123

Page 4: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

a subset of F such that f [ Ff and 8fi 2 Ff ) F==fi� Ff :

The set of hexahedra incident to any face in Ff forms the

primal chord relative to f.

Some other useful definitions for our purpose are mesh

surfaces and mesh lines.

Definition 5 (Mesh surfaces) Let M = (H, F, E, N) be a

mesh discretizing a bounded domain X; a mesh surface

of M is a set of pairwise adjacent faces of F forming a

2-manifold.

Definition 6 (Mesh lines) Let M = (H, F, E, N) be a

mesh discretizing a bounded domain X; a mesh line of M is

a set of pairwise adjacent edges of E forming a 1-manifold.

Let us now define a 3D geometric object in BRep rep-

resentation. Indeed, in an industrial and pragmatic context,

the 3D bounded-domains we want to discretize are gener-

ally represented by such boundary representations.

Definition 7 (BRep representation of 3D geometric

object) A 3D geometric object is a 3-tuple (S,C,V) where

1. S is a non-empty set of geometric surfaces enclosing a

3D space and such that 8ðs1; s2Þ 2 S2; s1 \ s2 ¼ ;;2. C is the non-empty set of curves incident to one or

more surfaces in S;

3. V is the non-empty set of vertices incident to one or

more surfaces in S.

Considering this definition, we can now associate geo-

metric surfaces and geometric curves, respectively, to mesh

surfaces and mesh lines. This association is an extension of

the classification3 notion introduced by Remacle and

Shephard [29] for meshes.

Definition 8 (Geometric association) Let M =

(H, F, E, N) be a hexahedral mesh discretizing the BRep

geometric object G = (S, C, V).

• A mesh surface sM � F is associated with a geometric

surface s [ S if and only if all the faces in sM, all the

edges and nodes adjacent to a face of sM are geomet-

rically on surface s within a tolerance, and sM

discretizes surface s (i.e., every point x [ s is contained

in exactly one face, f [ sM, and sM wholly fills s).

• A mesh line lM � E is associated with a geometric

curve c [ C if and only if all the edges in lM and all the

nodes adjacent to an edge of lM are geometrically on

curve c within a tolerance, and lM discretizes curve c

(i.e., every point x [ c is contained in exactly one edge,

e [ lM, and lM wholly fills c).

Implicitly, this definition indicates that if two geometric

surfaces s1 and s2 of a BRep geometric object share a curve

c, then the edges of the mesh line associated with curve c

are both associated with surfaces s1 and s2 too.

2.2 Fundamental hexahedral meshes

Typically, analysts require good shape and topology of

hexahedra near the boundary of 3D objects. That is the

reason why inside-out algorithms [10–12] are not suit-

able for many numerical simulations. In fact, inside-outs

are normally post-processed with the insertion of sheets

along the boundary to get better shaped hexahedra

[12].

The definition of fundamental meshes is an attempt to

characterize what it means for a mesh to have well-shaped

hexahedra near the boundary. The first definition of fun-

damental meshes was given by Shepherd [27] and detailed

by Ledoux and Shepherd [30]. Intuitively, in these defini-

tions, we consider that a hexahedral mesh is fundamental if

and only if every geometric surface is bounded or ‘‘cap-

tured’’ by a single primal sheet and every geometric curve

is bounded or ‘‘captured’’ by one or more parallel primal

chords. In this paper, we propose a theoretical classification

of the primal sheets participating in the geometry capture

procedure. In this way, we obtain a more complete defi-

nition of fundamental mesh than the ones given by Ledoux

and Shepherd [25].

2.2.1 Capture of geometric surfaces

In order to define the notion of fundamental primal sheets,

we introduce the definition of capturing of geometric

surfaces.

Definition 9 (Primal sheet capturing a geometric sur-

face) Let M = (H, F, E, N) be a hexahedral mesh of a 3D

geometric object G = (S, C, V), let sG [ S be a geometric

surface of G and sM � F be the quadrilateral surface mesh

associated with sG, let Hs be the set of all the hexahedra

incident to a face of sM, a primal sheet P is a sheet cap-

turing sG if and only if Hs � P and P is simply connected

locally to surface sG.

The first condition ensures that the geometric surface is

captured by a single primal sheet. For instance if you

consider Fig. 4a, all the hexahedra traversed by the red

dual sheet are along a single curved surface. In other

words, this geometric surface is captured by the corre-

sponding primal sheet. In Fig. 4b, this surface is partially

captured by six primal sheets. Second condition guarantees

that the corresponding dual sheet is locally a 2-manifold.

This second property is essential to avoid particular cases

similar to the 2D case shown in Fig. 5.3 In topology-based modeling this notion is called embedding.

244 Engineering with Computers (2012) 28:241–253

123

Page 5: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

2.2.2 Fundamental chords

In order to define what a fundamental mesh is, Ledoux and

Shepherd [30] introduce the notions of fundamental primal

chords and fundamental primal sheets. In their definitions,

fundamental primal sheets correspond to the definition of

primal sheets capturing a geometric surface (Definition 9),

while fundamental primal chords are primal chords par-

ticipating to capture a geometric curve and having some of

their faces associated with a geometric surface adjacent to

the geometric curve to capture.

Definition 10 (Fundamental primal chord) Let

M = (H, F, E, N) be a hexahedral mesh of a 3D geometric

object G = (S, C, V), let cG [ C be a geometric curve of G

and ðsG1; sG2Þ 2 S2 be the adjacent surfaces of cG. Let

ðFG1;FG2Þ � F2 be the sets of faces adjacent to cG and

belonging to sG1and sG2

; respectively, let Hc � H be the

set of all the hexahedra sharing a face of FG1(respectively

FG2), a primal chord c � H is a fundamental primal chord

of cG associated with sG1(respectively sG2

) if and only if Hc

is included into c and c is simply connected locally to

curve cG.

This definition gives us a relation between geometric

curves and primal chords that is equivalent to the relation

between geometric surfaces and primal sheets we defined

in Definition 9. Intuitively, this definition ensures that if

you consider a geometric curve cG delimiting two geo-

metric surfaces, then, on both surfaces, quadrilaterals

adjacent to curve cG belong to a single primal chord. This

definition specifies nothing about the hexahedra having an

edge associated with curve cG but no faces on the geo-

metric boundary. Indeed, any number of chords can be

fundamental to the same geometric curve.

2.2.3 Fundamental sheets

We now enhance the definition of fundamental sheets,

originally proposed by Ledoux and Shepherd [30] by

subcategorizing them into three levels. The sheets of the

fundamental first level have the characteristic of being

wholly adjacent to the geometric boundary. To simplify,

we name them level 1 fun sheets.4

Definition 11 (level 1 fun sheet) Let M = (H, F, E, N) be

a hexahedral mesh of a 3D geometrical object

G = (S, C, V), let sG [ S be a geometric surface of G and

sM � F be the quadrilateral surface mesh corresponding to

sG, let Hs be the set of all the hexahedra sharing a face of

sM. A primal sheet P is a level 1 fun sheet for sG if and only

if P captures sG and every hexahedron h [ P - Hs par-

ticipates to capture another geometric surface of G.

The first condition ensures that sheet P captures geo-

metric surface sG, while second condition ensures either

P only captures sG (if P = Hs) or P captures one or more

geometric surfaces of G. As a consequence, there exists a

one-to-many mapping from the level 1 fundamental primal

sheets of H to the geometric surfaces of G. Figure 6 shows

examples of level 1 fun sheets: In Fig. 6a, the represented

primal sheet captures one geometric surface, while in

Fig. 6b it captures three geometric surfaces.

Alone, level 1 fun sheets are not sufficient to define all

possible fundamental primal sheets. We add level 2 fun

sheets that are primal sheets capturing at least one geo-

metric surface and being not level 1 fundamental sheets. It

means that some hexahedra forming a level 2 fun sheet do

Fig. 6 a A level 1 fun sheet captures one geometric surface; b it

captures three geometric surfaces

Fig. 4 A single sheet captures a single geometric surface in a, while

several sheets capture it in b. Courtesy of Jason Shepherd, Sandia

National Labs [27]

Fig. 5 2D Example of a self-intersecting sheet that captures the top

surface without satisfying the second condition of Definition 9

4 We adopt the same naming for second and third levels of

fundamental primal sheets.

Engineering with Computers (2012) 28:241–253 245

123

Page 6: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

not participate in the capture of a geometric surface. For

example, Fig. 7 illustrates two sheets, both of which con-

tain hexahedra interior to the volume which are not asso-

ciated with any geometric surface.

Definition 12 (level 2 fun sheet) Let M = (H, F, E, N) be

a hexahedral mesh of a 3D geometricciated to any geo-

metric surface, object G = (S, C, V), let sG [ S be a geo-

metric surface of G. A primal sheet P is a level 2 fun sheet

for sG if and only if P captures sG and P is not a level 1 fun

sheet.

Level 1 and 2 fun sheets are adequate to capture all

geometric surfaces. However, to capture all geometric

curves, we add level 3 fun sheets.

Definition 13 (level 3 fun sheet) Let M = (H, F, E, N) be

a hexahedral mesh of a 3D geometric object G = (S, C, V),

and let cG [ G be a geometric curve of G. A primal sheet

P is a level 3 fundamental primal sheet for cG if and only if

there exists a fundamental chord c and a level 1 or level 2

fun sheet P2 such that c is the intersection of P and P2.

Comparing to level 1 and level 2 fun sheets, level 3 fun

sheets just help to capture geometric curves and not geo-

metric surfaces. The two sheets illustrated in Fig. 8 are

only adjacent to boundary faces along the geometric curve

they help to capture. Note that a primal sheet can be both a

level 2 and level 3 fun sheet. Indeed, the definition of such

primal sheets is mainly local to a geometric surface (levels

1 and 2) or a geometric curve (level 3). As a consequence,

a primal sheet can capture both one or more geometric

surfaces and one or more non-incident geometric curves.

To conclude this section about fundamental sheets, we

summarize the important features that distinguish our three

levels of fun sheets:

• A level 1 fun sheet captures one or many geometric

surfaces, and all its hexahedra are on the boundary;

• A level 2 fun sheet captures one or many geometric

surfaces, but some of its hexahedra do not participate in

the capture of a geometric surface;

• A level 3 fun sheet helps to capture one or more

geometric curves.

2.3 Fundamental mesh

Considering the three level of fundamental sheets defined

previously, we can now define what a fundamental mesh is

Definition 14 (Fundamental mesh) Let M be a hexahe-

dral mesh of a 3D geometric object G = (S, C, V), M is a

fundamental mesh of G if and only if

1. All geometric surfaces in S are captured by a level 1 or

level 2 fun sheets in M;

2. All geometric curves in S are captured by a level 3 fun

sheets in M.

This definition formalizes what we expect from a

hexahedral mesh discretizing a geometric object: there

exists at least one primal sheet along each geometric sur-

faces, and geometric curves are also ‘‘well-captured’’.

3 Generation of hexahedral block-structured meshes

using fundamental sheets

Considering Definition 14 of fundamental meshes, we

propose an algorithm for generating fundamental meshes

for 3D geometric objects having 3- and 4-valent geometric

vertices.

Definition 14 of a fundamental mesh is only based on

the notion of fundamental sheets. As a consequence, we

can write an algorithm generating fundamental meshes by

only considering sheets and not chords. With only the

previous limited definition of fundamental sheets provided

by Ledoux and Shepherd [30], it was difficult to develop a

constructive algorithm which would generate high-quality

elements even on simple concave objects. However, the

enhanced definition of fundamental sheets provided in

Sect. 3, provides the groundwork necessary for such a

constructive algorithm.

Starting from a 3D geometric object G = (S, C, V), the

principle of our constructive algorithm is as follows (see

Fig. 9):

Fig. 7 On the left, the level 2 fun sheet captures one geometric

surface; on the right, two geometric surfaces are captured by the same

level 2 fun sheet

Fig. 8 Two level 3 fun sheets

participating to capture the

same geometric curve. Each of

these sheet is relative to a

geometric surface adjacent

to the captured geometric

246 Engineering with Computers (2012) 28:241–253

123

Page 7: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

1. Transform an initial tetrahedral mesh of G (see

Fig. 9a) into an all hex mesh, M = (H, F, E, N) using

the THex template [31]. The quality of this interme-

diate mesh will be insufficient for most numerical

simulations.

2. Define three sets ðS1; S2; S3Þ of fundamental sheets,

respectively, corresponding to level 1, 2, and 3 fun

sheets by solving a global topology constraint satis-

faction system.

3. Define a set, Ss containing all non-fundamental (i.e.,

secondary) sheets in M.

4. One-by-one, insert each fundamental sheet, si 2 ðS1 [S2 [ S3Þ; into M using the pillow operation [32]. This

operation consists in introducing a primal sheet along

a subset of F forming a 2-manifold surface. At this

step, we get a fundamental mesh of G (see Fig. 9c, d

where a Laplacian smoothing algorithm has been

applied).

5. One-by-one, extract each non-fundamental sheet, sj 2Ss using the sheet extraction operation [33] to create a

structured block hexahedral mesh (see Fig. 9e–i). The

difficulty is to have a robust implementation of the

extraction operation. Indeed, weird and tricky sheets

can occur during sheet extraction. Moreover, in some

special cases we do not remove all the secondary

sheets. For instance, if you consider a sphere, you just

have one fun sheet that does not self-intersect. A hex is

the intersection of three sheets. Thus, if you remove all

the sheets but the one fundamental sheet, you do not

keep any hexahedron.

6. Refine each block to the desired density.

In this section, we focus on Item 2, which is the heart of

the algorithm. The two main issues that need to be con-

sidered are:

1. The management of vertices with a valence greater

than 3. In this paper, we restrict our focus to 4-valent

vertices;

2. The determination of the insertion path of internal

primal sheets (level 2 and 3) inside the geometric

volume.

3.1 On the boundary: management of 4-valent vertices

The insertion of fundamental sheets and chords provide

explicit capture of geometric curves and surfaces. But what

about geometric vertices? In fact, there is no specific

requirement for geometric vertices, which are captured by

one or many hexahedra. For convex geometries with only

3-valent vertices, we can put one level 1 fun sheet per

geometric surface. Then each curve is captured by the

intersection of two level 1 fun sheets, i.e., one single primal

chord, and each vertex is captured by three level 1 fun

sheets, i.e., one single hexahedron. Figure 10 shows an

example of such a case.

The problem is when you have to deal with non-convex

geometries and/or higher valent geometric 1 fun sheets

(represented by the green, yellow and red dual sheets)

which pairwise intersect along geometric curves to form

primal chords vertices. Indeed, at least n - 2 hexahedra

Fig. 9 In this figure, are given different steps of our algorithm. a We

generate a tetrahedral mesh of our geometric object; b this tetrahedral

mesh is converted into a THex mesh by applying the traditinal pattern

tranforming a tetrahedron into four hexahedra; c fundamental sheets

are inserted to get a fundamental mesh; d a Laplacian smoothing

algorithm is applied; e–i results of successive extractions of primal

sheets to get a block-structured hexahedral mesh in i. All the

extractions are not shown. In this example, 16 extractions are

necessary

Fig. 10 The geometric vertex is captured by a single hexahedron,

which is the intersection of three level 1 fun sheets (represented by the

green, yellow, and red dual sheets) which pairwise intersect along

geometric curves to form primal chords (color figure online)

Engineering with Computers (2012) 28:241–253 247

123

Page 8: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

are necessary to capture a n-valent convex geometric ver-

tex [27, 34]. In this paper, we limit our focus to the 4-valent

vertices’ configurations given in Fig. 11. In a, two hexa-

hedra capture one geometric vertex, while four hexahedra

capture it in b and c. The consequence is that level 1 fun

sheets are not sufficient to capture 4-valent geometric

vertices. In the two previous cases, we have:

1. In a, two hexahedra are generated by two level 1 fun

sheets (green and yellow dual sheets) and two level 3

fun sheets (blue and red ones);

2. In b and c, four hexahedra are generated by one level 1

fun sheet (red dual sheet) and four level 3 fun sheets

(grey, blue, yellow, and green ones).

There is no explicit reference to geometric vertices in

the fundamental mesh definition, but they give important

restrictions in the manner to define the fundamental sheets

to be inserted. Moreover, the global topological structure of

hexahedral meshes enforces the condition where the local

configuration at vertices must be propagated along the

adjacent curves and surfaces. For instance, consider Fig. 12

where a 4-sided base pyramid is represented. We focus on

the line segment joining the 4-valent top vertex and the

3-valent front vertex of the base. Although it is 3-valent,

this vertex cannot be captured by a single hexahedron due

to the propagation of constraints emanating from the top

vertex, which is captured by two hexahedra. If we consider

fun sheets, these two hexahedra are generated by two level

1 fun sheet and two level 3 fun sheets as illustrated in

Fig. 12.

The constraints that are propagated along geometric

curves can be interpreted as constraints on the geometric

curves themselves. More precisely, we define three types of

curves:

• Type 1 The curve is locally captured by two level 1 fun

sheets (see Fig. 13a);

• Type 2 The curve is locally captured by one level 1 fun

sheet and two level 3 fun sheets (see Fig. 13b);

• Type 3 The curve is locally captured by two level 2 fun

sheets and two level 3 fun sheets (see Fig. 13c).

The ‘‘locality’’ term in these three cases is due to the fact

that, locally to a curve, it is impossible to distinguish a

level 1 from a level 2 fun sheet and a level 3 from a level 2

fun sheet. Moreover, a propagation of constraints along

geometric curves and surfaces can modify this classifica-

tion. We have deliberately selected only three types of

curves to get a quite simple algorithm. Extensions of this

algorithm will probably lead to introduce some other types

of curves.

Vertices also have a prescribed set of valid configura-

tions. In this paper, we limit our focus to the following:

• Type V3A A 3-valent vertex with all adjacent curves of

Type 1 (see Fig. 10);

• Type V3B A 3-valent vertex with two adjacent Type 1

curves and one adjacent Type 2 curve;

• Type V3C A 3-valent vertex with all adjacent curves of

Type 3;

• Type V3D A 3-valent vertex with two adjacent Type 3

curves and one adjacent Type 2 curve;

• Type V4A A 4-valent vertex with two opposite adjacent

curves of Type 1 and the other two opposite adjacent

curves of Type 2 (see Fig. 11a);

• Type V4B A 4-valent vertex with two opposite adjacent

curves of Type 1 and the other two opposite adjacent

curves of Type 3 (see Fig. 11a);

• Type V4C A 4-valent vertex with two opposite adjacent

curves of Type 2 and the other two opposite adjacent

curves of Type 3 (see Fig. 11a);

• Type V4D A 4-valent vertex with all adjacent curves of

Type 2 (see Fig. 11b);

• Type V4E A 4-valent vertex with all adjacent curves of

Type 3 (see Fig. 11b).

Fig. 11 A 4-valent geometric

vertex is here captured by two

hexahedra (a) or four hexahedra

(b, c). In c, the four hexahedra

are shown; whereas in b, the

corresponding dual sheets are

represented

Fig. 12 Propagation of geometric vertices’ constraints along geo-

metric curves. A complete pyramid is shown in a, while a focus on the

line segment joining the top vertex and the front vertex of the base is

given in b

248 Engineering with Computers (2012) 28:241–253

123

Page 9: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

As in the case of curves, it is impossible to distinguish,

locally to a vertex, a level 1 from a level 2 fun sheet and a

level 3 from a level 2 fun sheet. That is the reason why we

have the same local configurations of hexahedra around

vertices of types V4A, V4B, and V4C on one hand, and

V4D and V4E on the other hand. As described later in this

paper, the classification Type assigned to each geometric

curve is modified until all geometric vertices in the model

match one of these vertex types.

3.2 Inside the volume: propagation of internal primal

sheets

Level 2 and 3 fun sheets propagate inside the mesh. It must

be determined where these sheets are placed and how they

can be connected together inside the mesh. For example,

consider the 2D example in Fig. 14. The paths of level 1

fun sheets (blue) have been completely determined.

Hanging whiskers represent four partially defined level 2

fun sheets (red) and four partially defined level 3 fun sheets

(green). The goal of our algorithm is to determine how

these hanging whiskers are paired and the path traversed to

pair them. Different solutions can be selected like solutions

A, B, and C presented in Fig. 14.

Although not the primary focus of this paper, we must

determine the spatial path of the fun sheets as they prop-

agate into the volume. In our current algorithm, this

propagation is based on geometric criteria and follows

planar projections of boundary normals. In spite of the

limitations of this simple approach, it allows us to generate

a mesh by considering global properties and not just local

properties. This point is crucial; one of the main difficulties

in hexahedral meshing is to incorporate adequate consid-

eration of the global topological structure of hexahedral

meshes.

3.3 Our algorithm: from boundary to inside

The proposed algorithm is based on a classification of

geometric vertices and curves. As explained in Sect. 3.1,

constraints on vertices are mainly propagated along curves.

This propagation leads to a classification of curves into

three categories while we classify geometric vertices by

considering their valence. The sketch of the algorithm

determining the sheets to insert is as follows:

1. We initialize every curve to Type 1 if it is convex or

Type 3 otherwise;

2. Then we determine which vertices are invalid (i.e., do

not match one of the vertex classification Types: V3A,

V3B, etc.);

3. We iteratively change curve classification Types, one

at a time, until all invalid vertices match one of the

vertex classification Types. This can temporarily

invalidate some initially valid vertices;

4. Finally, we geometrically close some cycles of Type 2

curves that were created during the previous step. To

close these cycles, we use geometric intersection

(currently a set of planes), and we define some virtual

curves.

We now illustrate and detail this algorithm on the geo-

metric object given in Fig. 15. The first step of the algo-

rithm consists of assigning an initial starting classification

Fig. 14 In 2D, fun sheet connection consists in connecting fun

chords. For this example, three solutions of the many possible

solutions are illustrated. Solution B seems to be the expected one for

most users

Fig. 13 The three types of curves we handle. a A Type 1 curve is

captured by two level 1 fun sheets and corresponds to a single

fundamental chord. b A Type 2 curve is captured by one level 1 fun

sheet and two level 2 fun sheets and corresponds to two fundamental

chords. c A Type 3 curve is captured by two level 2 fun sheets and

two level 3 fun sheets and corresponds to three fundamental chords

Engineering with Computers (2012) 28:241–253 249

123

Page 10: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

to every geometric curve. In Fig. 15, the geometric object

is convex; thus, all the edges are initially of Type 1. For

convenience, Type 1 curves are drawn in black, and Type 2

curves are drawn in red in Fig. 15. Next, each vertex is

analyzed to see which vertex Type they are (V3A, V3B,

etc.). In Fig. 15, none of the 4-valent vertices match any of

the vertex classifications and are thus added to a list, Vi, of

invalid vertices:

Vi ¼ fa; b; c; d; eg:The principle goal of the algorithm is to modify the

Type classifications of curves, one-by-one until each vertex

matches one of the valid vertex types (V3A, V3B, etc.). In

our example, to make vertex a valid, we have to change the

Type classification of at least two opposite curves adjacent

to it. The resulting configuration is depicted in Fig. 15b

where Type 2 curves are drawn in red. In this new con-

figuration, vertex a is captured by two hexahedra and is of

Type V4A. The list of invalid vertices becomes then:

Vi ¼ fb; d; c; eg:

The next vertex to deal with is vertex b. Changing the

Type classification of edge [b, f] to be Type 2 will make

vertex b Type V4A and therefore valid (see Fig. 15c).

Now, vertices b and f are, respectively, captured by two

hexahedra. List Vi is then {d, c, e}. The same modification

is performed around vertex d to get the configuration of

Fig. 15d and Vi = {c, e}. Next, solving the invalid

configuration at vertex c can be done by either

reclassifying curves [a, c] and [c, g] to be Type 2 curves

or by reclassifying curves [b, c] and [c, d] to be Type 2

curves. Our algorithm selects the first option to get the

configuration in Fig. 15e. Vi = {a, e} since vertex a is no

longer valid. Vertex a is made valid by curve [a, e] to

become a Type 2 curve (see Fig. 15f). Vertex a is then

captured by four hexahedra and is now Type V4D. List Vi

is reduced to {e}. Finally, vertex e becomes valid by

reclassifying curve [e, i] to be a Type 2 curve (see

Fig. 15g).

We obtain two open cycles of Type 2 curves in Fig. 15g:

the first one starts in vertex f to end in vertex h, the latter

one starts in vertex g to end in vertex i. They have to be

closed because each cycle corresponds to split the geo-

metric object in two volumes by inserting two level 3

sheets along the cycle. We close both cycles by considering

the fact that their end vertices are on the same geometric

surface (thus we simply add a virtual curve to close each

cycle), and we get result of Fig. 15h. If the end vertices are

not on the same geometric surface, we create several planes

defined by the vertices of the open cycle, and we use this

set of plans to drive the level 3 fun sheets insertions. These

insertions, as all the sheet insertions we perform, are made

directly in the THex mesh of the inital geometric object.

We get result of Fig. 16.

Note that our current algorithm is a greedy algorithm

that makes choices between different possible solutions at

many steps in the algorithm. These decisions can lead to

different valid fundamental meshes. Thus, in most cases,

there is not a unique solution and depends on the method

used for resolving non-valid configurations. For instance,

in the previous example, we may not get the same result if

we started the algorithm by fixing the invalid configuration

in vertex b instead of vertex a.

b

c

d

e

g

a

h

fi

b

c

d

e

g

a

h

fi

b

c

d

e

g

a

h

fi

b

c

d

e

g

a

h

fi

dcba

b

c

d

e

g

a

h

fi

b

c

d

e

g

a

h

fi

b

c

d

e

g

a

h

fi

b

c

d

e

g

a

h

fi

hgfe

Fig. 15 Simple example

showing how we determine the

type of the geometric curves in

order to fix invalid

configurations around geometric

vertices

250 Engineering with Computers (2012) 28:241–253

123

Page 11: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

3.4 Examples

Figures 17, 18, and 19 provide some results obtained with

the proposed algorithm. They show that the algorithm can

deal with non-convex geometries having 4-valent geo-

metric vertices.

4 Conclusion and future works

The main difficulty to overcome in hexahedral meshing is

that hexahedral meshes have a global topological structure

that any meshing algorithm must take into account. This

characteristic is very restrictive and explains why we

cannot just consider local configurations. In this work, we

have proposed a more complete definition of fundamental

meshes. This definition is based on a classification of

fundamental sheets in three levels and allows us to link

geometric considerations and topological structure of

hexahedral meshes. We believe that it provides a strong

foundation to build upon in order to generate a hexahedral

mesh for any geometric object with well-shaped hexahedra

along the geometric boundary.

Starting from the definition of fundamental meshes, we

have proposed an algorithm to mesh any geometric object

Fig. 16 a The mesh after

having inserted the fun sheets

defined previously; b two level

3 fun sheets inserted along the

same Type 2 curve are

exhibited; c the resulting block-

structured hexahedral mesh is

shown

Fig. 17 The geometry of this

example is the same as the

previous example, but a corner

was removed to get a non-

convex geometry. The resulting

structured-block hexahedral

configuration is presented with

two different points of view and

two shrinking parameters

Fig. 18 a The non-sweepable

geometry to be meshed; b, c the

generated structured-block

hexahedral mesh in two points

of view

Fig. 19 The geometry to mesh is shown in a; in b, we get the

resulting block-structured hexahedral mesh; c a final hexahedral mesh

where every block has been remeshed is shown (Note that the

Laplacian smoothing used in this example does not provide the best

geometric results)

Engineering with Computers (2012) 28:241–253 251

123

Page 12: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

having only 3- or 4-valent vertices. This preliminary

algorithm is quite simple but provides impressive pre-

liminary results. It deserves to be extended to more geo-

metric objects (with higher valence vertices). This

extension will probably require additional geometric curve

and vertex classification Types, and it will certainly need to

consider a better way to propagate sheets inside the vol-

ume. This work will lead to solving the geometric

decomposition issue. Coupled with consideration of local

topology, the use of tensor fields [35] might be used to

guide the insertion paths of level 2 and 3 fun sheets. This

will lead to an algorithm using well-known approaches

such as logic programming. Such approaches will also be

helpful to get the ‘‘best’’ block decomposition and not just

the ‘‘first found’’ block decomposition obtained by our

current greedy algorithm.

Acknowledgments The authors wish to acknowledge the work of

Jason Shephard in providing some of the foundational concepts in this

work and for his insightful comments over the years in the area of

dual-based hexahedral mesh generation. We also wish to acknowl-

edge sponsorship from the high performance computing international

collaboration between the US Department of Energy, National

Nuclear Security Administration and the French Commissariat a

l’Energie Atomique under the direction of Robert Meisner (NNSA)

and Jean Gonnard (CEA/DAM).

References

1. Ledoux F, Weill J-C, Bertrand Y (2010) Definition of a generic

mesh data structure in the high performance computing context.

In: Developments and applications in engineering computational

technology, vol 26. Saxe-Coburg Publications, pp 49–80

2. Blacker TD, Meyers RJ (1993) Seams and wedges in plastering:

a 3D hexahedral mesh generation algorithm. Eng Comput

2(9):83–93

3. Owen S, Sunil S (2000) H-morph: an indirect approach to

advancing front hex meshing. Int J Numer Methods Eng 1(49):

289–312

4. Tautges TJ, Blacker TD, Mitchell SA (1996) The whisker

weaving algorithm: a connectivity-based method for constructing

all-hexahedral finite element meshes. Int J Numer Methods Eng

39:3327–3349

5. Folwell NT, Mitchell SA (1998) Reliable whisker weaving via

curve contraction. In: Proceedings of the 7th international

meshing roundtable, pp 365–378

6. Muller-Hannemann M (2001) Shelling hexahedral complexes for

mesh generation. J Graph Algorithm Appl 5(5):59–91

7. Carbonera CD, Shepherd JF (2006) A constructive approach to

constrained hexahedral mesh generation. In: Proceedings of the

15th international meshing roundtable, September 2006, Sandia

National Laboratories, pp 435–452

8. Ledoux F, Weill J-C (2007) An extension of the reliable whisker

weaving algorithm. In: Proceedings of the 16th international

meshing roundtable. Springer, Berlin, pp 215–232

9. Kawamura Y, Islamm MS, Sumi Y (2008) A strategy of auto-

matic hexahedral mesh generation by using an improved whisker-

weaving method with a surface mesh modification procedure.

Eng Comput 24:215–219

10. Schneiders R (1997) An algorithm for the generation of hexa-

hedral element meshes based on a octree technique. In: Pro-

ceedings of the 6th international meshing roundtable, pp 183–194

11. Marechal L (2009) Advances in octree-based all-hexahedral mesh

generation: handling sharp features. In: Clark BW (ed) Pro-

ceedings of the 18th international meshing roundtable. Springer,

Berlin, pp 65–84

12. Shepherd JF (2009) Conforming hexahedral mesh generation via

geometric capture methods. In: Clark BW (ed) Proceedings of

the 18th international meshing roundtable. Springer, Berlin,

pp 85–102

13. Staten ML, Kerr RA, Owen SJ, Blacker TD, Stupazzini M, Shi-

mada K (2010) Unconstrained plastering—hexahedral mesh

generation via advancing-front geometry decomposition. Int J

Numer Methods Eng 81:135–171

14. Murdoch P, Benzley SE (1995) The spatial twist continuum: a

connectivity-based method for representing all hexahedral finite

element meshes. In: Proceedings of the 4th international meshing

roundtable, number SAND95-2130, Albuquerque, 1995. Sandia

National Laboratories

15. Cubit, geometry and mesh generation toolkit. http://cuibt.sandia.

gov

16. Blacker TD (1997) The cooper tool. In: Proceedings of the 5th

international meshing roundtable, pp 217–228

17. Shepherd J, Mitchell SA, Knupp P, White DR (2000) Methods for

multisweep automation. In: Proceedings of the 9th international

meshing roundtable, pp 77–87

18. Ruiz-Girones E, Roca X, Sarrate J (2009) A new procedure to

compute imprints in multi-sweeping algorithms. In: Clark BW

(ed) Proceedings of the 18th international meshing roundtable.

Springer, Berlin, pp 281–299

19. ANSYS, ICEM CFD. http://www.ansys.com/products/icemcfd.

asp

20. Roca X, Sarrate J (2008) Local dual contributions on simplices: a

tool for block meshing. In: Proceedings of the 17th international

meshing roundtable. Springer, Berlin, pp 513–531

21. Bern M, Eppstein D, Erickson J (2002) Flipping cubical meshes.

Eng Comput 18(3):173–187

22. Tautges TJ, Knoop SE (2003) Topology modification of hexa-

hedral meshes using atomic dual-based operations. In: Proceed-

ings of the 12th international meshing roundtable, September

2003, Sandia National Laboratories, pp 415–423

23. Tautges TJ, Knoop SE, Rickmeyer TJ (2008) Local topological

modifications of hexahedral meshes. Part I: A set of dual-based

operations. In: ESAIM Proceedings CEMRACS 2007, vol 24,

pp 14–33

24. Jurkova K, Ledoux F, Kuate R, Rickmeyer T, Tautges TJ, Zorgati

H (2007) Local topological modifications of hexahedral meshes.

Part II: Combinatorics and relation to boy surface. In: ESAIM

Proceedings CEMRACS 2007, vol 24, pp 34–45

25. Ledoux F, Shepherd JF (2009) Topological modifications of

hexahedral meshes via sheet operations: a theoretical study. Eng

Comput. doi:10.1007/s00366-009-0145-2

26. Mitchell SA (1996) A characterization of the quadrilateral

meshes of a surface which admit a compatible hexahedral mesh

of the enclosed volume. In: Proceedings of the 13th annual

symposium on theoretical aspects of computer science, pp 465–

476

27. Shepherd JF (2007) Topologic and geometric constraint-based

hexahedral mesh generation. Published Doctoral Dissertation.

University of Utah, Utah

28. Staten ML, Shepherd JF, Ledoux F, Shimada K (2009) Hexahe-

dral mesh matching: converting non-conforming hexahedral-to-

hexahedral interfaces into conforming interfaces. Int J Numer

Methods Eng. doi:10.1002/nme.2800

252 Engineering with Computers (2012) 28:241–253

123

Page 13: Fun sheet matching: towards automatic block decomposition for hexahedral meshes

29. Remacle J-F, Shephard MS (2003) An algorithm oriented mesh

database. Int J Numer Methods Eng 58(2)

30. Ledoux F, Shepherd JF (2009) Topological and geometrical

properties of hexahedral meshes. Eng Comput. doi:10.1007/

s00366-009-0144-3

31. Carey GF (2002) Hexing the tet. Commun Numer Methods Eng

18(3):223–227

32. Mitchell SA, Tautges TJ (1995) Pillowing doublets: refining a

mesh to ensure that faces share at most one edge. In: Proceedings

of the 4th international meshing roundtable, October 1995, San-

dia National Laboratories, pp 231–240

33. Benzley SE, Borden MJ, Shepherd JF (2002) Hexahedral sheet

extraction. In: Proceedings of the 11th international meshing

roundtable, pp 147–152

34. Shepherd JF, Johnson CR (2008) Hexahedral mesh generation

constraints. Eng Comput 24(3):195–213

35. Vyas V, Shimada K (2009) Tensor-guided hex-dominant mesh

generation with targeted all-hex regions. In: Clark BW (ed)

Proceedings of the 18th international meshing roundtable.

Springer, Berlin, pp 377–396

Engineering with Computers (2012) 28:241–253 253

123