What the method does
Load control cannot continue past a vertical tangent in a load–displacement path. Arc-length continuation constrains the combined displacement and load-factor increment instead. The production engine assembles the corotational tangent and solves Crisfield’s spherical constraint, ‖Δu‖² + Δλ²‖fref‖² = Δs², with adaptive Δs.
The method papers are E. Riks, “An incremental approach to the solution of snapping and buckling problems” (1979), and M.A. Crisfield, “A fast incremental/iterative solution procedure that handles ‘snap-through’” (1981). This page benchmarks the engine; it does not reproduce a numerical example from either paper.
The shared cases
The shallow toggle is the rigid-jointed frame formerly used by the production arc-length validation test, with pinned bases and a rigid apex. The von Mises truss uses the geometry of the existing nonlinear engine benchmark. Both use frame elements, pinned supports and a vertical apex load. The case JSON is the single input to the native test, native/WASM parity check and this page.
For half-span s, initial rise h, deformed rise y, L = √(s² + y²), L₀ = √(s² + h²), and axial rigidity EA, the pin-jointed truss reference is P(y) = 2EA(1 − L/L₀)y/L. Its upper limit satisfies L³ = s²L₀. The page measures downward apex displacement v = h − y and downward load P = λPref. .
How the replay and live run are produced
- The native harness calls the production
solve_arc_length. For frame k it reruns withmaxSteps = k, checks the path prefix, and stores the final nodal displacements. This supplies animation without adding a research solver or changing engine results. - The browser worker calls the same production WASM wrapper and repeats those prefix solves. Recompute, Stop, Restart and cached runs always identify their source.
- The Node check compares WASM path steps, iterations, convergence and final displacements with native output. Research, not a design tool: closed-form agreement is not experimental validation or certification.
Comparison on the displayed run
Stabileo traces the snap-through: 3/3 checks within 5%. Tolerances come from the shared case file. A limit check is not passed when the computed path stops before the limit.
| Check | Observed error | Tolerance | Result |
|---|---|---|---|
| Limit load | 1,5 × 10−3 | 5 × 10−2 | ✓ pass |
| Apex displacement at the limit | 3,9 × 10−2 | 5 × 10−2 | ✓ pass |
| Maximum equilibrium-path difference / limit load | 2,3 × 10−5 | 5 × 10−2 | ✓ pass |
For the von Mises geometry, the axial truss comparison omits frame bending; that model difference remains explicit. The shallow frame uses its own energy reference instead.
Shallow-toggle correction (#852): this rigid-jointed frame has no limit point over inversion at the default geometry. Its reference is the derivative of U = EA(L−L₀)²/L₀ + 3EIβ²/L₀, with β = atan(y/s) − atan(h/s): P = 2EA(1−L/L₀)y/L − 6EI s β/(L₀L²). The frame curve and accuracy row use that reference. The former discrepancy came from comparing frame bending force with an axial-only truss formula; it is not evidence of a solver defect. The legacy native replay and validation artifacts retain the original comparison as historical evidence. Reference derivation and independent energy check.
Comparison with the papers
Not done. No published table, figure or limit load from Riks (1979) or Crisfield (1981) is claimed as reproduced. The bibliographic records and DOIs are checked against Crossref. The numerical references on this page are the closed-form equilibrium and the native production run.
Limitations
- Arc-length analysis is two-dimensional. These symmetric two-bar cases do not test asymmetric bifurcation, shells or three-dimensional frames.
- The von Mises reference is axial engineering-strain equilibrium; its frame elements can add bending. The shallow-frame energy reference includes bending and applies to the symmetric rigid-apex model.
- Changing to an upward reference load explores another branch; an upper downward limit check is reported as not reached rather than passed.
- Prefix reruns make each displayed shape a production result, but they repeat computation. No intermediate unconverged iterate is displayed.
Citar isto
Stabileo Research, “Arc-length snap-through: Riks and Crisfield”, reprodução de E. Riks (1979), doi:10.1016/0020-7683(79)90081-7. Implementação: research/numerical-methods/riks-crisfield no commit 8068cd16ea2c. Motor: o motor do Stabileo no mesmo commit. Estão previstos links permanentes para esta compilação exata.