# Pipestra Wall 0.1.0-beta - formulas, clauses and limits Pipestra Wall calculates the **pressure design wall thickness** of straight pipe, bends/elbows, concentric reducers and branch tees for internal pressure to **EN 13480-3** or **ASME B31.3**. It is Pipestra's own implementation of the published code equations. All calculations run locally in the browser (Python in a web worker); nothing is uploaded. > Beta software. Check every library allowable against your licensed code edition. Results must be verified by a > qualified engineer. No liability. Units: lengths mm, pressure bar(g) input (p [MPa] = p [bar] / 10), stresses MPa, temperatures °C. ## 1. Allowable stress | Code | Symbol | Source | |---|---|---| | EN 13480-3 | f | Pipestra EN library (EN 10216-2/-5, EN 10217), time-independent design stress per 5.2: ferritic min(ReH(T)/1.5, Rm,20/2.4); austenitic A ≥ 30 % min(Rp1.0(T)/1.5, Rm,20/2.4) (the optional A ≥ 35 % rule is not used) | | ASME B31.3 | S | Pipestra ASME library (Table A-1 values as transcribed, linear interpolation in temperature) | Values are interpolated at the design temperature and clamped (with a warning) above the tabulated range. Creep (time-dependent) design is **not** evaluated. A custom allowable can be entered instead. ## 2. Allowances and nominal wall * c0 corrosion / erosion allowance, c2 other allowance (e.g. thinning, grooving), c1 mill under-tolerance. * Minimum required thickness: `t_min = e + c0 + c2`. * Required nominal (ordered) thickness: * tolerance in %: `t_req = (e + c0 + c2) / (1 − tol/100)` * tolerance in mm: `t_req = e + c0 + c2 + c1` * Check of a nominal wall tn: available thickness `t_a = tn·(1 − tol/100) − c0 − c2` (or `tn − c1 − c0 − c2`), utilisation = required pressure thickness / t_a. The maximum allowable pressure is found by solving utilisation = 1. * Recommended wall: next standard wall ≥ t_req. * EN: EN 10220 preferred thickness series (1.6 … 65 mm), limited to t ≤ OD/4. Which walls a mill supplies for a given OD depends on the producer and product standard. * ASME: ASME B36.10M / B36.19M schedules (5S … XXS) for NPS ½ – 24, 30, 36 (transcribed; verify). ## 3. Straight pipe **EN 13480-3 6.1, eq. (6.1-1)**, valid for Do/Di ≤ 1.7: e = p·Do / (2·f·z + p) z = weld joint factor (1.0 / 0.85 / 0.7 per 4.5). Do/Di > 1.7 is flagged "not valid". **ASME B31.3 304.1.2, eq. (3a)**, valid for t < D/6: t = P·D / (2·(S·E·W + P·Y)) E = quality factor (Ej, Table A-1A/A-1B), W = weld strength reduction factor (302.3.5(e), Table 302.3.5; user input, default 1.0, a warning is shown for welded pipe above 427 °C), Y from Table 304.1.1: ferritic steels 0.4 up to 482 °C, 0.5 at 510 °C, 0.7 from 538 °C; austenitic 0.4 up to 566 °C, 0.5 at 593 °C, 0.7 from 621 °C (linear in between). t ≥ D/6 or P/(S·E) > 0.385 is flagged "not valid" (304.1.2(b), special consideration). ## 4. Bends and elbows **EN 13480-3 6.2.3**, eqs. (6.2.3-1) and (6.2.3-2), with e from (6.1-1) and R the centreline radius: e_int = e·(R/Do − 1/4) / (R/Do − 1/2) (intrados) e_ext = e·(R/Do + 1/4) / (R/Do + 1/2) (extrados) **ASME B31.3 304.2.1**, eqs. (3c), (3d), (3e): t = P·D / (2·(S·E·W/I + P·Y)), I_i = (4·R1/D − 1)/(4·R1/D − 2), I_e = (4·R1/D + 1)/(4·R1/D + 2), I_sidewall = 1 Bend types: * **Elbow** (uniform wall, e.g. a fitting): the intrados governs; `t_req` from e_int. * **Pipe bend** (bent from straight pipe): the extrados thins. Ordered wall `max( t_req(e_int), t_req(e_ext) / (1 − thinning) )`. The thinning is the user's value or the geometric estimate `Do / (2R + Do)` (conservative, flagged). Use the bending supplier's guaranteed value. Radius presets: 1.0·DN (2D), 1.5·DN (3D / long radius; NPS × 38.1 mm for ASME), 2.5·DN (5D), 3·Do, 5·Do or custom. Butt-welding elbows to ASME B16.9 are rated by their listed standard (304.2.2) - this check is for pipe bends and unlisted elbows. ## 5. Concentric reducers Half-angle α = atan((D_L − D_S) / (2·L)) or entered directly. The cone wall is checked at the large end (constant thickness). **EN 13480-3 6.4** (cone rules, as in EN 13445-3 7.6), limit α ≤ 60°: cone e_con = p·D_L/(2·f·z + p) / cos α large end e_j = p·Dc·β/(2·f·z), β = ⅓·√(Dc/e_j)·tan α/(1 + 1/√cos α) − 0.15, Dc = D_L − e_j small end e_1 = p·Dc·β_H/(2·f·z), β_H = 0.4·√(Dc/e_1)·tan α/τ + 0.5, τ = 1 + √(1/cos α), Dc = D_S − e_1 governing e = max(e_con, e_j, e_1) Junction thicknesses are iterated. The small-end form assumes cone and cylinder have the same thickness (s = 1). Knuckles, the lengths over which the junction thickness is needed, and junction weld factors are not evaluated (z is applied conservatively). **ASME B31.3 304.6 / 304.7.2**: concentric reducers to B16.9 are rated by their listed standard (304.6.2). For unlisted / fabricated cones the cone wall uses the ASME BPVC VIII-1 cone equation in outside-diameter form, limit α ≤ 30°: t = P·D_L / (2·cos α·(S·E·W + 0.4·P)) Junction reinforcement is **screened only** with the Appendix 1-5 Δ tables (large end Table 1-5.1, small end Table 1-5.2, as a function of P/(S·E)): if α > Δ a warning says reinforcement is required. The ring is not sized. ## 6. Tees and branch connections Run (header) and branch are checked as straight pipe first. Then: **EN 13480-3 8.4 - pressure-area method**, radial (90°) set-on / set-in branch, no reinforcing pad, no weld credit: e_as, e_ab = analysis thicknesses (nominal − tolerance − c0 − c2) r_is = Do_s/2 − e_as, r_ib = d_ob/2 − e_ab l_s = √((2·r_is + e_as)·e_as), l_b = √((d_ob − e_ab)·e_ab) Ap_s = r_is·(l_s + d_ob/2), Ap_b = r_ib·(l_b + e_as) Af_s = e_as·l_s, Af_b = e_ab·(l_b + e_as) (Af_s)·(f·z − p/2) + (Af_b)·(f·z_b − p/2) ≥ p·(Ap_s + Ap_b) **ASME B31.3 304.3.3 - area replacement**, branch angle 45° ≤ β ≤ 90°, no pad: T_h, T_b = nominal walls less mill tolerance; t_h, t_b from (3a); c = c0 + c2 d1 = (D_b − 2·(T_b − c)) / sin β d2 = max(d1, (T_b − c) + (T_h − c) + d1/2) ≤ D_h A1 = t_h·d1·(2 − sin β) A2 = (2·d2 − d1)·(T_h − t_h − c) A3 = 2·L4·(T_b − t_b − c) / sin β, L4 = min(2.5·(T_h − c), 2.5·(T_b − c)) A4 = 2 · ½ · leg² (optional fillet welds) A2 + A3 + A4 ≥ A1 Recommended walls: the thinnest standard run wall for which a branch wall not heavier than the run wall passes both the straight-pipe and the reinforcement check (thinnest such branch). If none exists, the lightest passing pair. A heavier branch can sometimes reduce the run wall - enter walls to check other combinations. ## 7. Not covered (check separately) * External pressure / vacuum, external loads, thermal and sustained stresses, fatigue, creep, test pressure. * Reinforcing pads, extruded outlets, olets, crosses, multiple / adjacent openings, openings in bends or near welds. * Eccentric reducers (use the largest wall angle as α), knuckled cones, cone junction lengths and ring sizing. * Thick-walled pipe (EN Do/Di > 1.7, B31.3 t ≥ D/6) - flagged, not calculated. * Listed fittings (EN 10253, ASME B16.9) are designed by their product standards; manufacturer data governs. * Material notes (library sources, edition caveats) are shown with each result; verify them for your edition. ## 8. Verification The Python solver is covered by unit tests with hand-calculated worked examples (tests/test_wall.py; the hand calculations are in the test docstrings).