Multi-Mission Example#

The Multi-mission Example demonstrates the capability to optimize a single aircraft design considering two missions that the aircraft will perform. For a background on this example see Multi-Mission Overview. It is expected that the users is familiar with methods from level 1 and level 2 before exploring this content.

Theory#

Each of the two missions in the example are instantiated as a single aviary problems with two AviaryGroups inside of it. Each AviaryGroup has it’s own pre-missions, mission, and post-mission elements. Two get the pre-missions to have the same aircraft design, Mission.Design.GROSS_MASS, Mission.Design.RANGE, Aircraft.Wing.SWEEP, are promoted out of the pre-missions to a single values. This ensures that the aircrafts in both pre-missions have the same design even though their passenger count and fuel mass are different. There is no post-mission for the example, but if one was required for calculating cost or acoustic constraints, there would need to be two post-mission systems as well.

Graphs for each mission are created and stored in the run_multimission_example folder. A custom print functions were added to display some important information. The user can see detailed info of each mission result using the prob.model.mission1.list_vars() commands listed in the comments at the bottom of the example.

A number of checks exist in add_aviary_group which under the hood calls check_and_preprocess_inputs to help the user in the case that incomplete as-flow or design passenger information is provided. This was done to provide backward compatability for older aircraft models which only specify design passenger information.

In this example we wanted to compare the same aircraft flying a mission with full passengers vs. a mission with no passengers. However, there are limitations in Aviary’s ability to detect user input vs. default values. So we set the passenger count to one instead. Right now, the only way to set an aircraft to exactly zero passengers is by setting Aircraft.CrewPayload.TOTAL_PAYLOAD_MASS to zero plus any Aircraft.CrewPayload.CARGO_MASS being carried. This zeros out passenger and baggage mass regardless of what value is input to Aircraft.CrewPayload.NUM_PASSENGERS, Aircraft.CrewPayload.NUM_TOURIST_CLASS, Aircraft.CrewPayload.NUM_BUSINESS_CLASS, and Aircraft.CrewPayload.NUM_FIRST_CLASS. Once issue #610 is resolved the user should be able to set passenger and bags mass to exactly zero by setting Aircraft.CrewPayload.PASSENGER_PAYLOAD_MASS to zero.

Best Pratices#

The user should be cognizant of the implications of having two pre-mission systems, one for each mission. When trying to mirror these to create a single aircraft that flies different missions, both of the pre-mission systems should be nearly identical in setup, except for fuel-mass, passenger, and payload calculations. There are numerous opportunities for the user to get this wrong, and accidentally create two different aircraft as a result. For example, in a previous iteration of this example, Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO was not specified, which resulted in two different landing gears being designed, one for mission1, one for mission2.

Note: If you are having trouble getting your {glue:md}`Aircraft.Design.EMPTY_MASS` (the final drymass mass summation from pre-mission) to be equal for both pre-missions, use the following OpenMDAO commends at the end of the example to list out and compare the mass from each subsystem.
prob.model.mission1.list_vars(val=True, units=True, print_arrays=False)
prob.model.mission2.list_vars(val=True, units=True, print_arrays=False)

Phase Info#

The same mission distance and profile (takeoff, climb, cruise, descent, landing) is being flown for both missions. To enable this, a single phase_info is imported and then deepcopied. The user could modify the mission2 to be different from mission1 by changing the target_range to a different value (i.e phase_info_mission2['post_mission']['target_range'] = [1500, "nmi"] ).

import copy as copy

import aviary.api as av
from aviary.models.missions.height_energy_default import phase_info
from aviary.validation_cases.validation_tests import get_flops_inputs
from aviary.variable_info.enums import ProblemType
from aviary.variable_info.variables import Aircraft, Mission, Settings

phase_info_mission1 = copy.deepcopy(phase_info)
phase_info_mission2 = copy.deepcopy(phase_info)

Aircraft Configuration#

In the example, we import a single aircraft configuration (LargeSingleAisle2FLOPS) and then modify it to create a mission1 which carries 162 passengers and mission2, a mission which carries only a single passengers on the same aircraft. The number of seats for passengers in the aircraft, as well as some other systems like passenger airconditioning mass, is set by values of Aircraft.CrewPayload.Design.NUM_PASSENGERS, Aircraft.CrewPayload.Design.NUM_TOURIST_CLASS, Aircraft.CrewPayload.Design.NUM_BUSINESS_CLASS, and Aircraft.CrewPayload.Design.NUM_BUSINESS_CLASS. Whereas the actual number of passengers on the flight is specified by variables of Aircraft.CrewPayload.NUM_PASSENGERS, Aircraft.CrewPayload.NUM_TOURIST_CLASS, Aircraft.CrewPayload.NUM_BUSINESS_CLASS, and Aircraft.CrewPayload.NUM_BUSINESS_CLASS.

aviary_inputs_mission1 = get_flops_inputs('LargeSingleAisle2FLOPS')

aviary_inputs_mission2 = copy.deepcopy(aviary_inputs_mission1)
aviary_inputs_mission2.set_val(Aircraft.CrewPayload.NUM_PASSENGERS, 1, 'unitless')
aviary_inputs_mission2.set_val(Aircraft.CrewPayload.NUM_TOURIST_CLASS, 1, 'unitless')
aviary_inputs_mission2.set_val(Aircraft.CrewPayload.NUM_BUSINESS_CLASS, 0, 'unitless')
aviary_inputs_mission2.set_val(Aircraft.CrewPayload.NUM_FIRST_CLASS, 0, 'unitless')

Adding Aviary Groups#

Now we must set the problem type to multimission, this will allow us to use our other commandes like add_aviary_group to combine the aviary_values and phase_info to create two Aviary Groups which are added to the problem. add_aviary_group can accept engine_builders as well if you wanted to specify a custom engine builder for the models. We give each of the groups a name: mission1 and mission 2 which we will use to reference them later. Lastly we build the model, which adds pre-mission, phases, post-mission, and links phases sequentially. These elements could be called individually if the user desired more control over each one.

prob = av.AviaryProblem(problem_type=ProblemType.MULTI_MISSION)

prob.add_aviary_group('mission1', aircraft=aviary_inputs_mission1, mission=phase_info_mission1)

prob.add_aviary_group('mission2', aircraft=aviary_inputs_mission2, mission=phase_info_mission2)

prob.build_model()

User Input#

Now we have the opportunity for the user to tell us how these aircraft are the same. Up to this point, each call to add_aviary_group has setup two completely separate aircraft but in the example we are trying to design a single aircraft. To do this we must explicitly tell Aviary which key parameters are mirrored on both aircraft. These key parameters are used to size different subsystems.

promote_inputs tells aviary that between mission1 and mission2, the following 3 values are the same and should be promoted to the top level of the problem: Mission.Design.GROSS_MASS, Mission.Design.RANGE, and Aircraft.Wing.SWEEP. If we did not promote these values, they would still only be accesible inside of their individual groups (i.e. mission1.mission:design:gross_mass).

add_design_var_default is used to tell Aviary that we are setting Aircraft1:GROSS_MASS as a design variable controlled by the optimizer, and to set it’s initial value and upper and lower constraints. Normally this is done as part of a two-step process using prob.model.add_design_var to set the range, and then after setup calling prob.set_val to set the initial value. However, it is more convenient to set them both in one place. The value can still be over-written later using prob.set_val after setup.

add_composite_objective specifies that the output of Mission.Summary.FUEL_BURNED from mission1 and mission2 should be summed together based on a 2:1 weighting. Alternatively, the user could have specified the same thing using add_composite_objective_adv which provides a slightly more streamlined interface if users know their mission frequency and ouput weights separetly. This typically happens if you know how often you will fly a particular mission from historical data, and then you would like to weight the fuel-burn on each mission vs. another metric, such as maintinance costs.

prob.promote_inputs(
    ['mission1', 'mission2'],
    [
        (Mission.Design.GROSS_MASS, 'Aircraft1:GROSS_MASS'),
        (Mission.Design.RANGE, 'Aircraft1:RANGE'),
        (Aircraft.Wing.SWEEP, 'Aircraft1:SWEEP'),
    ],
)

prob.add_design_var_default(
    'Aircraft1:GROSS_MASS',
    lower=10.0,
    upper=900e3,
    units='lbm',
    default_val=100000,
)
prob.add_design_var_default(
    'Aircraft1:SWEEP',
    lower=23.0,
    upper=27.0,
    units='deg',
    default_val=25,
)

prob.add_composite_objective(
    ('mission1', Mission.Summary.FUEL_BURNED, 2),
    ('mission2', Mission.Summary.FUEL_BURNED, 1),
    ref=1,
)
# prob.add_composite_objective_adv(missions=['mission1', 'mission2'], mission_weights=[2,1], outputs=[Mission.Summary.FUEL_BURNED], outputoutput_weights=[1] ref=1)

Setting up the model#

Now with the basics complete we can add a driver, set the basic design variables, and setup the aviary model.

prob.add_driver('IPOPT', max_iter=50)
prob.add_design_variables()

prob.setup()

Setting Values#

The Mission.Design.RANGE value must be set to size some of Aviary’s subsystems. These subsystems, such as avionics, have increasing mass as Mission.Design.RANGE increases. These are first order approximations that come with aviary. But because of these, we must ensure that both pre-missions have the same Mission.Design.RANGE, even if the actual range flown buy each mission (target_rage) is different. Without this, the avoinics mass calculated in pre-mission would be different for the two missions, resulting in a different aircraft design, which is counter to what is intended with the multi-mission feature.

set_design_range method will access the phase_info for any missions supplied, find the largest target_rage, and set Aircraft1:Range to that value. This will ensure the avionics are designed similarly for both aircraft.

The total number of passengers (Aircraft.CrewPayload.Design.NUM_PASSENGERS) and the design number of passengers of each type (business, tourist, first class), help to define the passenger air conditioning subsystems and the passenger support mass (seats) respectively. Thus when these values are set equal in mission1 and mission2, we ensure the aircraft will be designed similarly. These settings were already set in the LargeSingleAisle2FLOPS model which we are using.

Note: It is good practice, but not required, to set {glue:md}`Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO` in Aviary Values to ensure consistent design of the landing gear for both missions. This combined with {glue:md}`Design.GROSS_MASS` helps to ensure that  {glue:md}`Aircraft.LandingGear.MAIN_GEAR_MASS` and {glue:md}`Aircraft.LandingGear.NOSE_GEAR_MASS` are the same for both missions. If {glue:md}`Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO` is not set, Landing Gear Masses will be caluclated based on {glue:md}`Mission.Summary.CRUISE_MACH` and {glue:md}`Mission.Design.RANGE`. This is potentially problematic because {glue:md}`Mission.Summary.CRUISE_MACH` may not be set, and instead cruse mach may be optimized. In that case, {glue:md}`Mission.Summary.CRUISE_MACH` could vary between mission1 and mission2, which would then cascade into differeing {glue:md}`Aircraft.LandingGear.MAIN_GEAR_MASS` which causes the aircraft designs to diverge.
prob.set_design_range(('mission1', 'mission2'), range='Aircraft1:RANGE')

prob.run_aviary_problem()
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission1.traj.phases.climb.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission1.traj.phases.cruise.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission1.traj.phases.descent.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission2.traj.phases.climb.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission2.traj.phases.cruise.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/solvers/linear/linear_rhs_checker.py:177: SolverWarning:DirectSolver in 'mission2.traj.phases.descent.indep_states' <class StateIndependentsComp>: 'rhs_checking' is active but no redundant adjoint dependencies were found, so caching has been disabled.
/usr/share/miniconda/envs/test/lib/python3.12/site-packages/openmdao/recorders/sqlite_recorder.py:231: UserWarning:The existing case recorder file, /home/runner/work/Aviary/Aviary/aviary/docs/examples/problem_out/problem_history.db, is being overwritten.
Total number of variables............................:      192
                     variables with only lower bounds:        0
                variables with lower and upper bounds:      192
                     variables with only upper bounds:        0
Total number of equality constraints.................:      186
Total number of inequality constraints...............:      122
        inequality constraints with only lower bounds:        2
   inequality constraints with lower and upper bounds:      120
        inequality constraints with only upper bounds:        0
Number of Iterations....: 35

                                   (scaled)                 (unscaled)
Objective...............:   1.6908842653228623e+02    2.4851744681726195e+04
Dual infeasibility......:   2.2678956516919424e-07    1.4166750346279367e-05
Constraint violation....:   2.7692471406863566e-14    2.7692471406863566e-14
Variable bound violation:   2.1819509754550381e-08    2.1819509754550381e-08
Complementarity.........:   6.9151023455467998e-08    1.0163460708928002e-05
Overall NLP error.......:   2.2678956516919424e-07    1.4166750346279367e-05


Number of objective function evaluations             = 38
Number of objective gradient evaluations             = 33
Number of equality constraint evaluations            = 38
Number of inequality constraint evaluations          = 38
Number of equality constraint Jacobian evaluations   = 37
Number of inequality constraint Jacobian evaluations = 37
Number of Lagrangian Hessian evaluations             = 0
Total seconds in IPOPT                               = 25.760

EXIT: Optimal Solution Found.
minimal_print is not available for this solution


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

    Solution: 
--------------------------------------------------------------------------------
    Total Time:                   25.7613
       User Objective Time :      21.7034
       User Sensitivity Time :     3.7400
       Interface Time :            0.2324
       Opt Solver Time:            0.0855
    Calls to Objective Function :      38
    Calls to Sens Function :           38


   Objectives
      Index  Name                           Value
          0  composite_objective     2.485174E+04

   Variables (c - continuous, i - integer, d - discrete)
      Index  Name                                       Type      Lower Bound            Value      Upper Bound     Status
          0  Aircraft1:GROSS_MASS_0                        c     1.000000E+01     1.565611E+05     9.000000E+05           
          1  Aircraft1:SWEEP_0                             c     2.300000E+01     2.300000E+01     2.700000E+01          l
          2  mission1.mission:summary:gross_mass_0         c     5.714286E-05     8.946349E-01     5.142857E+00           
          3  mission1.traj.climb.t_duration_0              c     5.000000E-01     5.000000E-01     1.500000E+00          l
          4  mission1.traj.climb.states:mass_0             c     0.000000E+00     7.101492E+00     1.000000E+17           
          5  mission1.traj.climb.states:mass_1             c     0.000000E+00     7.073396E+00     1.000000E+17           
          6  mission1.traj.climb.states:mass_2             c     0.000000E+00     7.041200E+00     1.000000E+17           
          7  mission1.traj.climb.states:mass_3             c     0.000000E+00     7.032136E+00     1.000000E+17           
          8  mission1.traj.climb.states:mass_4             c     0.000000E+00     6.994784E+00     1.000000E+17           
          9  mission1.traj.climb.states:mass_5             c     0.000000E+00     6.951833E+00     1.000000E+17           
         10  mission1.traj.climb.states:mass_6             c     0.000000E+00     6.939171E+00     1.000000E+17           
         11  mission1.traj.climb.states:mass_7             c     0.000000E+00     6.906436E+00     1.000000E+17           
         12  mission1.traj.climb.states:mass_8             c     0.000000E+00     6.862944E+00     1.000000E+17           
         13  mission1.traj.climb.states:mass_9             c     0.000000E+00     6.849189E+00     1.000000E+17           
         14  mission1.traj.climb.states:mass_10            c     0.000000E+00     6.822836E+00     1.000000E+17           
         15  mission1.traj.climb.states:mass_11            c     0.000000E+00     6.786212E+00     1.000000E+17           
         16  mission1.traj.climb.states:mass_12            c     0.000000E+00     6.774514E+00     1.000000E+17           
         17  mission1.traj.climb.states:mass_13            c     0.000000E+00     6.761330E+00     1.000000E+17           
         18  mission1.traj.climb.states:mass_14            c     0.000000E+00     6.742957E+00     1.000000E+17           
         19  mission1.traj.climb.states:mass_15            c     0.000000E+00     6.737080E+00     1.000000E+17           
         20  mission1.traj.climb.states:distance_0         c     0.000000E+00     1.145810E-02     1.000000E+15           
         21  mission1.traj.climb.states:distance_1         c     0.000000E+00     2.910560E-02     1.000000E+15           
         22  mission1.traj.climb.states:distance_2         c     0.000000E+00     3.513105E-02     1.000000E+15           
         23  mission1.traj.climb.states:distance_3         c     0.000000E+00     6.608148E-02     1.000000E+15           
         24  mission1.traj.climb.states:distance_4         c     0.000000E+00     1.161455E-01     1.000000E+15           
         25  mission1.traj.climb.states:distance_5         c     0.000000E+00     1.337318E-01     1.000000E+15           
         26  mission1.traj.climb.states:distance_6         c     0.000000E+00     1.857547E-01     1.000000E+15           
         27  mission1.traj.climb.states:distance_7         c     0.000000E+00     2.672316E-01     1.000000E+15           
         28  mission1.traj.climb.states:distance_8         c     0.000000E+00     2.952969E-01     1.000000E+15           
         29  mission1.traj.climb.states:distance_9         c     0.000000E+00     3.523541E-01     1.000000E+15           
         30  mission1.traj.climb.states:distance_10        c     0.000000E+00     4.373995E-01     1.000000E+15           
         31  mission1.traj.climb.states:distance_11        c     0.000000E+00     4.658022E-01     1.000000E+15           
         32  mission1.traj.climb.states:distance_12        c     0.000000E+00     4.984787E-01     1.000000E+15           
         33  mission1.traj.climb.states:distance_13        c     0.000000E+00     5.449833E-01     1.000000E+15           
         34  mission1.traj.climb.states:distance_14        c     0.000000E+00     5.600394E-01     1.000000E+15           
         35  mission1.traj.cruise.t_duration_0             c     3.169705E-01     1.159576E+00     1.683029E+00           
         36  mission1.traj.cruise.states:mass_0            c     0.000000E+00     6.702951E+00     1.000000E+17           
         37  mission1.traj.cruise.states:mass_1            c     0.000000E+00     6.656111E+00     1.000000E+17           
         38  mission1.traj.cruise.states:mass_2            c     0.000000E+00     6.641345E+00     1.000000E+17           
         39  mission1.traj.cruise.states:mass_3            c     0.000000E+00     6.572673E+00     1.000000E+17           
         40  mission1.traj.cruise.states:mass_4            c     0.000000E+00     6.478932E+00     1.000000E+17           
         41  mission1.traj.cruise.states:mass_5            c     0.000000E+00     6.449503E+00     1.000000E+17           
         42  mission1.traj.cruise.states:mass_6            c     0.000000E+00     6.369951E+00     1.000000E+17           
         43  mission1.traj.cruise.states:mass_7            c     0.000000E+00     6.261538E+00     1.000000E+17           
         44  mission1.traj.cruise.states:mass_8            c     0.000000E+00     6.227551E+00     1.000000E+17           
         45  mission1.traj.cruise.states:mass_9            c     0.000000E+00     6.162527E+00     1.000000E+17           
         46  mission1.traj.cruise.states:mass_10           c     0.000000E+00     6.073747E+00     1.000000E+17           
         47  mission1.traj.cruise.states:mass_11           c     0.000000E+00     6.045874E+00     1.000000E+17           
         48  mission1.traj.cruise.states:mass_12           c     0.000000E+00     6.014750E+00     1.000000E+17           
         49  mission1.traj.cruise.states:mass_13           c     0.000000E+00     5.972028E+00     1.000000E+17           
         50  mission1.traj.cruise.states:mass_14           c     0.000000E+00     5.958560E+00     1.000000E+17           
         51  mission1.traj.cruise.states:distance_0        c     0.000000E+00     6.719679E-01     1.000000E+15           
         52  mission1.traj.cruise.states:distance_1        c     0.000000E+00     8.263390E-01     1.000000E+15           
         53  mission1.traj.cruise.states:distance_2        c     0.000000E+00     8.751806E-01     1.000000E+15           
         54  mission1.traj.cruise.states:distance_3        c     0.000000E+00     1.103491E+00     1.000000E+15           
         55  mission1.traj.cruise.states:distance_4        c     0.000000E+00     1.418230E+00     1.000000E+15           
         56  mission1.traj.cruise.states:distance_5        c     0.000000E+00     1.517776E+00     1.000000E+15           
         57  mission1.traj.cruise.states:distance_6        c     0.000000E+00     1.788621E+00     1.000000E+15           
         58  mission1.traj.cruise.states:distance_7        c     0.000000E+00     2.161932E+00     1.000000E+15           
         59  mission1.traj.cruise.states:distance_8        c     0.000000E+00     2.279988E+00     1.000000E+15           
         60  mission1.traj.cruise.states:distance_9        c     0.000000E+00     2.507239E+00     1.000000E+15           
         61  mission1.traj.cruise.states:distance_10       c     0.000000E+00     2.820517E+00     1.000000E+15           
         62  mission1.traj.cruise.states:distance_11       c     0.000000E+00     2.919600E+00     1.000000E+15           
         63  mission1.traj.cruise.states:distance_12       c     0.000000E+00     3.030657E+00     1.000000E+15           
         64  mission1.traj.cruise.states:distance_13       c     0.000000E+00     3.183826E+00     1.000000E+15           
         65  mission1.traj.cruise.states:distance_14       c     0.000000E+00     3.232287E+00     1.000000E+15           
         66  mission1.traj.descent.t_duration_0            c     5.000000E-01     5.000000E-01     1.500000E+00          l
         67  mission1.traj.descent.states:mass_0           c     0.000000E+00     5.956429E+00     1.000000E+17           
         68  mission1.traj.descent.states:mass_1           c     0.000000E+00     5.953514E+00     1.000000E+17           
         69  mission1.traj.descent.states:mass_2           c     0.000000E+00     5.952599E+00     1.000000E+17           
         70  mission1.traj.descent.states:mass_3           c     0.000000E+00     5.948325E+00     1.000000E+17           
         71  mission1.traj.descent.states:mass_4           c     0.000000E+00     5.942461E+00     1.000000E+17           
         72  mission1.traj.descent.states:mass_5           c     0.000000E+00     5.940624E+00     1.000000E+17           
         73  mission1.traj.descent.states:mass_6           c     0.000000E+00     5.935677E+00     1.000000E+17           
         74  mission1.traj.descent.states:mass_7           c     0.000000E+00     5.929020E+00     1.000000E+17           
         75  mission1.traj.descent.states:mass_8           c     0.000000E+00     5.926962E+00     1.000000E+17           
         76  mission1.traj.descent.states:mass_9           c     0.000000E+00     5.923133E+00     1.000000E+17           
         77  mission1.traj.descent.states:mass_10          c     0.000000E+00     5.918226E+00     1.000000E+17           
         78  mission1.traj.descent.states:mass_11          c     0.000000E+00     5.916785E+00     1.000000E+17           
         79  mission1.traj.descent.states:mass_12          c     0.000000E+00     5.915231E+00     1.000000E+17           
         80  mission1.traj.descent.states:mass_13          c     0.000000E+00     5.913184E+00     1.000000E+17           
         81  mission1.traj.descent.states:mass_14          c     0.000000E+00     5.912558E+00     1.000000E+17           
         82  mission1.traj.descent.states:distance_0       c     0.000000E+00     3.247735E+00     1.000000E+15           
         83  mission1.traj.descent.states:distance_1       c     0.000000E+00     3.268667E+00     1.000000E+15           
         84  mission1.traj.descent.states:distance_2       c     0.000000E+00     3.275199E+00     1.000000E+15           
         85  mission1.traj.descent.states:distance_3       c     0.000000E+00     3.305128E+00     1.000000E+15           
         86  mission1.traj.descent.states:distance_4       c     0.000000E+00     3.344707E+00     1.000000E+15           
         87  mission1.traj.descent.states:distance_5       c     0.000000E+00     3.356805E+00     1.000000E+15           
         88  mission1.traj.descent.states:distance_6       c     0.000000E+00     3.388661E+00     1.000000E+15           
         89  mission1.traj.descent.states:distance_7       c     0.000000E+00     3.429932E+00     1.000000E+15           
         90  mission1.traj.descent.states:distance_8       c     0.000000E+00     3.442324E+00     1.000000E+15           
         91  mission1.traj.descent.states:distance_9       c     0.000000E+00     3.465255E+00     1.000000E+15           
         92  mission1.traj.descent.states:distance_10      c     0.000000E+00     3.494816E+00     1.000000E+15           
         93  mission1.traj.descent.states:distance_11      c     0.000000E+00     3.503658E+00     1.000000E+15           
         94  mission1.traj.descent.states:distance_12      c     0.000000E+00     3.513272E+00     1.000000E+15           
         95  mission1.traj.descent.states:distance_13      c     0.000000E+00     3.526009E+00     1.000000E+15           
         96  mission1.traj.descent.states:distance_14      c     0.000000E+00     3.529912E+00     1.000000E+15           
         97  mission2.mission:summary:gross_mass_0         c     5.714286E-05     6.813247E-01     5.142857E+00           
         98  mission2.traj.climb.t_duration_0              c     5.000000E-01     5.000000E-01     1.500000E+00          l
         99  mission2.traj.climb.states:mass_0             c     0.000000E+00     5.408264E+00     1.000000E+17           
        100  mission2.traj.climb.states:mass_1             c     0.000000E+00     5.391325E+00     1.000000E+17           
        101  mission2.traj.climb.states:mass_2             c     0.000000E+00     5.371275E+00     1.000000E+17           
        102  mission2.traj.climb.states:mass_3             c     0.000000E+00     5.365467E+00     1.000000E+17           
        103  mission2.traj.climb.states:mass_4             c     0.000000E+00     5.340578E+00     1.000000E+17           
        104  mission2.traj.climb.states:mass_5             c     0.000000E+00     5.309573E+00     1.000000E+17           
        105  mission2.traj.climb.states:mass_6             c     0.000000E+00     5.299937E+00     1.000000E+17           
        106  mission2.traj.climb.states:mass_7             c     0.000000E+00     5.274227E+00     1.000000E+17           
        107  mission2.traj.climb.states:mass_8             c     0.000000E+00     5.239104E+00     1.000000E+17           
        108  mission2.traj.climb.states:mass_9             c     0.000000E+00     5.227971E+00     1.000000E+17           
        109  mission2.traj.climb.states:mass_10            c     0.000000E+00     5.206228E+00     1.000000E+17           
        110  mission2.traj.climb.states:mass_11            c     0.000000E+00     5.175636E+00     1.000000E+17           
        111  mission2.traj.climb.states:mass_12            c     0.000000E+00     5.165820E+00     1.000000E+17           
        112  mission2.traj.climb.states:mass_13            c     0.000000E+00     5.154787E+00     1.000000E+17           
        113  mission2.traj.climb.states:mass_14            c     0.000000E+00     5.139436E+00     1.000000E+17           
        114  mission2.traj.climb.states:mass_15            c     0.000000E+00     5.134520E+00     1.000000E+17           
        115  mission2.traj.climb.states:distance_0         c     0.000000E+00     1.145810E-02     1.000000E+15           
        116  mission2.traj.climb.states:distance_1         c     0.000000E+00     2.910560E-02     1.000000E+15           
        117  mission2.traj.climb.states:distance_2         c     0.000000E+00     3.513105E-02     1.000000E+15           
        118  mission2.traj.climb.states:distance_3         c     0.000000E+00     6.608149E-02     1.000000E+15           
        119  mission2.traj.climb.states:distance_4         c     0.000000E+00     1.161455E-01     1.000000E+15           
        120  mission2.traj.climb.states:distance_5         c     0.000000E+00     1.337318E-01     1.000000E+15           
        121  mission2.traj.climb.states:distance_6         c     0.000000E+00     1.857547E-01     1.000000E+15           
        122  mission2.traj.climb.states:distance_7         c     0.000000E+00     2.672316E-01     1.000000E+15           
        123  mission2.traj.climb.states:distance_8         c     0.000000E+00     2.952969E-01     1.000000E+15           
        124  mission2.traj.climb.states:distance_9         c     0.000000E+00     3.523541E-01     1.000000E+15           
        125  mission2.traj.climb.states:distance_10        c     0.000000E+00     4.373995E-01     1.000000E+15           
        126  mission2.traj.climb.states:distance_11        c     0.000000E+00     4.658022E-01     1.000000E+15           
        127  mission2.traj.climb.states:distance_12        c     0.000000E+00     4.984787E-01     1.000000E+15           
        128  mission2.traj.climb.states:distance_13        c     0.000000E+00     5.449833E-01     1.000000E+15           
        129  mission2.traj.climb.states:distance_14        c     0.000000E+00     5.600394E-01     1.000000E+15           
        130  mission2.traj.cruise.t_duration_0             c     3.169705E-01     1.159576E+00     1.683029E+00           
        131  mission2.traj.cruise.states:mass_0            c     0.000000E+00     5.104800E+00     1.000000E+17           
        132  mission2.traj.cruise.states:mass_1            c     0.000000E+00     5.063995E+00     1.000000E+17           
        133  mission2.traj.cruise.states:mass_2            c     0.000000E+00     5.051130E+00     1.000000E+17           
        134  mission2.traj.cruise.states:mass_3            c     0.000000E+00     4.991272E+00     1.000000E+17           
        135  mission2.traj.cruise.states:mass_4            c     0.000000E+00     4.909516E+00     1.000000E+17           
        136  mission2.traj.cruise.states:mass_5            c     0.000000E+00     4.883842E+00     1.000000E+17           
        137  mission2.traj.cruise.states:mass_6            c     0.000000E+00     4.814434E+00     1.000000E+17           
        138  mission2.traj.cruise.states:mass_7            c     0.000000E+00     4.719830E+00     1.000000E+17           
        139  mission2.traj.cruise.states:mass_8            c     0.000000E+00     4.690168E+00     1.000000E+17           
        140  mission2.traj.cruise.states:mass_9            c     0.000000E+00     4.633416E+00     1.000000E+17           
        141  mission2.traj.cruise.states:mass_10           c     0.000000E+00     4.555921E+00     1.000000E+17           
        142  mission2.traj.cruise.states:mass_11           c     0.000000E+00     4.531590E+00     1.000000E+17           
        143  mission2.traj.cruise.states:mass_12           c     0.000000E+00     4.504420E+00     1.000000E+17           
        144  mission2.traj.cruise.states:mass_13           c     0.000000E+00     4.467124E+00     1.000000E+17           
        145  mission2.traj.cruise.states:mass_14           c     0.000000E+00     4.455367E+00     1.000000E+17           
        146  mission2.traj.cruise.states:distance_0        c     0.000000E+00     6.719679E-01     1.000000E+15           
        147  mission2.traj.cruise.states:distance_1        c     0.000000E+00     8.263390E-01     1.000000E+15           
        148  mission2.traj.cruise.states:distance_2        c     0.000000E+00     8.751806E-01     1.000000E+15           
        149  mission2.traj.cruise.states:distance_3        c     0.000000E+00     1.103491E+00     1.000000E+15           
        150  mission2.traj.cruise.states:distance_4        c     0.000000E+00     1.418230E+00     1.000000E+15           
        151  mission2.traj.cruise.states:distance_5        c     0.000000E+00     1.517776E+00     1.000000E+15           
        152  mission2.traj.cruise.states:distance_6        c     0.000000E+00     1.788621E+00     1.000000E+15           
        153  mission2.traj.cruise.states:distance_7        c     0.000000E+00     2.161932E+00     1.000000E+15           
        154  mission2.traj.cruise.states:distance_8        c     0.000000E+00     2.279988E+00     1.000000E+15           
        155  mission2.traj.cruise.states:distance_9        c     0.000000E+00     2.507239E+00     1.000000E+15           
        156  mission2.traj.cruise.states:distance_10       c     0.000000E+00     2.820517E+00     1.000000E+15           
        157  mission2.traj.cruise.states:distance_11       c     0.000000E+00     2.919600E+00     1.000000E+15           
        158  mission2.traj.cruise.states:distance_12       c     0.000000E+00     3.030657E+00     1.000000E+15           
        159  mission2.traj.cruise.states:distance_13       c     0.000000E+00     3.183826E+00     1.000000E+15           
        160  mission2.traj.cruise.states:distance_14       c     0.000000E+00     3.232287E+00     1.000000E+15           
        161  mission2.traj.descent.t_duration_0            c     5.000000E-01     5.000000E-01     1.500000E+00          l
        162  mission2.traj.descent.states:mass_0           c     0.000000E+00     4.453191E+00     1.000000E+17           
        163  mission2.traj.descent.states:mass_1           c     0.000000E+00     4.450172E+00     1.000000E+17           
        164  mission2.traj.descent.states:mass_2           c     0.000000E+00     4.449215E+00     1.000000E+17           
        165  mission2.traj.descent.states:mass_3           c     0.000000E+00     4.444693E+00     1.000000E+17           
        166  mission2.traj.descent.states:mass_4           c     0.000000E+00     4.438392E+00     1.000000E+17           
        167  mission2.traj.descent.states:mass_5           c     0.000000E+00     4.436401E+00     1.000000E+17           
        168  mission2.traj.descent.states:mass_6           c     0.000000E+00     4.431006E+00     1.000000E+17           
        169  mission2.traj.descent.states:mass_7           c     0.000000E+00     4.423644E+00     1.000000E+17           
        170  mission2.traj.descent.states:mass_8           c     0.000000E+00     4.421336E+00     1.000000E+17           
        171  mission2.traj.descent.states:mass_9           c     0.000000E+00     4.416980E+00     1.000000E+17           
        172  mission2.traj.descent.states:mass_10          c     0.000000E+00     4.411241E+00     1.000000E+17           
        173  mission2.traj.descent.states:mass_11          c     0.000000E+00     4.409509E+00     1.000000E+17           
        174  mission2.traj.descent.states:mass_12          c     0.000000E+00     4.407627E+00     1.000000E+17           
        175  mission2.traj.descent.states:mass_13          c     0.000000E+00     4.405130E+00     1.000000E+17           
        176  mission2.traj.descent.states:mass_14          c     0.000000E+00     4.404364E+00     1.000000E+17           
        177  mission2.traj.descent.states:distance_0       c     0.000000E+00     3.247735E+00     1.000000E+15           
        178  mission2.traj.descent.states:distance_1       c     0.000000E+00     3.268667E+00     1.000000E+15           
        179  mission2.traj.descent.states:distance_2       c     0.000000E+00     3.275199E+00     1.000000E+15           
        180  mission2.traj.descent.states:distance_3       c     0.000000E+00     3.305128E+00     1.000000E+15           
        181  mission2.traj.descent.states:distance_4       c     0.000000E+00     3.344707E+00     1.000000E+15           
        182  mission2.traj.descent.states:distance_5       c     0.000000E+00     3.356805E+00     1.000000E+15           
        183  mission2.traj.descent.states:distance_6       c     0.000000E+00     3.388661E+00     1.000000E+15           
        184  mission2.traj.descent.states:distance_7       c     0.000000E+00     3.429932E+00     1.000000E+15           
        185  mission2.traj.descent.states:distance_8       c     0.000000E+00     3.442324E+00     1.000000E+15           
        186  mission2.traj.descent.states:distance_9       c     0.000000E+00     3.465255E+00     1.000000E+15           
        187  mission2.traj.descent.states:distance_10      c     0.000000E+00     3.494816E+00     1.000000E+15           
        188  mission2.traj.descent.states:distance_11      c     0.000000E+00     3.503658E+00     1.000000E+15           
        189  mission2.traj.descent.states:distance_12      c     0.000000E+00     3.513272E+00     1.000000E+15           
        190  mission2.traj.descent.states:distance_13      c     0.000000E+00     3.526009E+00     1.000000E+15           
        191  mission2.traj.descent.states:distance_14      c     0.000000E+00     3.529912E+00     1.000000E+15           

   Constraints (i - inequality, e - equality)
      Index  Name                                                          Type          Lower           Value           Upper    Status  Lagrange Multiplier (N/A)
          0  mission1.mission:constraints:range_residual                      e   0.000000E+00    2.273737E-14    0.000000E+00              9.00000E+100
          1  mission1.link_climb_mass.mass                                    e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
          2  mission1.mission:constraints:mass_residual                       e   0.000000E+00   -8.731149E-16    0.000000E+00              9.00000E+100
          3  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.977216E-14    0.000000E+00              9.00000E+100
          4  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    8.679119E-15    0.000000E+00              9.00000E+100
          5  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    5.554035E-15    0.000000E+00              9.00000E+100
          6  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.469772E-14    0.000000E+00              9.00000E+100
          7  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.282599E-14    0.000000E+00              9.00000E+100
          8  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    7.103387E-15    0.000000E+00              9.00000E+100
          9  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    6.773204E-15    0.000000E+00              9.00000E+100
         10  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    9.539638E-15    0.000000E+00              9.00000E+100
         11  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    4.991742E-15    0.000000E+00              9.00000E+100
         12  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00   -2.935453E-15    0.000000E+00              9.00000E+100
         13  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    7.088045E-15    0.000000E+00              9.00000E+100
         14  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    5.748169E-15    0.000000E+00              9.00000E+100
         15  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.064231E-15    0.000000E+00              9.00000E+100
         16  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    2.401406E-15    0.000000E+00              9.00000E+100
         17  mission1.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    6.027305E-15    0.000000E+00              9.00000E+100
         18  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00   -3.205214E-18    0.000000E+00              9.00000E+100
         19  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    6.410428E-18    0.000000E+00              9.00000E+100
         20  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    1.282086E-17    0.000000E+00              9.00000E+100
         21  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    1.178272E-16    0.000000E+00              9.00000E+100
         22  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00   -3.272979E-17    0.000000E+00              9.00000E+100
         23  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    2.618383E-17    0.000000E+00              9.00000E+100
         24  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    7.782496E-18    0.000000E+00              9.00000E+100
         25  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    3.112999E-17    0.000000E+00              9.00000E+100
         26  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00   -2.334749E-16    0.000000E+00              9.00000E+100
         27  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    1.047353E-16    0.000000E+00              9.00000E+100
         28  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    1.832868E-16    0.000000E+00              9.00000E+100
         29  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00   -1.309192E-17    0.000000E+00              9.00000E+100
         30  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    8.333556E-17    0.000000E+00              9.00000E+100
         31  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    8.333556E-17    0.000000E+00              9.00000E+100
         32  mission1.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    1.153877E-16    0.000000E+00              9.00000E+100
         33  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    2.757721E-15    0.000000E+00              9.00000E+100
         34  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    4.213410E-15    0.000000E+00              9.00000E+100
         35  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    4.593506E-15    0.000000E+00              9.00000E+100
         36  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    1.108242E-14    0.000000E+00              9.00000E+100
         37  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    6.540446E-15    0.000000E+00              9.00000E+100
         38  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    2.312279E-15    0.000000E+00              9.00000E+100
         39  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    6.440680E-15    0.000000E+00              9.00000E+100
         40  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    5.930138E-15    0.000000E+00              9.00000E+100
         41  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    1.007338E-14    0.000000E+00              9.00000E+100
         42  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    1.390671E-14    0.000000E+00              9.00000E+100
         43  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    5.714632E-15    0.000000E+00              9.00000E+100
         44  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    7.944329E-15    0.000000E+00              9.00000E+100
         45  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    1.916657E-15    0.000000E+00              9.00000E+100
         46  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    3.517914E-15    0.000000E+00              9.00000E+100
         47  mission1.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    5.272828E-15    0.000000E+00              9.00000E+100
         48  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -2.484375E-16    0.000000E+00              9.00000E+100
         49  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
         50  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -2.691406E-16    0.000000E+00              9.00000E+100
         51  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -4.228167E-16    0.000000E+00              9.00000E+100
         52  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -8.456334E-17    0.000000E+00              9.00000E+100
         53  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -8.456334E-17    0.000000E+00              9.00000E+100
         54  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    7.540308E-16    0.000000E+00              9.00000E+100
         55  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -1.508062E-16    0.000000E+00              9.00000E+100
         56  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    2.010749E-16    0.000000E+00              9.00000E+100
         57  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -7.187884E-16    0.000000E+00              9.00000E+100
         58  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    8.456334E-17    0.000000E+00              9.00000E+100
         59  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    3.805350E-16    0.000000E+00              9.00000E+100
         60  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -6.210938E-17    0.000000E+00              9.00000E+100
         61  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -4.140625E-17    0.000000E+00              9.00000E+100
         62  mission1.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    7.453126E-16    0.000000E+00              9.00000E+100
         63  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    5.964331E-15    0.000000E+00              9.00000E+100
         64  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    1.134658E-17    0.000000E+00              9.00000E+100
         65  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    5.827038E-15    0.000000E+00              9.00000E+100
         66  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    5.890563E-15    0.000000E+00              9.00000E+100
         67  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    3.265068E-15    0.000000E+00              9.00000E+100
         68  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    5.851169E-16    0.000000E+00              9.00000E+100
         69  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00   -3.113189E-16    0.000000E+00              9.00000E+100
         70  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    3.095281E-15    0.000000E+00              9.00000E+100
         71  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00   -4.614682E-16    0.000000E+00              9.00000E+100
         72  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00   -1.821394E-15    0.000000E+00              9.00000E+100
         73  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    2.355530E-15    0.000000E+00              9.00000E+100
         74  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    1.653969E-15    0.000000E+00              9.00000E+100
         75  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    4.633661E-15    0.000000E+00              9.00000E+100
         76  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    1.125014E-15    0.000000E+00              9.00000E+100
         77  mission1.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    2.240383E-15    0.000000E+00              9.00000E+100
         78  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00   -9.237026E-16    0.000000E+00              9.00000E+100
         79  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    1.510457E-16    0.000000E+00              9.00000E+100
         80  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00   -1.684741E-15    0.000000E+00              9.00000E+100
         81  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    1.483069E-15    0.000000E+00              9.00000E+100
         82  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    5.398370E-16    0.000000E+00              9.00000E+100
         83  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    1.020351E-15    0.000000E+00              9.00000E+100
         84  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00   -2.165236E-15    0.000000E+00              9.00000E+100
         85  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    2.115866E-17    0.000000E+00              9.00000E+100
         86  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    2.426193E-15    0.000000E+00              9.00000E+100
         87  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    9.610285E-16    0.000000E+00              9.00000E+100
         88  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    7.830602E-16    0.000000E+00              9.00000E+100
         89  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00   -5.872952E-16    0.000000E+00              9.00000E+100
         90  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00   -1.803834E-15    0.000000E+00              9.00000E+100
         91  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00   -4.705655E-16    0.000000E+00              9.00000E+100
         92  mission1.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    7.290860E-16    0.000000E+00              9.00000E+100
         93  mission2.mission:constraints:range_residual                      e   0.000000E+00   -2.273737E-14    0.000000E+00              9.00000E+100
         94  mission2.link_climb_mass.mass                                    e   0.000000E+00   -1.455192E-16    0.000000E+00              9.00000E+100
         95  mission2.mission:constraints:mass_residual                       e   0.000000E+00   -5.820766E-16    0.000000E+00              9.00000E+100
         96  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.952677E-14    0.000000E+00              9.00000E+100
         97  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.827473E-14    0.000000E+00              9.00000E+100
         98  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.021412E-14    0.000000E+00              9.00000E+100
         99  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    2.769247E-14    0.000000E+00              9.00000E+100
        100  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.870201E-14    0.000000E+00              9.00000E+100
        101  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    8.412579E-15    0.000000E+00              9.00000E+100
        102  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    8.256742E-15    0.000000E+00              9.00000E+100
        103  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    9.515318E-15    0.000000E+00              9.00000E+100
        104  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    4.316854E-15    0.000000E+00              9.00000E+100
        105  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    3.953145E-15    0.000000E+00              9.00000E+100
        106  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.073946E-15    0.000000E+00              9.00000E+100
        107  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00   -5.625433E-17    0.000000E+00              9.00000E+100
        108  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    3.660955E-15    0.000000E+00              9.00000E+100
        109  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00   -6.460510E-16    0.000000E+00              9.00000E+100
        110  mission2.traj.climb.collocation_constraint.defects:mass          e   0.000000E+00    1.650184E-15    0.000000E+00              9.00000E+100
        111  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    1.057721E-16    0.000000E+00              9.00000E+100
        112  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    9.615642E-17    0.000000E+00              9.00000E+100
        113  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    8.654078E-17    0.000000E+00              9.00000E+100
        114  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    2.422005E-16    0.000000E+00              9.00000E+100
        115  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    1.309192E-16    0.000000E+00              9.00000E+100
        116  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    9.818937E-17    0.000000E+00              9.00000E+100
        117  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00   -1.556499E-17    0.000000E+00              9.00000E+100
        118  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    2.179099E-16    0.000000E+00              9.00000E+100
        119  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        120  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    7.855150E-17    0.000000E+00              9.00000E+100
        121  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    2.618383E-17    0.000000E+00              9.00000E+100
        122  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    1.309192E-16    0.000000E+00              9.00000E+100
        123  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    4.038570E-16    0.000000E+00              9.00000E+100
        124  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00   -7.051471E-17    0.000000E+00              9.00000E+100
        125  mission2.traj.climb.collocation_constraint.defects:distance      e   0.000000E+00    1.794920E-16    0.000000E+00              9.00000E+100
        126  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    1.512299E-15    0.000000E+00              9.00000E+100
        127  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -3.234864E-17    0.000000E+00              9.00000E+100
        128  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00    3.372345E-15    0.000000E+00              9.00000E+100
        129  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -9.249115E-16    0.000000E+00              9.00000E+100
        130  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -1.618595E-15    0.000000E+00              9.00000E+100
        131  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -1.106591E-15    0.000000E+00              9.00000E+100
        132  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -1.806532E-15    0.000000E+00              9.00000E+100
        133  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -3.475611E-15    0.000000E+00              9.00000E+100
        134  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -7.383218E-15    0.000000E+00              9.00000E+100
        135  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -5.053981E-15    0.000000E+00              9.00000E+100
        136  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -5.830246E-15    0.000000E+00              9.00000E+100
        137  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -6.375283E-15    0.000000E+00              9.00000E+100
        138  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -5.847016E-15    0.000000E+00              9.00000E+100
        139  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -5.628663E-15    0.000000E+00              9.00000E+100
        140  mission2.traj.cruise.collocation_constraint.defects:mass         e   0.000000E+00   -4.569245E-15    0.000000E+00              9.00000E+100
        141  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    1.242188E-16    0.000000E+00              9.00000E+100
        142  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    0.000000E+00    0.000000E+00              9.00000E+100
        143  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    2.070313E-17    0.000000E+00              9.00000E+100
        144  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -1.014760E-15    0.000000E+00              9.00000E+100
        145  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    2.536900E-16    0.000000E+00              9.00000E+100
        146  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    1.268450E-16    0.000000E+00              9.00000E+100
        147  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -9.048370E-16    0.000000E+00              9.00000E+100
        148  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    1.005374E-15    0.000000E+00              9.00000E+100
        149  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -4.021498E-16    0.000000E+00              9.00000E+100
        150  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -7.610700E-16    0.000000E+00              9.00000E+100
        151  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -9.301967E-16    0.000000E+00              9.00000E+100
        152  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    1.479858E-15    0.000000E+00              9.00000E+100
        153  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -1.532031E-15    0.000000E+00              9.00000E+100
        154  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00   -2.484375E-16    0.000000E+00              9.00000E+100
        155  mission2.traj.cruise.collocation_constraint.defects:distance     e   0.000000E+00    7.660157E-16    0.000000E+00              9.00000E+100
        156  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    1.741133E-15    0.000000E+00              9.00000E+100
        157  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    4.590260E-15    0.000000E+00              9.00000E+100
        158  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    2.618224E-15    0.000000E+00              9.00000E+100
        159  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    9.250641E-15    0.000000E+00              9.00000E+100
        160  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    7.574078E-15    0.000000E+00              9.00000E+100
        161  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    7.043418E-15    0.000000E+00              9.00000E+100
        162  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    1.167859E-14    0.000000E+00              9.00000E+100
        163  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    6.753967E-15    0.000000E+00              9.00000E+100
        164  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    8.850548E-15    0.000000E+00              9.00000E+100
        165  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    1.642962E-15    0.000000E+00              9.00000E+100
        166  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    7.623900E-15    0.000000E+00              9.00000E+100
        167  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    5.613647E-15    0.000000E+00              9.00000E+100
        168  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    2.275557E-15    0.000000E+00              9.00000E+100
        169  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    4.462611E-15    0.000000E+00              9.00000E+100
        170  mission2.traj.descent.collocation_constraint.defects:mass        e   0.000000E+00    3.778412E-16    0.000000E+00              9.00000E+100
        171  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    3.415957E-15    0.000000E+00              9.00000E+100
        172  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00   -7.639428E-16    0.000000E+00              9.00000E+100
        173  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    9.556546E-16    0.000000E+00              9.00000E+100
        174  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    2.788169E-15    0.000000E+00              9.00000E+100
        175  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    5.398370E-16    0.000000E+00              9.00000E+100
        176  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    3.476313E-15    0.000000E+00              9.00000E+100
        177  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    2.496722E-15    0.000000E+00              9.00000E+100
        178  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    2.694203E-15    0.000000E+00              9.00000E+100
        179  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    1.622164E-16    0.000000E+00              9.00000E+100
        180  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    4.330561E-15    0.000000E+00              9.00000E+100
        181  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    2.319519E-15    0.000000E+00              9.00000E+100
        182  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    8.720444E-16    0.000000E+00              9.00000E+100
        183  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    2.579396E-15    0.000000E+00              9.00000E+100
        184  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    2.256972E-15    0.000000E+00              9.00000E+100
        185  mission2.traj.descent.collocation_constraint.defects:distance    e   0.000000E+00    9.454881E-16    0.000000E+00              9.00000E+100
        186  mission1.gross_mass_resid                                        i   0.000000E+00    5.948465E-04    1.000000E+30              9.00000E+100
        187  mission1.traj.climb.throttle[path]                               i   0.000000E+00    9.741732E-01    1.000000E+00              9.00000E+100
        188  mission1.traj.climb.throttle[path]                               i   0.000000E+00    8.643698E-01    1.000000E+00              9.00000E+100
        189  mission1.traj.climb.throttle[path]                               i   0.000000E+00    7.397020E-01    1.000000E+00              9.00000E+100
        190  mission1.traj.climb.throttle[path]                               i   0.000000E+00    7.093587E-01    1.000000E+00              9.00000E+100
        191  mission1.traj.climb.throttle[path]                               i   0.000000E+00    7.093587E-01    1.000000E+00              9.00000E+100
        192  mission1.traj.climb.throttle[path]                               i   0.000000E+00    6.364464E-01    1.000000E+00              9.00000E+100
        193  mission1.traj.climb.throttle[path]                               i   0.000000E+00    6.337765E-01    1.000000E+00              9.00000E+100
        194  mission1.traj.climb.throttle[path]                               i   0.000000E+00    6.338460E-01    1.000000E+00              9.00000E+100
        195  mission1.traj.climb.throttle[path]                               i   0.000000E+00    6.338460E-01    1.000000E+00              9.00000E+100
        196  mission1.traj.climb.throttle[path]                               i   0.000000E+00    6.786404E-01    1.000000E+00              9.00000E+100
        197  mission1.traj.climb.throttle[path]                               i   0.000000E+00    6.641890E-01    1.000000E+00              9.00000E+100
        198  mission1.traj.climb.throttle[path]                               i   0.000000E+00    6.877548E-01    1.000000E+00              9.00000E+100
        199  mission1.traj.climb.throttle[path]                               i   0.000000E+00    6.877548E-01    1.000000E+00              9.00000E+100
        200  mission1.traj.climb.throttle[path]                               i   0.000000E+00    7.304937E-01    1.000000E+00              9.00000E+100
        201  mission1.traj.climb.throttle[path]                               i   0.000000E+00    7.408503E-01    1.000000E+00              9.00000E+100
        202  mission1.traj.climb.throttle[path]                               i   0.000000E+00    7.595789E-01    1.000000E+00              9.00000E+100
        203  mission1.traj.climb.throttle[path]                               i   0.000000E+00    7.595789E-01    1.000000E+00              9.00000E+100
        204  mission1.traj.climb.throttle[path]                               i   0.000000E+00    7.950132E-01    1.000000E+00              9.00000E+100
        205  mission1.traj.climb.throttle[path]                               i   0.000000E+00    8.263592E-01    1.000000E+00              9.00000E+100
        206  mission1.traj.climb.throttle[path]                               i   0.000000E+00    8.270646E-01    1.000000E+00              9.00000E+100
        207  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.232305E-01    1.000000E+00              9.00000E+100
        208  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.219679E-01    1.000000E+00              9.00000E+100
        209  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.202384E-01    1.000000E+00              9.00000E+100
        210  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.196922E-01    1.000000E+00              9.00000E+100
        211  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.196922E-01    1.000000E+00              9.00000E+100
        212  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.171448E-01    1.000000E+00              9.00000E+100
        213  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.136143E-01    1.000000E+00              9.00000E+100
        214  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.124589E-01    1.000000E+00              9.00000E+100
        215  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.124589E-01    1.000000E+00              9.00000E+100
        216  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.093413E-01    1.000000E+00              9.00000E+100
        217  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.051070E-01    1.000000E+00              9.00000E+100
        218  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.037829E-01    1.000000E+00              9.00000E+100
        219  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.037829E-01    1.000000E+00              9.00000E+100
        220  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    7.012542E-01    1.000000E+00              9.00000E+100
        221  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    6.978114E-01    1.000000E+00              9.00000E+100
        222  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    6.967329E-01    1.000000E+00              9.00000E+100
        223  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    6.967329E-01    1.000000E+00              9.00000E+100
        224  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    6.955300E-01    1.000000E+00              9.00000E+100
        225  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    6.938812E-01    1.000000E+00              9.00000E+100
        226  mission1.traj.cruise.throttle[path]                              i   0.000000E+00    6.933620E-01    1.000000E+00              9.00000E+100
        227  mission1.traj.descent.throttle[path]                             i   0.000000E+00    4.544497E-01    1.000000E+00              9.00000E+100
        228  mission1.traj.descent.throttle[path]                             i   0.000000E+00    4.426546E-01    1.000000E+00              9.00000E+100
        229  mission1.traj.descent.throttle[path]                             i   0.000000E+00    4.175991E-01    1.000000E+00              9.00000E+100
        230  mission1.traj.descent.throttle[path]                             i   0.000000E+00    4.075651E-01    1.000000E+00              9.00000E+100
        231  mission1.traj.descent.throttle[path]                             i   0.000000E+00    4.075651E-01    1.000000E+00              9.00000E+100
        232  mission1.traj.descent.throttle[path]                             i   0.000000E+00    3.623460E-01    1.000000E+00              9.00000E+100
        233  mission1.traj.descent.throttle[path]                             i   0.000000E+00    3.371016E-01    1.000000E+00              9.00000E+100
        234  mission1.traj.descent.throttle[path]                             i   0.000000E+00    3.293335E-01    1.000000E+00              9.00000E+100
        235  mission1.traj.descent.throttle[path]                             i   0.000000E+00    3.293335E-01    1.000000E+00              9.00000E+100
        236  mission1.traj.descent.throttle[path]                             i   0.000000E+00    2.822138E-01    1.000000E+00              9.00000E+100
        237  mission1.traj.descent.throttle[path]                             i   0.000000E+00    2.218341E-01    1.000000E+00              9.00000E+100
        238  mission1.traj.descent.throttle[path]                             i   0.000000E+00    1.968799E-01    1.000000E+00              9.00000E+100
        239  mission1.traj.descent.throttle[path]                             i   0.000000E+00    1.968799E-01    1.000000E+00              9.00000E+100
        240  mission1.traj.descent.throttle[path]                             i   0.000000E+00    1.515222E-01    1.000000E+00              9.00000E+100
        241  mission1.traj.descent.throttle[path]                             i   0.000000E+00    9.893797E-02    1.000000E+00              9.00000E+100
        242  mission1.traj.descent.throttle[path]                             i   0.000000E+00    8.162542E-02    1.000000E+00              9.00000E+100
        243  mission1.traj.descent.throttle[path]                             i   0.000000E+00    8.162542E-02    1.000000E+00              9.00000E+100
        244  mission1.traj.descent.throttle[path]                             i   0.000000E+00    5.445960E-02    1.000000E+00              9.00000E+100
        245  mission1.traj.descent.throttle[path]                             i   0.000000E+00    1.483311E-02    1.000000E+00              9.00000E+100
        246  mission1.traj.descent.throttle[path]                             i   0.000000E+00    2.053579E-03    1.000000E+00              9.00000E+100
        247  mission2.gross_mass_resid                                        i   0.000000E+00    1.693228E+04    1.000000E+30              9.00000E+100
        248  mission2.traj.climb.throttle[path]                               i   0.000000E+00    7.031884E-01    1.000000E+00              9.00000E+100
        249  mission2.traj.climb.throttle[path]                               i   0.000000E+00    6.151129E-01    1.000000E+00              9.00000E+100
        250  mission2.traj.climb.throttle[path]                               i   0.000000E+00    5.249000E-01    1.000000E+00              9.00000E+100
        251  mission2.traj.climb.throttle[path]                               i   0.000000E+00    5.025849E-01    1.000000E+00              9.00000E+100
        252  mission2.traj.climb.throttle[path]                               i   0.000000E+00    5.025849E-01    1.000000E+00              9.00000E+100
        253  mission2.traj.climb.throttle[path]                               i   0.000000E+00    4.623612E-01    1.000000E+00              9.00000E+100
        254  mission2.traj.climb.throttle[path]                               i   0.000000E+00    4.950911E-01    1.000000E+00              9.00000E+100
        255  mission2.traj.climb.throttle[path]                               i   0.000000E+00    5.062667E-01    1.000000E+00              9.00000E+100
        256  mission2.traj.climb.throttle[path]                               i   0.000000E+00    5.062667E-01    1.000000E+00              9.00000E+100
        257  mission2.traj.climb.throttle[path]                               i   0.000000E+00    5.628189E-01    1.000000E+00              9.00000E+100
        258  mission2.traj.climb.throttle[path]                               i   0.000000E+00    5.810630E-01    1.000000E+00              9.00000E+100
        259  mission2.traj.climb.throttle[path]                               i   0.000000E+00    6.055427E-01    1.000000E+00              9.00000E+100
        260  mission2.traj.climb.throttle[path]                               i   0.000000E+00    6.055427E-01    1.000000E+00              9.00000E+100
        261  mission2.traj.climb.throttle[path]                               i   0.000000E+00    6.536521E-01    1.000000E+00              9.00000E+100
        262  mission2.traj.climb.throttle[path]                               i   0.000000E+00    6.689794E-01    1.000000E+00              9.00000E+100
        263  mission2.traj.climb.throttle[path]                               i   0.000000E+00    6.871947E-01    1.000000E+00              9.00000E+100
        264  mission2.traj.climb.throttle[path]                               i   0.000000E+00    6.871947E-01    1.000000E+00              9.00000E+100
        265  mission2.traj.climb.throttle[path]                               i   0.000000E+00    7.209180E-01    1.000000E+00              9.00000E+100
        266  mission2.traj.climb.throttle[path]                               i   0.000000E+00    7.481364E-01    1.000000E+00              9.00000E+100
        267  mission2.traj.climb.throttle[path]                               i   0.000000E+00    7.481648E-01    1.000000E+00              9.00000E+100
        268  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.672136E-01    1.000000E+00              9.00000E+100
        269  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.661709E-01    1.000000E+00              9.00000E+100
        270  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.647400E-01    1.000000E+00              9.00000E+100
        271  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.642891E-01    1.000000E+00              9.00000E+100
        272  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.642891E-01    1.000000E+00              9.00000E+100
        273  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.621922E-01    1.000000E+00              9.00000E+100
        274  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.593317E-01    1.000000E+00              9.00000E+100
        275  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.584343E-01    1.000000E+00              9.00000E+100
        276  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.584343E-01    1.000000E+00              9.00000E+100
        277  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.560107E-01    1.000000E+00              9.00000E+100
        278  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.527131E-01    1.000000E+00              9.00000E+100
        279  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.516804E-01    1.000000E+00              9.00000E+100
        280  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.516804E-01    1.000000E+00              9.00000E+100
        281  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.497062E-01    1.000000E+00              9.00000E+100
        282  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.470142E-01    1.000000E+00              9.00000E+100
        283  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.461699E-01    1.000000E+00              9.00000E+100
        284  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.461699E-01    1.000000E+00              9.00000E+100
        285  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.452278E-01    1.000000E+00              9.00000E+100
        286  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.439355E-01    1.000000E+00              9.00000E+100
        287  mission2.traj.cruise.throttle[path]                              i   0.000000E+00    6.435284E-01    1.000000E+00              9.00000E+100
        288  mission2.traj.descent.throttle[path]                             i   0.000000E+00    4.590220E-01    1.000000E+00              9.00000E+100
        289  mission2.traj.descent.throttle[path]                             i   0.000000E+00    4.512988E-01    1.000000E+00              9.00000E+100
        290  mission2.traj.descent.throttle[path]                             i   0.000000E+00    4.310530E-01    1.000000E+00              9.00000E+100
        291  mission2.traj.descent.throttle[path]                             i   0.000000E+00    4.222584E-01    1.000000E+00              9.00000E+100
        292  mission2.traj.descent.throttle[path]                             i   0.000000E+00    4.222584E-01    1.000000E+00              9.00000E+100
        293  mission2.traj.descent.throttle[path]                             i   0.000000E+00    3.801053E-01    1.000000E+00              9.00000E+100
        294  mission2.traj.descent.throttle[path]                             i   0.000000E+00    3.576931E-01    1.000000E+00              9.00000E+100
        295  mission2.traj.descent.throttle[path]                             i   0.000000E+00    3.508828E-01    1.000000E+00              9.00000E+100
        296  mission2.traj.descent.throttle[path]                             i   0.000000E+00    3.508828E-01    1.000000E+00              9.00000E+100
        297  mission2.traj.descent.throttle[path]                             i   0.000000E+00    3.075837E-01    1.000000E+00              9.00000E+100
        298  mission2.traj.descent.throttle[path]                             i   0.000000E+00    2.518755E-01    1.000000E+00              9.00000E+100
        299  mission2.traj.descent.throttle[path]                             i   0.000000E+00    2.274925E-01    1.000000E+00              9.00000E+100
        300  mission2.traj.descent.throttle[path]                             i   0.000000E+00    2.274925E-01    1.000000E+00              9.00000E+100
        301  mission2.traj.descent.throttle[path]                             i   0.000000E+00    1.839233E-01    1.000000E+00              9.00000E+100
        302  mission2.traj.descent.throttle[path]                             i   0.000000E+00    1.379991E-01    1.000000E+00              9.00000E+100
        303  mission2.traj.descent.throttle[path]                             i   0.000000E+00    1.235368E-01    1.000000E+00              9.00000E+100
        304  mission2.traj.descent.throttle[path]                             i   0.000000E+00    1.235368E-01    1.000000E+00              9.00000E+100
        305  mission2.traj.descent.throttle[path]                             i   0.000000E+00    9.606646E-02    1.000000E+00              9.00000E+100
        306  mission2.traj.descent.throttle[path]                             i   0.000000E+00    5.447576E-02    1.000000E+00              9.00000E+100
        307  mission2.traj.descent.throttle[path]                             i   0.000000E+00    4.097920E-02    1.000000E+00              9.00000E+100

--------------------------------------------------------------------------------

Results#

The results of the Multi-mission Example are included in the data table and plots below.

From the table results we can see that the mission1 and mission2 have the same Mission.Design.GROSS_MASS, which has been promoted to Aircraft1:GROSS_MASS. However, the Mission.Summary.GROSS_MASS varies as expected because these represent “as-flown” values. The full passengers mission (mission1) has the higher Mission.Summary.GROSS_MASS. Consequently, the Mission.Summary.FUEL_BURNED for each mission is different, higher for mission1, as expected because this mission is carrying more mass for the same mission. Aircraft.Wing.SWEEP is the same for both missions, indicating that the aircraft wings have been designed similarly in both cases. We do not want to see different values for the wing design because it would mean that the two pre-mission systems are not mirroring eachother. If they were not the same it would mean we are designing two different aircraft.

The Aircraft.LandingGear.MAIN_GEAR_MASS and Aircraft.LandingGear.NOSE_GEAR_MASS masses were also displayed because they are sensitive to Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO. We expect these landing gear masses to be the same and they are which is good news for us and indicates that both pre-mission designs are mirroring eachother.

The Aircraft.Furnishings.MASS and Aircraft.CrewPayload.PASSENGER_SERVICE_MASS are displayed. These values represent the weight of the seats and the air conditioning system for the passengers. They are both the same which is what we expect to see.

The Aircraft.Avionics.MASS also match, indicating that the Mission.Design.RANGE for both aircraft has been properly set to the same value.

mission:design:gross_mass was unavailable. Perhapse it has been promoted to the problem level? mission:design:gross_mass was unavailable. Perhapse it has been promoted to the problem level?

mission1.aircraft:design:empty_mass (lbm), [87415.60555673] mission2.aircraft:design:empty_mass (lbm), [87415.60555673]

mission1.aircraft:landing_gear:main_gear_mass (lbm), [5767.0394946] mission2.aircraft:landing_gear:main_gear_mass (lbm), [5767.0394946]

mission1.aircraft:landing_gear:nose_gear_mass (lbm), [747.15266738] mission2.aircraft:landing_gear:nose_gear_mass (lbm), [747.15266738]

mission1.aircraft:design:landing_to_takeoff_mass_ratio (unitless), [0.84] mission2.aircraft:design:landing_to_takeoff_mass_ratio (unitless), [0.84]

mission1.aircraft:avionics:mass (lbm), [1281.74589387] mission2.aircraft:avionics:mass (lbm), [1281.74589387]

mission1.aircraft:furnishings:mass (lbm), [14690.33988] mission2.aircraft:furnishings:mass (lbm), [14690.33988]

mission1.aircraft:crew_and_payload:passenger_service_mass (lbm), [2524.47559296] mission2.aircraft:crew_and_payload:passenger_service_mass (lbm), [2524.47559296]

mission1.mission:summary:gross_mass (lbm), [157440.88610181] mission2.mission:summary:gross_mass (lbm), [120056.71107322]

mission1.mission:summary:fuel_burned (lbm), [27050.67106054] mission2.mission:summary:fuel_burned (lbm), [22916.49603196]

mission1.aircraft:crew_and_payload:passenger_mass (lbm), [26730.] mission2.aircraft:crew_and_payload:passenger_mass (lbm), [165.]

mission1.aircraft:crew_and_payload:passenger_payload_mass (lbm), [32400.] mission2.aircraft:crew_and_payload:passenger_payload_mass (lbm), [200.]

mission1.aircraft:crew_and_payload:cargo_mass (lbm), [4077.] mission2.aircraft:crew_and_payload:cargo_mass (lbm), [4077.]

mission1.aircraft:crew_and_payload:total_payload_mass (lbm), [36477.] mission2.aircraft:crew_and_payload:total_payload_mass (lbm), [4277.]

Objective Value (unitless): [25672.61271768] Aircraft1:GROSS_MASS (lbm) [157440.88610181] Aircraft1:SWEEP (deg) [23.]

In the graph below The Altitude, Drag force, Throttle command, and Mass of the mission1 (full passenger load) and mission2 (one passenger) are displayed. The mission2 shows a characteristic smaller mass throughout the flight as expected since we have just one passenger, and a slightly lower throttle profile to match, indicating the engine is not being pushed as hard to meet the demands of a lighter plane. Otherwise the missions themselves match, showing Mach, Distance, and Altitude all identical for every part of the mission. We did not allow the mach or altitude to be optimized for this mission so these results are not surprising.

Note: When comparing the graphs of the two missions, not all the graphs have the same scale.

Results