Page actions
instrument implementation / implementation-contract
Projectile with Air Drag (numeric) implementation
A source-bound implementation contract for Projectile with Air Drag (numeric); 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
- t6-017
- Effect
- Computation or source lookup only
Input and validation requirements
The zero-mass input makes the acceleration coefficient divide by zero and must be rejected. The zero-timestep boundary also exposes a possible validation issue, while the zero-speed range-reduction ratio is undefined as 0/0.
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": {
"v0": 20,
"angle_deg": 30,
"mass_kg": 1,
"Cd": 0,
"area_m2": 1,
"rho_air_kg_m3": 1.225,
"g_m_s2": 9.81,
"initial_height_m": 0,
"dt_s": 0.1,
"sample_times_s": [
0,
1,
2
],
"ground_rule": "first downward y=0 crossing"
},
"expected_outputs": {
"trajectory_samples": [
{
"t_s": 0,
"x_m": 0,
"y_m": 0,
"vx_m_s": 17.3205081,
"vy_m_s": 10
},
{
"t_s": 1,
"x_m": 17.3205081,
"y_m": 5.095,
"vx_m_s": 17.3205081,
"vy_m_s": 0.19
},
{
"t_s": 2,
"x_m": 34.6410162,
"y_m": 0.38,
"vx_m_s": 17.3205081,
"vy_m_s": -9.62
}
],
"vacuum_flight_time_s": 2.03873598,
"vacuum_range_m": 35.3119431,
"range_reduction_m": 0,
"range_reduction_fraction": 0,
"terminal_descent_speed_m_s": null
},
"working": "Cd=0 gives k=rho*Cd*A/(2m)=0, so ax=0 and ay=-9.81. Initial components: vx=20 cos(30°)=17.3205081; vy=20 sin(30°)=10. Exact constant-acceleration solution, also reproduced exactly by RK4. First RK4 step, h=0.1: vx remains 17.3205081; vy changes from 10 to 10-9.81(0.1)=9.019; x changes by 17.3205081(0.1)=1.73205081; y changes by 10(0.1)-0.5(9.81)(0.1²)=0.95095. Second step: vy=9.019-0.981=8.038; x=3.46410162; y=0.95095+[9.019(0.1)-4.905(0.1²)]=1.85295. At t=1: x=17.3205081; y=10(1)-4.905(1²)=5.095; vy=10-9.81=0.19. At t=2: x=17.3205081(2)=34.6410162; y=20-4.905(4)=0.38; vy=10-19.62=-9.62. Vacuum ground time solves 0=10t-4.905t², so t=20/9.81=2.03873598. Range=17.3205081*2.03873598=35.3119431. Since drag is zero, reduction=35.3119431-35.3119431=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-tranche6/tranche6-results.json