OOF2: The Manual
Name
OOF.Skeleton.Auto — Automatically create and refine a Skeleton.
Synopsis
OOF.Skeleton.Auto(name, microstructure, left_right_periodicity, top_bottom_periodicity, maxscale, minscale, units, threshold)
Details
- Parent Menu: OOF.Skeleton
-
Callback: function
autoSkeletonin moduleooflib.engine.autoskeleton -
Options:
no_log=True -
Parameters:
name- Name of the new skeleton. Type: A character string, or the value
automatic. microstructure- Type: The path to an existing
Microstructureobject. left_right_periodicity- Whether or not the skeleton is periodic in the horizontal direction Type: Boolean: True or False.
top_bottom_periodicity- Whether or not the skeleton is periodic in the vertical direction Type: Boolean: True or False.
maxscale- Rough size of the largest elements. Type: A real number.
minscale- Rough size of the smallest elements. Type: A real number.
units- Units for minscale and maxscale. Type: An object from the
Unitsenumerated class. threshold- Minimum acceptable homogeneity Type: A real number in the range [0, 1].
Description
OOF.Skeleton.Auto tries to create and refine a
Skeleton with no feedback from the user. It actually runs a series
of other OOF2 commands, so the Auto command
itself will never appear in a log file. After automatically
creating a Skeleton the Undo
command can be applied multiple times to undo the separate steps
used in creating the Skeleton.
Auto inherits a few parameters from the commands
that it invokes, and it adds a few of its own. It begins by
creating a new Skeleton with quadrilateral
elements. The size of the elements is set so that the initial
Skeleton resolves features of size maxscale in the
Microstructure. If units is
Physical, then maxscale is
assumed to be in physical
units; if it's Pixel, then it's assumed to be
in units of the Microstructure's pixel size; if it's
Fractional, then it's assumed to be relative
to the Microstructure's overall dimensions. The periodicity of the Skeleton
is set by the parameters left_right_periodicity
and top_bottom_periodicity, which have the same
meanings that they have in QuadSkeleton.
After creating the initial Skeleton, Auto then
Refines
the Skeleton, using bisection with the quick rules and
alpha=0.8, until the
linear dimensions of the smallest Elements are smaller than
minscale. To get rid of rough corners,
Auto applies Refine once more, this time dividing at
TransitionPoints instead of
bisecting, and with min_distance set to
0.1. All refinement operations are applied
only to elements whose homogeneity
is less than the specified threshold.
After refining, Auto cleans up the Skeleton by
applying Rationalize
twice, with
alpha=0.8. It uses the
specific Rationalizers RemoveShortSide(ratio=5.0),
and QuadSplit(angle=150). Finally, it RemoveBadTriangle(acute_angle=15,
obtuse_angle=150)Smooths the Skeleton after pinning
the internal boundary Nodes, which it unpins when it's done. The
smoothing is done with
alpha=0.3 for
5 iterations.



