Contents
Validation
Examples

Validation / 8 of 10

Plate with a hole

A small circular hole in a plate under tension raises the stress at its edge to three times the nominal value. Kirsch's solution (1898) for this stress concentration is the classic test of how well a solver resolves a stress peak, a harder target than a displacement, which is what the finite element method approximates most accurately.

Plate with a hole: von mises stress on the undeformed shape
24.3 MPa277 MPa
Von Mises stress, undeformed shape. Drawn from the analysis file that Open in KoFEM loads.
Stress-concentration factor Kt; reference Kt = 3 (infinite plate)
Reference KoFEM Difference
3.0000 2.7750 −7.50 %
within ±15 %

Open in KoFEMOpens the solved model in the app.

The problem

𝜎 A A 𝑎 2𝑏 1 2 3 4 5 0 1 2 3 A: 3𝜎 𝑦/𝑎 𝜎𝑥𝑥/𝜎 on 𝑥 = 0
Square plate of half-width b and thickness t, central hole of radius a. Sketch, not to scale.
a1000 mm
b10000 mm
t500 mm
E210 GPa
ν0.3
σ100 MPa
Supportsx = −b face fixed (Ux, Uy, Uz).
Loadσ·2b·t in +x as a force on the x = +b face.
MeasuredPeak element-centre von Mises stress around the hole, divided by σ.

Analytical solution

Take an infinite plate under uniaxial tension σ along x, with a hole of radius a. In polar coordinates (r,θ) about the hole centre, with θ measured from the load direction, Kirsch's solution of the plane elasticity problem gives the hoop stress

σθθ=σ2(1+a2r2)−σ2(1+3a4r4)cos2θ.

On the edge of the hole, r=a, the radial and shear stresses vanish because the surface is free, and

σθθ(a,θ)=σ(1−2cos2θ).

This is largest at θ=±90°, the points A across the load direction, and the stress concentration factor is

Kt=σmaxσ=3.

At θ=0 the edge is in compression, σθθ=−σ, although the plate is pulled. Along the transverse axis the stress decays quickly with the distance from the hole,

σxx(0,y)=σ(1+a22y2+3a42y4),

to 1.22σ at y=2a and 1.04σ at y=4a (figure, right). At the edge it falls steeply, dσxx/dy=−7σ/a.

The solution does not depend on Poisson's ratio, so it holds in plane stress and plane strain alike. A plate of finite half-width b raises Kt slightly; for a/b=0.1, as here, by about 1 % (Peterson's), so Kt=3 is a good reference.

Finite element model

MeshO-grid, 12 rings × 64 around the hole, 1 through t: 768 linear 8-node hexahedra (P1)
Unknowns1,664 nodes, 4,992 degrees of freedom
MaterialLinear elastic, isotropic
SolverKoFEM engine (MFEM), the WebAssembly build the app runs: engine-5ceb743373dd

The O-grid has 12 rings of 64 elements, graded so the rings are thinnest at the hole, with one element through the thickness. KoFEM reports one von Mises stress per element, at its centre; the case takes the largest value in the ring around the hole and divides it by σ. At A the surface is free and the only stress is σθθ, so there the von Mises stress equals σθθ and its peak is 3σ.

Results

Quantitystress-concentration factor Kt
ReferenceKt = 3 (infinite plate) (Kirsch (1898); Timoshenko & Goodier)
KoFEM2.7750
Difference−7.50 % within ±15 %

Discussion

KoFEM's Kt differs from 3 by −7.50 %. Two effects meet here. First, the measured stress is not the stress at the edge but at the centre of the first element, a small distance away, where the stress has already started to fall. Kirsch's solution at that point, r=1031.250a and θ=87.2°, gives a von Mises stress of 2.75σ, 8.4 % below the peak. Even exact element stresses could not reach 3 with this measure.

Second, element stresses carry their own discretisation error. Stress comes from derivatives of the displacement field, so it converges more slowly than the displacement does; here it lands above the exact value at the element centre. The published 2.77 is the net of both. That is why this case has a wider ±15 % band. Treat it as a check that the peak is in the right place and of the right size. To resolve a peak stress in a design, refine the mesh at the stress raiser until the peak stops changing.

Reproduce

In the app: open the model, then Studies → Static 1 → Run static solve, select the result plot and set Field to Ux. The Result summary shows Max Ux 9.688e+0 mm.

From a clone (Node.js 20+, bash, curl), this solves the model with the same engine and prints its line:

git clone https://github.com/mkofler96/KoFEM.git && cd KoFEM
bash scripts/fetch-wasm-engine.sh
node examples/validation/run.mjs --case plate-with-hole
Case                                  Quantity                                  FE   Reference     Err%  Tol%  Status
Plate with a hole                     stress-concentration factor Kt        2.7750      3.0000    -7.50    15  PASS

References

  1. G. Kirsch, “Die Theorie der Elastizität und die Bedürfnisse der Festigkeitslehre”, Zeitschrift des Vereines deutscher Ingenieure 42 (1898) 797–807.
  2. S. P. Timoshenko and J. N. Goodier, Theory of Elasticity, 3rd ed., McGraw-Hill, 1970.
  3. W. D. Pilkey and D. F. Pilkey, Peterson’s Stress Concentration Factors, 3rd ed., Wiley, 2008.

KoFEM is research software and is not certified for safety-critical design. It solves linear-static, linear-elastic problems. Check results that matter against your own references.