SWBPIPE · The open manual
Part VI · VerificationVI–E5

Part VI

Verification

E. Algorithm and software checks  ·  One-way re-engagement, single step

A one-way support can push but cannot pull. It has been released, and at the first iteration the trial displacement at its degree of freedom is −0.02 mm, towards the side the support bears against. Its trial reaction is zero, as it must be for a support that carries nothing. Should the support re-engage, and how is the change counted? 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.

QuantitySymbolValue
Iteration—1
Maximum iterations—6
Active-set residual tolerance—0.0 (count)
Trial displacementu−0.02 mm
Trial reactionR0.0 N
Prior state—inactive (released)

2.Method.

A released support cannot be judged by its reaction, which is identically zero at a free degree of freedom. It is judged instead by the trial displacement: if the point has moved into the side the support can bear against, the support re-engages. This support carries a positive reaction and so bears against negative displacement. The trial displacement of −0.02 mm is negative, so the support becomes active.

One support has changed state. The active-set residual is the count of changed supports, so it is 1, and the step is not yet converged.

3.Results.

Expected outcome of the step
QuantityExpected
Trial displacement−0.02 mm
State change count1.0
State after the stepactive
Convergedfalse

The tests check that:

  • The support’s new state is active, and it is the only support reported as changed.
  • The changed-support count is exactly 1.0.
  • The step is reported as not converged, with a warning rather than a failure.
  • 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.

For the student

A released support carries no load, so a test on the sign of its reaction can never bring it back. The displacement is the only evidence that the pipe has come back down onto it.

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/active_set_one_way.md. Test record, with the recorded run of 2026-07-10: nl-active-one-way-original.md.

Contents · Part VI · The program: swbpipe.com · MIT licence