SWBPIPE · The open manual
Part VI · VerificationVI–E3

Part VI

Verification

E. Algorithm and software checks  ·  Reading a model from a file

The cantilever of the load-to-resultant case is written out as a structured model file instead of being built in code. It is a four-metre pipe with one anchor, a uniform load of −2.0 N/m and a midspan point force of −4.0 N. Can the solver read the file, with every property stated and nothing filled in by default, and reach the same answers?

The case checks the path from model file to solver as much as the mechanics.

A cantilever written as a structured model file is read without hidden defaults and solved; the loads, reactions and resultants are checked. w P L THE SAME CANTILEVER, READ FROM A MODEL FILE
Fig. VI–E3.—Reading a model from a file

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
LengthL4.0 m
Elastic modulusE1000.0 Pa
Shear modulusG400.0 Pa
AreaA3.0 m2
Second moment about yIy1.5 m4
Second moment about zIz2.0 m4
Torsion constantJ1.0 m4
Section reference directionyref[0.0, 1.0, 0.0]
Uniform distributed forceq−2.0 N/m
Uniform load span—0.0 to 1.0
Point forceP−4.0 N
Point-force positiona/L0.5
Supports—Node N-1 anchored, node N-2 free

2.Method.

Each load is turned into equivalent end forces and moments. The uniform load gives qL/2 and qL2/12 at each end. The point load is shared out by the cubic shape functions of a beam element, evaluated at its position.

The free-end displacement and rotation follow from the standard cantilever formulas for a uniform load and for a point load, added together. The midspan shear and moment follow from equilibrium, starting from the shear of 12.0 N and moment of 24.0 N·m at the fixed end.

Fy,i = qL/2 = −4.0 N,   Mz,i = qL2/12 = −2.6666666666666665 N·m   (uniform load)(1)
hi = 1 − 3r2 + 2r3 = 0.5,   θi = L(r − 2r2 + r3) = 0.5   (point load, r = 0.5)(2)
v(L) = qL4/(8EIz) + Pa2(3L − a)/(6EIz) = −0.032 + −0.013333333333333334 = −0.04533333333333334 m(3)
θ(L) = qL3/(6EIz) + Pa2/(2EIz) = −0.010666666666666666 + −0.004 = −0.014666666666666668 rad(4)
Vy(x) = Vy,i + qx + P = 12.0 + (−2.0 × 2.0) + −4.0 = 4.0 N(5)
Mz(x) = Mz,i − Vy,ix − qx2/2 − P(x − a) = 4.0 N·m(6)

3.Results.

Assembled loads, reactions, free-end movement and midspan resultants
QuantityExpected
Assembled load, node 0, Uy−6.0 N
Assembled load, node 0, Rz−4.666667 N·m
Assembled load, node 1, Uy−6.0 N
Assembled load, node 1, Rz4.666667 N·m
Fixed-end shear Vy,i12.0 N
Fixed-end moment Mz,i24.0 N·m
Free-end displacement in Y−0.04533333 m
Free-end rotation about Z−0.01466667 rad
Midspan shear Vy4.0 N
Midspan bending moment Mz4.0 N·m

The tests check that:

  • The model file is read into one distributed load and one point force.
  • The section reference direction is taken from the file as [0.0, 1.0, 0.0].
  • The assembled end loads at both nodes match the hand values.
  • The anchor reaction force and moment match the fixed-end shear and moment.
  • The free-end displacement and rotation, and the midspan shear and moment, match the hand values.
  • The recovery removes exactly one distributed-load and one point-force contribution.

What it shows. Checks how the program reads, records and passes on a model, not the mechanics.

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 computed value must match the reference within an absolute difference of 1.0 × 10−9 in the case’s own units; counts and structural outcomes must match exactly. 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/mechanics/Cargo.toml tp_phys_014_canonical_analytical_payload_drives_solver_consumption

Hand calculation: validation/hand_calcs/mechanics/tp_phys_014_canonical_analytical_payload.md. Test record, with the recorded run of 2026-07-10: mech-tp-phys-014-canonical-analytical-payload.md.

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