Finite Element Analysis: When to Trust Your Mesh

FEAAbaqusSimulation

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:

εi=σiσi1σi×100%\varepsilon_i = \left| \frac{\sigma_i - \sigma_{i-1}}{\sigma_i} \right| \times 100\%

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:

σ(r)rλ\sigma(r) \propto r^{-\lambda}

where rr is the distance to the corner tip and λ\lambda depends only on the corner's included angle — for a true 90° re-entrant corner, λ0.5\lambda \approx 0.5. 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.

Figure 1 — convergence_study.fig
5k 20k 80k 320k Number of elements 240 260 280 Peak stress (MPa) asymptote ≈ 284 MPa
Peak stress at the fillet root as mesh density increases — the curve flattens once the discretization error is small compared to the modeling error.
Peak stress vs. mesh refinement (fillet root)
Coarse Medium Fine Finer 241 MPa 268 MPa 281 MPa 284 MPa
The last two refinements agree within ~1% — that's what real convergence looks like, not a single "clean" run.

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:

  1. Convergence at the critical node/element, not just globally.
  2. Reaction forces sum to the applied load (a quick sanity check that catches unit or constraint mistakes).
  3. 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.