Uniform Refinement#

Uniform refinement creates regions of consistent mesh resolution, particularly useful for capturing off-body flow features such as wakes, shocks, and vortices, while maintaining computational efficiency in regions of uniform flow.


Available Options#

Option

Description

Spacing

Target mesh spacing in the region

Assigned boxes and cylinders

Target volumes for refinement application


Detailed Descriptions#

Spacing#

Defines the uniform mesh spacing within the refinement region.

  • Required

  • Example: 0.1 m

Note: Should be chosen based on flow feature size and resolution requirements.

Assigned boxes and cylinders#

Specifies the volumes where uniform refinement will be applied.

  • Required

Notes:

  • Must reference valid box or cylinder entities in the geometry.

  • Assign the entity by selecting from the list using the + button or select graphically in the viewer region.


❓ Frequently Asked Questions

  • What happens if uniform refinements overlap?

    The finest (smallest) spacing will be applied in overlapping regions.

  • Can I specify a uniform refinement over a custom volume?

    Not over a fully user-defined custom volume directly. The recommended practice is to cover the target region with one or more overlapping primitive shapes (boxes/cylinders) and apply the uniform refinement to those. For example, an L-shaped region can be covered by two overlapping boxes.


🐍 Python Example Usage

See also

Python API:

import flow360 as fl

# Wake region refinement
wake_ref = fl.UniformRefinement(
    name="wake_region",
    entities=[wake_box],
    spacing=0.1 * fl.u.m
)

# Shock region refinement
shock_ref = fl.UniformRefinement(
    name="shock_region",
    entities=[shock_box],
    spacing=0.05 * fl.u.m  # Finer spacing for shock resolution
)

# Near-body refinement
near_body_ref = fl.UniformRefinement(
    name="near_body",
    entities=[near_body_box],
    spacing=0.02 * fl.u.m  # √3 times surface spacing
)