import type { ColumnBucklingInput, ColumnBucklingResult } from './types.js'; /** * Euler elastic critical buckling load of a straight, prismatic, axially loaded column. * * # Formulas * - Effective length: Le = K x L * - Critical load (Euler): Pcr = pi^2 x E x I / Le^2 * - Radius of gyration: r = sqrt(I / A) * - Slenderness ratio: lambda = Le / r * - Critical stress: sigma_cr = Pcr / A * - Transition slenderness (elastic/inelastic boundary, where Euler stress = sigma_y / 2): * Cc = pi x sqrt(2 E / sigma_y) * - Squash (yield) load: Py = A x sigma_y * * Units are SI: E in MPa (= N/mm^2), I in mm^4, A in mm^2, L in mm → Pcr in N, sigma in MPa. * * # The slenderness validity guard (why this matters) * The Euler formula is only physically valid for **slender (long) columns** that buckle * elastically before the material yields — i.e. lambda >= Cc. For **short/stubby columns** * (lambda < Cc) inelastic (Johnson) buckling or plain squashing governs, and raw Euler * **over-predicts the capacity, sometimes enormously** (as lambda → 0, Pcr → infinity). * This function does NOT clamp Pcr — it returns the honest Euler value plus `isElastic`, * so a consumer can flag "short column: Euler over-predicts, inelastic buckling governs" * instead of silently drawing a capacity the column cannot reach. `yieldLoad` (Py = A·σy) * is returned as the reference ceiling for that case. * * # v1 scope (deliberately simple — matches common baseline calculators) * 1. **Elastic Euler only.** Inelastic / Johnson buckling is flagged via `isElastic`, * not computed. A dedicated inelastic Fcr is deferred until demanded. * 2. **Idealized (theoretical) K.** Recommended design K that account for real joint * fixity (e.g. fixed-fixed 0.65) are deferred. * 3. **Concentric axial load, initially straight, prismatic (constant EI) member.** * * Reference: AISC 360 Chapter E; Euler (1744); any mechanics-of-materials text. * * @throws {RangeError} youngsModulus, momentOfInertia, area, length, or yieldStrength * is not positive */ export declare function columnBuckling(input: ColumnBucklingInput): ColumnBucklingResult; //# sourceMappingURL=columnBuckling.d.ts.map