Thick-walled cylinder under internal pressure (Lamé)#

One of the oldest pressure-vessel benchmarks in solid mechanics. A long cylinder with inner radius \(a\), outer radius \(b\), subjected to internal pressure \(p_i\) (no external pressure) develops radial and hoop stress fields that Lamé derived analytically in 1852.

Under the plane-strain assumption (ε_z = 0 — long cylinder with ends restrained):

\[\begin{split}\sigma_r(r) &= \frac{p_i a^{2}}{b^{2} - a^{2}} \Bigl(1 - \frac{b^{2}}{r^{2}}\Bigr), \\ \sigma_\theta(r) &= \frac{p_i a^{2}}{b^{2} - a^{2}} \Bigl(1 + \frac{b^{2}}{r^{2}}\Bigr), \\ u_r(r) &= \frac{p_i\,a^{2}\,r}{E(b^{2}-a^{2})} \Bigl[(1 - \nu - 2\nu^{2}) + \frac{b^{2}(1+\nu)}{r^{2}}\Bigr].\end{split}\]

Radial displacement peaks at the inner surface; hoop stress also peaks there. \(\sigma_r(a) = -p_i\) exactly (the applied pressure, with compression sign convention).

Problem#

Parameter

Value

Inner radius a

0.01 m (10 mm)

Outer radius b

0.02 m (20 mm)

Axial slab thickness

0.001 m (plane-strain model)

Young’s modulus E

210 GPa

Poisson’s ratio ν

0.30

Internal pressure p_i

100 MPa

Expected u_r(a)

9.08 × 10⁻⁶ m

Expected σ_θ(a)

166.7 MPa (tensile)

Expected σ_θ(b)

66.7 MPa (tensile)

femorph-solver result#

Ran by tests/validation/test_lame_cylinder.py on a mapped quarter-annulus hex mesh (SOLID185 kernel). Plane strain is enforced by pinning UZ = 0 on every node of the thin slab; symmetry BCs on the cut x-axis / y-axis planes restore the full annulus.

The internal pressure is lumped onto the inner-surface nodes via trapezoid arc-length weighting, with local nodal accumulation before calling Model.apply_force (the _f_impl path assigns rather than accumulates).

Refinement

Mesh (n_θ × n_r)

u_r(a)

Δ

σ_θ(a)

Δ

Coarse

16 × 4

9.038 × 10⁻⁶ m

−0.45 %

186.0 MPa

+11.58 %

Medium

32 × 8

9.069 × 10⁻⁶ m

−0.12 %

177.6 MPa

+6.57 %

Reference

64 × 16

9.077 × 10⁻⁶ m

−0.03 %

172.5 MPa

+3.51 %

Radial displacement converges to under 0.05 %. The hoop-stress concentration at r = a is harder to resolve on a coarse mesh — the 1/r² gradient is steep near the inner surface — but refines to ~3.5 % at the reference mesh, well inside the 8 % engineering tolerance.

Cross-references#

Source

Reported σ_θ(a) (MPa)

Problem ID / location

Closed form (Lamé 1852)

166.67

Timoshenko & Goodier 1970 §33

Timoshenko & Goodier (1970)

166.67

Theory of Elasticity §33

femorph-solver (refined)

172.5

test_lame_cylinder.py

MAPDL Verification Manual

≈ 166.7

VM-25 Stresses in a long cylinder under internal pressure

Abaqus Verification Manual

≈ 166.7

AVM 1.1.14 thick-walled cylinder family

Source#

Problem class: femorph_solver.validation.problems.LameCylinder.

Backing regression test: tests/validation/test_lame_cylinder.py — convergence study across three mesh refinements asserting all three published quantities (u_r(a), σ_θ(a), σ_θ(b)) pass their tolerances and that u_r converges monotonically.