SWBPIPE · The open manual
Part VI · VerificationVI–E22

Part VI

Verification

E. Algorithm and software checks  ·  One-way support lets go

A straight member 1.0 mm long, with an axial stiffness of 100.0 N/mm, is fixed at one end. The other end can move only along the member’s axis. It is pushed along the axis by 10.0 N. The free end is held by a one-way support, which can resist in one sense only, and the support starts active. Is the push in the sense the support can resist? If not, does the solver release it and settle?

An active one-way support under a 10.0 N axial push sees a reaction of the wrong sense; it must release and the loop converge in two iterations. F ONE-WAY AXIAL MOVEMENT ONLY AT THE TIP
Fig. VI–E22.—One-way support lets go

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
Node count—2
Member lengthL1.0 mm
Axial stiffnessk100.0 N/mm
Applied axial forceF10.0 N
Maximum iterations—4
Active-set residual tolerance—0.0 (count)
Initial state—active

2.Method.

With the support active, the first solve holds the end, and the reaction does not match the sense the support can carry. The support therefore releases. The second solve leaves the end free, the support stays released, nothing changes state, and the loop has converged.

3.Results.

Expected outcome
QuantityExpected
Iteration count2
Final changed-support count0.0
Final stateinactive (released)
Convergedtrue

The tests check that:

  • The solve converges in exactly 2 iterations, ending with the support released and a changed-support count of 0.
  • At the final iteration the out-of-balance force, moment and work at the free degrees of freedom are all exactly 0.0.
  • The solve carries no notice that its tolerance is unset.
  • The displacement changes over the last iteration, and that change stays inside the recorded envelope.

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. The loop counts as converged only when no support changes state from one iteration to the next: the changed-support count must reach exactly 0, with no relative or absolute allowance, within at most 4 iterations. At the final iteration the out-of-balance force, moment and work at the free degrees of freedom must be 0.0, and the change in displacement and reaction over the last iteration must stay inside a recorded envelope. 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 assembled_global_loop_seed_cases_converge_under_governed_policy
cargo test --manifest-path validation/benchmarks/nonlinear/Cargo.toml assembled_convergence_observations_record_measured_fixture_values_only
cargo test --manifest-path validation/benchmarks/nonlinear/Cargo.toml assembled_force_displacement_residual_observations_use_free_dof_force_moment_thresholds

Hand calculation: validation/hand_calcs/nonlinear/assembled_one_way_deactivation.md. Test record, with the recorded run of 2026-07-10: nl-assembled-one-way-deactivate-original.md.

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