Appearance
AS 4100 design-check exports
Alongside the analysis entry points, the WASM bundle exports standalone AS 4100 steel member capacity calculators. Each takes one section/member as JSON and returns its design capacity - independent of solve_model (you supply the design action effects, e.g. M* / N*, yourself and compare).
js
import init, { as4100_phi_ms, as4100_phi_mbx, as4100_phi_nc } from './fem_wasm.js'
await init()
const r = JSON.parse(as4100_phi_ms(JSON.stringify(
{ d: 460, bf: 191, tf: 16, tw: 9.9, z_x: 1610e3, s_x: 1840e3, fyf: 300, fyw: 320 })))
// r.phi_m_sx === 496.8 (kN·m)Units here are NOT SI
Unlike solve_model (raw SI: N, m, Pa), these design functions use engineering units: lengths in mm, section moduli in mm³, second moments in mm⁴ (i_w in mm⁶), stresses in MPa, and they return capacities in kN·m / kN. This matches how steel section tables are published. φ defaults to 0.9.
as4100_phi_ms - section moment capacity (Cl 5.2)
| Input | Meaning |
|---|---|
d, bf, tf, tw | section depth, flange width, flange/web thickness (mm) |
z_x, s_x | elastic / plastic section modulus, major axis (mm³) |
fyf, fyw | flange / web yield stress (MPa) |
| Output | Meaning |
|---|---|
section_class | "compact" | "noncompact" | "slender" |
lambda_s, lambda_sp, lambda_sy | section slenderness + plasticity/yield limits (governing element) |
z_ex | effective section modulus (mm³) |
m_sx, phi_m_sx | nominal / design section moment capacity (kN·m) |
as4100_phi_mbx - member moment capacity, LTB (Cl 5.6)
Inputs: the as4100_phi_ms fields plus i_y (mm⁴), j (mm⁴), i_w (mm⁶, default 0), e/g (MPa, default 200000 / 80000), le_mm (effective length, mm), alpha_m_case, beta_m (default 0), phi (default 0.9).
alpha_m_case: 0 UniformMoment · 1 SimplySupportedUdl · 2 SimplySupportedPointLoad · 3 EndMoments · 4 CantileverUdl.
| Output | Meaning |
|---|---|
m_sx | nominal section moment capacity (kN·m) |
m_o | reference elastic buckling moment (kN·m) |
alpha_s, alpha_m | slenderness / moment-modification factors |
phi_m_bx | design member moment capacity (kN·m) |
as4100_phi_nc - member compression capacity (Cl 6.3)
| Input | Meaning |
|---|---|
area | gross area (mm²) |
r | radius of gyration about the buckling axis (mm) - pass the smaller of rx/ry for the governing axis |
fy | yield stress (MPa) |
kf | form factor (1.0 for compact doubly-symmetric sections) |
alpha_b | compression section constant (0 for hot-rolled UB/UC; Table 6.3.3(1)) |
le_mm | effective length (mm); phi default 0.9 |
| Output | Meaning |
|---|---|
lambda_n | modified member slenderness |
alpha_c | member slenderness reduction factor |
n_s, n_c, phi_n_c | section / nominal member / design compression capacity (kN) |
Validation
Each export is locked to the ASI/OneSteel Design Capacity Tables (see docs/as4100_validation.md), checked from JS in web_demo/tests/as4100_wasm_check.mjs:
| Export | Section | Condition | Calc | Ref |
|---|---|---|---|---|
| φMs | 460UB82.1 | compact | 496.8 | 496 |
| φMbx | 530UB82.0 | Le=5 m, αm=1.0 | 292.3 | 292 |
| φNc | 250UC72.9 | Le=4 m, αb=0 | 1915.9 | 1915 |
Also live: φNt (tension, 0.9·A·fy), φVv (shear, Cl 5.11), and as4100_combined - the Cl 8.3/8.4 M-N interaction utilisation, taking a member's capacities + design actions (m_star_x, n_star, phi_msx, phi_mbx, phi_ncx, phi_ncy, phi_nt, ns, section_class, kf) and returning { phi_m_rx, phi_m_ox, section_util_x, member_util_x, axial_util, util_max }. The Studio's per-member utilisation uses util_max.
Section geometry
These functions need full section geometry (d/bf/tf/tw, Zx, Sx, Iy, J, Iw) which the model sections (a/iyy/izz/j) don't carry - so a design check links a member to its source catalogue section.