Verification
Method
Each tool is compared against a separate calculation of the same quantities, mostly in Python with sympy, numpy or CoolProp. The test inputs are run through the tool's own code in a browser. The checks are re-run after any change to a tool's math.
Each tool has worked cases below: the inputs, what the tool returns, and the reference value. Enter the same inputs in the tool to reproduce them.
Beam formula calculator
- Reference
- Singularity-function beam solver (sympy), solving reactions and integration constants from the boundary conditions. Closed forms from Roark's Formulas for Stress and Strain, 8th ed.
- Result
- 151 formula checks over all 24 cases, non-round inputs. 154 values from the tool. 5 formulas corrected before release.
- Limits
- Constant EI, one span, small deflection, no shear deformation.
Worked cases (3)
Simply supported, off-centre point load
P = 40 kN at a = 2 m, L = 6 m, E = 200 GPa, I = 8000 cm4
| Tool | Reference | |
|---|---|---|
| RA | 26.6667 kN | 26.6667 kN |
| RB | 13.3333 kN | 13.3333 kN |
| Mmax | 53.3333 kN·m | 53.3333 kN·m |
| δmax | 9.677 mm | 9.677 mm |
| at x | 2.73401 m | 2.73401 m |
Reference: Macaulay integration of EI y″ = M(x), with the reactions and both integration constants solved from the support conditions (sympy). δmax is found where the slope is zero.
Propped cantilever, full UDL
Fixed at A, roller at B. w = 10 kN/m, L = 5 m, E = 200 GPa, I = 8000 cm4
| Tool | Reference | |
|---|---|---|
| RA | 31.25 kN | 31.25 kN |
| RB | 18.75 kN | 18.75 kN |
| MA (hogging) | 31.25 kN·m | 31.25 kN·m |
| M+ | 17.5781 kN·m | 17.5781 kN·m |
| at x | 3.125 m | 3.125 m |
| δmax | 2.11567 mm | 2.11567 mm |
| at x | 2.89232 m | 2.89232 m |
Reference: Macaulay integration of EI y″ = M(x), with the reactions and both integration constants solved from the support conditions (sympy). δmax is found where the slope is zero.
Fixed both ends, off-centre point load
P = 30 kN at a = 1.5 m, L = 5 m, E = 200 GPa, I = 8000 cm4
| Tool | Reference | |
|---|---|---|
| RA | 23.52 kN | 23.52 kN |
| RB | 6.48 kN | 6.48 kN |
| MA (hogging) | 22.05 kN·m | 22.05 kN·m |
| MB (hogging) | 9.45 kN·m | 9.45 kN·m |
| M under the load | 13.23 kN·m | 13.23 kN·m |
| δmax | 0.837402 mm | 0.837402 mm |
| at x | 2.08333 m | 2.08333 m |
Reference: Macaulay integration of EI y″ = M(x), with the reactions and both integration constants solved from the support conditions (sympy). δmax is found where the slope is zero.
Shear and moment diagram calculator
- Reference
- Reactions from equilibrium, V(x) and M(x) by exact integration over one side of the cut (sympy).
- Result
- 18 beams, all support and load types, five with overhangs, 3 points per load interval. 284 values, within 1 part in 109.
- Limits
- One span, determinate supports. No axial load or deflection.
Worked cases (2)
Simply supported, point load and partial UDL
L = 8 m. 10 kN down at x = 2 m. 6 kN/m down from x = 3 m to 8 m.
| Tool | Reference | |
|---|---|---|
| RA | 16.875 kN | 16.875 kN |
| RB | 23.125 kN | 23.125 kN |
| M at x = 2 m | 33.75 kN·m | 33.75 kN·m |
| M at x = 3 m | 40.625 kN·m | 40.625 kN·m |
| V = 0 at x | 4.14583 m | 4.14583 m |
| Mmax | 44.5638 kN·m | 44.5638 kN·m |
Reference: RB from moments about A, RA from vertical equilibrium, M(x) by integrating the left free body (sympy). By hand: RB = (10·2 + 30·5.5) / 8.
Cantilever with UDL and a couple
Fixed at x = 0, L = 4 m. 3 kN/m down over the full length. 8 kN·m counterclockwise at x = 2 m.
| Tool | Reference | |
|---|---|---|
| Wall reaction | 12 kN | 12 kN |
| M at the wall | −16 kN·m | −16 kN·m |
| M just left of x = 2 m | 2 kN·m | 2 kN·m |
| M just right of x = 2 m | −6 kN·m | −6 kN·m |
| M at x = 3 m | −1.5 kN·m | −1.5 kN·m |
Reference: M(x) from the free body to the right of each cut, which needs no reactions (sympy). Sagging positive. The couple makes the 8 kN·m jump at x = 2 m.
Mohr's circle calculator
- Reference
- Eigenvalues and eigenvectors of the stress or strain tensor, and direct rotation R·S·RT (numpy).
- Result
- 27 stress states, 10 strain states. 245 values, within 1 part in 109.
- Limits
- 3D mode takes σz as principal. No out-of-plane shear.
Worked cases (3)
Plane stress, rotated element
σx = 80 MPa, σy = −40 MPa, τxy = 25 MPa, element rotated 30° counterclockwise.
| Tool | Reference | |
|---|---|---|
| σ1 | 85 MPa | 85 MPa |
| σ2 | −45 MPa | −45 MPa |
| τmax (in plane) | 65 MPa | 65 MPa |
| θp | 11.3099° | 11.3099° |
| σx′ | 71.6506 MPa | 71.6506 MPa |
| σy′ | −31.6506 MPa | −31.6506 MPa |
| τx′y′ | −39.4615 MPa | −39.4615 MPa |
Reference: eigenvalues and eigenvectors of the stress tensor, and the rotated element from R·S·RT (numpy). By hand: centre 20, radius √(60² + 25²) = 65.
3D, σz principal
σx = 50 MPa, σy = 30 MPa, τxy = 20 MPa, σz = −40 MPa.
| Tool | Reference | |
|---|---|---|
| σ1 | 62.3607 MPa | 62.3607 MPa |
| σ2 | 17.6393 MPa | 17.6393 MPa |
| σ3 | −40 MPa | −40 MPa |
| τabs max | 51.1803 MPa | 51.1803 MPa |
Reference: eigenvalues of the 3×3 stress tensor (numpy).
Plane strain
εx = 500 µε, εy = −200 µε, γxy = 300 µε.
| Tool | Reference | |
|---|---|---|
| ε1 | 530.789 µε | 530.789 µε |
| ε2 | −230.789 µε | −230.789 µε |
| γmax (in plane) | 761.577 µε | 761.577 µε |
Reference: eigenvalues of the strain tensor, which holds γxy/2 off the diagonal (numpy).
Moment of inertia and centroid calculator
- Reference
- Rectangles: section cut into non-overlapping grid cells on every rectangle edge, exact properties summed per cell, checked against closed forms for a hollow rectangle and an I-section. Circles, arcs and polygons: exact integration in sympy for every part in every orientation, and composites summed from exact moments about a fixed origin, with no parallel axis step per part.
- Result
- 15 rectangle sections (I, T, channel, angle, Z, hollow rectangle, plate with voids, 8 random stacks): 150 values within 1 part in 109. Circles, arcs and polygons: 245 checks, including Beer and Johnston Sample Problem 5.1, a pipe against π(D4 − d4)/64 and the half and quarter circle closed forms; the tool matches the 8 composites in 80 values within 1 part in 109.
- Limits
- Straight edges and circular arcs in whole quarter turns; no ellipses or fillets. Overlapping shapes are flagged.
Worked cases (3)
T-section
Flange 120 × 20 mm on top of a web 20 × 100 mm, centred.
| Tool | Reference | |
|---|---|---|
| A | 4400 mm² | 4400 mm² |
| ȳ | 82.7273 mm | 82.7273 mm |
| Ix | 5.67394 × 106 mm4 | 5.67394 × 106 mm4 |
| Iy | 2.94667 × 106 mm4 | 2.94667 × 106 mm4 |
| J | 8.62061 × 106 mm4 | 8.62061 × 106 mm4 |
Reference: parallel axis theorem by hand, Σ(bh³/12 + Ad²) over the rectangles, voids subtracted. Axes through the centroid; x̄ from the left edge, ȳ from the bottom.
Hollow rectangle
100 mm wide, 150 mm tall, 10 mm wall. Drawn as a solid rectangle with an 80 × 130 mm void.
| Tool | Reference | |
|---|---|---|
| A | 4600 mm² | 4600 mm² |
| Ix | 1.34783 × 107 mm4 | 1.34783 × 107 mm4 |
| Iy | 6.95333 × 106 mm4 | 6.95333 × 106 mm4 |
| Sx | 1.79711 × 105 mm³ | 1.79711 × 105 mm³ |
Reference: (BH³ − bh³) / 12, and Sx = Ix / 75 mm.
Z-section, product of inertia
Bottom flange 60 × 10 mm pointing left, web 10 × 80 mm, top flange 60 × 10 mm pointing right, 100 mm deep overall.
| Tool | Reference | |
|---|---|---|
| A | 2000 mm² | 2000 mm² |
| x̄, ȳ | 55, 50 mm | 55, 50 mm |
| Ix | 2.86667 × 106 mm4 | 2.86667 × 106 mm4 |
| Iy | 1.11667 × 106 mm4 | 1.11667 × 106 mm4 |
| Ixy | 1.35 × 106 mm4 | 1.35 × 106 mm4 |
Reference: parallel axis theorem by hand, Σ(bh³/12 + Ad²) over the rectangles, voids subtracted. Axes through the centroid; x̄ from the left edge, ȳ from the bottom. Ixy = ΣA dxdy, with y up.
Vector resultant calculator
- Reference
- Component sums (numpy).
- Result
- 26 2D systems including the page's worked example, 15 3D systems. 209 values, within 1 part in 109.
- Limits
- Concurrent forces. No moments about a point.
Worked cases (3)
Two forces at right angles
200 N at 30°, 150 N at 120°. The worked example on the tool page.
| Tool | Reference | |
|---|---|---|
| Rx | 98.2051 N | 98.2051 N |
| Ry | 229.904 N | 229.904 N |
| |R| | 250 N | 250 N |
| θ | 66.8699° | 66.8699° |
Reference: component sums (numpy). By hand: the forces are perpendicular, so |R| = √(200² + 150²) = 250 N at 30° + tan−1(150/200).
Three forces
400 N at 20°, 250 N at 135°, 300 N at 250°.
| Tool | Reference | |
|---|---|---|
| Rx | 96.4943 N | 96.4943 N |
| Ry | 31.677 N | 31.677 N |
| |R| | 101.561 N | 101.561 N |
| θ | 18.1739° | 18.1739° |
Reference: component sums (numpy).
3D
F1 = (120, −50, 80) N, F2 = (−30, 90, 60) N, F3 = (10, 40, −100) N.
| Tool | Reference | |
|---|---|---|
| R | (100, 80, 40) N | (100, 80, 40) N |
| |R| | 134.164 N | 134.164 N |
| θx, θy, θz | 41.81, 53.4, 72.65° | 41.81, 53.4, 72.65° |
Reference: component sums and direction cosines (numpy).
Thermodynamics cycle solver
- Reference
- CoolProp (IAPWS-95 water, R-134a, ideal-gas air cp), cold air-standard closed forms, Cengel and Boles Examples 9-3, 9-5, 9-6, 9-7, 10-4.
- Result
- Steam: 22 states, 8 kPa to 20 MPa, within 0.02% (the IF97 vs IAPWS-95 difference). R-134a: 11 states, within 1 part in 109. Otto: 4 cycles, within 0.003%. Brayton: 102 checks. Diesel and Atkinson: 250 checks. Dual, regenerative Brayton and reheat Rankine: 33 reference checks and 393 values from the tool. Forward and backward solving.
- Limits
- Rankine with at most one reheat and no regeneration. IF97 Regions 1, 2, 4: no near-critical region, no steam above 800 C. R-134a only.
Worked cases (3)
Steam: superheated state, isentropic expansion
State 1: 3 MPa, 350 °C. State 2: 10 kPa, s2 = s1.
| Tool | Reference | |
|---|---|---|
| h1 | 3116.06 kJ/kg | 3116.06 kJ/kg |
| s1 | 6.74492 kJ/kg·K | 6.74493 kJ/kg·K |
| v1 | 0.090555 m³/kg | 0.0905564 m³/kg |
| T2 | 45.8075 °C | 45.8063 °C |
| x2 | 0.812796 | 0.812806 |
| h2 | 2136.08 kJ/kg | 2136.08 kJ/kg |
Reference: CoolProp, IAPWS-95. The tool uses IAPWS-IF97, the industrial fit to IAPWS-95, so the two differ in the fifth or sixth figure.
Brayton, Cengel and Boles Example 9-5
Ideal cycle, pressure ratio 8, T1 = 300 K, P1 = 100 kPa, T3 = 1300 K, air tables.
| Tool | Textbook | |
|---|---|---|
| T2 | 539.752 K | 540 K |
| h2 | 544.173 kJ/kg | 544.35 kJ/kg |
| T4 | 770.397 K | 770 K |
| h4 | 789.604 kJ/kg | 789.37 kJ/kg |
| Back work ratio | 0.4024 | 0.403 |
| ηth | 0.4254 | 0.426 |
Reference: the worked answers in Cengel and Boles, which read the air table by hand interpolation, hence the last-digit differences.
Diesel, Cengel and Boles Example 9-3
r = 18, cutoff ratio 2, P1 = 14.7 psia (101.35 kPa), T1 = 80 °F (300 K), cold air, k = 1.4.
| Tool | Closed form | Textbook | |
|---|---|---|---|
| T2 | 953.301 K | 953.301 K | 1716 °R (953.3 K) |
| P2 | 5797.19 kPa | 5797.19 kPa | 841 psia (5798 kPa) |
| T3 | 1906.6 K | 1906.6 K | 3432 °R (1906.7 K) |
| T4 | 791.705 K | 791.705 K | 1425 °R (791.7 K) |
| P4 | 267.472 kPa | 267.472 kPa | 38.8 psia (267.5 kPa) |
| ηth | 0.6316 | 0.6316 | 0.632 |
Reference: cold air closed forms, T2 = T1rk−1, T3 = rcT2, T4 = T3(rc/r)k−1, η = 1 − (rck − 1) / (k rk−1(rc − 1)), and the textbook answers.
Equation of motion and transfer function solver
- Reference
- Python version of the engine (sympy, numpy); the JS mirrors it function for function.
- Result
- 139 checks: determinants and cofactors to 4×4, Cramer's rule transfer functions, roots, natural frequencies and mode shapes. Tool matches the reference to 12 significant figures on a 2-mass and 3-mass chain.
- Limits
- 1 to 4 masses, linear, zero initial conditions, up to second order.
Worked cases (2)
Two equal masses in a chain
Wall, spring k, mass m, spring k, mass m. m = 2 kg, k = 800 N/m. Body 1: 2x1″ = −800x1 + 800(x2 − x1) + F. Body 2: 2x2″ = −800(x2 − x1).
| Tool | Reference | |
|---|---|---|
| ω1 | 12.3607 rad/s | 12.3607 rad/s |
| Mode 1 shape | 0.618034, 1 | 0.618034, 1 |
| ω2 | 32.3607 rad/s | 32.3607 rad/s |
| Mode 2 shape | 1, −0.618034 | 1, −0.618034 |
Reference: eigenvalues of M−1K (numpy). By hand: ω² = (3 ∓ √5)k / 2m.
Two-mass chain with damping
m1 = 10 kg, m2 = 5 kg, c1 = 20, c2 = 10 N·s/m, k1 = 1200, k2 = 800 N/m, force F on mass 1. Body 1: 10x1″ = −1200x1 − 20x1′ + 800(x2 − x1) + 10(x2′ − x1′) + F. Body 2: 5x2″ = −800(x2 − x1) − 10(x2′ − x1′).
| Tool | Reference | |
|---|---|---|
| X1/F | (s² + 2s + 160) / (10s4 + 50s³ + 3640s² + 5600s + 192000) | (5s² + 10s + 800) / (50s4 + 250s³ + 18200s² + 28000s + 960000) |
| Poles, pair 1 | −0.510194 ± 8.05392j | −0.510194 ± 8.05392j |
| ζ, pair 1 | 0.063221 | 0.063221 |
| Poles, pair 2 | −1.98981 ± 17.0544j | −1.98981 ± 17.0544j |
| ζ, pair 2 | 0.11589 | 0.11589 |
| Undamped ωn | 8.069, 17.1724 rad/s | 8.069, 17.1724 rad/s |
Reference: det Z(s) and the adjugate of Z(s) = Ms² + Cs + K in sympy, roots in numpy. The tool divides the transfer function through by 5.
Free body diagram maker
- Reference
- None. Drawing tool, no calculation.