Thrust Network Analysis
Maxwell-Cremona Duality:
Γ become closed polygons in Γ*; faces in Γ become nodes in Γ*. 2. Orthogonal Alignment: Corresponding edges are mutually perpendicular or parallel. 3. Force Proportionality: The length of segment e* directly measures the internal axial thrust force N_e.1import numpy as np23def solve_thrust_network_equilibrium(xy_coords, edges, force_densities, fixed_ids, z_fixed, pz_loads):4 """5 Thrust Network Analysis (Block & Ochsendorf 2007):6 1. Checks horizontal reciprocal loop closure: sum_j q_ij * (xy_i - xy_j) = 0.7 2. Solves vertical funicular heights z via Force Density Laplacian: L_q * z = pz_loads.8 """9 n = len(xy_coords)10 L_q = np.zeros((n, n))11 for (u, v), q in zip(edges, force_densities):12 L_q[u, u] += q13 L_q[v, v] += q14 L_q[u, v] -= q15 L_q[v, u] -= q1617 free_ids = [i for i in range(n) if i not in fixed_ids]18 xy_residual = np.linalg.norm(L_q[free_ids] @ xy_coords)1920 L_ff = L_q[np.ix_(free_ids, free_ids)]21 L_fc = L_q[np.ix_(free_ids, fixed_ids)]22 rhs = pz_loads[free_ids] - L_fc @ z_fixed2324 z = np.zeros(n)25 z[fixed_ids] = z_fixed26 z[free_ids] = np.linalg.solve(L_ff, rhs)27 return z, float(xy_residual)
Graphic Statics & Reciprocal Force Diagrams: Modern digital form-finding (Thrust Network Analysis - TNA) stems from James Clerk Maxwell's 1864 reciprocal figure theorem. A spatial form diagram representing structural bar geometry Γ has an exact dual reciprocal diagram Γ*. Every closed polygon of forces in Γ* corresponds to a node in equilibrium in Γ, allowing architects to sculpt compression-only vaults purely geometrically without finite element matrix inversion.
Heyman's Limit Theorem:
1def is_thrust_line_safe(thrust_points, arch_intrados, arch_extrados):2 """3 Heyman's Safe Limit Analysis Theorem for unreinforced masonry arches (1966).4 Assumptions: masonry has zero tensile capacity, infinite compressive strength, and no sliding.5 An arch is 100% stable if and only if at least ONE equilibrium thrust line6 can be contained entirely between the intrados (bottom) and extrados (top) boundaries.7 """8 for pt, bottom, top in zip(thrust_points, arch_intrados, arch_extrados):9 if pt[1] < bottom[1] or pt[1] > top[1]:10 return False # Thrust line escapes boundary -> hinge collapse11 return True
Funicular Thrust Lines & Masonry Equilibrium: Stone and unreinforced concrete masonry cannot bear tension. Jacques Heyman proved the Lower-Bound Safe Theorem of limit analysis: a historical vault or arch cannot collapse under its dead weight if a funicular thrust line exists that lies wholly within the masonry envelope. If asymmetric point loads push the thrust line outside the boundary, cracks open and three-hinge collapse mechanisms trigger.
Related Concepts
Thrust Network Analysis, graphic statics, minimal surfaces, and catenary arches.
Interactive geometrical visualization of cutter radius compensation and dogbone corner reliefs.
Interactive geometrical visualization of No-Fit Polygons and Bottom-Left-Fill sheet packing.