contrailopt.solve_track

contrailopt.solve_track(dag: HorizontalDAG | Track, profile: Dataset, amass_init: float, fl_choices: NDArray[float32], mach_choices: NDArray[float32], atyp: PSAircraftEngineParams, cost_index: float, eef_cost_factor: float, origin_elev_ft: float, dest_elev_ft: float, allow_cooling_credit: bool, step_penalty_kg: float) → DAGState[source]

Solve the vertical profile along a fixed track, choosing the flight level and Mach number.

Unlike solve_dag(), there is no precomputed edge set. From a given state, each action determines how far the aircraft advances: a level cruise (target FL equal to the current one) moves one waypoint; a step climb or step descent moves as far as the maneuver model’s own distance requires, then cruises the remainder of that segment to the next waypoint.