Masonry carries compression but (almost) no tension, so an arch stands if some line of thrust fits inside the stone (Heyman's safe theorem). Any statically admissible line of thrust is y(x) = M0(x)/H + yA(1−x/L) + yBx/L, where M0 is the bending moment of the loads on a simple beam of span L, H the horizontal thrust and yA, yB the heights where the line meets the two abutments.
For every H, yA, yB the program measures the largest perpendicular offset e of the line from the ring centreline, divided by half the ring thickness; this is a convex function, and it is minimised numerically (nested golden-section search) to find the most central line the stone can possibly support. The drawn line and the chart are that minimum-offset line, not a fixed three-hinge guess.
- offset ≤ 33 %: the resultant stays in the middle third, the whole joint is in compression;
- 33 % to 100 %: part of a joint is in nominal tension (cracks open) but a thrust line still fits, so the arch stands;
- over 100 %: no admissible line fits the stone, so hinges form and the arch collapses under this load.
Geometric factor of safety (Heyman): actual thickness divided by the smallest thickness tmin that still admits a line of thrust (found by bisection, with self-weight recomputed at each thickness).
Self-weight is the ring itself: γ·t per unit arch length (γ = 22 kN/m³, limestone) acting along the arc, i.e. γt/cosθ per horizontal metre, plus optional fill. Simplifications: infinite compressive strength, no sliding between voussoirs, immovable abutments, plane problem per metre of depth, and the load is a vertical point load on the extrados. Real arches also fail by crushing, sliding or abutment spread.
Pictures are Blender (Cycles) renders: limestone, grass, mountain backdrop and a concrete block for the point load.