Deadweight tester / piston gauge
The pressure a deadweight tester or piston gauge generates from the masses on it, or the mass to load for a target pressure. Local gravity, air buoyancy matched to true or conventional mass, thermal expansion and pressure distortion of the effective area, oil surface tension and the head to the device under test, gauge or absolute, per EURAMET cg-3.
Deadweight tester · piston gauge
v0.1.0 · EURAMET cg-3 v2.1 · OIML D 28Estimate only: GRS80 normal gravity on the ellipsoid (height 0). Real gravity at a site differs from it because of height and local geology.
Not corrected for height: g falls as you go up, so for a lab above sea level this estimate is high. The free-air correction is not included until its source can be verified.
For calibration work use a surveyed value, or a predicted one: NOAA NGS Surface Gravity Prediction (US) or the PTB Gravity Information System (SIS). Enter it as g; it takes precedence.
Conventional mass (OIML D 28): buoyancy factor 1 − ρ₀ₐ/ρ₀ + (ρ₀ₐ − ρ_a)/ρ_m with ρ₀ₐ = 1.2 kg/m³, ρ₀ = 8000 kg/m³ (cg-3 eq. 3.1a). At ρ_a = 1.2 kg/m³ it is 0.99985 whatever the weights are made of.
The pressure is solved by fixed-point iteration: p₀ from λ = 0, then p_{n+1} = F / (A₀(1 + λp_n)(1 + (α_p + α_c)(t − t_r))) (+ μ), stopping when |p_{n+1} − p_n| ≤ 1 × 10⁻¹⁴·|p_{n+1}|; it is refused after 50 iterations. cg-3 3.7(b) allows a nominal p in A₀(1 + λp); solving the equation exactly differs from that by about λ·(p − p_nominal) relative.
Not modelled: piston buoyancy from a non-cylindrical piston end (cg-3 3.11, eqs. 3.4 and 3.5), tilt of the piston, second-order distortion λ′.
Results are full precision. Round for display or a certificate separately.
Test vectors for this tool
The reference cases this calculator is tested against on every change. Use them to check your own software. All test vectors · Download JSON
| ID | Inputs | Expected | Tolerance | Source |
|---|---|---|---|---|
| DWT-01 | weights = [{"mass":3.4263,"density":7800}], massBasis = true, gravity = {"g":9.80616}, area = 0.00033592, alphaPiston = 0.0000112, alphaCylinder = 0.0000112, temperature = 22.85, airDensity = 1.1854 | 99998.79541994532 Pa | ± 1e-8 | Hand-derived with mpmath from EURAMET cg-3 v2.1 eq. (3.1), using the inputs of the IMEKO PWC-2006 TC16-013 worked example (pneumatic deadweight tester, NRC): m = 3.4263 kg, ρ_m = 7800 kg/m³, g = 9.806 16 m/s², ρ_a = 1.1854 kg/m³, A₀ = 335.920 mm², α_p = α_c = 11.2 × 10⁻⁶ /K, t = 296 K. |
| DWT-02 | weights = [{"mass":10,"density":8000}], massBasis = conventional, gravity = {"g":9.80665}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 20, airDensity = 1.2 | 980517.90025 Pa | ± 1e-8 | Hand-derived from EURAMET cg-3 v2.1 eq. (3.1a) with OIML D 28 conventional values ρ₀ₐ = 1.2 kg/m³, ρ₀ = 8000 kg/m³. |
| DWT-03 | weights = [{"mass":10,"density":7920}], massBasis = conventional, gravity = {"g":9.80665}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 20, airDensity = 1.2 | 980517.90025 Pa | ± 1e-8 | Hand-derived from EURAMET cg-3 v2.1 eq. (3.1a). |
| DWT-04 | massBasis = true, gravity = {"g":9.80665}, area = 0.000001961004, lambda = 1.032e-12, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 22, airDensity = 1.2, weights = [{"mass":20,"density":7920}] | 99989352.30697627 Pa | ± 0.00001 | Hand-derived with mpmath (50 digits) from EURAMET cg-3 v2.1 (02/2025) clause 3; A_p = A₀(1 + λp) solved for p as the positive root of the quadratic λθA₀p² + θA₀p − F = 0 (independent of the library’s iteration). A₀ = 1.961 004 mm² and λ = 1.032 × 10⁻⁶ /MPa are the cg-3 Appendix B3 results; ρ_m = 7920 kg/m³ and α_p + α_c = 9 × 10⁻⁶ /K are its B4.6 and B4.3 example values. |
| DWT-05 | massBasis = true, gravity = {"g":9.80665}, area = 0.000001961004, lambda = 1.032e-12, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 22, airDensity = 1.2, weights = [{"mass":20,"density":7920}], surfaceTension = 0.031, circumference = 0.004964, head = {"deltaH":0.1,"fluidDensity":915} | 99990326.89309752 Pa | ± 0.00001 | Hand-derived with mpmath (50 digits) from EURAMET cg-3 v2.1 (02/2025) clause 3; A_p = A₀(1 + λp) solved for p as the positive root of the quadratic λθA₀p² + θA₀p − F = 0 (independent of the library’s iteration). Surface tension added per eq. (3.2), head per eq. (3.6). |
| DWT-06 | massBasis = true, gravity = {"g":9.80665}, area = 0.000001961004, lambda = 1.032e-12, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 22, airDensity = 1.2, weights = [{"mass":20,"density":7920}], surfaceTension = 0.031, circumference = 0.004964, head = {"deltaH":0.1,"fluidDensity":915}, output = pressureAtReference | 99989430.76142052 Pa | ± 0.00001 | Hand-derived with mpmath (50 digits) from EURAMET cg-3 v2.1 (02/2025) clause 3; A_p = A₀(1 + λp) solved for p as the positive root of the quadratic λθA₀p² + θA₀p − F = 0 (independent of the library’s iteration). |
| DWT-07 | mode = absolute, massBasis = true, gravity = {"g":9.80665}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 20, residualPressure = 1.5, weights = [{"mass":2,"density":8000}] | 196134.5 Pa | ± 1e-9 | Hand-derived from EURAMET cg-3 v2.1 eq. (3.3), absolute mode. |
| DWT-08 | mode = absolute, massBasis = conventional, gravity = {"g":9.80665}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 20, residualPressure = 1.5, weights = [{"mass":2,"density":7920}] | 196134.7972162449 Pa | ± 1e-8 | Hand-derived from EURAMET cg-3 v2.1 eq. (3.3) with the conventional mass converted to true mass by OIML D 28:2004 eq. (1). |
| DWT-09 | weights = [{"mass":10,"density":8000}], massBasis = conventional, gravity = {"latitude":45}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 20 | 980472.8272606127 Pa | ± 1e-8 | Hand-derived from EURAMET cg-3 v2.1 eq. (3.1a) with g from the GRS80 closed formula (Moritz 2000). |
| DWT-10 | massBasis = conventional, gravity = {"g":9.80665}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 20, targetPressure = 980517.90025, massDensity = 8000 | 10 kg | ± 1e-12 | Hand-derived inverse of EURAMET cg-3 v2.1 eq. (3.1a). |
| DWT-11 | massBasis = true, gravity = {"g":9.80665}, area = 0.000001961004, lambda = 1.032e-12, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 22, airDensity = 1.2, targetPressure = 100000000, massDensity = 7920 | 20.00212998514473 kg | ± 1e-11 | Hand-derived inverse of EURAMET cg-3 v2.1 eq. (3.1) with the Appendix B piston (A₀ = 1.961 004 mm², λ = 1.032 × 10⁻⁶ /MPa). |
| DWT-12 | massBasis = true, gravity = {"g":9.80665}, area = 0.000001961004, lambda = 1.032e-12, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 22, airDensity = 1.2, weights = [{"mass":20,"density":7920}], surfaceTension = 0.031, circumference = 0.004964, head = {"deltaH":0.1,"fluidDensity":915} | 20 kg | ± 1e-11 | Round trip mass → pressure → mass through cg-3 eqs. (3.2) and (3.6), forward by iteration and back in closed form. |
| DWT-13 | mode = absolute, massBasis = conventional, gravity = {"g":9.80665}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 20, residualPressure = 1.5, weights = [{"mass":2,"density":7920}] | 2 kg | ± 1e-12 | Round trip mass → pressure → mass through cg-3 eq. (3.3) and OIML D 28 eq. (1). |
| DWT-14 | weights = [{"mass":10,"density":8000}], massBasis = conventional, gravity = {"g":9.80665}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 45 | OutOfRangeError per rule | exact | Metrology Bench rule: refuse rather than extrapolate |
| DWT-15 | massBasis = true, gravity = {"g":9.80665}, area = 0.000001961004, lambda = 0.000001032, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 22, airDensity = 1.2, weights = [{"mass":20,"density":7920}] | OutOfRangeError per rule | exact | Metrology Bench rule: refuse rather than extrapolate |
| DWT-16 | weights = [{"mass":10,"density":7.92}], massBasis = conventional, gravity = {"g":9.80665}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 20 | OutOfRangeError per rule | exact | Metrology Bench rule: refuse rather than extrapolate |
| DWT-17 | mode = absolute, massBasis = true, gravity = {"g":9.80665}, area = 0.0001, alphaPiston = 0.0000045, alphaCylinder = 0.0000045, temperature = 20, residualPressure = 1.5, weights = [{"mass":2,"density":8000}], surfaceTension = 0.031, circumference = 0.004964 | RangeError per rule | exact | EURAMET cg-3 v2.1 clause 3.9: absolute mode is given for gas-operated balances only. |
Put this calculator on your site
Free for labs, schools and anyone else. Paste this into your page.
<iframe src="https://metrologybench.com/embed/deadweight-tester" title="Deadweight tester / piston gauge · Metrology Bench" width="100%" height="1500" style="border:0;max-width:640px" loading="lazy"></iframe>
Ask your AI
Connect metrology-toolbox-mcp and your assistant runs this exact calculation, with the source in the answer.