VernaStruct
VernaStruct
Verification Manual
Manual index vernastruct.com

VC-01 — Round Timber Joist: Bending, Shear, Deflection

Module: vernastruct.analysis.timber.check_round_timber_beam Code basis: NDS (National Design Specification for Wood Construction), allowable-stress format, as implemented for heritage athel-timber roof joists. Status: ✅ PASS — software matches hand calculation exactly.


1. Problem statement

A simply-supported round athel-timber joist spans between two masonry walls in a traditional roof, carrying a uniformly distributed service (unfactored) load.

Input Symbol Value
Trunk diameter d 150 mm
Span L 2.50 m
Service UDL w 0.060 t/m
Material Athel (Traditional Heritage)
Modulus of elasticity E 7.5 GPa
Allowable bending stress f_b 7.0 MPa
Allowable shear stress f_v 0.9 MPa
Load duration factor C_D 0.9
Moisture factor C_M 1.0
Size factor C_F 1.0
Creep (long-term) multiplier k_cr 2.0
Deflection limit (SLS) L / 360
Deflection limit (long-term) L / 240

Unit convention: 1 tonne-force = 9.80665 kN (matches core.units.TON_TO_KN).

2. Hand calculation

Section properties (solid circular, d = 0.150 m):

A = π d² / 4  = π (0.150)² / 4   = 1.767146e-2 m²
I = π d⁴ / 64 = π (0.150)⁴ / 64  = 2.485049e-5 m⁴
Z = π d³ / 32 = π (0.150)³ / 32  = 3.313399e-4 m³

Actions (simply-supported beam, UDL):

w = 0.060 t/m × 9.80665 = 0.58840 kN/m

M = w L² / 8 = 0.58840 × 2.50² / 8 = 0.45969 kN·m  = 0.046875 t·m
V = w L / 2  = 0.58840 × 2.50 / 2  = 0.73550 kN     = 0.075000 t

Stresses:

σ = M / Z = 459.69 N·m / 3.313399e-4 m³ = 1.3874 MPa
τ = 4V / 3A = 4 × 735.50 N / (3 × 1.767146e-2 m²) = 0.0555 MPa   (solid circular section)

Allowable stresses:

f_b,adj = f_b × C_D × C_M × C_F = 7.0 × 0.9 × 1.0 × 1.0 = 6.30 MPa
f_v,adj = f_v × C_M             = 0.9 × 1.0             = 0.90 MPa

Deflection:

δ_SLS = 5 w L⁴ / (384 E I)
      = 5 × 588.40 N/m × 2.50⁴ / (384 × 7.5e9 Pa × 2.485049e-5 m⁴)
      = 1.6057 mm

limit_SLS = L / 360 = 2500 mm / 360 = 6.9444 mm

δ_long-term = δ_SLS × k_cr = 1.6057 × 2.0 = 3.2115 mm
limit_long-term = L / 240 = 2500 / 240 = 10.4167 mm

3. Results comparison

Check Hand calc Software (check_round_timber_beam) Match Pass?
Bending moment M 0.046875 t·m 0.046875 t·m ✅ exact
Shear V 0.075000 t 0.075000 t ✅ exact
Bending stress σ 1.3874 MPa 1.3874 MPa ✅ exact σ ≤ 6.30 → PASS
Shear stress τ 0.0555 MPa 0.0555 MPa ✅ exact τ ≤ 0.90 → PASS
SLS deflection 1.6057 mm 1.6057 mm ✅ exact ≤ 6.9444 → PASS
Long-term deflection 3.2115 mm 3.2115 mm ✅ exact ≤ 10.4167 → PASS

All four limit-state checks pass by a wide margin (utilization ≈ 22% on bending, the governing check), as expected for a conservatively small joist load.

4. Reproducing this check

from vernastruct.core.sections import RoundTimberSection
from vernastruct.core.materials import TimberMaterial
from vernastruct.core.modifiers import TimberModifiers
from vernastruct.analysis.timber import check_round_timber_beam

athel = TimberMaterial(
    id="athel_traditional", display_name_en="Athel (Traditional Heritage)",
    display_name_ar="الأثل (تراثي معتمد)",
    E_GPa=7.5, rho_kg_m3=700.0, f_b_MPa=7.0, f_v_MPa=0.9,
)

result = check_round_timber_beam(
    section=RoundTimberSection(d_m=0.150),
    span_m=2.50,
    material=athel,
    w_service_ton_per_m=0.060,
    modifiers=TimberModifiers(CD=0.9, CM=1.0, CF=1.0, k_creep=2.0),
)
assert result.ok

This exact case is pinned as an automated regression test in tests/test_verification_cases.py::test_vc01_timber_joist_bending — if any future code change alters these numbers, the test suite will fail.


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.