OOF2: The Manual
Name
Refine (Refine) — Subdivide elements.
Synopsis
Refine
(targets
,criterion
,degree
,alpha
)
Details
-
Base class:
SkeletonModifier
-
Parameters:
targets
- Target elements to be refined. Type: An object of the
RefinementTarget
class. criterion
- Exclude certain elements. Type: An object of the
RefinementCriterion
class. degree
- Preferred way of subdividing a side. Type: An object of the
RefinementDegree
class. alpha
- alpha controls the relative importance of element shape and homogeneity. alpha=0 emphasizes shape and ignores homogeneity. alpha=1 emphasizes homogeneity and ignores shape. Type: A real number in the range [0, 1].
Description
Refine
is a SkeletonModifier that chops its target
elements and their neighbors into smaller pieces. This adds more
degrees of freedom to the Skeleton
, which allows it to adapt better
to the Microstructure
. Refinement by itself is rarely sufficient to
create an acceptable Skeleton
-- it must be combined with other
modifiers that
move nodes, such as SnapNodes or
Anneal.
The steps involved in refining a Skeleton
are:
-
Find the element edges (
Segments
) that need to be refined. These are specified by thetargets
parameter, whose value is a RefinementTarget object. Different kinds of RefinementTarget objects pick segments in different ways, for example, by choosing all edges of heterogeneous elements or the long edges of skinny elements. See RefinementTarget for the details.The
criterion
parameter is used to exclude certain elements and segments from the marking process. Setting it to Unconditional means that all elements and segments are possible candidates for refinement.Figure "Refining a Skeleton" (a) shows a
Skeleton
that needs to have its heterogeneous elements refined. Settingtargets
toCheckHomogeneity(threshold=1)
marks the edges of all elements whose homogeneity is less than 100%, as shown in Figure "Refining a Skeleton" (b). -
Sometimes the way in which the elements will be subdivided (determined by the
degree
parameter) requires extra segments to be marked. In these cases a second pass is made through theSkeleton
, marking additional segments. -
After the segments are marked, each element is replaced by a suitable collection of smaller elements, such that each marked segment of the old
Skeleton
turns into a set number of segments of the newSkeleton
. Exactly how this is done depends on the setting of thedegree
parameter, which determines both how many new edges replace each old edge, and how the new elements are arranged within the old element. (For details, see the descriptions of RefinementDegree and RuleSet.) The rules sometimes allow more than one way of subdividing an element. In those cases, the total effective energy of the new elements is computed, and the configuration with the lowest energy is used. The parameteralpha
determines the relative contributions of shape and homogeneity to the effective energy, as discussed in Section 2.4.2.2.Figure "Refining a Skeleton" (c) shows the result of refining a mesh using
degree
=Bisection(rule_set='liberal')
andalpha
=1
.
Figure 6.92. Refining a Skeleton

b) The CheckHomogeneity(threshold=1)
RefinementTarget
operator marks the edges of the heterogeneous elements.
The marked edges are drawn in bold. (In actual OOF2
operation, the marked edges are not shown.)
![]() |
Caution |
---|---|
One should not abuse Refinement to the point where elements
become too small. Figure 6.93 shows a part
of
Instead of abusing refinement, it is better to employ other
modification strategies. Figure 6.94
shows the same portion of the Figure 6.93. Excessive Refinement ![]()
A part of a
As seen, refining too much does not necessarily yield an optimal
result. One can, however, prevent this over-refinement by
adjusting the refinement |