Geometry Refinement#
Geometry refinement allows for controlling the resolution of the surface mesh by defining the smallest geometric features to be captured. It ensures that the mesh accurately represents the geometry down to a specified length scale. GeometryAI needs to be enabled to use this feature.
Available Options#
Option |
Description |
Applicable |
|---|---|---|
Geometry accuracy |
The smallest length scale to be accurately resolved by the surface mesher. |
always |
Preserve thin geometry |
Specifies whether to accurately resolve thin geometry features. |
always |
Min passage size |
Minimum passage size that hidden geometry removal can resolve for this face group. |
Remove hidden geometry is |
Sealing size |
Threshold size below which all geometry gaps are automatically closed for this face group. |
always |
Baffle face treatment |
How baffle faces in this face group are handled: |
Remove hidden geometry is |
Baffle thicken outward / Baffle thicken inward |
How far a thickened baffle shell extends past the original face on its more / less exposed side, x Geometry accuracy. Their sum should be at least 4.0 for proper resolution. |
Baffle face treatment is |
Assigned surfaces |
The surfaces and/or |
always |
Detailed Descriptions#
Geometry accuracy#
Specifies the minimum length scale that the surface meshing process will accurately resolve.
Required
Example:
0.01 m
Notes:
A smaller
Geometry accuracyvalue will result in a finer mesh and consequently a larger cell count and longer computation time.Start with a larger value and decrease it iteratively to find the optimal balance between accuracy and computational cost.
The GeometryAI mesher may stop early due to resource limits before fully achieving the requested accuracy; check the process log for an indication of early termination
When the global Geometry accuracy in Mesh parameters shows a threshold warning (too coarse or too fine), using a Geometry Refinement on the specific faces that require tighter control is strongly recommended over changing the global value. This keeps the overall mesh size manageable while still resolving critical features accurately.
Preserve thin geometry#
Specifies whether thin geometry features should be accurately resolved during surface meshing.
Default:
false
Notes:
Resolves features with thickness roughly equal to
geometry_accuracy.
Min passage size#
Minimum passage size that the hidden geometry removal algorithm can resolve for this face group.
Default: Derived automatically from Geometry accuracy and Sealing size
Units: Length
Example:
0.005 m
Notes:
Only applicable when Remove hidden geometry is enabled in the global mesh parameters
Internal regions connected by passages smaller than this value may not be detected and removed.
If not specified, the value is derived from the global Geometry accuracy and Sealing size settings.
Sealing size#
Threshold size below which all geometry gaps are automatically closed for this face group.
Default:
None(falls back to the global Sealing size set in mesh parameters)Units: Length
Example:
0.001 m
Notes:
Only applicable when GeometryAI is enabled.
When set, overrides the global Sealing size value from the mesh parameters for the assigned surfaces.
Assigned surfaces#
The list of surfaces, and/or Box regions, where the geometry refinement will be applied.
Required
Notes:
Must reference valid surface entities in the geometry, or a
Boxregion.Surfaces can be assigned from the list using the
+button or by graphical selection in the viewer.A single refinement may mix surfaces and
Boxregions, except when any baffle setting (Baffle face treatment or a thicken extent) is set (see below).
Scoping a refinement to a Box region#
Instead of (or alongside) individual surfaces, a refinement can be scoped to a Box region. This is useful when the features needing finer resolution are known by location rather than by face, or when they span many faces that would be tedious to select one by one.
Notes:
Inside the box, the values set here override the per-face values of every surface passing through it. Anything the box leaves unspecified keeps its per-face value, so a box can tighten Geometry accuracy alone.
Only
Boxregions are accepted, and a box cannot be assigned while any baffle setting (Baffle face treatment or a thicken extent) is set on the same refinement.Boxes from different refinements may overlap. In the overlap each setting takes the more conservative value (finest Geometry accuracy, largest Sealing size, smallest effective Min passage size, Preserve thin geometry on if any box enables it); no warning is raised. See Overlapping refinement boxes in the user guide.
💡 Tips
Use this refinement to ensure small but important geometric features (e.g., sharp corners, small fillets) are not lost during meshing.
This setting controls geometry representation accuracy (how finely the surface mesh captures the CAD geometry), not directly the overall mesh resolution.
❓ Frequently Asked Questions
What is a typical value for Geometry accuracy?
The value is highly dependent on the specific geometry and the scale of the features you want to capture. It should be smaller than the smallest important feature size. For example, for a vehicle simulation, you might want to resolve features on the scale of millimeters.
What is the difference between Geometry Refinement and Surface Refinement?
Surface Refinementcontrols the maximum edge length of surface cells directly.Geometry Refinementprovides a more automated way of refining the mesh based on geometric curvature and feature size, driven by geometryAI.
🐍 Python Example Usage
import flow360 as fl
geometry_refinement = fl.GeometryRefinement(
name="fine_features_refinement",
faces=[geometry["wing_surface"], geometry["fuselage_surface"]],
geometry_accuracy=0.001 * fl.u.m,
preserve_thin_geometry=True,
min_passage_size=0.005 * fl.u.m,
sealing_size=0.0005 * fl.u.m,
)
# The same settings scoped to a Box region instead of named faces. Inside the
# box, geometry_accuracy overrides the per-face value of every surface passing
# through it; settings left unspecified keep their per-face values.
box_refinement = fl.GeometryRefinement(
name="mirror_region_refinement",
faces=[
fl.Box(
name="mirror_region",
center=(1.2, 0.8, 0.9) * fl.u.m,
size=(0.4, 0.3, 0.3) * fl.u.m,
)
],
geometry_accuracy=0.0005 * fl.u.m,
)