Cylindrical Shell Buckling (structures/fem/cylindrical-shell-buckling)
Use when the task is the elastic stability of a curved, unstiffened
circular cylindrical shell (fuselage barrel, pressure-vessel or tank
shell, duct) under axial compression or bending. This leaf implements
the NASA SP-8007 empirical knockdown method ("Buckling of Thin-Walled
Circular Cylinders", 1968 original / 2023 NTRS revision 20205011530,
public domain): the axial knockdown factor gamma_axial from the shell
radius r and thickness t, the axial critical stress, the bending
knockdown factor gamma_bending, the bending critical moment, the
cross-section ovalization collapse moment, and the plasticity
correction factor eta. It pairs with the flat-panel leaf
structures/fem/plate-buckling, which explicitly defers the curved case
here, and with structures/fem/buckling-analysis for slender straight
members. The SP-8007 knockdowns are empirical fits for thin shells with
r/t below about 1500; the classical stress terms are elastic, so the
plasticity correction eta is reported separately and applied by the
user when the material is beyond its proportional limit.
Domain quick reference
- Curvature parameter: phi = (1/16)*sqrt(r/t). It sets the knockdown
sensitivity: very thin shells (large r/t) carry larger knockdowns.
- Axial knockdown factor: gamma_axial = 1 - 0.901*(1 - exp(-phi)),
monotonic decreasing in r/t and always in (0, 1).
- Axial critical stress: sigma_cr = 0.605gamma_axialEt/r, where the
0.605 coefficient is the classical value 1/sqrt(3(1-nu^2)) at
nu = 0.3.
- Bending knockdown factor: gamma_bending = 1 - 0.731*(1 - exp(-phi)).
- Bending critical moment: M_cr = pi0.605gamma_bendingEt*2r. The
axial critical stress acts over the full wall section (area pirt)
at the extreme-fiber arm r, giving M = sigma_cr*(pirt)*r.
- Ovalization collapse moment: M_ov = 0.987Er*t2/sqrt(1-nu2),
the Brazier-style collapse of the cross section under bending.
- Governing verdict: "bifurcation" when M_cr < M_ov, else
"ovalization". SP-8007 notes the bending bifurcation precedes
collapse for shells in the validity band.
- Plasticity correction: eta = sqrt(E_sec*E_tan)/E with the secant and
tangent moduli at the acting stress; eta = 1 in the elastic range.
- SI units throughout: m, Pa, N*m.
- Validity guard: r/t must be below 1500 for the empirical knockdowns.
Workflow
- Fix the geometry and material: radius_m, thickness_m, e_mod_pa and
the Poisson ratio (default 0.3). Confirm r/t < 1500.
- Get the knockdown factors: knockdown_axial and knockdown_bending,
or read gamma_axial and gamma_bending from
shell_buckling_assessment.
- Compute the axial critical stress with axial_critical_stress
(gamma defaults to the internal axial knockdown).
- Compute the bending critical moment with bending_critical_moment
(gamma defaults to the internal bending knockdown).
- Compute the ovalization collapse moment with
ovalization_collapse_moment.
- When the material may be beyond the proportional limit, pass the
secant and tangent moduli to plasticity_correction and scale the
elastic margins by eta (SP-8007 stresses are elastic).
- Run shell_buckling_assessment for the full dict including the
governing verdict between bifurcation and ovalization collapse.
- Confirm the deterministic checks with the contract test
scripts/test_cylindrical_shell_buckling.py.
Worked example
Aluminum barrel: E = 70 GPa, r = 1.5 m, t = 0.005 m (r/t = 300),
nu = 0.3. Real module outputs:
- curvature_parameter = 1.0825 (sqrt(300)/16).
- gamma_axial = 0.4042, in the 0.35-0.45 bound.
- sigma_cr_axial = 57.06 MPa, in the 50-65 MPa bound.
- gamma_bending = 0.5166, in the 0.45-0.60 bound.
- M_cr_bending = 2.578 MNm, in the 2.2-3.0 MNm bound.
- M_cr_ovalization = 2.716 MNm, in the 2.4-3.1 MNm bound.
- Governing: "bifurcation" (bending bifurcation moment below the
ovalization collapse).
- Check geometry r = 1.0 m, t = 0.01 m (r/t = 100): gamma_axial =
0.5813 and gamma_bending = 0.6603; the same barrel at r/t = 1600
raises ValueError on the 1500 validity guard.
- eta_plasticity = 1.0 when E_sec = E_tan = E.
The bending knockdown is higher than the axial one at equal r/t, so
the bending critical moment sits above the axial stress level scaled
by the full section; the ovalization collapse is the cross-section
limit that bifurcation must beat to be governing.
Pitfalls
- Using the knockdowns outside the validity band: the SP-8007
empirical fits hold for r/t below about 1500, and every
geometry-dependent function raises ValueError at r/t >= 1500 -
including the exact boundary.
- Reading the bending moment as a stress: M_cr scales as
gamma_bending * E * t^2 * r over the full wall section while the
axial case is a stress 0.605 * gamma * E * t / r; comparing the two
critical quantities across units invites a wrong governing
verdict.
- Assuming bifurcation always governs: the verdict is
"ovalization" when the Brazier collapse moment M_ov falls below
the bending bifurcation moment; the worked barrel is
"bifurcation", but thicker or softer shells can flip it.
- Applying the plasticity correction twice: the classical stress
terms are elastic and eta (sqrt(E_sec E_tan)/E, unity at
E_sec = E_tan = E) is reported for the user to apply; scaling the
elastic margin by eta once is the intended use.
- Confusing this geometric knockdown with material knockdowns:
gamma_axial and gamma_bending come from r/t geometry; the strength
reduction factors of composites/cmh17-allowables are material
factors for fiber-reinforced laminates.
- Treating the unstiffened barrel as a stiffened fuselage: this leaf
covers the curved UNSTIFFENED shell; stiffened pressurized
fuselage modeling belongs to
vehicle-design/structures-integration/fuselage-skin-stringer.
Verification
- Confirm curvature_parameter(1.5, 0.005) = 1.0825 and gamma_axial in
the 0.35-0.45 band, sigma_cr in the 50-65 MPa band, M_cr_bending in
the 2.2-3.0 MNm band, M_cr_ovalization in the 2.4-3.1 MNm band,
and the governing verdict "bifurcation".
- Confirm gamma_axial(1.0, 0.01) = 0.5813 and gamma_bending(1.0,
0.01) = 0.6603 (r/t = 100).
- Confirm both knockdown factors stay in (0, 1) and decrease
monotonically as r/t grows.
- Confirm the identities sigma_cr = 0.605gammaEt/r and
M_ov = 0.987Ert2/sqrt(1-nu2) hold exactly, and eta = 1.0 at
E_sec = E_tan = E.
- Confirm non-positive radius, thickness or modulus, nu outside
(-1, 1), an out-of-range explicit gamma, and r/t >= 1500 all raise
ValueError.
- Deterministic: no RNG, identical float results run to run.
- Run the contract test offline: python3
scripts/test_cylindrical_shell_buckling.py (34 tests).
Related leaves
- structures/fem/buckling-analysis: straight slender members under
Euler-style compression; this leaf covers the curved shell instead.
- structures/fem/plate-buckling: flat plate and skin panel buckling;
it defers the curved unstiffened shell case to this leaf.
- structures/thermal-structures/thermal-buckling: restrained flat
panels under thermal load.
- vehicle-design/structures-integration/fuselage-skin-stringer: the
stiffened pressurized fuselage model; this leaf covers the
unstiffened curved barrel.
- structures/composites/cmh17-allowables: material strength reduction
factors for fiber-reinforced laminates; the knockdown here is
geometric, that leaf's is material.
Behavior contract (gate 3)
Run the deterministic contract test (stdlib unittest, offline):
python3 scripts/test_cylindrical_shell_buckling.py
The 34 tests cover the worked example within the spec magnitude
bounds, the r/t = 100 knockdown values, unit-interval and monotonicity
properties of both knockdown factors, closed-form knockdown identity,
ValueError rejection of non-positive geometry/modulus, out-of-range nu,
the r/t >= 1500 validity guard (including the exact boundary) on every
geometry-dependent function and on the assessment dict, the explicit
and default-gamma identities for the axial stress and bending moment,
the exact ovalization formula, the plasticity correction (elastic and
half-modulus cases plus scale invariance and ValueError), run-to-run
determinism, and the assessment dict key and eta contract.
Compliance
- Standards referenced, not reproduced: NASA SP-8007 (public domain;
named in the body with the pinned coefficients and the r/t validity
band, paraphrased) and FAR-25 airframe loads context per
standards-map.yaml. No proprietary handbook text is reproduced.
- compliance: STANDARDS-REF, gated: false.
1---2name: cylindrical-shell-buckling3description: Use when you must compute the buckling of a curved unstiffened circular cylindrical shell with the NASA SP-8007 knockdown method: the axial-compression knockdown factor from the shell radius and thickness, the axial critical buckling stress 0.605*gamma*E*t/r, the bending knockdown factor, the bending critical moment, the cross-section ovalization collapse moment, and the plasticity correction factor. Produces the knockdown factors, the critical stress and moments, and the governing verdict between bifurcation and ovalization collapse for a curved-shell stability check. Trigger: cylindrical shell buckling, SP-8007 knockdown, shell axial compression, cylinder bending, ovalization collapse, curved panel stability, fuselage barrel buckling.4license: Apache-2.05---67# Cylindrical Shell Buckling (structures/fem/cylindrical-shell-buckling)89Use when the task is the elastic stability of a curved, unstiffened10circular cylindrical shell (fuselage barrel, pressure-vessel or tank11shell, duct) under axial compression or bending. This leaf implements12the NASA SP-8007 empirical knockdown method ("Buckling of Thin-Walled13Circular Cylinders", 1968 original / 2023 NTRS revision 20205011530,14public domain): the axial knockdown factor gamma_axial from the shell15radius r and thickness t, the axial critical stress, the bending16knockdown factor gamma_bending, the bending critical moment, the17cross-section ovalization collapse moment, and the plasticity18correction factor eta. It pairs with the flat-panel leaf19structures/fem/plate-buckling, which explicitly defers the curved case20here, and with structures/fem/buckling-analysis for slender straight21members. The SP-8007 knockdowns are empirical fits for thin shells with22r/t below about 1500; the classical stress terms are elastic, so the23plasticity correction eta is reported separately and applied by the24user when the material is beyond its proportional limit.2526## Domain quick reference2728- Curvature parameter: phi = (1/16)*sqrt(r/t). It sets the knockdown29 sensitivity: very thin shells (large r/t) carry larger knockdowns.30- Axial knockdown factor: gamma_axial = 1 - 0.901*(1 - exp(-phi)),31 monotonic decreasing in r/t and always in (0, 1).32- Axial critical stress: sigma_cr = 0.605*gamma_axial*E*t/r, where the33 0.605 coefficient is the classical value 1/sqrt(3*(1-nu^2)) at34 nu = 0.3.35- Bending knockdown factor: gamma_bending = 1 - 0.731*(1 - exp(-phi)).36- Bending critical moment: M_cr = pi*0.605*gamma_bending*E*t**2*r. The37 axial critical stress acts over the full wall section (area pi*r*t)38 at the extreme-fiber arm r, giving M = sigma_cr*(pi*r*t)*r.39- Ovalization collapse moment: M_ov = 0.987*E*r*t**2/sqrt(1-nu**2),40 the Brazier-style collapse of the cross section under bending.41- Governing verdict: "bifurcation" when M_cr < M_ov, else42 "ovalization". SP-8007 notes the bending bifurcation precedes43 collapse for shells in the validity band.44- Plasticity correction: eta = sqrt(E_sec*E_tan)/E with the secant and45 tangent moduli at the acting stress; eta = 1 in the elastic range.46- SI units throughout: m, Pa, N*m.47- Validity guard: r/t must be below 1500 for the empirical knockdowns.4849## Workflow50511. Fix the geometry and material: radius_m, thickness_m, e_mod_pa and52 the Poisson ratio (default 0.3). Confirm r/t < 1500.532. Get the knockdown factors: knockdown_axial and knockdown_bending,54 or read gamma_axial and gamma_bending from55 shell_buckling_assessment.563. Compute the axial critical stress with axial_critical_stress57 (gamma defaults to the internal axial knockdown).584. Compute the bending critical moment with bending_critical_moment59 (gamma defaults to the internal bending knockdown).605. Compute the ovalization collapse moment with61 ovalization_collapse_moment.626. When the material may be beyond the proportional limit, pass the63 secant and tangent moduli to plasticity_correction and scale the64 elastic margins by eta (SP-8007 stresses are elastic).657. Run shell_buckling_assessment for the full dict including the66 governing verdict between bifurcation and ovalization collapse.678. Confirm the deterministic checks with the contract test68 scripts/test_cylindrical_shell_buckling.py.6970## Worked example7172Aluminum barrel: E = 70 GPa, r = 1.5 m, t = 0.005 m (r/t = 300),73nu = 0.3. Real module outputs:7475- curvature_parameter = 1.0825 (sqrt(300)/16).76- gamma_axial = 0.4042, in the 0.35-0.45 bound.77- sigma_cr_axial = 57.06 MPa, in the 50-65 MPa bound.78- gamma_bending = 0.5166, in the 0.45-0.60 bound.79- M_cr_bending = 2.578 MN*m, in the 2.2-3.0 MN*m bound.80- M_cr_ovalization = 2.716 MN*m, in the 2.4-3.1 MN*m bound.81- Governing: "bifurcation" (bending bifurcation moment below the82 ovalization collapse).83- Check geometry r = 1.0 m, t = 0.01 m (r/t = 100): gamma_axial =84 0.5813 and gamma_bending = 0.6603; the same barrel at r/t = 160085 raises ValueError on the 1500 validity guard.86- eta_plasticity = 1.0 when E_sec = E_tan = E.8788The bending knockdown is higher than the axial one at equal r/t, so89the bending critical moment sits above the axial stress level scaled90by the full section; the ovalization collapse is the cross-section91limit that bifurcation must beat to be governing.929394## Pitfalls9596- Using the knockdowns outside the validity band: the SP-800797 empirical fits hold for r/t below about 1500, and every98 geometry-dependent function raises ValueError at r/t >= 1500 -99 including the exact boundary.100- Reading the bending moment as a stress: M_cr scales as101 gamma_bending * E * t^2 * r over the full wall section while the102 axial case is a stress 0.605 * gamma * E * t / r; comparing the two103 critical quantities across units invites a wrong governing104 verdict.105- Assuming bifurcation always governs: the verdict is106 "ovalization" when the Brazier collapse moment M_ov falls below107 the bending bifurcation moment; the worked barrel is108 "bifurcation", but thicker or softer shells can flip it.109- Applying the plasticity correction twice: the classical stress110 terms are elastic and eta (sqrt(E_sec E_tan)/E, unity at111 E_sec = E_tan = E) is reported for the user to apply; scaling the112 elastic margin by eta once is the intended use.113- Confusing this geometric knockdown with material knockdowns:114 gamma_axial and gamma_bending come from r/t geometry; the strength115 reduction factors of composites/cmh17-allowables are material116 factors for fiber-reinforced laminates.117- Treating the unstiffened barrel as a stiffened fuselage: this leaf118 covers the curved UNSTIFFENED shell; stiffened pressurized119 fuselage modeling belongs to120 vehicle-design/structures-integration/fuselage-skin-stringer.121## Verification122123- Confirm curvature_parameter(1.5, 0.005) = 1.0825 and gamma_axial in124 the 0.35-0.45 band, sigma_cr in the 50-65 MPa band, M_cr_bending in125 the 2.2-3.0 MN*m band, M_cr_ovalization in the 2.4-3.1 MN*m band,126 and the governing verdict "bifurcation".127- Confirm gamma_axial(1.0, 0.01) = 0.5813 and gamma_bending(1.0,128 0.01) = 0.6603 (r/t = 100).129- Confirm both knockdown factors stay in (0, 1) and decrease130 monotonically as r/t grows.131- Confirm the identities sigma_cr = 0.605*gamma*E*t/r and132 M_ov = 0.987*E*r*t**2/sqrt(1-nu**2) hold exactly, and eta = 1.0 at133 E_sec = E_tan = E.134- Confirm non-positive radius, thickness or modulus, nu outside135 (-1, 1), an out-of-range explicit gamma, and r/t >= 1500 all raise136 ValueError.137- Deterministic: no RNG, identical float results run to run.138- Run the contract test offline: python3139 scripts/test_cylindrical_shell_buckling.py (34 tests).140141## Related leaves142143- structures/fem/buckling-analysis: straight slender members under144 Euler-style compression; this leaf covers the curved shell instead.145- structures/fem/plate-buckling: flat plate and skin panel buckling;146 it defers the curved unstiffened shell case to this leaf.147- structures/thermal-structures/thermal-buckling: restrained flat148 panels under thermal load.149- vehicle-design/structures-integration/fuselage-skin-stringer: the150 stiffened pressurized fuselage model; this leaf covers the151 unstiffened curved barrel.152- structures/composites/cmh17-allowables: material strength reduction153 factors for fiber-reinforced laminates; the knockdown here is154 geometric, that leaf's is material.155156## Behavior contract (gate 3)157158Run the deterministic contract test (stdlib unittest, offline):159160 python3 scripts/test_cylindrical_shell_buckling.py161162The 34 tests cover the worked example within the spec magnitude163bounds, the r/t = 100 knockdown values, unit-interval and monotonicity164properties of both knockdown factors, closed-form knockdown identity,165ValueError rejection of non-positive geometry/modulus, out-of-range nu,166the r/t >= 1500 validity guard (including the exact boundary) on every167geometry-dependent function and on the assessment dict, the explicit168and default-gamma identities for the axial stress and bending moment,169the exact ovalization formula, the plasticity correction (elastic and170half-modulus cases plus scale invariance and ValueError), run-to-run171determinism, and the assessment dict key and eta contract.172173## Compliance174175- Standards referenced, not reproduced: NASA SP-8007 (public domain;176 named in the body with the pinned coefficients and the r/t validity177 band, paraphrased) and FAR-25 airframe loads context per178 standards-map.yaml. No proprietary handbook text is reproduced.179- compliance: STANDARDS-REF, gated: false.