Part VI
Verification
E. Algorithm and software checks · Stick and slide, single step
Two friction supports are checked at the third of up to six iterations. Both have μ = 0.30 and a normal reaction of 10.0 N. The first was sticking and now carries a tangential reaction of 2.0 N; the second was sliding and now carries 3.5 N. Should each keep its state? This case tests one classification step on its own, with no frame solve around it.
1.Inputs.
Illustrative values, taken from no standard and chosen so the arithmetic can be followed by hand. Most do not describe a real pipe; read them in any consistent set of units.
| Quantity | Stick support | Slide support |
|---|---|---|
| Iteration | 3 | 3 |
| Maximum iterations | 6 | 6 |
| Active-set residual tolerance | 0.0 (count) | 0.0 (count) |
| Friction coefficient, μ | 0.30 | 0.30 |
| Normal reaction, N | 10.0 N | 10.0 N |
| Tangential reaction, T | 2.0 N | 3.5 N |
| Prior state | sticking | sliding |
2.Method.
Each support is compared with its friction limit, μN. The first support’s tangential reaction of 2.0 N lies within the limit, so it sticks. The second’s 3.5 N exceeds it, so it slides. Both keep their prior states, no support changes, and the active-set residual is zero.
3.Results.
| Quantity | Expected |
|---|---|
| Friction coefficient | 0.30 |
| Stick support tangential reaction | 2.0 N |
| Slide support tangential reaction | 3.5 N |
| Stick support state | sticking |
| Slide support state | sliding |
| Active-set residual | 0.0 |
The tests check that:
- The first support is classified as sticking and the second as sliding.
- No support is reported as changed, the active-set residual is exactly 0.0, and the step is reported as converged with no diagnostic.
- Every input and expected value carries an explicit unit, and the case’s source note exists. This is a bookkeeping check, not a mechanics check.
What it shows. Checks the supports’ final states, the iteration count and the balance of forces. Movements and reactions are not compared with a hand calculation.
Path exercised. The benchmark calls the solver’s components directly: elements, loads, frame solver and stress recovery. It does not go through the program’s own model-to-solve path.
Agreement. No numerical tolerance band applies. The tests require the exact expected support state, changed-support count and convergence flag; nothing is compared within a margin. Long values are shown here to seven significant figures; the tests compare the full values in the record.
4.Run it yourself.
cd projects/chirality-piping cargo test --manifest-path validation/benchmarks/nonlinear/Cargo.toml fixtures_are_public_original_and_unit_aware cargo test --manifest-path validation/benchmarks/nonlinear/Cargo.toml active_set_gap_lift_off_and_friction_outcomes_are_deterministic
Hand calculation:
validation/hand_calcs/nonlinear/friction_transition.md.
Test record, with the recorded run of 2026-07-10:
nl-friction-stick-slide-original.md.