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

instrument implementation / implementation-contract

Hohmann Transfer Orbit Calculator implementation

A source-bound implementation contract for Hohmann Transfer Orbit Calculator; deployment and executable qualification remain separate.

Status: VERIFIED_WITH_ERRATALifecycle: 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-with-binding-errata
Evidence ID
t4-059
Effect
Computation or source lookup only

Input and validation requirements

  • Division-by-zero or invalid square roots occur if GM≤0 or either radius≤0; these inputs require validation.
  • The calculator should reject or explicitly define the r1=r2 case. It is mathematically valid with zero delta-v and a half-period equal to half the circular orbital period, but it is not a transfer requiring two impulses.
  • Without a stated sign convention, inward-transfer delta-v values can be negative even though a delta-v budget is conventionally nonnegative.
  • A km^3/s^2 GM combined with radii in meters, or an m^3/s^2 GM combined with radii in kilometers, gives numerically wrong outputs by large scale factors.
  • The formulas omit plane changes, finite-burn effects, atmospheric drag, third-body perturbations, eccentricity, and non-circular initial or final orbits.

Required corrections

[
  {
    "vector": 2,
    "field": "delta_v1/total",
    "wrong": "0.976598 / 1.795813",
    "correct": "0.976698 / 1.795913",
    "cause": "6.313478×0.154701 digit slip"
  },
  {
    "vector": 3,
    "field": "delta_v2/total",
    "wrong": "0.976598 / 1.795813",
    "correct": "0.976698 / 1.795913",
    "cause": "same slip, symmetric vector"
  }
]

Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

{
  "inputs": {
    "GM_km3_s2": 398600,
    "r1_km": 7000,
    "r2_km": 10500
  },
  "expected_outputs": {
    "a_t_km": 8750,
    "delta_v1_km_s": 0.720234,
    "delta_v2_km_s": 0.650468,
    "total_delta_v_km_s": 1.370702,
    "transfer_time_s": 4072.802
  },
  "working": "a_t=(7000+10500)/2=8750 km. v_c1=√(398600/7000)=√56.942857=7.546049 km/s. Δv1=7.546049·(√(21000/17500)−1)=7.546049·(√1.2−1)=7.546049·(1.095445−1)=0.720234 km/s. v_c2=√(398600/10500)=√37.961905=6.161323 km/s. Δv2=6.161323·(1−√(14000/17500))=6.161323·(1−√0.8)=6.161323·(1−0.894427)=0.650468 km/s. Total Δv=0.720234+0.650468=1.370702 km/s. T=π√(8750^3/398600)=π√1680687.4=π·1296.413=4072.802 s."
}

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-tranche4/tranche4-results.json
  • tranche errata record