VernaStruct
VernaStruct
Verification Manual
Manual index vernastruct.com

VC-09 — Steel Beam Lateral-Torsional Buckling (AISC 360-16 §F2)

Module: vernastruct.analysis.steel.ltb_nominal_moment (+ check_steel_beam_lrfd(Lb_m=…)) Code basis: AISC 360-16 §F2 (doubly symmetric compact I-shapes), formulas as summarized in the NCEES FE Reference Handbook 10.4. Section constants from published EC3 hot-rolled tables (eurocodeapplied.com / ArcelorMittal). Status: ✅ PASS — software matches hand calculation exactly.


1. Problem statement

The VC-02 beam (IPE200, S355, 5.0 m span, D = 0.20 + L = 0.15 t/m² on a 1.5 m tributary) — but with the compression flange braced only every Lb = 3.0 m instead of continuously by the deck.

Section constant (IPE200) Value Source
Sx (elastic) 194.3 cm³ library (v6 parity)
Zx (plastic) 220.6 cm³ EC3 tables
Iy (weak axis) 142.3 cm⁴ EC3 tables
J (torsion) 6.98 cm⁴ EC3 tables
tf 8.5 mm EC3 tables

Derived: ry = √(Iy/A) = 22.345 mm; ho = h − tf = 191.5 mm; Cw ≈ Iy·ho²/4 = 1.3046×10¹⁰ mm⁶ (within ~3% of the tabulated warping constant — documented approximation); rts = √(√(Iy·Cw)/Sx) = 26.481 mm.

2. Hand calculation (Fy = 355 MPa, E = 200 GPa, Cb = 1.0)

Zone limits:

Lp = 1.76·ry·√(E/Fy) = 1.76 × 22.345 × 23.7357 = 933.5 mm = 0.9335 m
X  = J/(Sx·ho) = 69 800/37 208 450 = 1.8759e-3
Lr = 1.95·rts·(E/0.7Fy)·√(X + √(X² + 6.76(0.7Fy/E)²)) = 3.1133 m

Lb = 3.0 m → inelastic zone (Lp < Lb ≤ Lr):

Mp      = Fy·Zx = 355 × 220 600  = 78.313 kN·m
0.7FySx = 248.5 × 194 300        = 48.284 kN·m
Mn = Mp − (Mp − 0.7FySx)·(Lb−Lp)/(Lr−Lp)
   = 78.313 − 30.029 × 0.94800   = 49.844 kN·m
φMn = 0.9 × min(Mn, Fy·Sx)       = 44.860 kN·m      (28% below braced 62.079)
util = Mu/φMn = 22.889/44.860    = 0.51023 → PASS

Boundary checks: Lb = 0.5 m ≤ Lp → braced, Mn = Mp (then first-yield cap governs → φMn = 62.079, identical to VC-02). Lb = 4.0 m > Lr → elastic: Fcr = π²E/(Lb/rts)²·√(1+0.078X(Lb/rts)²) = 180.20 MPa → Mn = 35.013 kN·m.

3. Results comparison

Quantity Hand calc Software Match
Lp 0.9335 m 0.9335 m
Lr 3.1133 m 3.1133 m
Mn (Lb = 3.0, inelastic) 49.844 kN·m 49.844 kN·m
φMn (Lb = 3.0) 44.860 kN·m 44.860 kN·m
Mn (Lb = 4.0, elastic) 35.013 kN·m 35.013 kN·m
φMn (Lb = 0, braced) 62.0789 kN·m 62.0789 kN·m ✅ (VC-02 unchanged)

Design conventions (documented): bending capacity remains capped at first yield Fy·Sx (conservative vs AISC Mp — preserves v6 parity and VC-02); Cb = 1.0 (uniform-moment conservative default; the true UDL value ≈ 1.14); Lb = 0 means "continuously braced by the roof deck" — the previous implicit assumption, now an explicit, reportable input. Sections without published Zx/Iy/J/tf (the heritage 10×10 square, UB254x146x43 pending Blue Book data) refuse an Lb > 0 check rather than guessing.

4. Reproducing this check

from vernastruct.core.sections import default_library
from vernastruct.analysis.steel import check_steel_beam_lrfd

r = check_steel_beam_lrfd(
    section=default_library().get_steel("IPE200"),
    span_m=5.0, D_ton_per_m2=0.20, L_ton_per_m2=0.15,
    tributary_width_m=1.5, Fy_MPa=355.0,
    Lb_m=3.0,
)
assert r.ltb_zone == "inelastic" and r.ok

Pinned as tests/test_verification_cases.py::test_vc09_steel_ltb.


Every case in this manual is pinned as an automated regression test that runs on every build — no future change can silently break a verified result. © 2026 Hesham Salama.