| ProjectSample Project — Demonstration Only | Job No.SAMPLE-001 | Client— |
| CalculationThermal Expansion Table Interpolation Calculator (in/100 ft) | Calc byPiping Toolset (calc-core) | Checked byUNCHECKED — sample |
| Date2026-07-31 | Rev0 | BasisLinear interpolation between two user-entered thermal-expansion table rows (ASME B31.3 Table C-1 / B31.1 App. B style, in/100 ft) |
A 120 ft straight run whose design temperature falls exactly between two rows of the expansion table. The engineer reads the bracketing rows for the line's material group: 0.5 in/100 ft at 100 °F and 1.5 in/100 ft at 200 °F. The design temperature is 150 °F.
| Lower table temperature T₁ | 100 | °F |
| Expansion at T₁ | 0.5 | in/100 ft |
| Upper table temperature T₂ | 200 | °F |
| Expansion at T₂ | 1.5 | in/100 ft |
| Design temperature T | 150 | °F |
| Run length L | 120 | ft |
Straight-line interpolation between two table points, then a unit conversion to total growth:
e = e1 + ( e2 − e1 ) · ( T − T1 ) / ( T2 − T1 )
ΔL = e · L / 100
where T1 and T2 are the two bracketing temperatures from the table with their tabulated expansions e1 and e2 in in/100 ft, T the design temperature, and L the run length in feet. The division by 100 is the conversion from the table's per-100-feet basis to the actual run — the sole reason the tables are published that way is to keep the numbers to a readable magnitude, and it is a common slip to drop it and end up a hundredfold out.
The interpolation is linear by construction, which is what the codes intend for use between adjacent published rows. Thermal expansion is not truly linear in temperature — the coefficient itself drifts, which is precisely why the tables have many rows rather than one coefficient — but across the interval between two adjacent rows the curvature is small enough that a straight line is the accepted treatment. Interpolating across a wide gap by skipping rows is a different proposition and is where the linear assumption starts to cost accuracy.
The engine requires T2 ≠ T1 and a positive length, and it does not require the design temperature to lie between the two rows — it will extrapolate. It warns when you do: if T falls outside the interval you entered, the result is a projection beyond the data, and the correct fix is to go back to the table and read the rows that actually bracket your temperature. The warning exists because extrapolation here is nearly always a data-entry error rather than an intentional choice.
| e — interpolated unit expansion | 1.0 | in/100 ft |
| deltaL — total free growth | 1.2 | in |
The result values above are locked as fixture expansion-interpolation.json, case
“midpoint interpolation, 120 ft run”, tolerance 1e-9, in the calc-core continuous
verification gate (see https://pipingtoolset.com/trust/validation.html). Allowable-stress and factor data are
user-supplied inputs; citations: ASME B31.3, Process Piping — Appendix C, Table C-1, thermal expansion of piping materials in in/100 ft referenced to 70 °F. Table values are copyrighted code data and are not reproduced here; the user enters two bracketing rows. · ASME B31.1, Power Piping — the equivalent appendix table of thermal expansion data; same treatment, values user-supplied. · ASME B31.3 — ¶319, flexibility analysis requirements, where the resulting displacement is used; and ¶319.4.4, the displacement stress range the restrained case produces. · Linear interpolation between adjacent tabulated rows is the intended treatment for values between published temperatures; the equation implemented here contains no code data.