Part VI
Verification
E. Algorithm and software checks · Derived-normal friction with a vertical gap
A frame member is fixed at its root. Tip force 10.0 N acts in x against friction with μ = 0.06. Normal force comes from a y restraint reaction under load −100.0 N. Force 6.0 N acts toward a gap of 0.0002 mm in z. Friction starts sticking, and the gap starts open. Where do the supports settle?
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.
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 |
|---|---|---|
| Tip axial force | Fx | 10.0 N |
| Normal-source force | Fy | −100.0 N |
| Tip vertical force | Fz | 6.0 N |
| Friction support | — | Ux at the tip |
| Normal source | — | Uy restraint |
| Gap support | — | Uz at the tip |
| Friction coefficient | μ | 0.06 |
| Derived normal reaction | N | 100.0 N |
| Friction limit | μN | 6.0 N |
| Gap clearance | c | 0.0002 mm |
| Initial friction state | — | sticking |
| Initial gap state | — | inactive (open) |
2.Method.
The friction support uses the absolute y restraint reaction, 100.0 N, as normal force. Its limit is 0.06 × 100.0 = 6.0 N. The 10.0 N axial force is more than that, so the support slides. The gap in z closes. Both supports change on the first iteration, and neither changes on the second.
The reference for this group records the expected support states, changed-support counts and final residuals. It does not work out displacements or reactions, so none are tabulated here.
3.Results.
| Quantity | Expected |
|---|---|
| Changed supports, iteration 1 | 2 |
| Final changed-support count | 0 |
| Iteration count | 2 |
| Free-DOF force residual | 0.0 N |
| Free-DOF moment residual | 0.0 N·mm |
| Final free-DOF work residual | 0.0 N·mm |
| Final friction state | sliding |
| Final gap state | active (closed) |
| Converged | true |
| Diagnostic | none |
The case record describes these checks:
- The solve converges in exactly 2 iterations: 2 supports change state on the first iteration and none on the last.
- Final states match the reference: friction sliding, gap closed. No diagnostics are raised.
- At the final iteration the out-of-balance force, moment and work at the free degrees of freedom are all exactly 0.0.
- The changes in displacement, rotation and reaction over the last iteration stay inside the recorded envelope for this group.
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. The loop counts as converged only when no support changes state between iterations. The changed-support count must reach exactly 0 within at most 4 iterations, with no relative or absolute allowance. At the final iteration, out-of-balance force, moment and work at free degrees of freedom must be 0.0. Changes in displacement, rotation and reaction over the last iteration must stay inside the recorded envelope. 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 multisupport_acceptance_inventory_uses_narrow_dec_046_policy
Hand calculation:
validation/hand_calcs/nonlinear/assembled_multi_support_derived_normal_gap_acceptance.md.
Test record, with the recorded run of 2026-07-10:
nl-assembled-multi-dof-derived-normal-gap-accepted-original.md.