Surface and Volume Discretization of Functionally Based
Heterogeneous Objects
Elena Kartasheva
Institute for Mathematical Modeling
Russian Academy of Science
Moscow, Russia
ekart@imamod.ru
Oleg Fryazinov
Institute for Mathematical Modeling
Russian Academy of Science
Moscow, Russia
fryazinov@imamod.ru
ABSTRACT
The presented approach to discretization of functionally defined
heterogeneous objects is oriented towards applications associated
with numerical simulation procedures, for example, finite element
analysis (FEA). Such applications impose specific constraints
upon the resulting surface and volume meshes in terms of their
topology and metric characteristics, exactness of the geometry
approximation, and conformity with initial attributes. The
function representation of the initial object is converted into the
resulting cellular representation described by a simplicial complex.
We consider in detail all phases of the discretization algorithm
from initial surface polygonization to final tetrahedral mesh
generation and its adaptation to special FEA needs. The initial
object attributes are used at all steps both for controlling geometry
and topology of the resulting object and for calculating new
attributes for the resulting cellular representation.
Categories and Subject Descriptors
I.3.5 [Computer Graphics]: Computational Geometry and Object
Modeling – Curve, surface, solid, and object modeling,
Physically based modeling; I.3.6 [Computer Graphics]:
Methodology and Techniques; I.3.8 [Computer Graphics]:
Applications.
General Terms
Algorithms, Design.
Keywords
Heterogeneous objects, attributes, function representation, cellular
representation, volume modeling, constructive hypervolume,
finite element analysis, mesh.
1. INTRODUCTION
In this paper, we deal with generation of discrete models for
heterogeneous objects defined using real-valued functions.
Generally, heterogeneous objects have an internal structure with
non-uniform distribution of material and other attributes of an
arbitrary nature (photometric, physical, statistical, etc.), and
elements of different dimension. Recently we can observe a steady
interest in functionally based geometric models such as implicit
surfaces, functionally defined solids and heterogeneous objects
(see [1-3] for details). These models provide compact and
intuitive mathematical representation for complex heterogeneous
objects, support set-theoretic and other operations such as
Valery Adzhiev
The National Centre for Computer
Animation, Bournemouth University
Poole, BH12 5BB UK
vadzhiev@bournemouth.ac.uk
Alexander Pasko
Hosei University
Tokyo, Japan
pasko@k.hosei.ac.jp
Vladimir Gasilov
Institute for Mathematical Modeling
Russian Academy of Science
Moscow, Russia
gasilov@imamod.ru
offsetting, blending, and sweeping. Rapid development of
hardware, computational algorithms, and specialized software
allow for manipulation of such models at interactive rates.
Practical applications of functionally based models in
CAD/CAM/CAE and finite element analysis (FEA) require some
key procedures to be also applicable to these models. Numerical
FEA methods use discrete models (surface and volume meshes) of
geometric objects, although meshfree analysis and simulation
methods are also emerging [4]. Algorithms for finite element
mesh generation are well developed for boundary and spatial
enumeration representations [5]. Meshes are also actively used
now in visualization, animation, computational geometry, image
processing, and other areas. However, requirements for discrete
models in FEA are stricter than in other areas. Such requirements
are formulated in terms of discrete model topology and metric
characteristics, exactness of the geometry approximation, and
conformity with initial attributes. This results from the use of
meshes in FEA for approximation of systems of equations of
mathematical physics. The size and shape of mesh elements and
mesh structure seriously influence the stability of numerical
simulation procedures and accuracy of obtained solutions. That is
why meshes used for visualization usually do not satisfy FEA
requirements and special refinement of them is needed. The above
is the motivation for work on discrete model generation for
functionally based surfaces, solids, and heterogeneous objects.
In this paper, we deal with the discretization problem within the
hybrid cellular-functional model [6] of heterogeneous objects.
The function representation of the initial 3D heterogeneous object
is converted into the resulting cellular representation described by
a simplicial complex. We consider in detail the following phases
of the discretization algorithm: initial surface polygonization;
iterative simplification and refinement of the surface mesh along
with sharp features reconstruction; further adaptation of the
surface mesh according to constraints depending on the attributes
of the initial object; volume (tetrahedral) mesh generation using a
modified advancing front method; its subsequent adaptation to
special FEA needs. The initial object attributes are used at all
steps both for controlling geometry and topology of the resulting
object and for calculating new attributes for the resulting cellular
representation.
2. PROBLEM STATEMENT
In this section, we provide a formulation of the discretization
problem in terms of initial and resulting objects along with a set
of special requirements. We consider the problem of discretization
of functionally based heterogeneous objects within a hybrid
cellular-functional representation framework [2,6] in which
objects are treated as hypervolumes (multidimensional point sets
with multiple attributes) [1].
2.1 Initial heterogeneous object
Let D be an initial heterogeneous object – a hypervolume
expressed by a tuple:
D � ( G,
A1,...,
Ak
) ,
where G is a 3D point set, A i is an attribute and k is a number of
attributes. We assume that the object’s geometry G is described by
the function representation (FRep) [7]:
G F = {X | � = (x 1, x 2, x 3) � Ω � E 3 , F(X) � 0 },
where Ω is a modeling space and F: Ω -> � is (at least a C 0
continuous) real-valued defining function. Note that the boundary
of the object D is an implicit surface described as
B F = {X | � = (x 1, x 2, x 3) � Ω �E 3 , F(X) = 0 }.
i
Each attribute Ai is defined by its set of values N along
� �
with a map function S i(X): Ω->N i and can be represented by any
of the attribute models introduced in [2] that differ from each
other in the way of defining S i(X). For instance, the function
representation (FRep) can be used for defining attributes
representing electric or thermal field distribution as well as load
distribution. Cellular-functional representation (CFRep) is
especially suitable for description of material attributes. Cellular
models of attributes (CRep) are used in finite element calculations
for representation of functions describing simulated processes.
What is important in the context of our consideration of the
discretization problem is that attributes can provide a formal
description of requirements and constraints imposed by FEA.
Thus, constraints on the size of elements can be expressed through
the mesh density attribute A r whose map function S r(X) defines a
proper element size at each point X of the modeling space Ω.
Such an attribute can be given by the user or can be calculated on
the basis of other given attributes A i. There is a promising way of
defining A r through FRep on the basis of “sources” [8,2]. As to
defining A r through CRep, it is appropriate when the size
distribution function is defined in a discrete manner and its values
are known at the vertices of a background geometric complex.
Such a complex can describe either a regular mesh specially built
for defining the attribute A r or an FE mesh used in the previous
steps of adaptive numerical calculations.
2.2 Resulting heterogeneous object
Given the initial object D, we are going to build a resulting
~ ~ ~ ~
heterogeneous object – a hypervolume D ( , 1,..., m)
. Here,
the geometry component G is an approximate discrete
representation of the initial geometry G, and attributes (
A
A G �
~
~ ~
A1,...,
Am
)
i
m
~
describe the object’s properties. Formally, G can be expressed as a
particular case of a model based on the cellular representation
(CRep) [2,6]:
G c
~ ={ X | X� Ω � E 3 , X� |K 3 |},
3
r
where K � { Ci
; r � 0,
1,
2,
3;
i � 1,...,
Ir}
is a three-dimensional
r
polyhedral complex consisting of cells Ci
. In conventional terms,
such a discrete model is called a mesh. As we have already stated,
the resulting mesh G c depends not only on the initial geometry G
but also on the attributes A1,…Ak (in particular, on the mesh
density attribute Ar): G Ak
) .
~
~ ~
c � Gc(
GF
, A1,...,
Note that the attibutes A A m can differ from the initial ones
A1,…,Ak in terms of their number, set of values, and description.
Some of the initial attributes may not have direct counterparts in
the discrete model (e.g., there may be no need to retain the mesh
density attribute). Other attributes associated with the
hypervolume
m
~
~
1,...,
D ~ can have the same meanings and similar values
as their initial counterparts but may be described by another
representational scheme. For instance, the material property being
described by FRep in D can be represented by CFRep in D ~
allowing each cell to have its own material index. Completely new
attributes can also appear in D ~ . Thus, such an attribute can
describe normals to the initial implicit surface at the nodes of a
mesh or can represent values of 3D cell volumes evaluated in
advance and useful for speeding up FE-based calculations. So, in
general we have the resulting attributes defined as:
~ ~ ~
� A ( G,
G,
A ,..., A ),
j � 1,...
.
Aj j
1
k
2.3 Problem formulation
Now we can formulate the discretization problem as the problem
of conversion of the initial functionally based heterogeneous
object D into the object D ~ with discrete (mesh-based) geometry:
~ ~ ~ ~
D � ( GF
, A1,...
Ak
) -> D � ( Gc,
A1,...,
Am
) ,
where G F is an FRep based model, and is a CRep based model.
G c
~
The boundary of the object D is an implicit surface B F.
As to the
boundary B of
~
D ~
~
, within the entire discrete model G it can be
c
described through a polyhedral complex, which is a boundary
subcomplex L 2 of the complex K 3 , such that L 2 �K 3 and
2
r j
L � { C ;r � 0,
1,
2;
i � 1,...,
J } .
Then ={ X | X� Ω �E 3 , X� |L 2 B c
|}.
~
r
2.4 Special requirements
Our approach is oriented towards some demanding applications
such as FEA. So, we take into account the following requirements
and constraints upon the resulting discrete structures (surface and
volume meshes):
~
1. The topology of the surface mesh B has to conform to the
topology of the boundary of the initial solid G.
c
2. The surface mesh B ~ has to include all the sharp features of
the surface B; this means that there should be conformity
between initial object ridges and peaks, and edges and nodes
described by the complex L 2 .
3. The boundary mesh B ~ must provide an adequate
approximation of the underlying implicit surface B. To this
end, it is necessary to bound the distance between the mesh
and the initial surface and to limit the deviation of normal
vectors to the mesh from those to the implicit surface.
4. There can be specific constraints upon the shape of cells
included in the complexes K 3 and L 2 , which can be given, for
instance, as Q(C i) < �, where Q yields a shape quality
measure based on the metric characteristics of tetrahedrons
or triangles.
5. Some constraints concerned with proportions of adjacent cell
sizes in the complexes K 3 and L 2 can also be imposed. They
can be defined as M(C i)/M(C j) < �, where M is a certain
measure of a tetrahedron (triangle) such as the length of its
maximal side, or its volume (square), or circumscribed
sphere (circle) radius. This constraint (along with the
previous one) is useful for ensuring a reliable
tetrahedrization and convergence of numerical simulation
procedures.
6. Initial object attributes reflecting some features of FE
modeling can also result in specific constraints upon surface
and volume meshes. Let us describe the following cases:
a) Given the mesh density attribute A r along with the
corresponding map function S r (X), one can set the
following constraint for each element C i of K 3 and L 2 :
M(S r(X),C i) < �, where M is a certain metric;
b) Given the attribute A v along with its map function S v(X),
one can set the following constraint concerned with the
limitation of this function’s variations within each C i of
max
S ( X
S ( X
K 3 and L 2 : v k � v j � �
X k , X j�C
i
)
)
.In practice,
one usually compares values of S v(X) at some reference
points (e.g., in triangle nodes) of C i. The function S v(X)
can describe some estimated characteristics of the
process being modeled or just error estimations.
Attributes representing material or medium properties
can also impose constraints of this kind.
c) Let Ss(X) be a piecewise continuous map function
defined for an attribute As. Then, while decomposing
the object G, one should take into account that function
features, namely its singular points, have to coincide
with mesh nodes, and lines/surfaces of discontinuity
have to be exactly described by 1D/2D subcomplexes of
the complex K 3 representing the discrete model G . For
~
example, such requirements are necessary when a
computational domain is decomposed into sub-areas
corresponding to different materials or different
properties of medium. Singular points and lines can also
conform to disposition of sources or to load application
areas.
c
7. If no special constraints are formulated, the number of
elements (cells) in complexes K 3 and L 2 should be minimal.
For example, an ideal surface mesh of a cube consists of
twelve triangles: two triangles per each face.
3. RELATED WORKS
In this section, we give a brief review of works in the areas that
are relevant in the context of our consideration of the
discretization problem: heterogeneous object modeling, implicit
surface polygonization, and finite element mesh generation and
refinement.
3.1 Heterogeneous objects modeling
Particular attention in solid modeling is paid to modeling
heterogeneous objects with multiple materials and non-uniform
internal material distribution. Boundary representation,
functionally based, voxel and cellular models are used to
represent such objects.
A non-manifold BRep scheme is used in [9] to subdivide an
object into components made of unique materials. In the object
model proposed in [10], a fiber bundle is used for general
description of all characteristics and attributes of an object.
Constructive operations for modeling functionally graded
materials associated with a BRep geometric model are discussed
in [11].
Voxel arrays in volume modeling and graphics can be considered
as discrete attribute models with the default geometry represented
by a bounding box. Constructive Volume Geometry (CVG) [12]
utilizes voxel arrays and continuous scalar fields for representing
both geometry and photometric attributes (opacity, color, etc.).
Issues of functionally based modeling of volumetric distribution
of attributes are also addressed in [13-15].
Modeling heterogeneous objects as multidimensional point sets
with multiple attributes is discussed in [1]. The proposed
constructive hypervolume model is based on function
representation (FRep) [7] and supports uniform constructive
modeling of point set geometry and attributes using vectors of
real-valued functions of several variables. Multiple materials are
also represented in [3] by vectors of real-valued functions.
Distance fields are used to model varying material properties
satisfying different types of constraints predefined on the initial
object geometry.
The approach of [1] was extended in [2] to dimensionally
heterogeneous objects with multiple attributes by combining the
functionally based and cellular representations into a single hybrid
model. In this paper, we describe one of the important operations
in the hybrid model, namely the conversion between functionally
based and cellular heterogeneous objects.
3.2 Polygonization
Existing methods of the polygonal approximation
(polygonization) of implicit surfaces include two major groups.
The first group, consisting of continuation algorithms, is
characterized by introducing a seed local triangulation of the
implicit surface with the consecutive addition of new triangles to
the mesh by moving along the surface [16-18] with the triangle
size adapted to the local surface curvature [19].
The second group includes methods for generating polygons as
the result of the intersection of the implicit surface with cells of a
regular grid (see, for example, [20-22]) or an adaptive grid [23].
The algorithms of this group differ in the type of grid and surface
sample points approximation.
The main disadvantages of the mentioned approaches are
smoothing or cutting sharp features of the surfaces. Algorithms of
sharp features extraction are presented in [24-26]. The
optimization [26] is based on the special vertex relocation strategy
and triangles subdivision and allows for extraction of sharp edges
and peaks taking into account the surface curvature. However, in
the process of optimization, the shapes and relative sizes of
neighboring triangles are not controlled, which can result in
generation of degenerate triangles. Moreover, these mesh
optimization algorithms can produce an excessive number of
triangles in the regions of not very high curvature, which is also
undesirable for further calculations. Thus, to satisfy the discussed
earlier requirements of FEA, a special mesh refinement while still
preserving sharp features is needed.
3.3 Finite element mesh generation and
refinement
Issues of surface mesh optimization for FEA are considered in
detail in [5,27]. The described techniques are based on the
consecutive application of different mesh simplification, mesh
subdivision, and mesh adaptation procedures. Details of such
operations are discussed also in [28-30] and other works. Note
that in these works the surface models are not defined in terms of
analytical functions but rather by means of triangulation (resulted,
for example, from measurements, CAD, biomedical engineering).
During the mesh refinement, the exact definition of underlying
surfaces is unknown. When optimizing polygonized implicit
surfaces, we can use both approximate and precise functional
surface models, which provide for more precise calculations of
surface characteristics and corrections of the node positions in
respect to the underlying surface for remeshing.
Issues of finite element mesh generation are discussed in detail in
[5]. Unstructured mesh generation methods are also surveyed in
[31, 32]. Tetrahedrization is one of the widely used methods of
3D discretization. The main approaches to automatic tetrahedral
(triangular) mesh generation include spatial decomposition based
methods, Delaunay type methods, and advancing-front techniques.
Algorithms based on spatial decomposition are relatively easy to
implement, but they do not allow for detection of boundary sharp
features and cannot distinguish boundary entities which are rather
close but not directly connected. The boundary connectivity
constraint is not taken into account in Delaunay tetrahedrization.
So, local mesh modifications are necessary to fit the boundary.
More accurate boundary representation is supported by the
advancing-front method. This method starts from a domain
boundary discretization and marches into the region to be
processed by adding one element at a time. However, since the
method is based on local operations, convergence problems may
be encountered. The convergence problem is common for all
methods as there is no theoretical result which can guarantee that
a polyhedron with the given boundary triangulation can be
subdivided into tetrahedrons without adding internal points. In
spatial decomposition methods, the convergence problems appear
when refining small details and sharp features. For the Delaunay
type methods, the convergence of the boundary fitting procedures
has not been proven. We will use the advancing-front technique
as it is applicable to arbitrary solids and allows us to control
shapes and sizes of tetrahedrons during the mesh generation
process. In addition, we consider a modification of this technique
for increasing the effectiveness of the tetrahedrization procedure
for FRep solids. 3D mesh optimization procedures are described
in [33-37].
4. GENERAL ALGORITHM OF
DISCRETIZATION
In this section we provide a systematic description of our
discretization algorithm.
4.1 General description
In principle, there are two main strategies to discretize a
heterogeneous object with generation of a volume mesh. The first
strategy involves decomposing an initial 3D object into 3D
elements (tetrahedrons, blocks, prisms, some combined volume
mesh) that are optimized under requirements and constraints
described in 2.4. Here, the boundary mesh B ~ appears as a side
effect of the 3D initial object decomposition. Another approach
implies that first we decompose the surface B of the initial object
thus yielding the surface mesh B ~ . Then, this surface mesh is
subjected to optimization and refinement to make sure that it
satisfies all the requirements, and a volume mesh conformable to
the refined surface mesh can subsequently be built.
In our work, we follow the second approach, because most of the
constraints and requirements deal with the boundary mesh B ~
whose quality is crucial in the context of FEA. As some of the
constraints contradict each other, it is important to ensure that all
the accessible iterative optimization procedures are performed to
provide the best possible result. In addition, it is known that some
effective methods of volume mesh generation are actually based
on boundary descriptions of computational domains [5].
So, we decompose the discretization problem into two relatively
independent sub-tasks:
�� generation of a mesh of the object surface along with its
~ ~
refinement: B � B ( B , A ,... A ) ;
c
c
F
1 k
�� generation of a conformable volume mesh:
~ ~ ~
G � G ( B , G , A ,..., A ) . We use tetrahedral meshes as
c
c
c
F
1 k
the most universal: they are successfully used both in
visualization and in FEA, and they often serve as a base for
building meshes consisting of more complex patterns.
4.2 Surface discretization
Here, we describe how the first task of generating the quality
boundary mesh approximating the initial object surface can be
solved in step-by-step manner.
4.2.1 Polygonal approximation of the object
surface
2 2
0 0 F
We form a simplicial complex L �
L ( B ) representing (in
accordance with 2.3) an approximate CRep based surface model
~
Bc0
2
L1 �
. Requirement 1 from 2.4 should be satisfied, and the
subsequent steps on the surface mesh reconstruction are such that
they preserve the surface topology. We use a polygonization
algorithm described in [20], which solves a problem of
topological ambiguities on the faces with four edge-surface
intersection points peculiar to the second group of polygonization
methods described in 3.2. We assume that the user can control the
preservation of topology equivalence between the initial implicit
~
surface BF and the resulting polygonal (triangular) surface Bc0
by
providing proper initial data necessary for polygonization, namely
the surface bounding box and the grid resolution.
4.2.2 Sharp features reconstruction
~
This step deals with optimization of the surface mesh B c0
thus
~
yielding a new CRep based model Bc1
, described by the complex
( 2 2
1 0 F
L
, ) . In this model, sharp edges and corners present
B L
in the initial surface B F are described by the conformable 0D and
2
1D elements in the complex L1
. Accordingly, the requirements 1
~
and 2 from 2.4 are satisfied for the cellular model Bc1
. To extract
sharp features from an implicit surface coarse triangulation, we
use the algorithm described in [26]. This algorithm is based on
combining the application of the following mesh optimization
procedures:
�� curvature-weighted vertices resampling;
�� dual/primal mesh optimization that involves projecting the
triangle centroids onto the implicit surface and moving each
vertex of the initial surface triangulation to a new position
minimizing the sum of the squared distances from the vertex to
the planes which are tangent to the implicit surface at the
projections of adjacent triangles centroids.
�� one-to-four subdivision of mesh triangles where the mesh
normals have large deviations from implicit surface normals.
Our experience with application of this optimization algorithm
~
shows that in most cases it does produce surface mesh B
allowing for a quality representation of sharp features of the initial
implicit surface. However, the resulting mesh can have badly
shaped or degenerate triangles near sharp edges and corners and
may consist of an excessive number of triangles produced by the
adaptive subdivision procedure in the regions of low curvature.
Consequently, we propose further refinement described in the
following subsections.
4.2.3 Surface mesh refinement and simplification
The objective of this phase is to get rid of badly shaped triangles,
to make the mesh finer in the regions of high surface curvature,
and, on the contrary, to make the mesh coarser in the areas where
the curvature is low. The requirement for preserving sharp
features should be satisfied. As an ideal result, the surfaces of the
tetrahedron and cube should be represented by just four and
twelve triangles respectively.
c1
~
Thus we aim at building CRep based model B c2
described by a
( 2 2 2
2 2 1 F
complex L � L L , B ) , which is obtained as the result of
optimization of the complex L . The optimization procedure
consists in iterative application of edge swapping, edge splitting,
edge collapsing and vertex relocation operations. Edge splitting
allows for enriching the mesh, edge collapsing provides mesh
simplification, and edge swapping and vertex relocation
operations are used for mesh refinement. We describe in section 5
the main characteristics of these operations as well as the criteria
~
for their application. In the end, the model Bc2
described by the
2 2
2
1
complex L must ensure a quality polygonal approximation of
the implicit surface B F under the requirements 1 – 4 from the
subsection 2.4.
4.2.4 Surface mesh adaptation
At this step, we aim at adapting the mesh to the needs of FEA in
the context of some particular application, thus producing Crep
~
based surface model Bc4
. This means that the requirements 4 – 6
from section 2.4 should be satisfied. First, singular lines and
points of attribute functions should be taken into account. We
~
project those lines and points onto the discretized surface B c2
obtained at the previous step, and then make a partition of
2 2
elements of the complex L , thus yielding a new complex
2 2 2
3 3 2 F A
L � L ( L , B , 1,...,
Ak
) in which the singular lines and points
are described by some 1D and 0D subcomplexes. After this
procedure, it is useful to execute the previous step once again to
preserve not only geometric sharp features but also the singular
lines and points of the attribute functions. Then, we make the
adaptive mesh subdivision and refinement to satisfy the
constraints 4 – 6 through using once again edge splitting, edge
swapping, and vertex relocation operations as well as the triangle
subdivision procedure. Note that the criteria for application of
those procedures do depend on both the attribute functions Si(X) and the function F(X) describing geometry (more details are given
in Section 5). Finally, we get the complex
2 2 2 ~
L4 � L4(
L3,
BF
, A1,...,
Ak
) describing the surface model B c4
that
hopefully meets all the constraints and requirements important for
FE meshes.
4.3 3D object discretization
The second task of building a quality volume mesh based on the
surface mesh generated in the previous stage is described in this
section.
4.3.1 Tetrahedral mesh generation
~ ~
Given the CRep based model of the surface mesh B � B ,
described by the complex 2 2
L
we can now build a CRep based
c � L4
~ ~
model of the 3D object G �
G ( B , G , A ,..., A ) . To
~
c 0
c0
c4
F
produce such a volume mesh, we use the advancing front method
briefly characterized in 3.3. More details about our modification
~
of that algorithm are given in subsection 5.2. The model G c0
is
1
c
k
c4
described by a 3D complex K 3 0, which is built on the basis of the
boundary complex LC and on the initial object attributes. So, we
have 3 3 2
K . While generating such a volume
0 � K0
( Lc
, A1,...,
Ak
)
mesh, the constraints 4 - 6 from 2.4 are taken into account.
However, because of the convergence problems discussed in 3.3,
not all of those restrictions can immediately be satisfied. So,
additional post-remeshing may be needed to get a quality
tetrahedral mesh.
4.3.2 Volume mesh adaptation
The objective of this phase is to re-build the volume mesh
described by the complex K 3 0 that allows for improving the
tetrahedra shapes under all the requirements for the mesh related
to attributes. To succeed in solving this problem, we use face
swapping, tetrahedra subdivision and vertex relocation operations
[34-37]. Some features of the implementation of these operations
are considered in 5.2 Note that once again we pay attention to
preserving sharp features, and singular points and lines of the
boundary surface. As a result, we get a new complex
3
3 2
~
K1 � K1
( Lc
, A1,...,
Ak
) defining a CRep based model G c1
that
should satisfy all the requirements critical for FE meshes.
4.3.3 Attribute transformations
The final step in discretization of heterogeneous objects is
concerned with converting initial attributes for getting new ones:
3 2
Aj � Aj ( K1
, Lc
, A1,...,
Ak
), j � 1,
2,...,
m . As we discussed in 2.4,
some attributes present in the initial model can disappear, others
may be described by another representation scheme, and new
attributes can appear. The attribute conversion procedures can
heavily depend on application specifics. Eventually, we get the
~ ~ ~ ~ ~
sought-for discrete model D � ( Gc � Gc1,
A1,...,
Am
) of the initial
heterogeneous object D � ( GF
, A1,...
Ak
) with CRep based
geometry, and CRep and CFRep based attributes.
5. DETAILS OF KEY PROCEDURES
In this section we present some operations and procedures in more
significant detail.
5.1 Surface mesh optimization
Here we consider in detail the basic mesh refinement operations
introduced in 4.2.3. These operations are iteratively applied to the
current mesh in order to provide an accurate piecewise linear
approximation of the underlying implicit surface and to adapt the
element sizes to FEA requirements given in 2.4. In particular, it is
necessary to preserve sharp edges and corners of the surface. For
this purpose, we introduce so-called sharp function Sh for the
mesh edges and vertices. Using the planarity estimations [5] for
each edge e, we set:
1� ( n ( t1)
� n(
t2)
2
T
1� N ( t1)
� N ( t2)
Sh(e)=1, if � � and � �
2
T
Sh(e)=0, otherwise.
Here n( t1),
n(
t2)
are unit normals of the adjacent triangles t1, t2
correspondingly; N ( t1),
N ( t2)
are the implicit surface normals at
the central points of t1, t2; � is a threshold that measures the
sharpness of a feature.
The implicit surface normals are calculated as the normalized
gradients of the function F(X) describing the implicit surface.
Note that a nonzero value of Sh(e) indicates that the edge e
probably lies on a sharp feature of the surface. For the vertices,
the sharp function is defined as follows:
�
Sh ( P)
� Sh(
e ) ,
i
i
where e i is an edge incident to the vertex P. If Sh(P) =2 is true,
then vertex P lies on a sharp edge, but the case Sh(P)>2
corresponds to a corner point.
To single out those spikes that do not lie on sharp edges, we use
the heuristic estimation proposed in [24].
T
mi n(
m , n(
ti))
i
� �
T
and mi n(
M , N ( ti))
� � .
i
Here n(ti) are unit normals of triangles ti adjacent to point P,
N (ti)
are the implicit surface normals at the central points of ti,
m � n � n ] is the normal vector to the plane spanned by two
[ t0
t1
normals t0, nt1
n which enclose the largest angle, and similarly
M � [ N ( t0) � N ( t1)]
, � is a threshold.
For the vertices which are found in such a way, we set Sh(P)=3.
Let us consider all the basic mesh refinement operations in more
detail.
5.1.1 Mesh vertices relocation
This operation consists of applying two procedures: mesh
smoothing and vertex moving.
Mesh smoothing improves regularity of elements’ size. If V i is a
non-sharp vertex (i.e., Sh(Vi)=0), then its relocation is described
as:
( Vi ) new � ( Vi
) old � �Ui
/ || Ui
|| .
Here � is a small positive number (� < l min, where l min is the
smallest length of all edges incident to the point) that limits
displacement of vertices, and taking it into account prevents the
appearance of such mesh defects as folds and self-intersection.
The moving direction U i is defined by the formula [25]:
i
i
T
i
U � R � ( R � N ) � N ,
i
i
where i N is the surface normal at the point ( V i ) old ,
1
1
R i � � w j Pj
� ( Vi
) old , wi
� ,
� w
|| P ( ) ||
j
j
j
j � Vi
old
Pj is a vertex having a common edge with i
V .
If the vertex V i is a corner or belongs to more than two sharp
edges, then its position does not change. However, if the vertex
V i has exactly two incident sharp edges, for example,
1� N ( e1)
� N ( e2)
e1 � ( Vi
, P1
) , e2 � ( Vi
, P2
) and � �
2
T
, where
N ( e1),
N ( e2)
are the surface normals at the centers of edges e1,
e2, � is a threshold, then a new point ( V i ) new is placed at the
center of the arc connecting vertices 1 2 , , P P V i
.
One may notice that during the mesh smoothing process some
vertices can be detached from the initial surface; therefore, their
positions have to be corrected. The vertex moving procedure
moves vertices towards the underlying implicit surface. It is
organized as an optimal search process in accordance with the
formula:
( V ) � ( V ) � r Z / || Z || ,
i new
i old
*
i
*
2
where r � arg min F (( Vi
) old � rZi
/ || Zi
||)
r�[
0,
�]
with Zi � �2F
(( Vi
) old ) �F((
Vi
) old ) .
i
5.1.2 Edge swapping
This operation is used to improve the mesh elements’ shape
quality. Let us consider an illustrative example in Fig. 1. We
eliminate the diagonal (P 1,P 2) and instead insert the diagonal
(P 3,P 4) if max(�1, �2) < max(�1, �2).
Figure 1: Edge swapping
This operation is applied only if adjacent triangles sharing the
edge e are almost coplanar, so that
T
( 1�
n ( t1)
� n(
t2)
� �
2
n
T
1�
N ( t1)
� N ( t2)
and � � N ,
2
where the constants σ N and σ n are user-specified thresholds.
5.1.3 Edge splitting
This operation is performed for a number of reasons: to improve
geometry approximation, to fit attribute functions or to subdivide
badly shaped triangles. To describe criteria for choosing those
edges which are suitable for splitting, we introduce the following
denotations. Let W(X) be a scalar characteristic function,
and D (X ) be a vector one. Then, in the context of the
optimization procedure of geometry approximation, these
functions depend on the function F(X) describing geometry of the
initial object and on the gradient of F(X):
2
W ( X ) � F ( X )
D( X ) � �F(
X ) / || �F(
X ) || .
In the process of the finite element mesh adaptation, these
characteristic functions are defined with respect to the scalar and
vector attribute functions:
W ( X ) � W ( S1(
X ),..., Sk
( X ))
D( X ) � D(
S1(
X ),..., Sk
( X )) .
In order to control the quality of triangles, we use the finite
element shape quality measure [5]:
l
q(
T)
� � max ,
r
T
where r k denotes the inradius of the triangle T, l max is the largest
edge length, and � is a normalization coefficient so that q(T)=1
for an equilateral triangle.
Figure 2: Edge splitting
Our edge splitting operation is illustrated by Fig. 2. The process
of mesh subdivision is iterative, and edges are processed in the
order of decreasing their lengths. The following estimations are
useful to measure:
- quality of elements:
� 1 � length( e)
/ Sr
( C)
�
2
� max( q(
T ), q(
T2
))
1
- variations of the scalar characteristic functions:
�
1
�
W ( C)
�W
( P ) |, | W ( C)
�W
( P ) |)
max(| 1
2
� 2 � max(| W ( C1)
�W
( P1
) |, | W ( C1)
�W
( P2
) |, | W ( C1)
�W
( P3
) |)
� 3 � max(| W ( C2)
�W
( P1
) |, | W ( C2)
�W
( P2
) |, | W ( C2)
�W
( P4
) |)
- variations of the vector characteristic functions:
�
T
1 �1
� min ( D
j
i,
j�{
1,
2,
3,
4}
( Pi),
D(
P ))
T
T
N ( P1
) � P1P
2 � N ( P2
) � P
2
1P
� �
2
2
|| P1
, P2
||
T
T
3 1
2
� � max(( 1�
| N ( C ) � n(
T1)
|), ( 1�
| N ( C2)
� n(
T ) |)) ,
where C is a center of an edge, and C 1,C 2 are centroids of
adjancent triangles, S r is a mesh density attribute function,
N denotes surface normals and n are normals of triangles.
The edge e is subdivided if one of the listed estimations or several
of them exceed the user-specified thresholds. The split vertex V is
placed at the position
S ( P1
)
V � P1
�
r
P1P
2 ,
S ( P ) � S ( P )
r
1
r
2
where S r(X) is a mesh density attribute function. Then, V is moved
towards the implicit surface according to the procedure described
in 5.1.1.
Different characteristic functions and estimations can be used at
the different phases of mesh optimization and adaptation process.
After a few iterations, it is recommended to execute edge
swapping and mesh smoothing operations which can improve the
mesh quality.
For quick mesh subdivision in the cases where an average mesh
element size is rather greater than the desired finite element size,
we use one-to-four and one-to-three triangle subdivision coupled
with mesh smoothing and edge swapping.
5.1.4 Edge collapsing
This operation is used to simplify the surface mesh in low
curvature regions. We choose an edge e and replace it with a
vertex V (see Fig. 3a). In this process, two vertices P1, P2 are
substituted with a new vertex V, and the triangles T1, T2 are
collapsed to edges.
a b
Figure 3: Edge collapsing
We check for collapse candidacy edges in the order of increasing
length. The process is as follows. First, we check the topological
validity of the edge collapsing operation for each edge. Edge e is a
candidate for substitution with a new vertex if the following
condition is satisfied:
Star(P1) � Star(P2) = {P3, P4},
where Star(Pi) is the set of the mesh vertices sharing a common
edge with the vertex Pi. This restriction allows for avoiding mesh
degradation in such cases as shown in Fig.3b.
Secondly, if length(e) ≤ σ min , then the edge e is collapsed without
need for any additional analysis, and the midpoint of e is chosen
as the position of a new vertex V. Otherwise, we continue
checking e for a candidacy edge. For this purpose, we calculate
so-called weight coefficients w(P 1), w(P 2) for the edge vertices.
We set w(P i)=1, if Sh(P i)=0.
The values Sh(P i)=1 or Sh(P i) > 2 indicate that the vertex P i is a
spike or a corner, so we set w(P i)=0 in this case. From (Sh(P i)=2
& Sh(e)=0) it follows that there exist other sharp edges incident to
P i , so we set w(P i)=0. But if e is one of the two sharp edges
incident to P i (i.e. Sh(pi)=2 & Sh(e)=1), then we should calculate
the angle α between these edges. If cos(α)<0 and (1- |cos(α)|)≤ σ α,
then we set w(P i)=0.5, otherwise w(P i)=0.
Let us formulate the conditions under which one can consider
execution of the edge collapsing operation. The possibility of
edge collapsing and the position of a new vertex V depends on the
edge vertices weights as follows:
if w(p1)=w(p2)=0, then the edge e cannot be collapsed;
if w(p1)=w(p2)>0, then the edge e can be substituted with the
vertex V placed at the midpoint of e;
if w(p1) > w(p2) ≥ 0, then the edge e can be substituted with the
vertex V = P 2;
if w(p2) > w(p1) ≥ 0, then the edge e can be substituted with the
vertex V =P 1.
Then we move the new vertex V onto the implicit surface using
the procedure described in 5.1.1. Finally, we evaluate the quality
degradation during the intended collapse operation using the
following measures:
�
T
1 max i
i
Ti inc(
V )
� �
(( 1�
| N ( C ) � n(
T ) |))
T
2(
N ( V ) �VPj
)
� 2 � max
P
2
j�Star
( V ) || VPj
||
Here, N denotes normals of the initial surface, n is for normals
of triangles, C i is a centroid of the triangle T i, and T i=inc(V) is for
triangles incident to V.
If � 1≤ σ t and � 2≤ σ n, then the corresponding edge e is collapsed
and substituted with the vertex V. Constants σ min, σ α , σ t, and σ n are
user-specified thresholds. It is recommended to couple the edge
collapsing operation with mesh smoothing and edge swapping.
5.2 Volume mesh generation and optimization
5.2.1 The modification of the advancing front
method
First, let us characterize some critical steps of the advancing front
algorithm (briefly outlined in 3.3) as applied to tetrahedrization. A
surface mesh described by a 2D complex forms the initial front.
Then, at each step of the algorithm an active face is selected to
serve as a base for building a new tetrahedron whose size is
calculated taking into account the given mesh density attribute.
Provided the new tetrahedron does not cross the front, it is added
to the front thus forming a new one. To avoid emergence of thin
elements, a new tetrahedron vertex is placed in the closest node of
the mesh satisfying the given distance threshold. There are
differing strategies [5] for selection of both the next active face
and new tetrahedron node that prevent the procedure from
generating an infinite series of tetrahedrons yet yield a volume
mesh of reasonable quality (e.g., without thin elements, etc.).
We propose a modification of the advancing front method that
takes advantage of the fact that we deal with the problem within
the cellular-functional framework. In particular, availability of an
exact functional description of the object to be subdivided can
greatly simplify the procedure of the evaluating point membership
relation which is important in the context of determining whether
a tetrahedron crosses the front.
Now, let us outline the modified algorithm. We start from the
CRep based model of the surface mesh ~
B represented by the
c
simplicial complex L 2 c and the function S r(X) describing the mesh
density attribute A r. First, some sample tetrahedral mesh covering
the object is generated. This mesh is described by a simplicial
complex M 3 0. Then, elements of M 3 0 are subdivided to conform to
the mesh density attribute A r. For this purpose, 3D mesh
optimization operations (see 5.2.2) are applied. So, the modified
mesh is represented by the simplicial complex M 3 1 = M 3 1 (M 3 0, A r).
At the next step, we single out the subcomplex M 3 2 lying
completely inside the subdivided object G F. So M 3 2 � M 3 1, |M 3 2| �
G. To ensure the convergence of the algorithm, the distance
between the boundary surface of the object and the mesh
described by the complex M 3 2 must be a few times greater than the
tetrahedron size described by the function S r(X). Note that
algebraic distances between underlying mesh nodes and the object
surface are estimated using the object’s defining function.
Therefore, M 3 2 includes only those elements of M 3 1 whose nodes
V i satisfy the following condition:
F(V i) – k*S r(V i) � 0, where k� 2
a b c
Figure 4: Modified advancing front method: a) the initial
rectangular object with the pattern mesh subdivided according to
a mesh density attribute b) the sub-mesh lying completely inside
the subdivided object c) the final mesh
Then we define a two-dimensional complex Q 2 2 that represents
the boundary of M 3 2. Taking into consideration that the surface
normals point inside, one need to change the orientation of Q 2 2
elements. Then, this complex together with the complex L 2 c
describing the discretization of the boundary surface form the
front Q 2 3= L 2 c �Q 2 2. Using this front, we subdivide the remaining
sub-area, with help of the advancing front tetrahedrization method
and thus get the 3D complex M 3 3= M 3 3(Q 2 3,Sr(X)). The overall
complex K 3 0 defining a CRep based model G is calculated as
K 3 0= M 3 2 � M 3 3. Then, we apply a few iterations of 3D mesh
optimization to the complex K 3 ~
c1
0 to ensure that we get a volume
mesh of good quality and regularity, and that all the FE related
constraints are satisfied. As a result we get a new complex
3
3 3
K � K K , A ,..., A ) .
1 1 ( 0 1
k
Fig. 4 shows a 2D illustration of the described algorithm. The
initial rectangular object with the pattern mesh subdivided
according to a mesh density attribute Sr(X) is shown in Fig 4a.
Fig. 4b illustrates the sub-mesh lying completely inside the
subdivided object. The area between the initial boundary and that
sub-mesh is subdivided using the advancing front method. The
final mesh is shown in Fig 4c.
Our modified frontal method is more effective in cases when a
considerable part of the object can be covered by pattern mesh
elements that remain unchangeable. In these cases we reduce the
number of elements generated by the frontal tetrahedrization and
keep well shaped elements of the pattern mesh. Moreover our
modified algorithm allows for combination of meshes of different
types, for example, the initial mesh covering the object can consist
of hexahedral elements.
5.2.2 Volume mesh optimization operations
The 3D mesh optimization algorithm consists of an iterative
application of face swapping, tetrahedral splitting and vertex
repositioning techniques.
�� The face swapping operation is the 3D extension of the edge
swapping technique described in 5.1.2. Two neighboring
tetrahedra having a common face are transformed with the
exchange of the common diagonal.
�� The tetrahedra splitting operation includes one-to-two
subdivision by bisecting the longest edge. The selection of a
tetrahedron to be split is made on the basis of criteria similar
to those described in 5.1.2 for the edge splitting operation for
a surface mesh.
�� The vertex relocation technique in 3D consists in the
movement of a node towards the barycenter of the
polyhedron formed by the surrounding tetrahedral mesh.
Since the surrounding polyhedron can be non-convex, the
positioning of the node directly at the barycenter can result in
overlapping tetrahedra. This is the reason for using an
adaptive procedure with a variable step of the movement to
the barycenter.
More general three dimensional versions of swap and split
operators remesh a polyhedron formed by neighbouring tetrahedra
sharing a common edge or a common vertex [5].
6. EXAMPLES
In this section we present several examples illustrating our
algorithm for discretization of functionally based heterogeneous
objects. The examples were prepared using our original software
tools initially intended for data preprocessing in computational
physics and allowing for the users’ interactive work in a step-bystep
manner. We used HyperFun modeling language [1] to define
all the models, and specialized software tools with the built-in
HyperFun interpreter have been used to implement the examples
on a Pentium III 800 MHz computer.
6.1 Tetrahedrization of FRep solids
Here we illustrate the main steps of the algorithm using the
example of an FRep object with sharp features shown in Figure 5.
The initial surface mesh produced by polygonization is shown in
Fig 5a. The surface mesh generated in the process of sharp
features reconstruction is shown in Fig. 5b. For the purpose of
FEA, this mesh has badly shaped and degenerate triangles near
sharp edges and corners, and includes an excessive number of
triangles produced by the adaptive subdivision procedure in the
regions of low curvature. Subsequent mesh optimization and
simplification produces the minimal surface triangulation
presented in Fig. 5c. This triangulation then serves as an initial
front while applying our advancing front algorithm. Fig. 5d shows
the resulting tetrahedrization.
Tetrahedrization of another FRep object having more complex
topology is presented in Fig. 6. It is a typical CSG-like object with
sharp edges and both flat and curvilinear faces. The result of
polygonization and sharp features extraction is shown in Fig. 6a.
The mesh generated is not completely suitable for subsequent
FEA: one can observe badly shaped and degenerate triangles near
sharp edges and corners in the surface mesh after the sharp
features extraction. The surface mesh adaptation to FEA
requirements after applying mesh optimization procedures is
shown in Fig. 6b. An enlarged view of an internal structure of the
tetrahedral mesh is shown in Fig. 6c. As to computational times,
mesh decimation process took 4.2 sec, FE mesh adaptation took
2.9 sec, and tetrahedrization took 331 sec.
6.2 Discretization of a heterogeneous object
with various attributes
This example illustrates the influence of attributes on the mesh
elements’ sizes. Fig. 7 presents four discretization variants
conforming to different attributes. We start from Fig. 7b where no
attribute has an effect. Note that the minimal surface triangulation
for this object was created using our mesh optimization and
simplification algorithm similar to the previous example. Then,
this surface mesh was subdivided to conform to the attributes.
Figs. 7c-7e illustrate application of various types of attribute
functions.
Fig. 7c shows the result of subdivision based on an attribute
influencing the mesh density and defined by a “point source”
placed at a cube corner. Figure 7d simulates mesh adaptation near
the vertical well, where the element sizes are adjusted to the
reservoir pressure gradient. An example of a mesh fitted to an
annular heating device is shown in Fig.7e. Mesh adaptation
process in all these examples took no longer than 7 sec.
6.3 Modeling of a mixing tank impeller
An application example shown in Fig. 8 is concerned with real
computer-aided modeling of a mixing tank impeller which is used
as the agitator of the flow components in a chemical reactor.
The impeller whose central body and blades are made of different
materials (marked by different colors) is shown in Fig.8a. Fig. 8b
shows the surface mesh with recovered sharp features. One can
observe that there are many badly shaped triangles in the mesh, so
the following mesh optimization is necessary. Fig. 8c illustrates
the result of such optimization. The surface mesh taking into
account the material attributes is shown in Fig. 8d. The mesh was
split on the blades’ faces according to the specified attribute. This
surface mesh then serves as initial data for the advancing front
tetrahedrization. The resulting 3D mesh was used for FE thermal
and stress-strain analysis. As to calculation times, mesh
decimation took 3.1 sec, FE mesh adaptation took 10 sec, mesh
adaptation according to the attribute took 27 sec, and
tetrahedrization took 634 sec.
7. CONCLUSION
This work aims at making functionally defined solids and
heterogeneous objects with implicit surfaces available for
practical applications requiring finite element analysis and
simulation. We discussed a discretization procedure resulting in
surface and volume meshes for heterogeneous objects with
geometry and attributes defined using real-valued functions. This
procedure is an implementation of the functional to cellular
models conversion operation in the cellular-functional modeling
framework for heterogeneous objects [2,6].
In contrast to previous works on implicit surface polygonization
and volume mesh generation, the main motivation of this work is
generation of meshes suitable for finite element analysis with
constraints imposed by the heterogeneous object attributes. Let us
summarize the main contributions of the paper:
1) The discretization problem is stated for heterogeneous objects
represented as functionally defined 3D solids (with implicit
surfaces) and attributes (scalar fields).
2) The paper aggregates different techniques into a systematic
step-by-step procedure of solving the above problem. Some of the
known techniques have been adapted and extended to work with
the functionally defined solids as explained below.
3) The proposed surface mesh optimization preserves sharp
features of implicit surfaces, satisfies the requirements of FEA,
and uses the defining function to do this (see the mesh
transformation from Fig. 5b to 5c).
4) The advancing front method of 3D tetrahedrization is extended,
taking the defining function of the solid into account.
We provided examples of tetrahedrization of objects with
complex topology and sharp features, and illustrated mesh
adaptation to attributes of various types. A practical example of
FEM generation for a mixing tank impeller was given. All
examples have been prepared using software tools developed by
the authors.
In the cellular-functional model [2,6], heterogeneous objects are
represented as hypervolumes or multidimensional point set with
multiple attributes. A multidimensional point sets can include
elements of different dimensions, which can be higher than three.
In this paper, we dealt only with 3D objects with attributes. The
extension of the proposed algorithms to dimensionally
heterogeneous and time-dependent objects is a subject of future
work.
8. ACKNOWLEDGMENTS
The authors would like to thank Drs. Y. Ohtake and A. Belyaev
for fruitful discussions and for the possibility to work with their
implementation of the dynamic meshes algorithm. Jody Vilbrandt
has greatly helped with making the text more reader friendly.
9. REFERENCES
[1] Pasko, A., Adzhiev, V., Schmitt, B., Schlick, C., 2001,
“Constructive Hypervolume Modelling,” Graphical Models, a
special issue on Volume Modeling, 63(6), pp. 413-442.
[2] Adzhiev, V., Kartasheva, E., Kunii, T., Pasko, A., Schmitt, B.,
2002, “Cellular-functional Modeling of Heterogeneous Objects,”
Proc. 7 th ACM Symposium on Solid Modeling and Applications,
Kunwoo Lee, N. Patrikalakis, eds., Saarbrucken, Germany, ACM
Press, pp. 192-203.
[3] Biswas, A., Shapiro, V., Tsukanov, I., 2002, “Heterogeneous
Material Modeling with Distance Fields”, Technical Report SAL
2002-4, University of Wisconsin-Madison､USA.
[4] V. Shapiro, V., Tsukanov, I., 1999, “Meshfree Simulation of
Deforming Domains,” Computer Aided Design, 31(7), pp. 459-
471.
[5] Frey, P.J., George, P.-L., 2000, Mesh Generation: Application
to Finite Elements, HERMES Science Europe, OXFORD &
PARIS, 814p.
[6] Adzhiev, V., Kartasheva, E., Kunii, T., Pasko, A., Schmitt, B.,
2002, “Hybrid Cellular-functional Modeling of Heterogeneous
Objects,” Journal of Computing and Information Science in
Engineering, 2(4), pp. 192-203.
[7] Pasko, A., Adzhiev, V., Sourin, A., Savchenko, V., 1995,
“Function Representation in Geometric Modelling: Concepts,
Implementation and Applications,” The Visual Computer, 11(8),
pp. 429-446.
[8] Lohner, R., 1997, “Automatic Unstructured Grid Generators,”
Finite Elements in Analysis and Design, 25, pp. 114-134
[9] Kumar,V., Dutta, D., 1997, “An Approach to Modeling Multimaterial
Objects,” Proc. 4th Symposium on Solid Modeling and
Applications, ACM SIGGRAPH, Atlanta, pp. 336-345.
[10] Kumar, V., Burns, D., Dutta, D., Hoffmann, C., 1999, “A
Framework for Object Modeling,” Computer-Aided Design, 31(9),
pp. 41-556.
[11] Shin, K., Dutta, D., 2001, “Constructive Representation of
Heterogeneous Objects,” Journal of Computing and Information
Science in Engineering, 1(3), pp. 205-217.
[12] Chen, M., Tucker, J., 2000, “Constructive Volume
Geometry,” Computer Graphics Forum, 19(4), pp. 281-293.
[13] Jackson, T. R., Liu, H., Patrikalakis, N. M., Sachs, E. M.,
and Cima, M. J., 1999, “Modeling and Designing Functionally
Graded Material Components for Fabrication with Local
Composition Control,” Materials and Design, 20(2/3), pp. 63-75.
[14] Martin, W., Cohen, E., 2001, “Representation and Extraction
of Volumetric Attributes Using Trivariate Splines: a Mathematical
Framework,” Proc. 6th ACM Symposium on Solid Modeling and
Applications, D. Anderson, K. Lee, eds., Ann Arbor, ACM Press,
pp. 234-240.
[15] Park, S. M., Crawford, R., Beaman, J., 2001, “Volumetric
Multi-texturing for Functionally Gradient Material
Representation,” Proc. 6 th ACM Symposium on Solid Modeling
and Applications, D. Anderson, K. Lee, eds., Ann Arbor, ACM
Press, pp. 216-224.
[16] Wyvill, G., McPheeters, C., Wyvill, B., 1986, “Data structure
for soft objects,” The Visual Computer, 2(4), pp. 27-23.
[17] Bloomenthal, J., 1994, “An Implicit Surface Polygonizer”,
Graphics Gems IV, P. Heckbert, (ed), Academic Press, pp. 324-
349.
[18] Hartmann, E., 1998, “A Marching Method for the
Triangulation of Surfaces,” The Visual Computer, 14(3), pp. 95-
108.
[19] Karkanis, T., Stewart, A. J., 2001, “Curvature-dependent
Triangulation of Implicit Surfaces,” IEEE Computer Graphics and
Applications, 21(2), pp. 60-69.
[20] Pasko, A., Pilyugin, V., Pokrovskiy, V., 1986, “Geometric
Modeling in the Analysis of Trivariate Functions,”
Communications of Joint Institute of Nuclear Research, P10-86-
310, Dubna, USSR, (in Russian). English translation: 1988,
Computers and Graphics, 12(3/4), pp. 457-465.
[21] Lorensen, W., Cline, H., 1987, “Marching Cubes: a High
Resolution 3D Surface Construction Algorithm,” Computer
Graphics, 21(4), pp. 163-169.
[22] Nielson, G., Hamann, B., 1991, “The Asymptotic Decider:
Resolving the Ambiguity in Marching Cubes,” Proc.
Visualization '91, IEEE Computer Society Press, pp. 29-38.
[23] Schmidt, M., 1993, “Cutting Cubes – Visualizing Implicit
Surfaces by Adaptive Polygonization,” The Visual Computer,
10(2), pp. 101-115.
[24] Kobbelt, L., Botsch, M., Schwanecke, U., Seidel, H.-P., 2001,
“Feature Sensitive Surface Extraction from Volume Data,” Proc.
SIGGRAPH 2001, pp. 57–66.
[25] Ohtake, Y., Belyaev, A., Pasko, A., 2001, “Dynamic Meshes
for Accurate Polygonization of Implicit Surfaces with Sharp
Features,” Shape Modeling International 2001, IEEE Computer
Society, pp. 74-81.
[26] Ohtake Y., Belyaev A., 2002, “Dual/primal Mesh
Optimization for Polygonized Implicit Surfaces,” Proc. 7 th ACM
Symposium on Solid Modeling and Applications, K. Lee and N.
Patrikalakis, eds., ACM Press, Saarbrucken, pp. 171-178.
[27] Frey, P.J., Borouchaki, H., 1998, “Geometric Surface Mesh
Optimization,” Computing and Visualization in Science, 1(3), pp.
113-121.
[28] Kobbelt, L., 2000, “�3-Subdivision,”, Proc. SIGGRAPH
2000, pp. 103-112.
[29] Garland M., Heckbert, P.S., 1997, “Surface Simplification
Using Error Metrics,” Proc. SIGGRAPH 2001, pp. 209-216.
[30] Sheffer, A., 2001, “Model Simplification for Meshing Using
Face Clustering,” Computer-Aided Design, 33(13), pp. 925-934.
[31] Owen, S. J., 1998, “A Survey of Unstructured Mesh
Generation Technology,” Proc. 7 th International Meshing
Roundtable, Dearborn, MI.
[32] Sethian, J., A., 1999, Level Set Methods and Fast Marching
Methods, Cambridge University Press.
[33] Frank, K., Lang, U., 2000, “Gradient and Curvature
Approximation in Data-dependent Surface Simplification,”
Computing and Visualization in Science, 2(4), pp. 221-228.
[34] Freitag, L., Ollivier-Gooch, C., 1997, “Tetrahedral Mesh
Improvement Using Swapping and Smoothing,” Int. J. Numer.
Meth. Eng., 40, pp. 3937-4002.
[35] Rivara, M., Levin, C., 1992, “A 3D Refinement Algorithm
Suitable for Adaptive and Multi-grid Techniques,” J. Comp. and
Appl. Math., 8, pp. 281-290.
[36] Liu, A., Joe, B., 1994, “On the Shape of Tetrahedra from
Bisection,” Math. Comp., 63, pp. 141-154.
[37] Liu, A., Joe, B., 1995, “Quality Local Refinement of
Tetrahedral Meshes Based on Bisection,” SIAM J. Sci. Comput.,
16, pp. 1269-1291.
.
a b c d
Figure 5: An example of discretization of a functionally based object with sharp features: a) polygonization of the initial object surface;
b) a surface mesh after sharp features reconstruction; c) the optimal surface mesh; d) the final tetrahedral tessellation .
a b c
Figure 6: An example of discretization of a complex FRep object: a) surface mesh with reconstructed sharp features (5992 triangles);
b) surface mesh after FE adaptation (7794 triangles); c) cut of tetrahedral mesh (enlarged view) (43059 tetrahedra)
a b c d e
Figure 7: An influence of attributes on the mesh elements’ sizes: a) surface mesh with reconstructed sharp features (2776 triangles); b) the
minimal surface triangulation (12 triangles); c-e) mesh adaptation to attributes of various types (2052, 7012, 6152 triangles, respectively)
a b c d
Figure 8: Modeling of an impeller: a) impeller consisting of various materials); b) surface mesh with reconstructed sharp features (846
triangles; c) surface mesh after FE adaptation (2828 triangles) ; d) enlarged fragment of a surface mesh conforming the material attribute
