Validation/Solid stress
Plate with a hole
The stress concentration factor of three, and a four-mesh study separating a coarse mesh from a finite plate — two explanations one run could not tell apart.
Why this case
A plate pulled in one direction with a circular hole in it has an exact elastic answer — Kirsch (1898) — and the number everybody knows from it is three: the stress at the edge of the hole, across the loading direction, is three times the stress far away. It is the most quoted result in stress analysis and the first thing a structural engineer will check a new tool against.
Like the shock tube, the reference is an equation rather than an experiment, so there is no measurement uncertainty to hide behind.
| Physics | Linear elastic, small strain, plane strain |
|---|---|
| Solver | Segregated finite-volume displacement |
| Reference | Kirsch, G. (1898), Zeitschrift des Vereines deutscher Ingenieure 42, 797–807 |
| Agreement | Peak stress converges through 3S; far field within 0.5 % |
| Reproduce | Worked examples → Solid stress on the plate body → Generate mesh → Run |
The problem
A quarter of a square plate, 2 m on a side, with a quarter of a circular hole of radius 0.5 m at the corner. The two cut faces are symmetry planes, so the quarter stands for the whole. The far edge is pulled at 10 kPa; the top edge and the hole are free.
Geometry
free
┌───────────────────────┐
│ │
sym │ │ ← pulled, S = 10 kPa
│ ╲ │
│ ╲___ │
└──────┴────────────────┘
hole sym
a = 0.5 m, plate half-width 2 mSteel: E = 200 GPa, ν = 0.3, plane strain.
The exact solution
For an infinite plate under remote tension S, the stress across the loading direction, on the transverse axis through the hole centre, is
σ(r) = (S/2) [ 2 + (a/r)² + 3 (a/r)⁴ ]
At the hole edge, r = a, this gives σ = 3S — the stress concentration factor of three. It decays quickly: by r = 3a the stress is within 7 % of S.
Results

Away from the hole the computed stress follows the Kirsch curve closely; near the hole it sits above it, which is what a finite plate should do.
| r / a | Ours (Pa) | Kirsch (Pa) | Difference |
|---|---|---|---|
| 1.07 | 31 266 | 25 642 | +21.9 % |
| 1.37 | 19 390 | 16 875 | +14.9 % |
| 1.67 | 15 283 | 13 705 | +11.5 % |
| 1.97 | 13 332 | 12 278 | +8.6 % |
| 2.27 | 12 164 | 11 533 | +5.5 % |
| 2.61 | 11 237 | 11 058 | +1.6 % |
| 2.76 | 10 866 | 10 915 | −0.45 % |
Mesh refinement, and what it separates
A single run cannot tell a coarse mesh from a finite plate. Both raise the same question and only one of them goes away when the mesh is refined.
| Mesh | Cells | First cell at r/a | Peak von Mises | vs 3S |
|---|---|---|---|---|
| ×1 | 1 000 | 1.073 | 27 033 Pa | −9.9 % |
| ×2 | 4 000 | 1.032 | 29 065 Pa | −3.1 % |
| ×4 | 16 000 | 1.013 | 30 318 Pa | +1.1 % |
| ×8 | 64 000 | 1.003 | 31 033 Pa | +3.4 % |
The peak rises monotonically, passes through 3S = 30 000 Pa between the 4 000 and 16 000 cell meshes, and settles a few per cent above it.
That is the answer, and it is two answers. On the coarse mesh the peak was nearly ten per cent below the textbook figure, and it would have been easy to read that as the software being wrong. It was under-resolution: the stress gradient at the hole is steep and the first cell centre sat 7 % of a radius away from the edge, where the exact stress is already well below its peak. Refining moves the first cell to within 0.3 % of the edge and the peak appears.
Once resolved, the peak does not converge to 3S — it goes past it. That remainder is the finite width of the plate, and it is physics rather than error: an infinite sheet is a different problem from a 2 m one with a 0.5 m hole.
What this case settles
Before this study, the only stress number we had was the peak from the coarse mesh — 27 033 Pa against the textbook 30 000 — recorded with an explicit note that nothing established whether the gap was discretisation, the finite-width correction, or a defect.
It was the first, and the third was never in it. Four meshes answer a question that one mesh could only pose.
Reproducing this
- Worked examples, choose the plate body with Solid stress
- Generate mesh, then Run
- The exact solution is evaluated from the formula above rather than read from a table, so there is nothing to mistype.
Repeat this yourself
Every case here is set up from the worked examples in the product, with no hand-editing of solver files — so you can run it, and get the same numbers. The free tier runs real cases up to 250,000 cells of fluids, or 100,000 nodes of solid, with no account needed to download and no time limit.
Other cases
- Cantilever beamThe first published-reference case for the structural backend — and the one that found the peak stress at a re-entrant corner does not converge at all, which is why this page validates a deflection and says plainly why it does not validate a stress.
- Sod shock tubeThe exact Riemann solution, compared point by point. It found a defect nobody had noticed: the solver was using the wrong ratio of specific heats.
- Turbulent plane channelThe only case here that tests turbulence modelling, against a DNS rather than an experiment — and it measures what a badly placed first cell costs you.
All validation cases · Written by the team building SHD Sim.