Asymmetric determinate two-bar truss (brace axial force)
Brace axial force, apex displacement & reactions — determinate bar absolute check
Technical features tested
- element Truss — linear (small-displacement) bar
- memberType brace, two-sided, no P-Delta
- Orthonormal braces ⇒ K = (EA/L)·I
- Statically determinate ⇒ exact closed form
- Axial from elem_force.out localForce
Problem description
Two prismatic braces span from a free apex N3 up to two fully fixed supports N1 and N2. A single apex point load with components along global −X and −Z puts both braces in tension. Because the two bar directions are mutually orthogonal, the assembled apex stiffness is diagonal, and the configuration is statically determinate — so the member axial forces, the apex displacement, and the two support reactions all follow from equilibrium and the EA/L bar law in closed form. A two-sided brace with P-Delta off is emitted as a linear Truss, which carries no geometric offset, so STRIX must reproduce every quantity to machine precision.
Geometry, properties & loading
Geometry
- Braces
- 2 (E1, E2)
- Length L
- 5000 mm
- Area A
- 1000 mm²
- Dir û1 (N3→N1)
- (−0.6, 0, 0.8)
- Dir û2 (N3→N2)
- (0.8, 0, 0.6)
Material
- Model
- Elastic
- E
- 200000 MPa
- ν
- 0.3
- Units
- N · mm
Loading & BC
- N1, N2
- fixed 6-DOF
- N3 load
- Fx −10 kN, Fz −20 kN
- N3 fixity
- UY + rot fixed
- Self-weight
- off
- Analysis
- Linear static
Reference solution
- Brace E1 axial N
N1 = -(Fx*u1x + Fz*u1z)= 10000 N - Brace E2 axial N
N2 = -(Fx*u2x + Fz*u2z)= 20000 N - Apex displacement u_z
uz = Fz / (E*A/L)= −0.5 mm
Statically-determinate truss closed form — joint equilibrium (method of joints) gives the member axial forces and EA/L bar stiffness gives the apex displacement; a linear (small-displacement) bar carries no geometric offset, so every quantity is exact.
Results comparison
| Response quantity | Probe | STRIX | Reference | Δ | Verdict |
|---|---|---|---|---|---|
| Brace E1 axial N (N) | E1.Ni | 10000 | 10000 | 0.00% | PASS |
| Brace E2 axial N (N) | E2.Ni | 20000 | 20000 | 0.00% | PASS |
| Apex displacement u_x (mm) | N3.ux | −0.25 | −0.25 | 0.00% | PASS |
| Apex displacement u_z (mm) | N3.uz | −0.5 | −0.5 | 0.00% | PASS |
| Support N1 reaction R_x (N) | N1.Fx | −6000 | −6000 | 0.00% | PASS |
| Support N1 reaction R_z (N) | N1.Fz | 8000 | 8000 | 0.00% | PASS |
| Support N2 reaction R_x (N) | N2.Fx | 16000 | 16000 | 0.00% | PASS |
| Support N2 reaction R_z (N) | N2.Fz | 12000 | 12000 | 0.00% | PASS |
Exactness
| Discretization | Brace E1 N (N) | Δ |
|---|---|---|
| 2 bars (exact) | 10000 | 0.00% |
A statically-determinate truss needs no compatibility relations: the member forces follow from nodal equilibrium alone, and one linear Truss per member represents each bar exactly. There is nothing to refine — the response is discretization-exact, and every reference value is reproduced to machine precision (0 error against a 10⁻⁶% tolerance).
Conclusion
STRIX reproduces the reference solution to 0.00% (tolerance 0%). The tested element and its formulation are verified against the reference.
References & analysis files
- Hibbeler, R. C. — Structural Analysis. Method of joints for statically-determinate trusses; bar elongation δ = NL/EA.
- OpenSees — element Truss (linear, small-displacement bar).
- STRIX headless harness: generatePyForLoadCase → python.exe → parseAll.
- Engine
- v1.0.6 (opensees.pyd)
- Run date
- 2026-08-31
- Record
- records/SB10.json
- Evidence archive
- verif-evidence-eng1.0.6-win-x64.zip · SB10/
- sha256
- (pending publish)