Refining until the number stops moving is necessary but nowhere near sufficient. Singularities, stress recovery, picking the right quantity to converge, and knowing when to stop.
“I refined the mesh and the stress converged” is a sentence that makes me twitch, because half the time it means the stress converged to the wrong thing. Either to a quantity that has no business converging at all, or to a number that depends entirely on element size because there’s a singularity hiding in the model. Convergence of a number is not the same as convergence of the number you should be quoting, and the gap between those two is where a lot of bad analysis lives.
Start with singularities, because they’re the trap. A re-entrant corner (a notch with zero fillet radius), a point load, a single-node constraint, a rigid element dumping into a shell, the corner of a bonded interface: in the idealised maths the stress at that point is infinite. The FE can’t draw infinity, so instead the peak climbs every time you halve the element, slowly, monotonically, forever. If you “converge” there you’ve converged to your last element size and nothing else. The energy converges, which is why displacements and reactions look perfectly happy and lull you into trusting the model, but the local stress just keeps going.
At a real, finite-radius feature the peak settles. At a singularity it climbs forever, so "it stopped moving" just means you stopped refining.
A finer mesh never fixes this. What fixes it is one of three things. Put in the fillet that exists in the real part, because sharp corners are a modelling artefact and hardware has a radius; model the radius and the stress goes finite and mesh-convergent. Or smear the load or constraint over the area it actually acts on, swap the single-node SPC for a distributing connection over a realistic footprint. Or read load rather than peak stress at that spot, take the section force or the bolt load (which does converge) into a hand calc with a proper Kt or a fracture parameter. For cracks this is just formalised: you don’t chase the infinite crack-tip stress, you pull K or G out with a J-integral or VCCT method built to be mesh-objective. Refining the crack-tip stress itself is meaningless and I’ve watched people burn a day doing it.
The quantity you refine and watch should be the one that goes into the margin, not whatever the peak element happens to read. If the margin uses a section force or running load, converge that, it settles way faster than peak stress. If it uses a stress at a defined offset (a structural stress a set distance from a weld toe, a stress over a characteristic length per some notch method) then converge that defined quantity, and do it consistently. If it uses a genuine stress-concentration peak at a real finite-radius feature, then sure, converge the peak, but only because the feature is real and the peak is finite.
Richardson extrapolation is a genuinely useful instrument here and underused. 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 actually see how far your finest mesh still is from it. If the sequence won’t settle toward a limit, you’re probably sitting on a singularity. That’s a diagnosis, not a reason to go finer.
Stress recovery is the other diagnostic and it’s faster than re-meshing the whole model. Look at averaged versus unaveraged nodal stresses. The solver computes at integration points and extrapolates to nodes; averaged blends the contributions from elements sharing a node, unaveraged keeps them apart. A big jump between the two 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. It’s local, it’s cheap, and it points you straight at the under-resolved region instead of making you guess.
Couple of related habits while I’m at it. Watch element quality where you care, high aspect ratio and skew and warp and bad Jacobians corrupt the recovered stress regardless of nominal size. Mind element order, linear elements are under-stiff in bending and want more of them through a gradient, quadratic ones resolve a gradient with fewer elements but cost more and behave differently at contact and singularities. And keep the refinement graded, a sudden coarse-to-fine jump brings its own local error.
One more, and it’s the one juniors skip: put something that isn’t FE next to the result before you believe it. A Roark case, net section times a Kt, a beam-theory bending stress. The hand calc won’t be exact but it tells you whether the FE is even in the right postcode. A model that converges beautifully to twice what beam theory says is confidently wrong, and “but it converged” doesn’t get you off the hook for that.
So when I say something is converged I mean the quantity I’m actually using is insensitive to mesh over the range I tested, it’s not sitting on a singularity, the stress recovery is clean there, and it lines up in magnitude with an independent estimate. If I’ve only got the first of those, I’ll say “the number stopped moving” and leave the word converged out of the report, because they aren’t the same claim and a reviewer will rightly call you on it.
esc
✦
Ask my CV
AI
Hi — I answer questions about Berkay's CV, projects and skills.
Türkçe de sorabilirsiniz.