Setup: HyperMesh CFD 2026.0.0.27 (AcuSolve), MKS units. External aircraft geometry - fuselage, wing, two pylons, V-tail. Around 132 surfaces.
What happened:
What I'm trying to do
Clean up an imported aircraft surface geometry and generate a surface mesh for an external CFD run.
Steps taken so far
- Imported the geometry and ran the SurfaceChecks / Validate tool.
- Initial result: Free edges (4), located at the pylon-to-wing junctions and the V-tail root.
- Tried Stitch All with the default tolerance of 0.0001 m. Nothing happened, free edge count stayed at 4.
- Increased stitch tolerance progressively, up to 1 m. Stitch All still did nothing. Status bar showed locks=e222, s0, b375/44, if that is relevant.
- Tried the patch / fill hole option instead. This removed the free edges but produced Closed shells (4), meaning the pylons and V-tail became sealed as four separate closed bodies rather than merging into the main aircraft skin.
- Reverted that, and instead stitched each of the 4 edges individually, selecting the edge pairs manually rather than using Stitch All. This worked. Geometry then validated clean: Free edges (0), Non-manifold edges (0), Self intersections (0), Slivers (0).
- Ran the surface mesh.
- Re-validated after meshing. Now showing Self intersections (7) at various locations.
My questions
- Why does Stitch All silently fail while individual stitching works? Even at a 1 m tolerance, Stitch All produced no change on those 4 edges, but manually pairing the same edges stitched them fine. Is Stitch All scoped per-part (my geometry is split into several sub-parts under one part), or is it skipping edges it cannot auto-pair by proximity or length? Are locked edges excluded from Stitch All but not from manual stitch?
- Why does patch / fill hole create separate closed shells instead of merging into the parent shell? Is this expected behaviour, meaning fill-hole is always self-bounded and never merged with the adjacent surface network, or is there a setting to have it stitch into the surrounding topology?
- Main question - why do self-intersections appear only after meshing, when the geometry validated clean beforehand?
- Is the post-mesh check reporting geometry self-intersections (NURBS surfaces overlapping) or discrete mesh self-intersections (crossed elements)? The count appears in the same SurfaceChecks panel, which is why I am unsure which level it is flagging.
- If it is mesh level, is this a case of the global element size being too coarse for the local curvature at the stitched pylon and V-tail junctions, causing elements to fold?
- If it is geometry level, can the meshing operation itself modify or heal the underlying geometry in a way that introduces overlaps that were not there before?
- Recommended fix workflow: should I be applying local mesh size controls or size boxes at the stitched junctions before remeshing, or is the correct approach to go back and improve the surface quality at those joints first, for example re-trimming the pylon root into the wing rather than stitching edge to edge?
- Best practice question: for an intersecting-body case like pylons and a V-tail meeting a wing or fuselage, is edge stitching even the right approach? Would a Boolean or trim operation at the intersection produce a more robust, mesh-friendly topology than stitching coincident edges?
TLDR: HyperMesh CFD 2026, aircraft external geometry. Had 4 free edges at the pylon and V-tail junctions. Stitch All did nothing even at 1 m tolerance, fill hole just sealed them into 4 separate closed shells, but stitching each edge pair manually worked and the geometry validated 100% clean. Then I meshed it, re-validated, and now I have 7 self-intersections. Why do they show up only after meshing when the geometry was clean, and is the fix local mesh refinement at those junctions or better surface topology there?
Thanks!