Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

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.

Status: VERIFIED_CLEANLifecycle: implementation-contract

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.json
  • evidence-tranche6/tranche6-results.json