Part VI
Verification
C. Stress recovery · Hot-state properties and stress range
A pipe of metal area 0.004 m2 is fully restrained at both ends and warmed uniformly by 10.0 K. Its elastic modulus and expansion coefficient are entered at a hot temperature point: 1.8 × 1011 Pa and 1.3 × 10−5 1/K. What axial force and stress arise? What is the stress range to the cold, unloaded state, and does the range record which set of properties each state used?
A second question concerns values between entered points. With properties entered at 300.0 K and 500.0 K, what modulus and expansion coefficient apply at 400.0 K by straight-line interpolation?
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 |
|---|---|---|
| Hot-point elastic modulus | Ehot | 1.8 × 1011 Pa |
| Hot-point expansion coefficient | αhot | 1.3 × 10−5 1/K |
| Temperature change | ΔT | 10.0 K |
| Pipe metal area | A | 0.004 m2 |
| Hot-state property label | — | temperature_point:hot |
| Cold-state property label | — | material_base_values |
| Lower and upper entered temperatures | T1, T2 | 300.0 K, 500.0 K |
| Solve temperature | Tsolve | 400.0 K |
| Elastic modulus at T1 and T2 | E1, E2 | 2.0 × 1011 Pa, 1.8 × 1011 Pa |
| Expansion coefficient at T1 and T2 | α1, α2 | 1.2 × 10−5 1/K, 1.4 × 10−5 1/K |
2.Method.
A bar fixed at both ends and warmed uniformly cannot lengthen, so its free thermal strain αΔT is cancelled by an equal and opposite mechanical strain. The axial force is EAαΔT, using the hot-point values, and the stress is that force over the area. The cold state carries no load, so the range equals the hot stress.
The range is formed together with a record that names the property set of each state exactly as entered; the solver does not infer it. Between two entered temperatures, each property is interpolated along a straight line. The reference does not extend beyond the two entered points.
In the test, the hot axial force is formed from the closed form in the benchmark and passed to the solver’s stress recovery and range. The interpolated values are checked as the benchmark’s own arithmetic, not through a solver interpolation routine.
3.Results.
| Quantity | Expected |
|---|---|
| Hot-state axial force, Fhot | 93600.0 N |
| Hot-state axial stress | 2.34 × 107 Pa |
| Cold-state axial stress | 0.0 Pa |
| Axial stress range | 2.34 × 107 Pa |
| Property record, first (hot) state | temperature_point:hot |
| Property record, second (cold) state | material_base_values |
| Interpolated elastic modulus at 400 K | 1.9 × 1011 Pa |
| Interpolated expansion coefficient at 400 K | 1.3 × 10−5 1/K |
The tests check that:
- The hot-state stress recovery completes without being blocked, and its axial stress matches 2.34 × 107 Pa.
- The range between the hot and cold states completes without being blocked, and its axial range matches 2.34 × 107 Pa.
- The range record names the hot state as temperature_point:hot and the cold state as material_base_values, exactly as entered.
- A range formed without a record carries no property record and gives the same ranges.
- The interpolated modulus and expansion coefficient match 1.9 × 1011 Pa and 1.3 × 10−5 1/K in the benchmark’s own arithmetic.
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 checked value must match the hand calculation to within an absolute difference of 1.0 × 10−9 in its own units. The property labels and the blocking conditions are checked exactly. Long values are shown here to seven significant figures; the tests compare the full values in the record.
For a fully restrained bar, the thermal stress EαΔT does not depend on the area; only the force does. A heavier wall raises the load on the restraints but leaves the stress unchanged. The stress does depend on which modulus and expansion coefficient are used, which is why the range records them.
4.Run it yourself.
cd projects/chirality-piping cargo test --manifest-path validation/benchmarks/stress/Cargo.toml recovers_modulusbasis_range_fixture_with_recorded_bases
Hand calculation:
validation/hand_calcs/stress/tp_pmm_p3_modulusbasis_range_stress.md.
Test record, with the recorded run of 2026-07-10:
stress-tp-pmm-p3-modulusbasis-range-stress.md.