# Supersonic Interceptor Minimum Time Climb#

This example is based on the A/C Min Time to Climb example given in chapter 4 of Bryson [Bry99]. It finds the angle-of-attack history required to accelerate a supersonic interceptor from near ground level, Mach 0.4 to an altitude of 20 km and Mach 1.0.

The vehicle dynamics are given by

(62)#\begin{align} \frac{dv}{dt} &= \frac{T}{m} \cos \alpha - \frac{D}{m} - g \sin \gamma \\ \frac{d\gamma}{dt} &= \frac{T}{m v} \sin \alpha + \frac{L}{m v} - \frac{g \cos \gamma}{v} \\ \frac{dh}{dt} &= v \sin \gamma \\ \frac{dr}{dt} &= v \cos \gamma \\ \frac{dm}{dt} &= - \frac{T}{g I_{sp}} \end{align}

The initial conditions are

(63)#\begin{align} r_0 &= 0 \rm{\,m} \\ h_0 &= 100 \rm{\,m} \\ v_0 &= 135.964 \rm{\,m/s} \\ \gamma_0 &= 0 \rm{\,deg} \\ m_0 &= 19030.468 \rm{\,kg} \end{align}

and the final conditions are

(64)#\begin{align} h_f &= 20000 \rm{\,m} \\ M_f &= 1.0 \\ \gamma_0 &= 0 \rm{\,deg} \end{align}

## The ODE System: min_time_climb_ode.py#

The top level ODE definition is a Group that connects several subsystems.

Hide code cell outputs
import openmdao.api as om
from .dynamic_pressure_comp_partial_coloring import DynamicPressureCompFD
from ..aero.dynamic_pressure_comp import DynamicPressureComp
from ..aero.lift_drag_force_comp import LiftDragForceComp
from ..aero.cd0_comp import CD0Comp
from ..aero.kappa_comp import KappaComp
from ..aero.cla_comp import CLaComp
from ..aero.cl_comp import CLComp
from ..aero.cd_comp import CDComp
from ..aero.mach_comp import MachComp

class AeroGroup(om.Group):
"""
The purpose of the AeroGroup is to compute the aerodynamic forces on the
aircraft in the body frame.

Parameters
----------
v : float
air-relative velocity (m/s)
sos : float
local speed of sound (m/s)
rho : float
atmospheric density (kg/m**3)
alpha : float
S : float
aerodynamic reference area (m**2)

"""
def initialize(self):
self.options.declare('num_nodes', types=int,
desc='Number of nodes to be evaluated in the RHS')
self.options.declare('fd', types=bool, default=False, desc='If True, use fd for partials for dynamic pressure')
self.options.declare('partial_coloring', types=bool, default=False,
desc='If True and fd is True, color the approximated partials of dynamic pressure')

def setup(self):
nn = self.options['num_nodes']

if self.options['fd']:
q_comp = DynamicPressureCompFD(num_nodes=nn, partial_coloring=self.options['partial_coloring'])
else:
q_comp = DynamicPressureComp(num_nodes=nn)

subsys=MachComp(num_nodes=nn),
promotes_inputs=['v', 'sos'],
promotes_outputs=['mach'])

subsys=CD0Comp(num_nodes=nn),
promotes_inputs=['mach'],
promotes_outputs=['CD0'])

subsys=KappaComp(num_nodes=nn),
promotes_inputs=['mach'],
promotes_outputs=['kappa'])

subsys=CLaComp(num_nodes=nn),
promotes_inputs=['mach'],
promotes_outputs=['CLa'])

subsys=CLComp(num_nodes=nn),
promotes_inputs=['alpha', 'CLa'],
promotes_outputs=['CL'])

subsys=CDComp(num_nodes=nn),
promotes_inputs=['CD0', 'alpha', 'CLa', 'kappa'],
promotes_outputs=['CD'])

subsys=q_comp,
promotes_inputs=['rho', 'v'],
promotes_outputs=['q'])

subsys=LiftDragForceComp(num_nodes=nn),
promotes_inputs=['CL', 'CD', 'q', 'S'],
promotes_outputs=['f_lift', 'f_drag'])

import openmdao.api as om
from dymos.models.eom import FlightPathEOM2D
from dymos.examples.min_time_climb.prop import PropGroup
from dymos.models.atmosphere import USatm1976Comp
from dymos.examples.min_time_climb.doc.aero_partial_coloring import AeroGroup

class MinTimeClimbODE(om.Group):

def initialize(self):
self.options.declare('num_nodes', types=int)
self.options.declare('fd', types=bool, default=False, desc='If True, use fd for partials')
self.options.declare('partial_coloring', types=bool, default=False,
desc='If True and fd is True, color the approximated partials')

def setup(self):
nn = self.options['num_nodes']

subsys=USatm1976Comp(num_nodes=nn, h_def='geodetic'),
promotes_inputs=['h'])

subsys=AeroGroup(num_nodes=nn,
fd=self.options['fd'],
partial_coloring=self.options['partial_coloring']),
promotes_inputs=['v', 'alpha', 'S'])

self.connect('atmos.sos', 'aero.sos')
self.connect('atmos.rho', 'aero.rho')

subsys=PropGroup(num_nodes=nn),
promotes_inputs=['h', 'Isp', 'throttle'])

self.connect('aero.mach', 'prop.mach')

subsys=FlightPathEOM2D(num_nodes=nn),
promotes_inputs=['m', 'v', 'gam', 'alpha'])

self.connect('aero.f_drag', 'flight_dynamics.D')
self.connect('aero.f_lift', 'flight_dynamics.L')
self.connect('prop.thrust', 'flight_dynamics.T')


## Building and running the problem#

In the following code we follow the following process to solve the problem:

import matplotlib.pyplot as plt

import openmdao.api as om

import dymos as dm
from dymos.examples.plotting import plot_results

#
# Instantiate the problem and configure the optimization driver
#
p = om.Problem(model=om.Group())

p.driver = om.pyOptSparseDriver()
p.driver.options['optimizer'] = 'SLSQP'
p.driver.declare_coloring()

#
# Instantiate the trajectory and phase
#
traj = dm.Trajectory()

phase = dm.Phase(ode_class=MinTimeClimbODE,
transcription=dm.GaussLobatto(num_segments=15, compressed=False))

#
# Set the options on the optimization variables
# Note the use of explicit state units here since much of the ODE uses imperial units
# and we prefer to solve this problem using metric units.
#
phase.set_time_options(fix_initial=True, duration_bounds=(50, 400),
duration_ref=100.0)

ref=1.0E3, defect_ref=1.0E3,
rate_source='flight_dynamics.r_dot')

ref=1.0E2, defect_ref=1.0E2,
rate_source='flight_dynamics.h_dot')

ref=1.0E2, defect_ref=1.0E2,
rate_source='flight_dynamics.v_dot')

ref=1.0, defect_ref=1.0,
rate_source='flight_dynamics.gam_dot')

ref=1.0E3, defect_ref=1.0E3,
rate_source='prop.m_dot')

rate_continuity=True, rate_continuity_scaler=100.0,
rate2_continuity=False)

#
# Setup the boundary and path constraints
#

# Minimize time at the end of the phase

p.model.linear_solver = om.DirectSolver()

#
# Setup the problem and set the initial guess
#
p.setup(check=True)

phase.set_time_val(initial=0.0, duration=350)
phase.set_state_val('r', [0.0, 50000.0])
phase.set_state_val('h', [100.0, 20000.0])
phase.set_state_val('v', [135.964, 283.159])
phase.set_state_val('gam', [0.0, 0.0])
phase.set_state_val('m', [19030.468, 10000.])
phase.set_control_val('alpha', [0.0, 0.0])

#
# Solve for the optimal trajectory
#
dm.run_problem(p, simulate=True)

--- Constraint Report [traj] ---
--- phase0 ---
[final]   2.0000e+04 == h [m]
[final]   1.0000e+00 == aero.mach [None]
[path]    1.0000e+02 <= h <= 2.0000e+04  [m]
[path]    1.0000e-01 <= aero.mach <= 1.8000e+00  [None]

INFO: checking out_of_order

INFO: checking system

INFO: checking solvers

INFO: checking dup_inputs

INFO: checking missing_recorders

WARNING: The Problem has no recorder of any kind attached

INFO: checking unserializable_options

INFO: checking comp_has_no_outputs

INFO: checking auto_ivc_warnings

Model viewer data has already been recorded for Driver.
INFO: checking out_of_order

INFO: checking system

INFO: checking solvers

INFO: checking dup_inputs

INFO: checking missing_recorders

WARNING: The Problem has no recorder of any kind attached

INFO: checking unserializable_options

INFO: checking comp_has_no_outputs

INFO: checking auto_ivc_warnings

Full total jacobian for problem 'problem' was computed 3 times, taking 0.0913346280000269 seconds.
Total jacobian shape: (181, 191)

Jacobian shape: (181, 191)  (5.28% nonzero)
FWD solves: 14   REV solves: 0
Total colors vs. total size: 14 vs 191  (92.67% improvement)

Sparsity computed using tolerance: 1e-25
Time to compute sparsity:   0.0913 sec
Time to compute coloring:   0.1198 sec
Memory to compute coloring:   0.2500 MB
Coloring created on: 2024-08-29 21:48:28

/usr/share/miniconda/envs/test/lib/python3.11/site-packages/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->h', inds=[(0, 0)]), ('traj.phases.phase0->path_constraint->mach', inds=[(0, 0)])] cannot be impacted by the design variables of the problem.

Optimization Problem -- Optimization using pyOpt_sparse
================================================================================
Objective Function: _objfunc

Solution:
--------------------------------------------------------------------------------
Total Time:                    4.8385
User Objective Time :       0.9699
User Sensitivity Time :     1.2718
Interface Time :            0.4861
Opt Solver Time:            2.1107
Calls to Objective Function :      94
Calls to Sens Function :           84

Objectives
Index  Name                     Value
0  traj.phase0.t     3.252582E+02

Variables (c - continuous, i - integer, d - discrete)
Index  Name                            Type      Lower Bound            Value      Upper Bound     Status
0  traj.phase0.t_duration_0           c     5.000000E-01     3.252582E+00     4.000000E+00
1  traj.phase0.states:r_0             c     0.000000E+00     4.337684E+00     1.000000E+03
2  traj.phase0.states:r_1             c     0.000000E+00     4.337684E+00     1.000000E+03
3  traj.phase0.states:r_2             c     0.000000E+00     1.031224E+01     1.000000E+03
4  traj.phase0.states:r_3             c     0.000000E+00     1.031224E+01     1.000000E+03
5  traj.phase0.states:r_4             c     0.000000E+00     1.587328E+01     1.000000E+03
6  traj.phase0.states:r_5             c     0.000000E+00     1.587328E+01     1.000000E+03
7  traj.phase0.states:r_6             c     0.000000E+00     2.161338E+01     1.000000E+03
8  traj.phase0.states:r_7             c     0.000000E+00     2.161338E+01     1.000000E+03
9  traj.phase0.states:r_8             c     0.000000E+00     2.800856E+01     1.000000E+03
10  traj.phase0.states:r_9             c     0.000000E+00     2.800856E+01     1.000000E+03
11  traj.phase0.states:r_10            c     0.000000E+00     3.569422E+01     1.000000E+03
12  traj.phase0.states:r_11            c     0.000000E+00     3.569422E+01     1.000000E+03
13  traj.phase0.states:r_12            c     0.000000E+00     4.461446E+01     1.000000E+03
14  traj.phase0.states:r_13            c     0.000000E+00     4.461446E+01     1.000000E+03
15  traj.phase0.states:r_14            c     0.000000E+00     5.396327E+01     1.000000E+03
16  traj.phase0.states:r_15            c     0.000000E+00     5.396327E+01     1.000000E+03
17  traj.phase0.states:r_16            c     0.000000E+00     6.365774E+01     1.000000E+03
18  traj.phase0.states:r_17            c     0.000000E+00     6.365774E+01     1.000000E+03
19  traj.phase0.states:r_18            c     0.000000E+00     7.372154E+01     1.000000E+03
20  traj.phase0.states:r_19            c     0.000000E+00     7.372154E+01     1.000000E+03
21  traj.phase0.states:r_20            c     0.000000E+00     8.422498E+01     1.000000E+03
22  traj.phase0.states:r_21            c     0.000000E+00     8.422498E+01     1.000000E+03
23  traj.phase0.states:r_22            c     0.000000E+00     9.527686E+01     1.000000E+03
24  traj.phase0.states:r_23            c     0.000000E+00     9.527686E+01     1.000000E+03
25  traj.phase0.states:r_24            c     0.000000E+00     1.058975E+02     1.000000E+03
26  traj.phase0.states:r_25            c     0.000000E+00     1.058975E+02     1.000000E+03
27  traj.phase0.states:r_26            c     0.000000E+00     1.136078E+02     1.000000E+03
28  traj.phase0.states:r_27            c     0.000000E+00     1.136078E+02     1.000000E+03
29  traj.phase0.states:r_28            c     0.000000E+00     1.199388E+02     1.000000E+03
30  traj.phase0.states:h_0             c     0.000000E+00     2.446866E+00     2.000000E+02
31  traj.phase0.states:h_1             c     0.000000E+00     2.446866E+00     2.000000E+02
32  traj.phase0.states:h_2             c     0.000000E+00     2.523407E+01     2.000000E+02
33  traj.phase0.states:h_3             c     0.000000E+00     2.523407E+01     2.000000E+02
34  traj.phase0.states:h_4             c     0.000000E+00     5.978922E+01     2.000000E+02
35  traj.phase0.states:h_5             c     0.000000E+00     5.978922E+01     2.000000E+02
36  traj.phase0.states:h_6             c     0.000000E+00     8.469027E+01     2.000000E+02
37  traj.phase0.states:h_7             c     0.000000E+00     8.469027E+01     2.000000E+02
38  traj.phase0.states:h_8             c     0.000000E+00     8.840255E+01     2.000000E+02
39  traj.phase0.states:h_9             c     0.000000E+00     8.840255E+01     2.000000E+02
40  traj.phase0.states:h_10            c     0.000000E+00     7.333966E+01     2.000000E+02
41  traj.phase0.states:h_11            c     0.000000E+00     7.333966E+01     2.000000E+02
42  traj.phase0.states:h_12            c     0.000000E+00     7.148178E+01     2.000000E+02
43  traj.phase0.states:h_13            c     0.000000E+00     7.148178E+01     2.000000E+02
44  traj.phase0.states:h_14            c     0.000000E+00     7.715897E+01     2.000000E+02
45  traj.phase0.states:h_15            c     0.000000E+00     7.715897E+01     2.000000E+02
46  traj.phase0.states:h_16            c     0.000000E+00     8.260668E+01     2.000000E+02
47  traj.phase0.states:h_17            c     0.000000E+00     8.260668E+01     2.000000E+02
48  traj.phase0.states:h_18            c     0.000000E+00     8.814595E+01     2.000000E+02
49  traj.phase0.states:h_19            c     0.000000E+00     8.814595E+01     2.000000E+02
50  traj.phase0.states:h_20            c     0.000000E+00     9.139679E+01     2.000000E+02
51  traj.phase0.states:h_21            c     0.000000E+00     9.139679E+01     2.000000E+02
52  traj.phase0.states:h_22            c     0.000000E+00     9.362346E+01     2.000000E+02
53  traj.phase0.states:h_23            c     0.000000E+00     9.362346E+01     2.000000E+02
54  traj.phase0.states:h_24            c     0.000000E+00     1.207568E+02     2.000000E+02
55  traj.phase0.states:h_25            c     0.000000E+00     1.207568E+02     2.000000E+02
56  traj.phase0.states:h_26            c     0.000000E+00     1.726229E+02     2.000000E+02
57  traj.phase0.states:h_27            c     0.000000E+00     1.726229E+02     2.000000E+02
58  traj.phase0.states:h_28            c     0.000000E+00     2.000000E+02     2.000000E+02          u
59  traj.phase0.states:v_0             c     1.000000E-01     2.633841E+00     1.000000E+19
60  traj.phase0.states:v_1             c     1.000000E-01     2.633841E+00     1.000000E+19
61  traj.phase0.states:v_2             c     1.000000E-01     3.104856E+00     1.000000E+19
62  traj.phase0.states:v_3             c     1.000000E-01     3.104856E+00     1.000000E+19
63  traj.phase0.states:v_4             c     1.000000E-01     2.949332E+00     1.000000E+19
64  traj.phase0.states:v_5             c     1.000000E-01     2.949332E+00     1.000000E+19
65  traj.phase0.states:v_6             c     1.000000E-01     2.842792E+00     1.000000E+19
66  traj.phase0.states:v_7             c     1.000000E-01     2.842792E+00     1.000000E+19
67  traj.phase0.states:v_8             c     1.000000E-01     3.248967E+00     1.000000E+19
68  traj.phase0.states:v_9             c     1.000000E-01     3.248967E+00     1.000000E+19
69  traj.phase0.states:v_10            c     1.000000E-01     3.941234E+00     1.000000E+19
70  traj.phase0.states:v_11            c     1.000000E-01     3.941234E+00     1.000000E+19
71  traj.phase0.states:v_12            c     1.000000E-01     4.242818E+00     1.000000E+19
72  traj.phase0.states:v_13            c     1.000000E-01     4.242818E+00     1.000000E+19
73  traj.phase0.states:v_14            c     1.000000E-01     4.394690E+00     1.000000E+19
74  traj.phase0.states:v_15            c     1.000000E-01     4.394690E+00     1.000000E+19
75  traj.phase0.states:v_16            c     1.000000E-01     4.562641E+00     1.000000E+19
76  traj.phase0.states:v_17            c     1.000000E-01     4.562641E+00     1.000000E+19
77  traj.phase0.states:v_18            c     1.000000E-01     4.737210E+00     1.000000E+19
78  traj.phase0.states:v_19            c     1.000000E-01     4.737210E+00     1.000000E+19
79  traj.phase0.states:v_20            c     1.000000E-01     4.969476E+00     1.000000E+19
80  traj.phase0.states:v_21            c     1.000000E-01     4.969476E+00     1.000000E+19
81  traj.phase0.states:v_22            c     1.000000E-01     5.193949E+00     1.000000E+19
82  traj.phase0.states:v_23            c     1.000000E-01     5.193949E+00     1.000000E+19
83  traj.phase0.states:v_24            c     1.000000E-01     4.826562E+00     1.000000E+19
84  traj.phase0.states:v_25            c     1.000000E-01     4.826562E+00     1.000000E+19
85  traj.phase0.states:v_26            c     1.000000E-01     3.708766E+00     1.000000E+19
86  traj.phase0.states:v_27            c     1.000000E-01     3.708766E+00     1.000000E+19
87  traj.phase0.states:v_28            c     1.000000E-01     2.950719E+00     1.000000E+19
88  traj.phase0.states:gam_0           c    -1.500000E+00     1.015098E-01     1.500000E+00
89  traj.phase0.states:gam_1           c    -1.500000E+00     1.015098E-01     1.500000E+00
90  traj.phase0.states:gam_2           c    -1.500000E+00     5.976915E-01     1.500000E+00
91  traj.phase0.states:gam_3           c    -1.500000E+00     5.976915E-01     1.500000E+00
92  traj.phase0.states:gam_4           c    -1.500000E+00     4.558444E-01     1.500000E+00
93  traj.phase0.states:gam_5           c    -1.500000E+00     4.558444E-01     1.500000E+00
94  traj.phase0.states:gam_6           c    -1.500000E+00     3.190914E-01     1.500000E+00
95  traj.phase0.states:gam_7           c    -1.500000E+00     3.190914E-01     1.500000E+00
96  traj.phase0.states:gam_8           c    -1.500000E+00    -1.775791E-01     1.500000E+00
97  traj.phase0.states:gam_9           c    -1.500000E+00    -1.775791E-01     1.500000E+00
98  traj.phase0.states:gam_10          c    -1.500000E+00    -1.195940E-01     1.500000E+00
99  traj.phase0.states:gam_11          c    -1.500000E+00    -1.195940E-01     1.500000E+00
100  traj.phase0.states:gam_12          c    -1.500000E+00     4.715726E-02     1.500000E+00
101  traj.phase0.states:gam_13          c    -1.500000E+00     4.715726E-02     1.500000E+00
102  traj.phase0.states:gam_14          c    -1.500000E+00     5.949354E-02     1.500000E+00
103  traj.phase0.states:gam_15          c    -1.500000E+00     5.949354E-02     1.500000E+00
104  traj.phase0.states:gam_16          c    -1.500000E+00     5.554536E-02     1.500000E+00
105  traj.phase0.states:gam_17          c    -1.500000E+00     5.554536E-02     1.500000E+00
106  traj.phase0.states:gam_18          c    -1.500000E+00     4.970657E-02     1.500000E+00
107  traj.phase0.states:gam_19          c    -1.500000E+00     4.970657E-02     1.500000E+00
108  traj.phase0.states:gam_20          c    -1.500000E+00     1.061017E-02     1.500000E+00
109  traj.phase0.states:gam_21          c    -1.500000E+00     1.061017E-02     1.500000E+00
110  traj.phase0.states:gam_22          c    -1.500000E+00     7.510144E-02     1.500000E+00
111  traj.phase0.states:gam_23          c    -1.500000E+00     7.510144E-02     1.500000E+00
112  traj.phase0.states:gam_24          c    -1.500000E+00     4.620657E-01     1.500000E+00
113  traj.phase0.states:gam_25          c    -1.500000E+00     4.620657E-01     1.500000E+00
114  traj.phase0.states:gam_26          c    -1.500000E+00     6.283656E-01     1.500000E+00
115  traj.phase0.states:gam_27          c    -1.500000E+00     6.283656E-01     1.500000E+00
116  traj.phase0.states:gam_28          c    -1.500000E+00     0.000000E+00     1.500000E+00
117  traj.phase0.states:m_0             c     1.000000E-02     1.883945E+01     1.000000E+02
118  traj.phase0.states:m_1             c     1.000000E-02     1.883945E+01     1.000000E+02
119  traj.phase0.states:m_2             c     1.000000E-02     1.863480E+01     1.000000E+02
120  traj.phase0.states:m_3             c     1.000000E-02     1.863480E+01     1.000000E+02
121  traj.phase0.states:m_4             c     1.000000E-02     1.847306E+01     1.000000E+02
122  traj.phase0.states:m_5             c     1.000000E-02     1.847306E+01     1.000000E+02
123  traj.phase0.states:m_6             c     1.000000E-02     1.835397E+01     1.000000E+02
124  traj.phase0.states:m_7             c     1.000000E-02     1.835397E+01     1.000000E+02
125  traj.phase0.states:m_8             c     1.000000E-02     1.825097E+01     1.000000E+02
126  traj.phase0.states:m_9             c     1.000000E-02     1.825097E+01     1.000000E+02
127  traj.phase0.states:m_10            c     1.000000E-02     1.811453E+01     1.000000E+02
128  traj.phase0.states:m_11            c     1.000000E-02     1.811453E+01     1.000000E+02
129  traj.phase0.states:m_12            c     1.000000E-02     1.794310E+01     1.000000E+02
130  traj.phase0.states:m_13            c     1.000000E-02     1.794310E+01     1.000000E+02
131  traj.phase0.states:m_14            c     1.000000E-02     1.776704E+01     1.000000E+02
132  traj.phase0.states:m_15            c     1.000000E-02     1.776704E+01     1.000000E+02
133  traj.phase0.states:m_16            c     1.000000E-02     1.759240E+01     1.000000E+02
134  traj.phase0.states:m_17            c     1.000000E-02     1.759240E+01     1.000000E+02
135  traj.phase0.states:m_18            c     1.000000E-02     1.741889E+01     1.000000E+02
136  traj.phase0.states:m_19            c     1.000000E-02     1.741889E+01     1.000000E+02
137  traj.phase0.states:m_20            c     1.000000E-02     1.724487E+01     1.000000E+02
138  traj.phase0.states:m_21            c     1.000000E-02     1.724487E+01     1.000000E+02
139  traj.phase0.states:m_22            c     1.000000E-02     1.706474E+01     1.000000E+02
140  traj.phase0.states:m_23            c     1.000000E-02     1.706474E+01     1.000000E+02
141  traj.phase0.states:m_24            c     1.000000E-02     1.690446E+01     1.000000E+02
142  traj.phase0.states:m_25            c     1.000000E-02     1.690446E+01     1.000000E+02
143  traj.phase0.states:m_26            c     1.000000E-02     1.682855E+01     1.000000E+02
144  traj.phase0.states:m_27            c     1.000000E-02     1.682855E+01     1.000000E+02
145  traj.phase0.states:m_28            c     1.000000E-02     1.680500E+01     1.000000E+02
146  traj.phase0.controls:alpha_0       c    -8.000000E+00     5.399790E+00     8.000000E+00
147  traj.phase0.controls:alpha_1       c    -8.000000E+00     2.646340E+00     8.000000E+00
148  traj.phase0.controls:alpha_2       c    -8.000000E+00     2.027156E+00     8.000000E+00
149  traj.phase0.controls:alpha_3       c    -8.000000E+00     2.027156E+00     8.000000E+00
150  traj.phase0.controls:alpha_4       c    -8.000000E+00     2.079395E+00     8.000000E+00
151  traj.phase0.controls:alpha_5       c    -8.000000E+00     1.340213E+00     8.000000E+00
152  traj.phase0.controls:alpha_6       c    -8.000000E+00     1.340213E+00     8.000000E+00
153  traj.phase0.controls:alpha_7       c    -8.000000E+00     7.780413E-01     8.000000E+00
154  traj.phase0.controls:alpha_8       c    -8.000000E+00     1.361310E+00     8.000000E+00
155  traj.phase0.controls:alpha_9       c    -8.000000E+00     1.361310E+00     8.000000E+00
156  traj.phase0.controls:alpha_10      c    -8.000000E+00     1.891349E+00     8.000000E+00
157  traj.phase0.controls:alpha_11      c    -8.000000E+00     1.169489E+00     8.000000E+00
158  traj.phase0.controls:alpha_12      c    -8.000000E+00     1.169489E+00     8.000000E+00
159  traj.phase0.controls:alpha_13      c    -8.000000E+00     4.831450E-01     8.000000E+00
160  traj.phase0.controls:alpha_14      c    -8.000000E+00     1.119732E+00     8.000000E+00
161  traj.phase0.controls:alpha_15      c    -8.000000E+00     1.119732E+00     8.000000E+00
162  traj.phase0.controls:alpha_16      c    -8.000000E+00     1.996661E+00     8.000000E+00
163  traj.phase0.controls:alpha_17      c    -8.000000E+00     2.031339E+00     8.000000E+00
164  traj.phase0.controls:alpha_18      c    -8.000000E+00     2.031339E+00     8.000000E+00
165  traj.phase0.controls:alpha_19      c    -8.000000E+00     1.682067E+00     8.000000E+00
166  traj.phase0.controls:alpha_20      c    -8.000000E+00     1.407141E+00     8.000000E+00
167  traj.phase0.controls:alpha_21      c    -8.000000E+00     1.407141E+00     8.000000E+00
168  traj.phase0.controls:alpha_22      c    -8.000000E+00     1.238456E+00     8.000000E+00
169  traj.phase0.controls:alpha_23      c    -8.000000E+00     1.207908E+00     8.000000E+00
170  traj.phase0.controls:alpha_24      c    -8.000000E+00     1.207908E+00     8.000000E+00
171  traj.phase0.controls:alpha_25      c    -8.000000E+00     1.241560E+00     8.000000E+00
172  traj.phase0.controls:alpha_26      c    -8.000000E+00     1.265473E+00     8.000000E+00
173  traj.phase0.controls:alpha_27      c    -8.000000E+00     1.265473E+00     8.000000E+00
174  traj.phase0.controls:alpha_28      c    -8.000000E+00     1.260076E+00     8.000000E+00
175  traj.phase0.controls:alpha_29      c    -8.000000E+00     1.205797E+00     8.000000E+00
176  traj.phase0.controls:alpha_30      c    -8.000000E+00     1.205797E+00     8.000000E+00
177  traj.phase0.controls:alpha_31      c    -8.000000E+00     1.151381E+00     8.000000E+00
178  traj.phase0.controls:alpha_32      c    -8.000000E+00     1.145576E+00     8.000000E+00
179  traj.phase0.controls:alpha_33      c    -8.000000E+00     1.145576E+00     8.000000E+00
180  traj.phase0.controls:alpha_34      c    -8.000000E+00     1.350181E+00     8.000000E+00
181  traj.phase0.controls:alpha_35      c    -8.000000E+00     1.926998E+00     8.000000E+00
182  traj.phase0.controls:alpha_36      c    -8.000000E+00     1.926998E+00     8.000000E+00
183  traj.phase0.controls:alpha_37      c    -8.000000E+00     2.730458E+00     8.000000E+00
184  traj.phase0.controls:alpha_38      c    -8.000000E+00     3.614992E+00     8.000000E+00
185  traj.phase0.controls:alpha_39      c    -8.000000E+00     3.614992E+00     8.000000E+00
186  traj.phase0.controls:alpha_40      c    -8.000000E+00     3.938500E+00     8.000000E+00
187  traj.phase0.controls:alpha_41      c    -8.000000E+00     3.058881E+00     8.000000E+00
188  traj.phase0.controls:alpha_42      c    -8.000000E+00     3.058881E+00     8.000000E+00
189  traj.phase0.controls:alpha_43      c    -8.000000E+00    -9.879100E-02     8.000000E+00
190  traj.phase0.controls:alpha_44      c    -8.000000E+00    -6.609440E+00     8.000000E+00

Constraints (i - inequality, e - equality)
Index  Name                                                        Type          Lower           Value           Upper    Status  Lagrange Multiplier (N/A)
0  traj.phases.phase0->final_boundary_constraint->h               e   2.000000E+01    2.000000E+01    2.000000E+01              9.00000E+100
1  traj.phases.phase0->final_boundary_constraint->mach            e   1.000000E+00    1.000000E+00    1.000000E+00              9.00000E+100
2  traj.phases.phase0->final_boundary_constraint->gam             e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
3  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.259413E-10    0.000000E+00              9.00000E+100
4  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    3.910478E-10    0.000000E+00              9.00000E+100
5  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    4.898799E-10    0.000000E+00              9.00000E+100
6  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    3.993437E-10    0.000000E+00              9.00000E+100
7  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.550530E-09    0.000000E+00              9.00000E+100
8  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.598251E-10    0.000000E+00              9.00000E+100
9  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.413422E-09    0.000000E+00              9.00000E+100
10  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    4.826887E-10    0.000000E+00              9.00000E+100
11  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.469272E-09    0.000000E+00              9.00000E+100
12  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.034815E-09    0.000000E+00              9.00000E+100
13  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    5.842335E-11    0.000000E+00              9.00000E+100
14  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    8.450943E-10    0.000000E+00              9.00000E+100
15  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.112414E-09    0.000000E+00              9.00000E+100
16  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    1.392063E-09    0.000000E+00              9.00000E+100
17  traj.phase0.collocation_constraint.defects:r                   e   0.000000E+00    3.472676E-10    0.000000E+00              9.00000E+100
18  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    8.375831E-10    0.000000E+00              9.00000E+100
19  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    3.551372E-09    0.000000E+00              9.00000E+100
20  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    2.668318E-09    0.000000E+00              9.00000E+100
21  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    3.114203E-09    0.000000E+00              9.00000E+100
22  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    1.108939E-08    0.000000E+00              9.00000E+100
23  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -5.413415E-09    0.000000E+00              9.00000E+100
24  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -1.980764E-09    0.000000E+00              9.00000E+100
25  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    9.748812E-09    0.000000E+00              9.00000E+100
26  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -6.078220E-09    0.000000E+00              9.00000E+100
27  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    3.217217E-09    0.000000E+00              9.00000E+100
28  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -1.400650E-09    0.000000E+00              9.00000E+100
29  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    6.908657E-10    0.000000E+00              9.00000E+100
30  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    1.626326E-08    0.000000E+00              9.00000E+100
31  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00   -5.249131E-09    0.000000E+00              9.00000E+100
32  traj.phase0.collocation_constraint.defects:h                   e   0.000000E+00    6.414501E-10    0.000000E+00              9.00000E+100
33  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.937323E-11    0.000000E+00              9.00000E+100
34  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.581016E-10    0.000000E+00              9.00000E+100
35  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.977640E-10    0.000000E+00              9.00000E+100
36  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    4.826538E-10    0.000000E+00              9.00000E+100
37  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    9.079718E-11    0.000000E+00              9.00000E+100
38  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    2.951166E-10    0.000000E+00              9.00000E+100
39  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    8.087288E-11    0.000000E+00              9.00000E+100
40  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    2.553896E-10    0.000000E+00              9.00000E+100
41  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    5.581049E-10    0.000000E+00              9.00000E+100
42  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.493957E-10    0.000000E+00              9.00000E+100
43  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    1.850350E-10    0.000000E+00              9.00000E+100
44  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    2.238194E-10    0.000000E+00              9.00000E+100
45  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    3.965253E-10    0.000000E+00              9.00000E+100
46  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    1.105694E-10    0.000000E+00              9.00000E+100
47  traj.phase0.collocation_constraint.defects:v                   e   0.000000E+00    1.849228E-10    0.000000E+00              9.00000E+100
48  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00    3.857897E-12    0.000000E+00              9.00000E+100
49  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -4.969917E-10    0.000000E+00              9.00000E+100
50  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -6.522233E-10    0.000000E+00              9.00000E+100
51  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -7.564190E-10    0.000000E+00              9.00000E+100
52  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -3.009292E-10    0.000000E+00              9.00000E+100
53  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -4.425586E-10    0.000000E+00              9.00000E+100
54  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -5.977136E-11    0.000000E+00              9.00000E+100
55  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -4.180545E-11    0.000000E+00              9.00000E+100
56  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -4.949431E-10    0.000000E+00              9.00000E+100
57  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -3.182751E-10    0.000000E+00              9.00000E+100
58  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00    1.096529E-10    0.000000E+00              9.00000E+100
59  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -1.619038E-10    0.000000E+00              9.00000E+100
60  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -3.522564E-10    0.000000E+00              9.00000E+100
61  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00   -1.089558E-10    0.000000E+00              9.00000E+100
62  traj.phase0.collocation_constraint.defects:gam                 e   0.000000E+00    2.356004E-11    0.000000E+00              9.00000E+100
63  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -9.719134E-13    0.000000E+00              9.00000E+100
64  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -3.659895E-12    0.000000E+00              9.00000E+100
65  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    7.585026E-13    0.000000E+00              9.00000E+100
66  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    2.911436E-12    0.000000E+00              9.00000E+100
67  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    7.502145E-12    0.000000E+00              9.00000E+100
68  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    2.354362E-11    0.000000E+00              9.00000E+100
69  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -2.152750E-12    0.000000E+00              9.00000E+100
70  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -2.415291E-13    0.000000E+00              9.00000E+100
71  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -5.322769E-12    0.000000E+00              9.00000E+100
72  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -3.992038E-13    0.000000E+00              9.00000E+100
73  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -2.995666E-12    0.000000E+00              9.00000E+100
74  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00   -2.967528E-12    0.000000E+00              9.00000E+100
75  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    5.677455E-12    0.000000E+00              9.00000E+100
76  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    2.501568E-11    0.000000E+00              9.00000E+100
77  traj.phase0.collocation_constraint.defects:m                   e   0.000000E+00    1.198211E-12    0.000000E+00              9.00000E+100
78  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
79  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
80  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
81  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
82  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
83  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
84  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
85  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
86  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
87  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
88  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
89  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
90  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
91  traj.phase0.continuity_comp.defect_states:r                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
92  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
93  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
94  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
95  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
96  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
97  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
98  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
99  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
100  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
101  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
102  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
103  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
104  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
105  traj.phase0.continuity_comp.defect_states:h                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
106  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
107  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
108  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
109  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
110  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
111  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
112  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
113  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
114  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
115  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
116  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
117  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
118  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
119  traj.phase0.continuity_comp.defect_states:v                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
120  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
121  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
122  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
123  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
124  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
125  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
126  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
127  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
128  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
129  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
130  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
131  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
132  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
133  traj.phase0.continuity_comp.defect_states:gam                  e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
134  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
135  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
136  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
137  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
138  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
139  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
140  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
141  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
142  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
143  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
144  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
145  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
146  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
147  traj.phase0.continuity_comp.defect_states:m                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
148  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
149  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    1.128466E-12    0.000000E+00              9.00000E+100
150  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    6.770797E-13    0.000000E+00              9.00000E+100
151  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00   -2.256932E-13    0.000000E+00              9.00000E+100
152  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    4.513865E-13    0.000000E+00              9.00000E+100
153  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    1.692699E-12    0.000000E+00              9.00000E+100
154  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    6.770797E-13    0.000000E+00              9.00000E+100
155  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00   -1.692699E-13    0.000000E+00              9.00000E+100
156  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    9.979873E-13    0.000000E+00              9.00000E+100
157  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    1.692699E-13    0.000000E+00              9.00000E+100
158  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00   -2.151139E-13    0.000000E+00              9.00000E+100
159  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    4.513865E-13    0.000000E+00              9.00000E+100
160  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
161  traj.phase0.continuity_comp.defect_control_rates:alpha_rate    e   0.000000E+00    1.354159E-12    0.000000E+00              9.00000E+100
162  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
163  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
164  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
165  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
166  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
167  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
168  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
169  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
170  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
171  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
172  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
173  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
174  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
175  traj.phase0.continuity_comp.defect_controls:alpha              e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
176  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    5.000000E-03    1.000000E+00         l    9.00000E+100
177  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    5.000000E-03    1.000000E+00         l    9.00000E+100
178  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    1.223433E-02    1.000000E+00              9.00000E+100
179  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    1.223433E-02    1.000000E+00              9.00000E+100
180  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.914053E-02    1.000000E+00              9.00000E+100
181  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    1.261703E-01    1.000000E+00              9.00000E+100
182  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    1.261703E-01    1.000000E+00              9.00000E+100
183  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    2.186413E-01    1.000000E+00              9.00000E+100
184  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    2.989461E-01    1.000000E+00              9.00000E+100
185  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    2.989461E-01    1.000000E+00              9.00000E+100
186  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.667086E-01    1.000000E+00              9.00000E+100
187  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.234513E-01    1.000000E+00              9.00000E+100
188  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.234513E-01    1.000000E+00              9.00000E+100
189  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.525960E-01    1.000000E+00              9.00000E+100
190  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.420127E-01    1.000000E+00              9.00000E+100
191  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.420127E-01    1.000000E+00              9.00000E+100
192  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.029502E-01    1.000000E+00              9.00000E+100
193  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.666983E-01    1.000000E+00              9.00000E+100
194  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.666983E-01    1.000000E+00              9.00000E+100
195  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.529703E-01    1.000000E+00              9.00000E+100
196  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.574089E-01    1.000000E+00              9.00000E+100
197  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.574089E-01    1.000000E+00              9.00000E+100
198  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.707712E-01    1.000000E+00              9.00000E+100
199  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.857948E-01    1.000000E+00              9.00000E+100
200  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.857948E-01    1.000000E+00              9.00000E+100
201  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    3.995225E-01    1.000000E+00              9.00000E+100
202  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.130334E-01    1.000000E+00              9.00000E+100
203  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.130334E-01    1.000000E+00              9.00000E+100
204  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.271246E-01    1.000000E+00              9.00000E+100
205  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.407297E-01    1.000000E+00              9.00000E+100
206  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.407297E-01    1.000000E+00              9.00000E+100
207  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.513322E-01    1.000000E+00              9.00000E+100
208  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.569840E-01    1.000000E+00              9.00000E+100
209  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.569840E-01    1.000000E+00              9.00000E+100
210  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.579837E-01    1.000000E+00              9.00000E+100
211  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.681173E-01    1.000000E+00              9.00000E+100
212  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    4.681173E-01    1.000000E+00              9.00000E+100
213  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    5.120717E-01    1.000000E+00              9.00000E+100
214  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    6.037840E-01    1.000000E+00              9.00000E+100
215  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    6.037840E-01    1.000000E+00              9.00000E+100
216  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    7.330639E-01    1.000000E+00              9.00000E+100
217  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    8.631143E-01    1.000000E+00              9.00000E+100
218  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    8.631143E-01    1.000000E+00              9.00000E+100
219  traj.phases.phase0->path_constraint->h                         i   5.000000E-03    9.611028E-01    1.000000E+00              9.00000E+100
220  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    4.000084E-01    1.800000E+00              9.00000E+100
221  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    5.901464E-01    1.800000E+00              9.00000E+100
222  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    7.761508E-01    1.800000E+00              9.00000E+100
223  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    7.761508E-01    1.800000E+00              9.00000E+100
224  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.011558E-01    1.800000E+00              9.00000E+100
225  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.395440E-01    1.800000E+00              9.00000E+100
226  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.395440E-01    1.800000E+00              9.00000E+100
227  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.348077E-01    1.800000E+00              9.00000E+100
228  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.317645E-01    1.800000E+00              9.00000E+100
229  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.317645E-01    1.800000E+00              9.00000E+100
230  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.276589E-01    1.800000E+00              9.00000E+100
231  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.286850E-01    1.800000E+00              9.00000E+100
232  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.286850E-01    1.800000E+00              9.00000E+100
233  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    9.732434E-01    1.800000E+00              9.00000E+100
234  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.066895E+00    1.800000E+00              9.00000E+100
235  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.066895E+00    1.800000E+00              9.00000E+100
236  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.177205E+00    1.800000E+00              9.00000E+100
237  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.267675E+00    1.800000E+00              9.00000E+100
238  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.267675E+00    1.800000E+00              9.00000E+100
239  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.324559E+00    1.800000E+00              9.00000E+100
240  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.361273E+00    1.800000E+00              9.00000E+100
241  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.361273E+00    1.800000E+00              9.00000E+100
242  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.390960E+00    1.800000E+00              9.00000E+100
243  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.420860E+00    1.800000E+00              9.00000E+100
244  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.420860E+00    1.800000E+00              9.00000E+100
245  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.453071E+00    1.800000E+00              9.00000E+100
246  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.486228E+00    1.800000E+00              9.00000E+100
247  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.486228E+00    1.800000E+00              9.00000E+100
248  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.519739E+00    1.800000E+00              9.00000E+100
249  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.555044E+00    1.800000E+00              9.00000E+100
250  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.555044E+00    1.800000E+00              9.00000E+100
251  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.594558E+00    1.800000E+00              9.00000E+100
252  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.638781E+00    1.800000E+00              9.00000E+100
253  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.638781E+00    1.800000E+00              9.00000E+100
254  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.685034E+00    1.800000E+00              9.00000E+100
255  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.718231E+00    1.800000E+00              9.00000E+100
256  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.718231E+00    1.800000E+00              9.00000E+100
257  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.716946E+00    1.800000E+00              9.00000E+100
258  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.635772E+00    1.800000E+00              9.00000E+100
259  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.635772E+00    1.800000E+00              9.00000E+100
260  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.459644E+00    1.800000E+00              9.00000E+100
261  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.256939E+00    1.800000E+00              9.00000E+100
262  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.256939E+00    1.800000E+00              9.00000E+100
263  traj.phases.phase0->path_constraint->mach                      i   1.000000E-01    1.081421E+00    1.800000E+00              9.00000E+100

Exit Status
Inform  Description
0  Optimization terminated successfully.
--------------------------------------------------------------------------------

/usr/share/miniconda/envs/test/lib/python3.11/site-packages/openmdao/visualization/opt_report/opt_report.py:625: UserWarning: Attempting to set identical low and high ylims makes transformation singular; automatically expanding.
ax.set_ylim([ymin_plot, ymax_plot])

/usr/share/miniconda/envs/test/lib/python3.11/site-packages/openmdao/core/group.py:1104: DerivativesWarning:Constraints or objectives [ode_eval.control_interp.control_rates:alpha_rate2] cannot be impacted by the design variables of the problem because no partials were defined for them in their parent component(s).

Simulating trajectory traj
Model viewer data has already been recorded for Driver.

Done simulating trajectory traj

Problem: problem
Driver:  pyOptSparseDriver
success     : True
iterations  : 96
runtime     : 5.1408E+00 s
model_evals : 96
model_time  : 9.4040E-01 s
deriv_evals : 85
deriv_time  : 7.6604E-01 s
exit_status : SUCCESS

sol = om.CaseReader(p.get_outputs_dir() / 'dymos_solution.db').get_case('final')

plot_results([('traj.phase0.timeseries.time', 'traj.phase0.timeseries.h',
'time (s)', 'altitude (m)'),
('traj.phase0.timeseries.time', 'traj.phase0.timeseries.alpha',
'time (s)', 'alpha (deg)')],
title='Supersonic Minimum Time-to-Climb Solution',
p_sol=sol, p_sim=sim)

plt.show()


## References#

[Bry99]

Arthur Earl Bryson. Dynamic optimization. Addison Wesley Longman Menlo Park, CA, 1999.