Page actions
instrument mechanism / verified-clean
Projectile with Air Drag (numeric) mechanism
The inspectable method record for Projectile with Air Drag (numeric), kept separate from implementation and qualification.
Model scope
The force law is standard for a simplified constant-density quadratic-drag model, but the specification is not fully deterministic or complete enough for an unconditional PASS. Add g, initial height, coordinate convention, angle units, fixed/adaptive timestep policy, RK4 state-update details, convergence/error tolerance, ground-event handling, and the exact vacuum baseline. The four vectors deliberately include zero-drag, vertical-boundary, and exact-terminal-speed cases; the terminal-speed vectors also provide closed-form checks because every RK4 stage has zero acceleration.
- The quadratic-drag equation is standard only when v is velocity relative to still air; with wind, it must use v_relative = v - v_wind.
- The specification does not define gravitational acceleration g as an input or fixed constant. The test vectors assume g = 9.80665 m/s² unless explicitly stated otherwise; using g = 10 m/s² changes every result.
- Terminal descent speed is only sqrt(2mg/(rho Cd A)) for steady vertical descent with constant density and constant Cd; this condition should be stated.
- Range reduction versus vacuum is undefined unless the vacuum comparison uses the same g, initial height, launch state, and ground-intersection convention.
- A trajectory integrator needs an initial height and a stopping/event rule, such as the first downward crossing of y = 0. Neither is specified.
- The phrase 'throttle timestep on-device' conflicts with deterministic RK4 verification unless the actual timestep and any adaptive-step policy are exposed.
Units and conventions
- SI units: v0 in m/s, angle in degrees, mass in kg, area in m², air density in kg/m³, dt in s, position in m, acceleration in m/s².
- The vector equation uses upward-positive coordinates, so gravity is (0,-g).
- Cd is dimensionless and constant; rho_air is constant during each simulation.
- Unless a vector states otherwise, g = 9.80665 m/s². Vectors explicitly using g = 10 m/s² are deliberate deterministic checks.
- Angles are assumed to be degrees; this must be made explicit in the implementation.
- RK4 means classical explicit fourth-order Runge-Kutta applied simultaneously to x' = vx, y' = vy, vx' = -(rho Cd A/(2m))|v|vx, and vy' = -g -(rho Cd A/(2m))|v|vy, with fixed dt.
Inspectable vector
One of 4 source-bound review vectors:
{
"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."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
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.
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.jsonBOUNDARY_HAZARD_CATALOG.json