diff --git a/docs/utilities/blind-flange-calculator.mdx b/docs/utilities/blind-flange-calculator.mdx index c66b2b9..fe19d8a 100644 --- a/docs/utilities/blind-flange-calculator.mdx +++ b/docs/utilities/blind-flange-calculator.mdx @@ -167,6 +167,64 @@ Select a DN, set operating and test pressures, temperature, and material grade. - The result is not a certified code calculation and carries no code stamp. - ⚠️ The Blind Flange Calculator provides preliminary sizing support. Results must be verified by a qualified engineer against the governing code edition and the project specification before manufacturing or purchase. +## Validation cases + +The calculation engine is guarded by an automated test suite (59 unit tests); +the cases below come directly from those tests, with reference values computed +by hand from the closed-form equations. You can reproduce them in the +calculator and compare digit for digit. + +### Case 1 — PN class selection (EN 1092-1 series) + +The design pressure is mapped to the next standard PN class: + +| Design pressure | Selected class | +|---|---| +| 10 bar | **PN 10** | +| 12 bar | **PN 16** | +| 40 bar | **PN 40** | +| 41 bar | **PN 63** | +| 321 bar | **PN 400** | + +### Case 2 — flat circular plate bending (simply supported, uniform pressure) + +Inputs: pressure `P = 1.6 MPa` (16 bar), effective radius `R = 125 mm`, +thickness `t = 20 mm`, `E = 200 000 MPa`, `ν = 0.3`. + +Maximum bending stress (Roark / classical plate theory): + +``` +σ = 3·P·R²·(3 + ν) / (8·t²) + = 3 · 1.6 · 125² · 3.3 / (8 · 20²) = 77.34 MPa +``` + +Center deflection with plate stiffness `D = E·t³ / (12·(1 − ν²))`: + +``` +w = (5 + ν)·P·R⁴ / (64·D·(1 + ν)) = 0.170 mm +``` + +The engine's thickness solver is verified as the exact inverse of these +equations: solving for the thickness that produces σ = 77.34 MPa returns +t = 20 mm to 8 decimal places. + +### Case 3 — gasket seating bolt load + +For an effective gasket diameter `G = 250 mm`, effective width `b = 12 mm`, +and seating stress `y = 11 MPa` (graphite class), the required seating load +follows the classical flange-bolting relation: + +``` +Wm1 = π·G·b·y = π · 250 · 12 · 11 ≈ 103 673 N +``` + +The bolting check then compares the provided stud area (count × stress area) +against the largest of the seating, operating, and hydrotest requirements and +reports which case governs. + +These same numbers run as unit tests in the app's CI on every change — a +release that breaks any of them cannot be deployed. + ## Related tools - [Dished End (Vessel Head) Calculator](./pressure-vessel-dished-end-calc.mdx) - [Cylindrical Shell Rolling Calculator](./cylindrical-shell-rolling.mdx) diff --git a/docs/utilities/pressure-vessel-dished-end-calc.mdx b/docs/utilities/pressure-vessel-dished-end-calc.mdx index 246e9bb..fa4ea02 100644 --- a/docs/utilities/pressure-vessel-dished-end-calc.mdx +++ b/docs/utilities/pressure-vessel-dished-end-calc.mdx @@ -172,6 +172,54 @@ Instant calculation of pressure vessel head geometry, weight, and volume. It gen - Fatigue, corrosion beyond the entered allowance, and thermal effects are not considered. - ⚠️ The Dished End (Vessel Head) Calculator provides preliminary sizing support. Results must be verified by a qualified engineer against the governing code edition and the project specification before manufacturing or purchase. +## Validation cases + +The calculation engine is guarded by an automated test suite; the cases below +are taken directly from those tests, with the reference values computed by hand +from the standard form factors. You can reproduce any of them in the +calculator and compare digit for digit. + +### Case 1 — DIN 28011 torispherical (Klöpper) head + +Inputs: outer diameter `Da = 1000 mm`, wall thickness `s = 10 mm`, straight +flange `h1 = 40 mm`, material carbon steel (ρ = 7.85 kg/dm³). + +DIN 28011 form factors: crown radius `R = Da`, knuckle radius `r = 0.1·Da`, +dish depth `h2 = 0.1935·Da − 0.455·s`. + +| Quantity | Hand calculation | Reference value | Tool output | +|---|---|---|---| +| Crown radius R | 1 × 1000 | **1000 mm** | 1000 mm | +| Knuckle radius r | 0.1 × 1000 | **100 mm** | 100 mm | +| Dish depth h2 | 0.1935·1000 − 0.455·10 | **188.95 mm** | 188.95 mm | +| Total height | 40 + 188.95 + 10 | **238.95 mm** | 238.95 mm | +| Blank diameter | 1.09·1000 + 2·40 | **1170 mm** | 1170 mm | +| Blank weight | π·(585 mm)²·10 mm · 7.85 kg/dm³ | **≈ 84.4 kg** | 84.4 kg | + +### Case 2 — DIN 28013 semi-ellipsoidal (Korbbogen) head + +Same inputs, standard switched to DIN 28013 (`R = 0.8·Da`, `r = 0.154·Da`, +`h2 = 0.255·Da − 0.635·s`, blank factor 1.14). + +| Quantity | Hand calculation | Reference value | Tool output | +|---|---|---|---| +| Crown radius R | 0.8 × 1000 | **800 mm** | 800 mm | +| Knuckle radius r | 0.154 × 1000 | **154 mm** | 154 mm | +| Dish depth h2 | 0.255·1000 − 0.635·10 | **248.65 mm** | 248.65 mm | +| Blank diameter | 1.14·1000 + 2·40 | **1220 mm** | 1220 mm | + +### Case 3 — forming thinning estimate (blank module) + +For Case 1, the knuckle zone governs thinning at the engine's 12 % estimate +for torispherical forming: estimated minimum thickness +`10 × (1 − 0.12) = 8.8 mm`. Because the QC minimum is +`10 − 0.3 = 9.7 mm`, the tool raises a thinning warning and suggests a +starting plate of `10 / 0.88 = 11.36 → 11.5 mm` (rounded up to the 0.5 mm +plate step) to end at nominal after forming. + +These same numbers run as unit tests on every change to the calculation +engine — a release that breaks any of them cannot be deployed. + ## Related tools - [Cylindrical Shell Rolling](./cylindrical-shell-rolling.mdx) - [Bourdon Gauge Configurator](./bourdon-gauge-configurator.mdx)