Page actions
instrument implementation / implementation-contract
Multi-Span Continuous Beam Solver implementation
A source-bound implementation contract for Multi-Span Continuous Beam Solver; 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-with-binding-errata
- Evidence ID
- t8-002
- Effect
- Computation or source lookup only
Input and validation requirements
A zero-length span produces undefined 0/0 and stiffness divisions by zero, so the solver must reject it before evaluating the three-moment equation or assembling the matrix. The convention probe also exposes a potentially serious sign-interpretation hazard, although the signed-load result itself is finite.
Required corrections
[
{
"vector": 2,
"field": "span_1 reaction split / global A,B",
"wrong": "left=14.875, right=5.125, A=14.875, B=18.375",
"correct": "left=5.125, right=14.875, A=5.125, B=28.125 (C=6.75 unaffected)",
"cause": "span1's left/right reaction split is transposed — confirmed by independent global-moment-about-A check: her triple gives 4*18.375+10*6.75=141, but 4R_B+10R_C must equal 2*20+7*20=180 for the stated loads; the corrected split (28.125,6.75) gives exactly 180. Her own derivation text computes the same 5.125 value and explicitly calls it 'the right-side reaction', then two lines later relabels it 'left' via a sign-flipped M_right/M_left substitution"
},
{
"stress_correction": {
"v1": {
"vector_inputs": {
"supports": "A-B-C",
"span_lengths": [
4,
6
],
"loads": [
[
{
"type": "point",
"magnitude": 10,
"position_from_left": 1
}
],
[
{
"type": "point",
"magnitude": 12,
"position_from_left": 2
}
]
],
"EI": [
1,
4
]
},
"wrong_outputs": {
"support_moments": {
"A": 0,
"B": -7.9090909091,
"C": 0
},
"support_reactions": {
"A": 0.5227272727,
"B": 14.7954545455,
"C": 6.6818181818
}
},
"corrected_outputs": {
"support_moments": {
"A": 0,
"B": -7.0454545455,
"C": 0
},
"support_reactions": {
"A": 11.1363636364,
"B": 7.4671717172,
"C": 3.3964646465
}
}
},
"v2": {
"vector_inputs": {
"supports": "A-B-C",
"span_lengths": [
3,
5
],
"loads": [
[
{
"type": "udl",
"intensity": 6
}
],
[
{
"type": "point",
"magnitude": 20,
"position_from_left": 1
}
]
],
"EI": [
2,
8
]
},
"wrong_outputs": {
"support_moments": {
"A": 0,
"B": -9.1764705882,
"C": 0
},
"support_reactions": {
"A": 5.9411764706,
"B": 17.8941176471,
"C": 14.1647058824
}
},
"corrected_outputs": {
"support_moments": {
"A": 0,
"B": -9,
"C": 0
},
"support_reactions": {
"A": 12,
"B": 24.04,
"C": 1.96
}
}
},
"method": "independently verified two ways (per-span-EI three-moment theorem via triangular-BMD centroid decomposition; direct-stiffness-matrix FEM solve, 2 elements/3 nodes/fixed-end-moments) — both agree exactly. Reactions recomputed from the corrected moments via standard end-moment reaction correction, and checked against total-load equilibrium (ΣR = ΣP exactly in both vectors)."
}
}
]Inspectable interface fixture
The sample below is evidence for interface and validation tests, not a production implementation.
{
"inputs": {
"spans": [
{
"L": 5,
"load": {
"type": "UDL",
"q": 10,
"units": "kN/m"
},
"EI": 20000000
},
{
"L": 5,
"load": {
"type": "UDL",
"q": 10,
"units": "kN/m"
},
"EI": 20000000
}
],
"end_supports": "simple",
"support_moment_sign": "sagging_positive",
"length_units": "m",
"force_units": "kN",
"EI_units": "kN*m^2"
},
"expected_outputs": {
"support_moments": {
"M0": "0 kN*m",
"M1": "-31.25 kN*m",
"M2": "0 kN*m"
},
"span_reactions": {
"span_1": {
"left": "18.75 kN",
"right": "31.25 kN"
},
"span_2": {
"left": "31.25 kN",
"right": "18.75 kN"
}
},
"global_support_reactions": {
"A": "18.75 kN",
"B": "62.5 kN",
"C": "18.75 kN"
},
"equilibrium_check": "18.75+62.5+18.75=100.0 kN"
},
"reference_data": {
"method": "Clapeyron three-moment equation for equal EI and simple end supports",
"simply_supported_moment_area_each_span": "qL^3/12=10*5^3/12=625/6 kN*m^2",
"centroid_each_span": "L/2=2.5 m"
},
"working": "For each span, A=qL^3/12=10*125/12=104.1666667 kN*m^2. Therefore A*xbar/L=(104.1666667*2.5)/5=52.08333333 kN*m^2. The two-span equation is 0*5+2*M1*(5+5)+0*5=-6*(52.08333333+52.08333333)=-625. Hence 20*M1=-625 and M1=-31.25 kN*m. For span 1, W=qL=50 kN and Wa=50*2.5=125 kN*m, so R_A=(M1-M0+Wa)/L=(-31.25-0+125)/5=18.75 kN and R_B1=W-R_A=31.25 kN. For span 2, R_B2=(M2-M1+Wa)/L=(0-(-31.25)+125)/5=31.25 kN and R_C=50-31.25=18.75 kN. The global middle reaction is R_B=R_B1+R_B2=62.5 kN."
}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.jsontranche errata recordSTRESS_TEST_CORRECTIONS_APPLIED.json