Finite Element Analysis: When to Trust Your Mesh
Every mechanical engineer eventually runs into the same trap: the solver finishes, the stress plot looks great, and the numbers seem reasonable — but is the result actually converged, or just a pretty picture?
Mesh convergence isn't optional
A mesh that's too coarse can hide stress concentrations entirely, while a mesh that's too fine wastes hours of compute time for no meaningful gain in accuracy. The only reliable way to know where you stand is a convergence study: run the same model at two or three refinement levels and compare the result at your critical location (usually a fillet, hole edge, or contact zone).
If the answer changes by more than a few percent between refinements, you're not converged yet — you're guessing.
Putting a number on convergence
The convergence criterion is just the relative change in the quantity you care about between two refinement levels:
That formula also explains why some peak stresses never converge. Near a sharp re-entrant corner, linear elastic theory predicts the stress grows without bound as the mesh refines, following Williams' asymptotic solution:
where is the distance to the corner tip and depends only on the corner's included angle — for a true 90° re-entrant corner, . A "peak stress" at a mathematically sharp corner isn't a physical quantity at all: it diverges by construction, no matter how good the mesh is. That's the mechanism behind the singularities described below, not just a rule of thumb.
Where FEA lies to you
A few places where a "clean" result can still be wrong:
- Singular stress points. Sharp re-entrant corners in a CAD model produce mathematically infinite stress as mesh density increases. If your peak stress keeps rising every time you refine, you've found a modeling artifact, not a real hotspot.
- Contact definitions. Penalty-based contact can under- or over-constrain a joint depending on stiffness settings, which silently changes your load path.
- Boundary conditions that are too "clean". A perfectly fixed boundary rarely exists in the real part; it's a modeling simplification that can artificially inflate stress right at the constraint.
A practical checklist
Before trusting a result, I always check:
- Convergence at the critical node/element, not just globally.
- Reaction forces sum to the applied load (a quick sanity check that catches unit or constraint mistakes).
- Deformed shape looks physically plausible before looking at the stress values at all.
In practice, this is just a loop you run once per new geometry, halving the element size at the critical location until the error metric from the formula above drops under a chosen tolerance:
function CHECK_CONVERGENCE(model, location, tol):
h ← h0 # initial element size
sigma_prev ← null
loop:
mesh(model, h)
sigma ← solve(model)[location]
if sigma_prev is not null:
eps ← abs(sigma - sigma_prev) / sigma
if eps < tol:
return sigma, h # converged
sigma_prev ← sigma
h ← h / 2 # refine and repeat
Case study — bracket redesign, gripper support arm
A support bracket for a pneumatic gripper kept failing peer review because its FEA report showed 410 MPa at a mounting hole — above the material's yield strength. Refining the mesh at that hole revealed the stress kept climbing with every refinement: a classic singularity from a zero-radius corner in the CAD import, not a real failure mode.
Adding the actual manufactured fillet (1.5 mm, matching the drawing) and re-running the convergence study brought the peak stress down to a stable 187 MPa across three mesh densities — comfortably under yield, and consistent with the part's field performance. The lesson wasn't "the simulation was wrong," it was that the CAD didn't match the part being simulated.
None of this replaces engineering judgment — it just means you're less likely to sign off on a part because a colorful contour plot happened to look convincing.