Module: vernastruct.codes.ec5.check_round_timber_beam_ec5
Code basis: EN 1995-1-1 — limit-state design: f_d = k_mod·k_h·f_k/γ_M vs
stresses from ULS loads (EN 1990 combination 1.35G + 1.5Q); SLS deflections
w_inst (L/300) and w_fin = w_inst·(1 + k_def) (L/250). First Eurocode check in
the code-profile abstraction (task 2.1).
Status: ✅ PASS — software matches hand calculation exactly.
A round timber joist assessed to the Eurocode profile — the same physical member type as VC-01, but in the European limit-state format.
| Input | Symbol | Value |
|---|---|---|
| Diameter | d | 200 mm |
| Span | L | 3.50 m |
| Permanent load | g_k | 1.00 kN/m |
| Variable load | q_k | 0.50 kN/m |
| Characteristic bending strength | f_m,k | 16.0 MPa (C16-class) |
| Characteristic shear strength | f_v,k | 1.8 MPa |
| Mean modulus | E_mean | 8.0 GPa |
| Characteristic density | ρ_k | 310 kg/m³ |
| Service class | — | 2 (sheltered exterior — heritage typical) |
| Load-duration class | — | medium (imposed floor/roof load) |
| Partial factor | γ_M | 1.30 (solid timber) |
| Confidence factor | CF | 1.00 (KL3; a KL2 variant is also verified) |
ULS actions (1.35G + 1.5Q):
w_d = 1.35 × 1.00 + 1.5 × 0.50 = 2.1000 kN/m
M_d = w_d L²/8 = 2.10 × 3.5²/8 = 3.215625 kN·m
V_d = w_d L/2 = 3.675 kN
Design stresses (W = πd³/32 = 7.854×10⁻⁴ m³, A = 3.1416×10⁻² m²):
σ_m,d = M_d/W = 4.0943 MPa
τ_d = 4V_d/(3·k_cr·A) = 0.2328 MPa (k_cr = 0.67, EN 1995-1-1 §6.1.7)
Design strengths (k_mod = 0.80 SC2/medium; k_h = 1.0 since d ≥ 150 mm):
f_m,d = 0.80 × 1.0 × 16.0/1.30 = 9.84615 MPa → util 0.41582
f_v,d = 0.80 × 1.8/1.30 = 1.10769 MPa → util 0.14081
SLS (characteristic combination g_k + q_k = 1.5 kN/m; I = 7.854×10⁻⁵ m⁴):
w_inst = 5wL⁴/(384·E·I) = 4.6647 mm ≤ L/300 = 11.6667 mm → util 0.39983
w_fin = w_inst(1 + k_def) = 4.6647 × 1.8 = 8.3964 mm
≤ L/250 = 14.0 mm → util 0.59975 ← governs
KL2 variant (CF = 1.20): f_m,d = 9.84615/1.20 = 8.20513 MPa → util_bending = 0.41582 × 1.20 = 0.49899.
| Quantity | Hand calc | Software | Match |
|---|---|---|---|
| w_d / M_d / V_d | 2.1000 / 3.215625 / 3.675 | same | ✅ exact |
| σ_m,d / τ_d | 4.0943 / 0.2328 MPa | same | ✅ exact |
| f_m,d / f_v,d | 9.84615 / 1.10769 MPa | same | ✅ exact |
| w_inst / w_fin | 4.6647 / 8.3964 mm | same | ✅ exact |
| Governing utilisation | 0.59975 (w_fin) | 0.59975 | ✅ exact |
| KL2: f_m,d | 8.20513 MPa | 8.20513 | ✅ exact |
Final (creep) deflection governs — same engineering conclusion as the NDS path (VC-05), reached through the Eurocode k_def formalism. A good cross-format sanity signal.
Documented conventions: characteristic strengths are explicit inputs (from an EN 338 class or from testing of existing members — VernaStruct does not guess a class); w_fin uses the full characteristic load with k_def (simplified, conservative for dead-load-dominated earth roofs); CF divides characteristic strengths per EN 1998-3 §3.3.
from vernastruct.codes import check_round_timber_beam_ec5
r = check_round_timber_beam_ec5(
d_mm=200.0, span_m=3.5, w_dead_kN_m=1.0, w_live_kN_m=0.5,
f_m_k_MPa=16.0, f_v_k_MPa=1.8, E_mean_GPa=8.0, rho_k_kg_m3=310.0,
service_class=2, load_duration="medium",
)
assert r.ok and abs(r.utilization_max - 0.59975) < 1e-4
Pinned in tests/test_codes.py (test_vc10_*, four
tests covering ULS, strengths, SLS, and the CF variant).
The VC-15 published cross-check (Swedish Wood Vol. 3) caught that this check originally omitted the EN 1995-1-1 §6.1.7 (A1:2008) crack factor k_cr = 0.67 on the shear width — shear utilisation was understated by 1/0.67. τ_d is now computed on A_ef = k_cr·A (parameter, default 0.67, pass 1.0 to disable) and the hand-calc values above were updated. Bending, strengths and deflections are unchanged.
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.