Part VI
Verification
E. Algorithm and software checks · One-way and gap, observation only
A single frame member is fixed at its root. Its tip is pushed by 10.0 N along x and 1.0 N along y, with a one-way support in x that starts active and a 0.0002 mm gap in y that starts open. This is the same problem as the one-way-and-gap case. Here it is run only as an observation: it shows that the solver can change two supports on two directions at once, but it sets no tolerance and passes no judgement on the residuals.
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 |
| Tip transverse force | Fy | 1.0 N |
| One-way support | — | Ux |
| Gap support | — | Uy |
| Gap clearance | c | 0.0002 mm |
| Initial one-way state | — | active |
| Initial gap state | — | inactive (open) |
2.Method.
The expected behaviour matches its twin: the one-way support releases and the gap closes on the first iteration, and nothing changes on the second.
What differs is how the result is judged. No convergence tolerance is applied, and the solver is expected to note that none is set. The out-of-balance force and moment are not checked, and no threshold is applied to the changes in displacement or reaction. It records behaviour; it does not set or meet a standard of agreement.
3.Results.
| Quantity | Expected |
|---|---|
| Changed supports, iteration 1 | 2 |
| Final changed-support count | 0 |
| Iteration count | 2 |
| Final free-DOF work residual | 0.0 N·mm |
| Final one-way state | inactive (released) |
| Final gap state | active (closed) |
| Converged | true |
| Diagnostic | notice that no tolerance is set |
The tests check that:
- The solve converges in exactly 2 iterations, with a changed-support count of 2 on the first and 0 on the last.
- Final states match the reference, and the solver reports its notice that no tolerance is set.
- The final out-of-balance work at the free degrees of freedom is 0.0.
- The changes in displacement and reaction over the last iteration are greater than zero. They are recorded but not compared with any threshold.
- No convergence tolerance is applied to this case.
- Not asserted: the out-of-balance force and moment, and any bound on the displacement or reaction changes.
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 tolerance applies. The case records convergence without applying a tolerance; the solver notes that none is set, and no thresholds are recorded for it. 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 multisupport_depth_inventory_is_observation_only_and_separate_from_seed
Hand calculation:
validation/hand_calcs/nonlinear/assembled_multi_support_multi_dof.md.
Test record, with the recorded run of 2026-07-10:
nl-assembled-multi-dof-multi-support-obs-original.md.