SWBPIPE · The open manual
Part VI · VerificationVI–D5

Part VI

Verification

D. Nonlinear supports  ·  Closed gap opens again

A straight member 1.0 mm long has axial stiffness 100.0 N/mm and one fixed end. Its other end can move only axially. A stop 0.01 mm beyond that end resists positive movement. The gap starts closed, with the end at the stop. A load of −2.0 N pulls the end away. The stop can push but cannot pull, so does the gap open, and where does the end 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.

A closed gap at +0.01 mm needs pulling reaction +3.0 N under load −2.0 N. It must open, leaving displacement −0.02 mm. F g (closed) AXIAL MOVEMENT ONLY AT THE TIP
Fig. VI–D5.—Closed gap opens again

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 forceF−2.0 N
Gap clearancec0.01 mm
Gap closing direction—positive displacement
Maximum iterations—4
Active-set residual tolerance—0.0 (count)
Initial state—active (gap closed)

2.Method.

With the gap closed, the first solve holds the end at the clearance, +0.01 mm. The reaction there is 100.0 × 0.01 − (−2.0) = +3.0 N. A stop that resists positive movement can bear only with a negative reaction. A positive reaction means the stop would have to pull the end onto itself, so the gap opens.

On the second iteration the end is free and moves −2.0 / 100.0 = −0.02 mm. That does not reach the +0.01 mm clearance, so the gap stays open, nothing changes state, and the loop has converged.

R1 = k c − F = 100.0 × 0.01 − (−2.0) = +3.0 N(1)
u2 = F / k = −2.0 / 100.0 = −0.02 mm(2)

3.Results.

Expected values
QuantityExpected
Closed-gap pulling reaction (iteration 1)3.0 N
Released free displacement (iteration 2)−0.02 mm
Final reaction0.0 N
Iteration count2
Final changed-support count0.0
Final stateinactive (gap open)
Convergedtrue

The case record describes these checks:

  • The solve converges in exactly 2 iterations, ending with the gap open and a changed-support count of 0.
  • On the first iteration the end is held at 0.01 mm and the reaction is 3.0 N, compared exactly.
  • The final displacement is −0.02 mm and the final reaction is 0.0 N, compared exactly.
  • 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.
  • Any change in displacement or reaction over the last iteration stays inside the recorded envelope.

What it shows. Compared with an independent 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 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.

For the student

A closed gap sits exactly at its clearance, so its displacement alone can never show that it should open. Only the sign of the contact force can: a stop that would have to pull is a stop the pipe has already left.

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 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
cargo test --manifest-path validation/benchmarks/nonlinear/Cargo.toml dec_067_transition_fixtures_witness_state_switched_and_bounded_outcomes

Hand calculation: validation/hand_calcs/nonlinear/assembled_gap_lift_off.md. Test record, with the recorded run of 2026-07-10: nl-assembled-gap-lift-off-original.md.

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