Page actions
instrument implementation / implementation-contract
Truss Solver (Method of Joints) implementation
A source-bound implementation contract for Truss Solver (Method of Joints); deployment and executable qualification remain separate.
Binding contract
This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.
- Record owner
- Guth Instruments
- Lifecycle
- verified-clean
- Evidence ID
- t8-011
- Effect
- Computation or source lookup only
Input and validation requirements
A coincident pair of joints creates a zero-length member whose direction cosines contain 0/0, so the solver must reject the input rather than pass it to the matrix solver. Sign and directional conventions also require explicit handling to avoid reversed tension/compression and reaction signs.
Required corrections
No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.
Inspectable interface fixture
The sample below is evidence for interface and validation tests, not a production implementation.
{
"inputs": {
"joints": {
"A": [
0,
0
],
"B": [
4,
0
],
"C": [
2,
3
]
},
"members": {
"AB": [
"A",
"B"
],
"AC": [
"A",
"C"
],
"BC": [
"B",
"C"
]
},
"supports": {
"A": {
"type": "pin"
},
"B": {
"type": "roller",
"restrained_direction": "y"
}
},
"loads": {
"C": {
"Fx": 0,
"Fy": -10
}
},
"coordinate_unit": "m",
"force_unit": "kN",
"sign_convention": "positive=tension",
"determinacy_check": "m+r=2j"
},
"expected_outputs": {
"member_forces": {
"AB": "10/3 kN (tension)",
"AC": "-5*sqrt(13)/3 kN (compression)",
"BC": "-5*sqrt(13)/3 kN (compression)"
},
"reactions": {
"A": {
"Rx": "0 kN",
"Ry": "5 kN"
},
"B": {
"Ry": "5 kN"
}
},
"determinacy": {
"m": 3,
"r": 3,
"j": 3,
"m_plus_r": "6",
"two_j": "6"
},
"joint_residuals": {
"A": [
"0 kN",
"0 kN"
],
"B": [
"0 kN",
"0 kN"
],
"C": [
"0 kN",
"0 kN"
]
}
},
"reference_data": {
"member_lengths": {
"AB": "4 m",
"AC": "sqrt(13) m",
"BC": "sqrt(13) m"
},
"direction_cosines": {
"AC": {
"from_A_to_C": [
"2/sqrt(13)",
"3/sqrt(13)"
]
},
"BC": {
"from_B_to_C": [
"-2/sqrt(13)",
"3/sqrt(13)"
]
}
}
},
"working": "Global reactions: sum M_A=0 gives 4*B_y-10*2=0, so B_y=5 kN. Sum F_y=0 gives A_y+5-10=0, so A_y=5 kN. Sum F_x=0 gives A_x=0. At joint C, let F_AC=F_BC by horizontal equilibrium: (-2/sqrt(13))F_AC+(2/sqrt(13))F_BC=0. Vertical equilibrium gives (-3/sqrt(13))F_AC+(-3/sqrt(13))F_BC-10=0. Therefore F_AC=F_BC=-5*sqrt(13)/3 kN. At joint A, F_AB+(2/sqrt(13))F_AC=0, so F_AB-10/3=0 and F_AB=10/3 kN. Residuals: A: (0+10/3-10/3, 5-5)=(0,0); B: (-(10/3)+10/3, 5-5)=(0,0); C: (10/3-10/3, 5+5-10)=(0,0)."
}Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche8/tranche8-results.json