2. Repair T-Junctions at Shell Intersection
What a T-junction looks like in a shell mesh
A T-junction occurs when the edge of one shell element terminates on the interior of another element's edge rather than at a shared node. In HyperMesh this shows up as a node sitting on a mid-edge position of a neighbouring element, with no coincident node on that neighbour. The two surfaces are geometrically touching, but topologically they are disconnected: the terminating edge contributes a free edge, and the through-edge carries a node that the adjacent element does not share. Loads and boundary conditions will not transfer across that seam, and a solver run will either report a singularity or silently produce a non-conformal result.
This is distinct from a plain free edge. A free edge is a boundary of the model; a T-junction is an internal discontinuity that should not exist. The diagnostic therefore has to answer two questions: where do shell edges meet mid-element, and which of those meetings are legitimate (a modelled boundary) versus a defect (an unintended T-junction)?
Detecting the T-junction set
Work from the edge topology rather than from visual inspection. The reliable sequence in HyperMesh is:
- Run Edges (or Find Edges) with the free-edge display enabled to collect all edges that have only one attached element.
- For each free edge, check whether its endpoints lie on the interior of another element's edge. A node that is shared by two elements but sits mid-edge on a third is the signature of a T-junction.
- Use Nodes > Find with a small tolerance to list nodes that are coincident with, or within tolerance of, an element edge but not connected to it. This separates true T-junctions from nodes that are merely close.
Two practical checks make the result trustworthy. First, confirm the tolerance is smaller than the shortest legitimate element edge, otherwise you will merge across intended gaps. Second, verify the node count on the through-edge: a T-junction adds one node to that edge without splitting the element, so the element still has its original node count while the terminating edge has an extra free node.
Choosing between equivalence and split
There are two legitimate repair strategies, and the correct choice depends on whether the through-element can accept a node at the junction position.
Equivalence (merge) path. If the terminating edge's end node can be merged onto a node that already exists on the through-edge, use Tool > Edges > Equivalence (or Nodes > Equivalence) with a tolerance just above the measured gap. This is the cheapest fix and preserves element count. It only works when the through-edge already has a node at the junction location; if it does not, equivalence will either fail or pull the node to the nearest existing node and distort the element.
Split path. When the through-edge has no node at the junction, split the through-element at the junction position so a shared node is created. In HyperMesh this is done with Tool > Edges > Split (or the Split panel on the element), selecting the through-element and the junction node as the split point. The element is divided, the new node is shared with the terminating edge, and the seam becomes conformal. This changes element count and local quality, so re-run the quality check afterwards.
Worked example: a bracket flange meeting a web
Consider a simplified bracket: a horizontal flange shell and a vertical web shell that meet along a line. The flange mesh has an edge that terminates at a node sitting on the interior of a web element edge. The measured gap between the terminating node and the nearest web node is 0.4 mm; the shortest legitimate element edge in the model is 6 mm.
Set the equivalence tolerance to 0.5 mm — above the 0.4 mm gap, well below the 6 mm minimum edge. Run Nodes > Equivalence. If the web edge already carries a node within 0.5 mm of the junction, the merge succeeds and the seam becomes conformal. If it does not, equivalence will report no match or will pull the node to a distant node and distort the web element; in that case, undo and switch to the split path: select the web element, choose the junction node as the split point, and split. The web element is divided, the junction node is now shared, and the flange edge is no longer free.
After either repair, re-run the edge check. The seam should disappear from the free-edge set. Then re-run the quality check on the elements adjacent to the junction: a split can introduce a small element or a skewed corner, and a merge can shift a node slightly. Flag any element whose Jacobian or aspect ratio falls outside the criterion set before accepting the repair.
Failure symptoms and how to read them
| Symptom | Likely cause | Action |
|---|---|---|
| Equivalence reports no match | No node on the through-edge within tolerance | Use the split path instead |
| Element distorts after merge | Tolerance too large; node pulled to a distant node | Undo, reduce tolerance, re-check gap |
| Seam still shows as free edge | Split point not on the through-edge, or wrong element selected | Re-select the through-element and junction node |
| New coincident nodes appear | Split created a node that duplicates an existing one | Run equivalence on the new node pair |
| Quality flags after split | Split produced a thin or skewed element | Remesh locally or adjust split position |
Quick reference for the repair decision
- Node exists on through-edge within tolerance → equivalence, tolerance just above measured gap.
- No node on through-edge → split the through-element at the junction node.
- After any repair → re-run edge check, confirm seam is no longer free, re-run quality check on touched elements.
- Tolerance rule → always smaller than the shortest legitimate element edge in the region.
The repair is complete when the seam no longer appears in the free-edge set, the junction node is shared by both shells, and the adjacent elements still pass the quality criteria. Anything short of that is an unresolved T-junction that will surface again at solve time.