Part VI
Verification
B. Elements and loads · One linear static path, end to end
A straight member four metres long is anchored at node 0. At node 1 it carries an axial force of 12.0 N, rests on a spring of 40.0 N/m in Y, and is given an imposed displacement of −0.01 m in Z. A uniform load of −2.0 N/m acts in Y along its length. The case follows one path through the solver: load preparation, lumping, supports, solution and recovery of end forces.
It then feeds in two faulty inputs and expects each to be reported as a blocking error.
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.
| Quantity | Symbol | Value |
|---|---|---|
| Length | L | 4.0 m |
| Elastic modulus | E | 1500.0 Pa |
| Shear modulus | G | 600.0 Pa |
| Area | A | 2.0 m2 |
| Second moment about y | Iy | 1.8 m4 |
| Second moment about z | Iz | 2.2 m4 |
| Torsion constant | J | 0.9 m4 |
| Node 1 axial force, global X | Px | 12.0 N |
| Uniform load, global Y | w | −2.0 N/m |
| Node 0 anchor | — | 6 restrained freedoms |
| Node 1 spring in Y | k | 40.0 N/m |
| Node 1 imposed displacement in Z | uz | −0.01 m |
2.Method.
The uniform load is lumped half to each end. The axial response is a single spring of stiffness EA/L, so the end displacement is the force over that stiffness, and the recovered axial end force returns the applied force.
In Y the member is a cantilever whose tip may rotate freely, so its tip stiffness is 3EIz/L3 = 154.6875 N/m. The spring acts in parallel. The node 1 displacement is the lumped load over the combined stiffness, and the end shear is the member’s share of the load. The imposed displacement in Z and the axial force act in planes that do not couple to Y.
3.Results.
| Quantity | Expected |
|---|---|
| Lumped force at node 0, Y | −4.0 N |
| Lumped force at node 1, Y | −4.0 N |
| Node 1 axial displacement | 0.016 m |
| Node 1 displacement in Y | −0.02054575 m |
| Node 1 displacement in Z | −0.01 m (imposed) |
| Recovered local axial force at node j | 12.0 N |
| Recovered local shear in Y at node j | −3.17817 N |
| Spring with no stiffness | Blocking restraint error |
| Load with no target | Blocking model-topology error |
The tests check that:
- All solved and recovered quantities are finite.
- The lumped end forces match the hand values.
- The axial displacement and the recovered axial force match the hand values.
- The node 1 displacement in Z equals the imposed value.
- The node 1 displacement in Y and the recovered shear in Y match the hand values.
- A spring with no stiffness is reported as a blocking restraint error naming that spring.
- A load with no target is reported as a blocking model-topology error naming that load.
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 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_002_integrated_fixture_solves_recovers_and_maps_diagnostics
Hand calculation:
validation/hand_calcs/mechanics/tp_phys_002_linear_static_integration.md.
Test record, with the recorded run of 2026-07-10, with the strengthened check first run on 2026-09-22:
mech-tp-phys-002-linear-static-integration.md.