SWBPIPE · The open manual
Part VI · VerificationVI–C5

Part VI

Verification

C. Stress recovery  ·  Stress range between two states

The same invented section is loaded in two states, A and B, with different axial forces, bending moments and torques. What is the range of each stress component between the two states? Each range is the absolute difference of one component, not an equivalent stress.

A second question follows. If pressure is given in one state but not the other, does the solver refuse to form a range, rather than quietly return one?

Read with

This case checks the difference of each stress component between two states. The code displacement stress range is formed from the difference of the moments first, and the stress is computed from that (Part II D). The program does not yet form it (Status).

Two load states on the same section; checks the component-by-component stress range, and that a pressure mismatch between the states is refused. STATE A N, My, Mz, T STATE B N, My, Mz, T → RANGE = |B − A| FOR EACH COMPONENT
Fig. VI–C5.—Stress range between two states

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.

QuantitySymbolState AState B
Axial forceN60.0 N180.0 N
Bending moment about local yMy−20.0 N·m80.0 N·m
Bending moment about local zMz10.0 N·m10.0 N·m
Torsional momentT20.0 N·m60.0 N·m
AreaA12.0 m212.0 m2
Section modulus about local yZy25.0 m325.0 m3
Section modulus about local zZz15.0 m315.0 m3
Torsion radiusr2.0 m2.0 m
Torsion constantJ80.0 m480.0 m4

2.Method.

Each stress component is recovered in each state: force over area, moment over section modulus, or torque times radius over torsion constant. The range of a component is the absolute difference between its two values. The components are kept separate and are not combined.

Pressure is left out of both states, so no pressure range is formed.

Δσaxial = |180.0 / 12.0 − 60.0 / 12.0| = 10.0 Pa(1)
Δσb,y = |80.0 / 25.0 − (−20.0 / 25.0)| = 4.0 Pa(2)
Δτ = |60.0 × 2.0 / 80.0 − 20.0 × 2.0 / 80.0| = 1.0 Pa(3)
Δσb,z = |10.0 / 15.0 − 10.0 / 15.0| = 0.0 Pa(4)

3.Results.

Expected ranges between states A and B, and the expected refusal
QuantityExpected
Axial normal stress range10.0 Pa
Bending stress range about y4.0 Pa
Bending stress range about z0.0 Pa
Torsional shear stress range1.0 Pa
Hoop and longitudinal pressure rangesNot formed (no pressure in either state)
Pressure given in one state onlyRange blocked; hoop and longitudinal pressure ranges reported missing

The tests check that:

  • With no pressure in either state, the range completes without being blocked.
  • The axial, bending-y, bending-z and torsional shear ranges match 10.0, 4.0, 0.0 and 1.0 Pa.
  • No hoop or longitudinal pressure range is reported.
  • When pressure is supplied in only one state, the range is blocked.
  • In that blocked case no axial range is returned, and the hoop and longitudinal pressure ranges are each reported as missing.

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. Each range must match the hand calculation to within an absolute difference of 1.0 × 10−9 Pa. The blocking and the missing-value reports are checked exactly. Long values are shown here to seven significant figures; the tests compare the full values in the record.

For the student

The bending range about y is larger than the bending stress in either state alone, because the moment changes sign between the states. A range measures the swing from one state to the other, not the larger of the two peaks.

4.Run it yourself.

cd projects/chirality-piping
cargo test --manifest-path validation/benchmarks/stress/Cargo.toml computes_mechanics_only_stress_range_fixture
cargo test --manifest-path validation/benchmarks/stress/Cargo.toml stress_range_blocks_asymmetric_optional_pressure_components

Hand calculation: validation/hand_calcs/stress/stress_range.md. Test record, with the recorded run of 2026-07-10: stress-range-mechanics-original.md.

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