Part VI
Verification
E. Algorithm and software checks · Closed gap stays closed, single step
At the second iteration, a gap with clearance 0.25 mm is closed. Trial displacement is exactly 0.25 mm. Trial reaction −2.0 N resists further positive movement. Should contact remain? This test classifies one trial state without solving a frame.
This page preserves a recorded benchmark and its expected values. The dated run below is not a new run of the current product.
The current product limits active-set solves to four iterations. Current mechanics combinations with nonlinear supports are withheld. These recorded transitions and free-degree residuals do not establish general equilibrium or convergence for other models.
This test classifies a supplied trial state without solving a frame. Its iteration inputs are local to that classification test and do not change the current product iteration limit.
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 | Symbol | Value |
|---|---|---|
| Iteration | — | 2 |
| Maximum iterations | — | 6 |
| Active-set residual tolerance | — | 0.0 (count) |
| Gap clearance | c | 0.25 mm |
| Trial displacement | u | 0.25 mm |
| Trial reaction | R | −2.0 N |
| Prior state | — | active (closed) |
2.Method.
A closed gap is judged by the sign of its contact force, not by its displacement, which sits at the clearance. A gap that closes on positive movement bears with a negative reaction. The −2.0 N reaction has that sign, so contact persists and the gap stays closed. No support changes state, so the active-set residual is zero and the step is converged.
3.Results.
| Quantity | Expected |
|---|---|
| Clearance | 0.25 mm |
| Trial displacement | 0.25 mm |
| Trial reaction | −2.0 N |
| State after the step | active (closed) |
| Active-set residual | 0.0 |
The case record describes these checks:
- The gap stays active (closed), and 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. Compares final support states, the iteration count, and force balance. It does not compare movements or reactions 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.Recorded command.
This command belongs to the linked case record and its recorded execution path. This website update did not rerun it. A historical command or result does not establish current product support.
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/gap_closure.md.
Test record, with the recorded run of 2026-07-10:
nl-gap-closure-original.md.