OOF2: The Manual

Name

Refine (Refine) — Subdivide elements.

Synopsis

Refine(targets, divider, rules, alpha)

Details

  • Base class: SkeletonModifier
  • Parameters:

    targets
    Target elements to be refined. Type: An object of the RefinementTarget class.
    divider
    How to divide the edges of the refined elements. Type: An object of the SegmentDivider class.
    rules
    The set of rules used to divide elements after their segments are divided. Type: An object from the RuleSet enumerated 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:

  1. Find the element edges (Segments) that need to be refined. These are specified by the targets 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.

    Figure 6.96 (a) shows a Skeleton that needs to have its heterogeneous elements refined. Setting targets to CheckHomogeneity marks the edges of all elements whose homogeneity is less than 90%, as shown in Figure 6.96 (b).

  2. The divider parameter determines how and where the chosen segments will be divided. Segments are marked for division in in half (Bisection), in thirds (Trisection), or at TransitionPoints.

  3. After the segments are marked for division, 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 new Skeleton. Exactly how this is done depends on the setting of the rules parameter. (For details, see the description of 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 parameter alpha determines the relative contributions of shape and homogeneity to the effective energy, as discussed in Section 2.4.2.2.

    Figure 6.96 shows the result of refining a mesh using divider=Bisection with alpha=0.3.

Figure 6.96. Refining a Skeleton

Refining a Skeleton

(a) A Skeleton ripe for refinement.

(b) The CheckHomogeneity(threshold=0.9) RefinementTarget operator marks the Segments of the heterogeneous Elements. The marked Segments are drawn in green and the inhomogeneous Elements are red.[41]

(c) The result of refining the marked edges with divider set to Bisection and rules set to Quick.


[Caution] Caution

One should not abuse Refinement to the point where Elements become too small. Figure 6.97 shows a part of Skeleton that has been refined to the pixel resolution — many elements along the boundary represent a single pixel. This is not only unphysical (the jagged pixel boundaries are an artifact of the digitization of the micrograph) but can introduce unnecessary numerical anomalies, such as stress concentrations, at corner nodes.[42]

Instead of abusing refinement, it is better to employ other modification strategies. The right half of Figure 6.97 shows the same portion of the Skeleton on the left, but with different modification tools applied. This Skeleton has been refined less, but the elements have been adapted to the Microstructure by using TransitionPoints instead of Bisection, and by using the minlength parameter of SegmentDivider to prevent the creation of small Elements.

Figure 6.97. Excessive and Appropriate Refinement

Excessive and Appropriate Refinement

(a) A portion of an over-refined Skeleton. It is probably resolving unphysical details of the image.

(b) A properly refined Skeleton on the same region. The Element edges smooth over the jagged pixel boundary.


See Also



[41] In actual OOF2 operation, the marked Segments and Elements are not shown.

[42] Of course, if you know that the pixels in an image do represent physical features, you should refine the Skeleton until they are resolved.