fun sheet matching: towards automatic block decomposition for hexahedral meshes
TRANSCRIPT
![Page 1: Fun sheet matching: towards automatic block decomposition for hexahedral meshes](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022020603/57506ffb1a28ab0f07d2d955/html5/thumbnails/13.jpg)
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