Page actions
instrument implementation / implementation-contract
Oblique Shock Calculator implementation
A source-bound implementation contract for Oblique Shock Calculator; 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
- t6-075
- Effect
- Computation or source lookup only
Input and validation requirements
The formula produces an undefined result when its denominator is forced to zero, and the specification does not state how negative deflection angles should be interpreted. The calculator should reject nonphysical gamma=0 and signed expansion inputs rather than silently returning shock results.
Required corrections
[
{
"vector": 1,
"field": "M2",
"wrong": "sqrt(3)=1.732",
"correct": 2,
"cause": "own working concludes M2=Mn2/sin(beta-theta)=1/sin30=2 (degenerate Mach wave, M unchanged) then field ships sqrt(3)"
},
{
"vector": 2,
"field": "M2",
"wrong": 1.45605,
"correct": 1.456324,
"cause": "micro 5th-digit slip"
},
{
"vector": 3,
"field": "theta / M2",
"wrong": "atan(75/382)=11.09 deg / 382.0",
"correct": "atan(25*sqrt(3)/191)=12.77 deg / 2.3673",
"cause": "working equates 25*sqrt(3)/191 with 75/382, i.e. sqrt(3)=1.5; M2 field ships the denominator 382 — nonsense value"
},
{
"vector": 4,
"field": "M2",
"wrong": 4.14728827,
"correct": 1.036822,
"cause": "M2 through a beta=60deg shock at M1=2 cannot exceed M1"
}
]Inspectable interface fixture
The sample below is evidence for interface and validation tests, not a production implementation.
{
"inputs": {
"mode": "beta",
"M1": 2,
"beta": 30,
"gamma": 1.4,
"angle_unit": "degrees",
"branch": "weak"
},
"expected_outputs": {
"theta": 0,
"beta": 30,
"M2": "sqrt(3) = 1.73205080757",
"P2_over_P1": 1,
"T2_over_T1": 1
},
"working": "Mn1=M1 sin(beta)=2 sin(30°)=2(1/2)=1. Mn1^2=1. tan(theta)=2 cot(30°)(1-1)/[4(1.4+cos(60°))+2]=0, so theta=0°. Normal-shock pressure ratio=1+[2 gamma/(gamma+1)](Mn1^2-1)=1+[2(1.4)/2.4](0)=1. Density ratio=[(gamma+1)Mn1^2]/[(gamma-1)Mn1^2+2]=2.4/(0.4+2)=1. Temperature ratio=(P2/P1)/(rho2/rho1)=1/1=1. Mn2^2=[1+0.2(1)]/[1.4(1)-0.2]=1.2/1.2=1, so Mn2=1. M2=Mn2/sin(beta-theta)=1/sin(30°)=2. This is the Mach-wave boundary, not a finite-strength shock; equivalently the weak oblique-shock limit gives M2=M1=2. For the same theta=0°, the strong branch is beta=90° with M2=sqrt(1/3)=0.57735026919."
}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-tranche6/tranche6-results.jsontranche errata record