← All posts

November 15, 2024 · 4 min read

Mesh convergence is not a checkbox

Refining until the number stops moving is necessary, not sufficient. Singularities, stress recovery, the right quantity to converge, and knowing where to stop.

“I refined the mesh and the stress converged.” Sometimes true. Often it means the stress converged to the wrong thing — to a quantity that has no business converging, or to a number that depends entirely on element size because there is a singularity hiding in the model. Convergence of a number is not convergence of the number you should be using.

Singularities don’t converge — they diverge politely

A re-entrant corner (a notch with zero fillet radius), a point load, a single-node constraint, a rigid element terminating into a shell, the corner of a bonded interface: in the idealised math the stress at that point is infinite. The FE solution can’t show infinity, so instead the peak stress climbs every time you halve the element — slowly, monotonically, forever. If you “converge” there you have converged to your last element size, not to physics. The energy converges (which is why displacements and reactions look fine); the local stress does not.

The fix is never a finer mesh. It is one of:

  • Put in the fillet that exists in the real part. Sharp corners are a modelling artefact; hardware has a radius. Model the radius and the stress is finite and mesh-convergent.
  • Smear the load or the constraint. Spread a point load over the area it actually acts on; replace a single-node SPC with a distributing connection over a realistic footprint.
  • Read load, not peak stress, at that location. At a true singularity the honest quantity is the section force or the bolt load, which does converge. Take that into a hand calc with a proper Kt or a fracture parameter.

For cracks the same idea is formalised: you don’t chase the (infinite) crack-tip stress, you extract K or G by a J-integral / VCCT method that is designed to be mesh-objective. Refining the crack-tip stress itself is meaningless.

Converge the right quantity

The thing to refine and watch is the quantity that goes into the margin, not the raw peak element value:

  • If the margin uses a section force or running load, converge that — it stabilises far faster than peak stress.
  • If it uses a stress at a defined offset (e.g. a structural stress a small distance from a weld toe, or a stress over a characteristic length per a notch method), converge that defined quantity, consistently.
  • If it uses a stress-concentration peak at a real, finite-radius feature, then yes, converge the peak — but only because the feature is genuine and the peak is finite.

A useful instrument is Richardson extrapolation: run three systematically refined meshes, and if the result is converging at the expected rate, you can extrapolate to the zero-element-size limit and see how far your finest mesh still is from it. If the sequence isn’t settling toward a limit, you are probably sitting on a singularity — that’s the diagnosis, not a reason to mesh finer.

Stress recovery tells you if the mesh resolves the gradient

Check averaged vs unaveraged nodal stresses. The solver computes stress at integration points and extrapolates to nodes; averaged stresses blend the contributions from elements sharing a node, unaveraged keep them separate. A large gap between the two — a noticeable jump from element to element across a shared node — means the mesh is too coarse to resolve the gradient there, and the averaging is papering over it. A small gap means the field is well-resolved and you can trust the recovered stress. This is a faster, more local convergence diagnostic than re-meshing the whole model, and it points you straight at the under-resolved region.

A few related habits:

  • Watch element quality in the region you care about — high aspect ratio, skew, warp, and bad Jacobians corrupt the recovered stress regardless of nominal size.
  • Mind element order: linear elements under-stiff in bending and need more of them through a gradient; quadratic elements resolve gradients with fewer elements but cost more per element and behave differently at contact and singularities.
  • Keep the refinement graded — a sudden coarse-to-fine jump introduces its own local error.

Compare to something that isn’t FE

Converging to the wrong order of magnitude is still wrong. Before believing a refined result, put a hand calc or a closed-form estimate next to it — a Roark case, a net-section stress times a Kt, a beam-theory bending stress. The hand calc won’t be exact, but it tells you whether the FE is in the right postcode. A model that converges beautifully to a number twice what beam theory says is not converged; it is confidently wrong.

The honest statement

“Converged” should mean: the quantity I am using in substantiation is insensitive to mesh over the refinement range I actually tested, it is not sitting on a singularity, the stress recovery is clean there, and it agrees in magnitude with an independent estimate. Anything short of that is a screenshot of a number that stopped moving — not an analysis.