OOF2: The Manual

Name

Aspect Ratio (CheckAspectRatio) — Divide elements with extreme aspect ratios.

Synopsis

CheckAspectRatio(threshold, only_quads)

Details

  • Base class: RefinementTarget
  • Parameters:

    threshold
    Refine the long edges of elements whose aspect ratio is greater than this Type: A real number.
    only_quads
    Restrict the refinement to quadrilaterals? Type: Boolean: True or False.

Description

Skinny Elements (ones with a high aspect ratio) can cause poor finite element performance. Refining a Skeleton with the targets parameter of Refine set to Aspect Ratio will subdivide the long sides of Elements with high aspect ratios.

The aspect ratio of a rectangle is its length divided by its width, or vice versa. That definition doesn't work well for trianglar or non-rectangular quadrilateral Elements. The definition used in OOF2 is the square root of the ratio of the eigenvalues of the in-plane moment of inertia tensor of the element's corners.

If corner n is at position 𝐱n and the center of the element is 𝐱¯ , then the moment of inertia tensor is

Mij=n(𝐱in𝐱¯i)(𝐱jn𝐱¯j)
(6.128)

This definition reduces to the intuitive one if the element is rectangular, doesn't require any special handling if it is not, and can be computed more easily than it seems.

The longest two edges of a quadrilateral Element whose aspect ratio is greater than threshold will be subdivided, if the longest two edges are on opposite sides of the element.

The longest two edges of a triangular Element will be subdivided if the aspect ratio is greater than threshold, but only if the parameter only_quads is False. If your goal is to eliminate high aspect elements, refining high aspect triangles is not useful — it just creates new smaller triangles with the same high aspect ratio. To remove skinny triangles from a Skeleton, use the Rationalize Skeleton modifier.

Figure 6.71(a) shows a Skeleton containing one skinny quadrilateral and one skinny triangle. Figure 6.71(b) shows the result of refining the elements. Unlike CheckHomogeneity, which marks all the Segments of its target Elements, CheckAspectRatio marks only the long Segments, so not all of the sides have been subdivided.

Figure 6.71. Refining Elements with High Aspect Ratios

Refining Elements with High Aspect Ratios

(a) A Skeleton containing two elements with a high aspect ratio. The aspect ratio of the highlighted quadrilateral is about 6, and the aspect ratio of the highlighted triangle is about 15.

(b) The Skeleton produced by refining with

modifier=Refine(targets=CheckAspectRatio(threshold=5.0, only_quads=False),
                divider=Bisection(minlength=2),
                rules='Quick', alpha=1)

The quad was divided into two elements with aspect ratios near 3, but the triangle was turned into a quad with aspect ratio 8 and a new triangle with aspect ratio 15, which is no better than the original triangle.