From 4373eb8440767789c762b947b8a47fd2afd23fa0 Mon Sep 17 00:00:00 2001 From: Rob Falck Date: Wed, 14 Aug 2024 10:39:58 -0400 Subject: [PATCH 1/8] Removed copy_build_artifacts. Do NOT use IFrame for local HTML files, use HTML instead from IPython.display --- docs/build_jupyter_book.py | 4 +- docs/build_source_docs.py | 4 +- docs/copy_build_artifacts.py | 36 - .../brachistochrone_tandem_phases.ipynb | 901 +- .../bryson_denham/bryson_denham.ipynb | 73653 +++++++++++++++- .../cannonball_implicit_duration.ipynb | 41 +- .../commercial_aircraft.ipynb | 2065 +- .../examples/moon_landing/moon_landing.ipynb | 16 +- .../examples/mountain_car/mountain_car.ipynb | 24 +- .../dymos_book/faq/use_partial_coloring.ipynb | 2529 +- .../explicit_shooting/explicit_shooting.py | 5 +- 11 files changed, 79108 insertions(+), 170 deletions(-) delete mode 100755 docs/copy_build_artifacts.py diff --git a/docs/build_jupyter_book.py b/docs/build_jupyter_book.py index ab4195071..943224737 100755 --- a/docs/build_jupyter_book.py +++ b/docs/build_jupyter_book.py @@ -4,8 +4,6 @@ import subprocess import pathlib -from copy_build_artifacts import copy_build_artifacts - _this_file = pathlib.Path(__file__).resolve() REPO_ROOT = _this_file.parent @@ -28,7 +26,7 @@ def build_book(book_dir=BOOK_DIR, clean=True, ignore_warnings=False): subprocess.run(['jupyter-book', 'build', '--keep-going', book_dir]) # nosec: trusted input else: subprocess.run(['jupyter-book', 'build', '-W', '--keep-going', book_dir]) # nosec: trusted input - copy_build_artifacts(book_dir) + # copy_build_artifacts(book_dir) os.chdir(save_cwd) diff --git a/docs/build_source_docs.py b/docs/build_source_docs.py index f7532db5e..f7033ab65 100644 --- a/docs/build_source_docs.py +++ b/docs/build_source_docs.py @@ -120,7 +120,7 @@ def build_src_docs(top, src_dir, project_name='dymos'): # specifically don't use os.path.join here. Even windows wants the # stuff in the file to have fwd slashes. title = f"[{package}]" - link = f"(packages/{package}.md)\n" + link = f"(packages/{package}.ipynb)\n" index_data += f"- {title}{link}" # make subpkg directory (e.g. _srcdocs/packages/core) for ref sheets @@ -139,7 +139,7 @@ def build_src_docs(top, src_dir, project_name='dymos'): # specifically don't use os.path.join here. Even windows wants the # stuff in the file to have fwd slashes. title = f"[{sub_package}]" - link = f"({package}/{sub_package}.md)\n" + link = f"({package}/{sub_package}.ipynb)\n" package_data += f"- {title}{link}" # creates and writes out one reference sheet (e.g. core/component.ipynb) diff --git a/docs/copy_build_artifacts.py b/docs/copy_build_artifacts.py deleted file mode 100755 index f7cb983fc..000000000 --- a/docs/copy_build_artifacts.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -import os -import pathlib -import fnmatch -import shutil - -def copy_build_artifacts(book_dir='dymos_book'): - """ - Copy build artifacts (html files, images, etc) to the output _build directory. - Parameters - ---------- - book_dir : str - The directory containing the Jupyter-Book to be created. - """ - PATTERNS_TO_COPY = ('*.html', '*.png', '*.svg') - TARGET_DIR = '_build' - EXCLUDE_DIRS = ('_build', '.ipynb_checkpoints') - - for dirpath, dirs, files in os.walk(book_dir, topdown=True): - dirs[:] = [d for d in dirs if d not in EXCLUDE_DIRS] - rel_path = pathlib.PurePath(dirpath).parts[1:] - target_path = pathlib.PurePath(book_dir, TARGET_DIR, 'html', *rel_path) - files_to_copy = set() - for pattern in PATTERNS_TO_COPY: - files_to_copy |= set(fnmatch.filter(files, pattern)) - for f in files_to_copy: - src = pathlib.PurePath(dirpath, f) - dst = pathlib.PurePath(target_path, f) - os.makedirs(os.path.dirname(dst), exist_ok=True) - shutil.copyfile(src, dst) - - -if __name__ == '__main__': - copy_build_artifacts('dymos_book') - - diff --git a/docs/dymos_book/examples/brachistochrone/brachistochrone_tandem_phases.ipynb b/docs/dymos_book/examples/brachistochrone/brachistochrone_tandem_phases.ipynb index 0ad7aecde..89c939da4 100644 --- a/docs/dymos_book/examples/brachistochrone/brachistochrone_tandem_phases.ipynb +++ b/docs/dymos_book/examples/brachistochrone/brachistochrone_tandem_phases.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "tags": [ "active-ipynb", @@ -77,23 +77,23 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [ - "active-ipynb", - "remove-input", - "remove-output" - ] - }, - "outputs": [], - "source": [ - "%matplotlib inline" + "cell_type": "code", + "execution_count": 2, + "metadata": { + "tags": [ + "active-ipynb", + "remove-input", + "remove-output" ] + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -155,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -211,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -251,9 +251,51 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model viewer data has already been recorded for Driver.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_solution.db, is being overwritten.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Full total jacobian for problem 'problem' was computed 3 times, taking 0.10124999983236194 seconds.\n", + "Total jacobian shape: (223, 287) \n", + "\n", + "\n", + "Jacobian shape: (223, 287) (8.40% nonzero)\n", + "FWD solves: 29 REV solves: 0\n", + "Total colors vs. total size: 29 vs 287 (89.90% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-25\n", + "Time to compute sparsity: 0.1012 sec\n", + "Time to compute coloring: 0.1358 sec\n", + "Memory to compute coloring: 10.5938 MB\n", + "Coloring created on: 2024-08-14 10:29:31\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/visualization/opt_report/opt_report.py:625: UserWarning: Attempting to set identical low and high ylims makes transformation singular; automatically expanding.\n", + " ax.set_ylim([ymin_plot, ymax_plot])\n" + ] + } + ], "source": [ "p.model.linear_solver = om.DirectSolver()\n", "p.setup()\n", @@ -273,14 +315,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "tags": [ "remove-input", "remove-output" ] }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/driver.py:143: OMDeprecationWarning:boolean evaluation of DriverResult is temporarily implemented to mimick the previous `failed` return behavior of run_driver.\n", + "Use the `success` attribute of the returned DriverResult object to test for successful driver completion.\n" + ] + }, + { + "data": { + "text/plain": [ + "3.1955113155213425e-05" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from openmdao.utils.assert_utils import assert_near_equal\n", "\n", @@ -299,14 +360,786 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "tags": [ "hide-input" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " Bokeh Plot\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ + "import pathlib\n", + "\n", "from bokeh.plotting import figure, show, output_notebook, output_file, save\n", "\n", "from bokeh.palettes import d3\n", @@ -345,12 +1178,30 @@ "p1.xaxis.axis_label = 'time (s)'\n", "p1.yaxis.axis_label = 'state value'\n", "p1.legend.location = 'bottom_right'\n", - " \n", + "\n", "output_file('plot.html', mode='inline')\n", "plot_file = save(p1)\n", "\n", - "HTML(filename=plot_file)" + "# Define the path to the HTML file\n", + "html_file_path = pathlib.Path('plot.html')\n", + "html_content = html_file_path.read_text()\n", + "\n", + "# Inject CSS to control the output cell height and avoid scrollbars\n", + "html_with_custom_height = f\"\"\"\n", + "
\n", + " {html_content}\n", + "
\n", + "\"\"\"\n", + "\n", + "HTML(html_with_custom_height)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -370,7 +1221,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/docs/dymos_book/examples/bryson_denham/bryson_denham.ipynb b/docs/dymos_book/examples/bryson_denham/bryson_denham.ipynb index 02fe19939..6136a41c8 100644 --- a/docs/dymos_book/examples/bryson_denham/bryson_denham.ipynb +++ b/docs/dymos_book/examples/bryson_denham/bryson_denham.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "e9bef506", "metadata": { "colab": { @@ -160,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "ec2b8a83", "metadata": { "colab": { @@ -221,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "0f14deb3", "metadata": { "tags": [ @@ -237,7 +237,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "ii-ApZna669K", "metadata": { "id": "ii-ApZna669K" @@ -264,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "3yXzgcIw8Tjq", "metadata": { "id": "3yXzgcIw8Tjq" @@ -294,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "sGYfpaiI8eH-", "metadata": { "id": "sGYfpaiI8eH-" @@ -338,7 +338,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "IdjlON_895PU", "metadata": { "id": "IdjlON_895PU" @@ -358,7 +358,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "d498cb7b", "metadata": { "colab": { @@ -367,7 +367,29 @@ "id": "d498cb7b", "outputId": "18be63ac-a3cb-4632-eb7d-130eced98d70" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "--- Constraint Report [traj] ---\n", + " --- phase0 ---\n", + " [path] x <= 1.1111e-01 [m]\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "#\n", "# Minimize time at the end of the phase\n", @@ -407,7 +429,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "iRY53Rq0_0c6", "metadata": { "colab": { @@ -419,7 +441,116 @@ "hide-output" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model viewer data has already been recorded for Driver.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_solution.db, is being overwritten.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Full total jacobian for problem 'problem' was computed 3 times, taking 0.18549308413639665 seconds.\n", + "Total jacobian shape: (336, 286) \n", + "\n", + "\n", + "Jacobian shape: (336, 286) (1.30% nonzero)\n", + "FWD solves: 7 REV solves: 0\n", + "Total colors vs. total size: 7 vs 286 (97.55% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-25\n", + "Time to compute sparsity: 0.1855 sec\n", + "Time to compute coloring: 0.0561 sec\n", + "Memory to compute coloring: 0.5625 MB\n", + "Coloring created on: 2024-08-14 10:31:10\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->x', inds=[(0, 0), (95, 0)])] cannot be impacted by the design variables of the problem.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimization terminated successfully (Exit mode 0)\n", + " Current function value: 4.000014657972209\n", + " Iterations: 38\n", + " Function evaluations: 38\n", + " Gradient evaluations: 38\n", + "Optimization Complete\n", + "-----------------------------------\n", + "INFO: checking out_of_order\n", + "INFO: checking system\n", + "INFO: checking solvers\n", + "INFO: checking dup_inputs\n", + "INFO: checking missing_recorders\n", + "WARNING: The Problem has no recorder of any kind attached\n", + "INFO: checking unserializable_options\n", + "INFO: checking comp_has_no_outputs\n", + "INFO: checking auto_ivc_warnings\n", + "\n", + "Simulating trajectory traj\n", + "Model viewer data has already been recorded for Driver.\n", + "INFO: checking out_of_order\n", + "INFO: checking system\n", + "INFO: checking solvers\n", + "INFO: checking dup_inputs\n", + "INFO: checking missing_recorders\n", + "WARNING: The Problem has no recorder of any kind attached\n", + "INFO: checking unserializable_options\n", + "INFO: checking comp_has_no_outputs\n", + "INFO: checking auto_ivc_warnings\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/group.py:1104: DerivativesWarning:Constraints or objectives [ode_eval.control_interp.control_rates:u_rate2] cannot be impacted by the design variables of the problem because no partials were defined for them in their parent component(s).\n", + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_simulation.db, is being overwritten.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Done simulating trajectory traj\n" + ] + }, + { + "data": { + "text/plain": [ + "Problem: problem\n", + "Driver: ScipyOptimizeDriver\n", + " success : True\n", + " iterations : 39\n", + " runtime : 4.0923E+00 s\n", + " model_evals : 39\n", + " model_time : 1.4088E-02 s\n", + " deriv_evals : 38\n", + " deriv_time : 1.0526E-01 s\n", + " exit_status : SUCCESS" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "#\n", "# Set the initial values\n", @@ -454,13 +585,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "beea4c6a", "metadata": { "id": "beea4c6a", "scrolled": true }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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i+Ozzz5j5MiRFCpUiGbNmjFx4kSznkKOtWvXLpo2bZq2/eqrrwL//D/uSPULi2Fo3J6IiIjZDMMgMjKSy5cvmx2KiDyAQoUKUaJECU14LyIiYiKN7BIREXEANwpdxYsXx8vLS38oi+QwhmFw9epVzp8/D6AJj0VEREykYpeIiIjJUlJS0gpdWhFOJOfKmzcvYF1pqnjx4rnqlkYRERFHotUYRURETJaUlASAl5eXyZGIyIO68Xt84/daREREsp+KXSIiIg5Cty6K5Hz6PRYRETGfil0iIiIiIiIiIuI0VOwSERGRbBcWFobFYiEkJOSBj2WxWPj5558f+DiSdQMGDKBTp052P8+4ceOoVauWwxxHREREHJuKXSIiIpIj3KlQERERQZs2bbI/IGHq1KnMmjXL7DAylFERdNSoUaxZs8acgERERCTbaDVGERERydFKlChhdgi5lre3t9khZEn+/PnJnz+/2WGIiIiInWlkl4iIjR05coQSJUoQFxd3z7YHDhzA39+fK1euZENkIrb3448/Ur16dfLmzUvRokVp3rw5V65cITU1lXfffRd/f388PDyoVasWK1euvONxZs2aRaFChdLt+/nnn9Mm+541axbjx49n3759WCwWLBZL2oiiW0fwHDhwgGbNmqXF9NxzzxEfH5/28xu33k2ePBk/Pz+KFi3K0KFDtXreXdzpdb71NsYmTZrw0ksvMWLECAoXLoyvry9ff/01V65cYeDAgRQoUIBy5cqxYsWKtMfc67XPyM6dO2nRogU+Pj54e3vzxBNPsGfPnrSfly5dGoDOnTtjsVjStm8dHXiv9+mN220XL15M06ZN8fLyombNmmzdujXrSRSRTFE/SkRsQcUuEZFMaNKkCSNGjMhU2zFjxjB06FAKFChwz7bVq1enbt26/Oc//3nACEWyX0REBL169eLZZ5/l8OHDrF+/ni5dumAYBlOnTuXjjz9m8uTJ7N+/n1atWtGxY0eOHTt2X+fq0aMHI0eOpGrVqkRERBAREUGPHj1ua3f16lVat25N4cKF2blzJz/88AO///47w4YNS9du3bp1nDhxgnXr1jF79mxmzZqV/bfjGQZcv2LOl2FkOsy7vc4ZmT17Nj4+PuzYsYOXXnqJF154ge7du9OwYUP27NlDq1at6NevH1evXr3v1MXFxdG/f382bdrEtm3bqFChAm3b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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "sol = om.CaseReader('dymos_solution.db').get_case('final')\n", "sim = om.CaseReader('dymos_simulation.db').get_case('final')\n", @@ -513,7 +655,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "13842bfe", "metadata": { "tags": [ @@ -521,7 +663,18 @@ "remove-output" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "3.6644930523355157e-06" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from openmdao.utils.assert_utils import assert_near_equal\n", "\n", @@ -546,7 +699,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "da31be29", "metadata": { "colab": { @@ -560,8 +713,73459 @@ "hide-input" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + " \n", + "
\n", + " \n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ + "import pathlib\n", + "\n", "import matplotlib as mpl\n", "from matplotlib import animation\n", "\n", @@ -681,7 +74285,18 @@ "from IPython.display import HTML\n", "with open('anim.html', 'w') as f:\n", " f.write(anim.to_jshtml())\n", - "HTML('anim.html')" + "\n", + "# Define the path to the HTML file\n", + "html_content = pathlib.Path('anim.html').read_text()\n", + "\n", + "# Inject CSS to control the output cell height and avoid scrollbars\n", + "html_with_custom_height = f\"\"\"\n", + "
\n", + " {html_content}\n", + "
\n", + "\"\"\"\n", + "\n", + "HTML(html_with_custom_height)" ] }, { @@ -719,7 +74334,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/docs/dymos_book/examples/cannonball_implicit_duration/cannonball_implicit_duration.ipynb b/docs/dymos_book/examples/cannonball_implicit_duration/cannonball_implicit_duration.ipynb index 58683c036..b06bbfb48 100644 --- a/docs/dymos_book/examples/cannonball_implicit_duration/cannonball_implicit_duration.ipynb +++ b/docs/dymos_book/examples/cannonball_implicit_duration/cannonball_implicit_duration.ipynb @@ -74,19 +74,19 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [ - "active-ipynb", - "remove-input", - "remove-output" - ] - }, - "outputs": [], - "source": [ - "%matplotlib inline" + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "active-ipynb", + "remove-input", + "remove-output" ] + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] }, { "cell_type": "code", @@ -387,7 +387,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Plotting the results" + "## Displaying the timeseries data" ] }, { @@ -398,9 +398,20 @@ }, "outputs": [], "source": [ - "from IPython.display import IFrame\n", + "from IPython.display import HTML\n", + "\n", + "# Define the path to the HTML file\n", + "html_file_path = p.get_reports_dir() / 'traj_results_report.html'\n", + "html_content = html_file_path.read_text()\n", + "\n", + "# Inject CSS to control the output cell height and avoid scrollbars\n", + "html_with_custom_height = f\"\"\"\n", + "
\n", + " {html_content}\n", + "
\n", + "\"\"\"\n", "\n", - "IFrame(src='reports/cannonball_implicit_duration/traj_results_report.html', width=700, height=1000)" + "HTML(html_with_custom_height)" ] }, { diff --git a/docs/dymos_book/examples/commercial_aircraft/commercial_aircraft.ipynb b/docs/dymos_book/examples/commercial_aircraft/commercial_aircraft.ipynb index 0b39db6b1..9881fc1f8 100644 --- a/docs/dymos_book/examples/commercial_aircraft/commercial_aircraft.ipynb +++ b/docs/dymos_book/examples/commercial_aircraft/commercial_aircraft.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "tags": [ "active-ipynb", @@ -510,38 +510,354 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "tags": [ "remove-input", "hide-output" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
import numpy as np\n",
+       "import openmdao.api as om\n",
+       "from dymos.models.atmosphere import USatm1976Comp\n",
+       "\n",
+       "from .steady_flight_path_angle_comp import SteadyFlightPathAngleComp\n",
+       "from .dynamic_pressure_comp import DynamicPressureComp\n",
+       "from .flight_equlibrium.steady_flight_equilibrium_group import SteadyFlightEquilibriumGroup\n",
+       "from .propulsion.propulsion_group import PropulsionGroup\n",
+       "from .range_rate_comp import RangeRateComp\n",
+       "from .true_airspeed_comp import TrueAirspeedComp\n",
+       "from .mass_comp import MassComp\n",
+       "\n",
+       "\n",
+       "class AircraftODE(om.Group):\n",
+       "\n",
+       "    def initialize(self):\n",
+       "        self.options.declare('num_nodes', types=int,\n",
+       "                             desc='Number of nodes to be evaluated in the RHS')\n",
+       "\n",
+       "    def setup(self):\n",
+       "        nn = self.options['num_nodes']\n",
+       "\n",
+       "        self.add_subsystem(name='mass_comp',\n",
+       "                           subsys=MassComp(num_nodes=nn),\n",
+       "                           promotes_inputs=['mass_fuel'])\n",
+       "\n",
+       "        self.connect('mass_comp.W_total', 'flight_equilibrium.W_total')\n",
+       "\n",
+       "        self.add_subsystem(name='atmos',\n",
+       "                           subsys=USatm1976Comp(num_nodes=nn),\n",
+       "                           promotes_inputs=[('h', 'alt')])\n",
+       "\n",
+       "        self.connect('atmos.pres', 'propulsion.pres')\n",
+       "        self.connect('atmos.sos', 'tas_comp.sos')\n",
+       "        self.connect('atmos.rho', 'q_comp.rho')\n",
+       "\n",
+       "        self.add_subsystem(name='tas_comp',\n",
+       "                           subsys=TrueAirspeedComp(num_nodes=nn))\n",
+       "\n",
+       "        self.connect('tas_comp.TAS',\n",
+       "                     ('gam_comp.TAS', 'q_comp.TAS', 'range_rate_comp.TAS'))\n",
+       "\n",
+       "        self.add_subsystem(name='gam_comp',\n",
+       "                           subsys=SteadyFlightPathAngleComp(num_nodes=nn))\n",
+       "\n",
+       "        self.connect('gam_comp.gam', ('flight_equilibrium.gam', 'range_rate_comp.gam'))\n",
+       "\n",
+       "        self.add_subsystem(name='q_comp',\n",
+       "                           subsys=DynamicPressureComp(num_nodes=nn))\n",
+       "\n",
+       "        self.connect('q_comp.q', ('aero.q', 'flight_equilibrium.q', 'propulsion.q'))\n",
+       "\n",
+       "        self.add_subsystem(name='flight_equilibrium',\n",
+       "                           subsys=SteadyFlightEquilibriumGroup(num_nodes=nn),\n",
+       "                           promotes_inputs=['aero.*', 'alt'],\n",
+       "                           promotes_outputs=['aero.*'])\n",
+       "\n",
+       "        self.connect('flight_equilibrium.CT', 'propulsion.CT')\n",
+       "\n",
+       "        self.add_subsystem(name='propulsion', subsys=PropulsionGroup(num_nodes=nn),\n",
+       "                           promotes_inputs=['alt'])\n",
+       "\n",
+       "        self.add_subsystem(name='range_rate_comp', subsys=RangeRateComp(num_nodes=nn))\n",
+       "\n",
+       "        # We promoted multiple inputs to the group named 'alt'.\n",
+       "        # In order to automatically create a source variable for 'alt', we must specify their units\n",
+       "        # since they have different units in different components.\n",
+       "        self.set_input_defaults('alt', val=np.ones(nn,), units='m')\n",
+       "
\n" + ], + "text/latex": [ + "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n", + "\\PY{k+kn}{import} \\PY{n+nn}{numpy} \\PY{k}{as} \\PY{n+nn}{np}\n", + "\\PY{k+kn}{import} \\PY{n+nn}{openmdao}\\PY{n+nn}{.}\\PY{n+nn}{api} \\PY{k}{as} \\PY{n+nn}{om}\n", + "\\PY{k+kn}{from} \\PY{n+nn}{dymos}\\PY{n+nn}{.}\\PY{n+nn}{models}\\PY{n+nn}{.}\\PY{n+nn}{atmosphere} \\PY{k+kn}{import} \\PY{n}{USatm1976Comp}\n", + "\n", + "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{steady\\PYZus{}flight\\PYZus{}path\\PYZus{}angle\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{SteadyFlightPathAngleComp}\n", + "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{dynamic\\PYZus{}pressure\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{DynamicPressureComp}\n", + "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{flight\\PYZus{}equlibrium}\\PY{n+nn}{.}\\PY{n+nn}{steady\\PYZus{}flight\\PYZus{}equilibrium\\PYZus{}group} \\PY{k+kn}{import} \\PY{n}{SteadyFlightEquilibriumGroup}\n", + "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{propulsion}\\PY{n+nn}{.}\\PY{n+nn}{propulsion\\PYZus{}group} \\PY{k+kn}{import} \\PY{n}{PropulsionGroup}\n", + "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{range\\PYZus{}rate\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{RangeRateComp}\n", + "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{true\\PYZus{}airspeed\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{TrueAirspeedComp}\n", + "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{mass\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{MassComp}\n", + "\n", + "\n", + "\\PY{k}{class} \\PY{n+nc}{AircraftODE}\\PY{p}{(}\\PY{n}{om}\\PY{o}{.}\\PY{n}{Group}\\PY{p}{)}\\PY{p}{:}\n", + "\n", + " \\PY{k}{def} \\PY{n+nf}{initialize}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{int}\\PY{p}{,}\n", + " \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{Number of nodes to be evaluated in the RHS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{k}{def} \\PY{n+nf}{setup}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", + " \\PY{n}{nn} \\PY{o}{=} \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{mass\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{MassComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", + " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{mass\\PYZus{}fuel}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{mass\\PYZus{}comp.W\\PYZus{}total}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium.W\\PYZus{}total}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{USatm1976Comp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", + " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{h}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alt}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\\PY{p}{]}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.pres}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{propulsion.pres}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.sos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{tas\\PYZus{}comp.sos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q\\PYZus{}comp.rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{tas\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{TrueAirspeedComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{tas\\PYZus{}comp.TAS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{gam\\PYZus{}comp.TAS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q\\PYZus{}comp.TAS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{range\\PYZus{}rate\\PYZus{}comp.TAS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{gam\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{SteadyFlightPathAngleComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{gam\\PYZus{}comp.gam}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium.gam}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{range\\PYZus{}rate\\PYZus{}comp.gam}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{DynamicPressureComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q\\PYZus{}comp.q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium.q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{propulsion.q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{SteadyFlightEquilibriumGroup}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", + " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.*}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alt}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{,}\n", + " \\PY{n}{promotes\\PYZus{}outputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.*}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium.CT}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{propulsion.CT}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{propulsion}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{PropulsionGroup}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", + " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alt}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{range\\PYZus{}rate\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{RangeRateComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{)}\n", + "\n", + " \\PY{c+c1}{\\PYZsh{} We promoted multiple inputs to the group named \\PYZsq{}alt\\PYZsq{}.}\n", + " \\PY{c+c1}{\\PYZsh{} In order to automatically create a source variable for \\PYZsq{}alt\\PYZsq{}, we must specify their units}\n", + " \\PY{c+c1}{\\PYZsh{} since they have different units in different components.}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{set\\PYZus{}input\\PYZus{}defaults}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alt}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{val}\\PY{o}{=}\\PY{n}{np}\\PY{o}{.}\\PY{n}{ones}\\PY{p}{(}\\PY{n}{nn}\\PY{p}{,}\\PY{p}{)}\\PY{p}{,} \\PY{n}{units}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{m}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\\end{Verbatim}\n" + ], + "text/plain": [ + "import numpy as np\n", + "import openmdao.api as om\n", + "from dymos.models.atmosphere import USatm1976Comp\n", + "\n", + "from .steady_flight_path_angle_comp import SteadyFlightPathAngleComp\n", + "from .dynamic_pressure_comp import DynamicPressureComp\n", + "from .flight_equlibrium.steady_flight_equilibrium_group import SteadyFlightEquilibriumGroup\n", + "from .propulsion.propulsion_group import PropulsionGroup\n", + "from .range_rate_comp import RangeRateComp\n", + "from .true_airspeed_comp import TrueAirspeedComp\n", + "from .mass_comp import MassComp\n", + "\n", + "\n", + "class AircraftODE(om.Group):\n", + "\n", + " def initialize(self):\n", + " self.options.declare('num_nodes', types=int,\n", + " desc='Number of nodes to be evaluated in the RHS')\n", + "\n", + " def setup(self):\n", + " nn = self.options['num_nodes']\n", + "\n", + " self.add_subsystem(name='mass_comp',\n", + " subsys=MassComp(num_nodes=nn),\n", + " promotes_inputs=['mass_fuel'])\n", + "\n", + " self.connect('mass_comp.W_total', 'flight_equilibrium.W_total')\n", + "\n", + " self.add_subsystem(name='atmos',\n", + " subsys=USatm1976Comp(num_nodes=nn),\n", + " promotes_inputs=[('h', 'alt')])\n", + "\n", + " self.connect('atmos.pres', 'propulsion.pres')\n", + " self.connect('atmos.sos', 'tas_comp.sos')\n", + " self.connect('atmos.rho', 'q_comp.rho')\n", + "\n", + " self.add_subsystem(name='tas_comp',\n", + " subsys=TrueAirspeedComp(num_nodes=nn))\n", + "\n", + " self.connect('tas_comp.TAS',\n", + " ('gam_comp.TAS', 'q_comp.TAS', 'range_rate_comp.TAS'))\n", + "\n", + " self.add_subsystem(name='gam_comp',\n", + " subsys=SteadyFlightPathAngleComp(num_nodes=nn))\n", + "\n", + " self.connect('gam_comp.gam', ('flight_equilibrium.gam', 'range_rate_comp.gam'))\n", + "\n", + " self.add_subsystem(name='q_comp',\n", + " subsys=DynamicPressureComp(num_nodes=nn))\n", + "\n", + " self.connect('q_comp.q', ('aero.q', 'flight_equilibrium.q', 'propulsion.q'))\n", + "\n", + " self.add_subsystem(name='flight_equilibrium',\n", + " subsys=SteadyFlightEquilibriumGroup(num_nodes=nn),\n", + " promotes_inputs=['aero.*', 'alt'],\n", + " promotes_outputs=['aero.*'])\n", + "\n", + " self.connect('flight_equilibrium.CT', 'propulsion.CT')\n", + "\n", + " self.add_subsystem(name='propulsion', subsys=PropulsionGroup(num_nodes=nn),\n", + " promotes_inputs=['alt'])\n", + "\n", + " self.add_subsystem(name='range_rate_comp', subsys=RangeRateComp(num_nodes=nn))\n", + "\n", + " # We promoted multiple inputs to the group named 'alt'.\n", + " # In order to automatically create a source variable for 'alt', we must specify their units\n", + " # since they have different units in different components.\n", + " self.set_input_defaults('alt', val=np.ones(nn,), units='m')" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "om.display_source(\"dymos.examples.aircraft_steady_flight.aircraft_ode\")" ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [ - "active-ipynb", - "remove-input", - "remove-output" - ] - }, - "outputs": [], - "source": [ - "%matplotlib inline" + "cell_type": "code", + "execution_count": 12, + "metadata": { + "tags": [ + "active-ipynb", + "remove-input", + "remove-output" ] + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "--- Constraint Report [traj] ---\n", + " --- phase0 ---\n", + " [path] 1.0000e-02 <= propulsion.tau <= 2.0000e+00 [None]\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import matplotlib.pyplot as plt\n", "\n", @@ -632,7 +948,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -659,35 +975,1730 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model viewer data has already been recorded for Driver.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_solution.db, is being overwritten.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Full total jacobian for problem 'problem4' was computed 3 times, taking 0.3479246669448912 seconds.\n", + "Total jacobian shape: (224, 221) \n", + "\n", + "\n", + "Jacobian shape: (224, 221) (2.51% nonzero)\n", + "FWD solves: 11 REV solves: 0\n", + "Total colors vs. total size: 11 vs 221 (95.02% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-25\n", + "Time to compute sparsity: 0.3479 sec\n", + "Time to compute coloring: 0.0586 sec\n", + "Memory to compute coloring: 0.0156 MB\n", + "Coloring created on: 2024-08-14 09:44:29\n", + "\n", + "\n", + "Optimization Problem -- Optimization using pyOpt_sparse\n", + "================================================================================\n", + " Objective Function: _objfunc\n", + "\n", + " Solution: \n", + "--------------------------------------------------------------------------------\n", + " Total Time: 9.6284\n", + " User Objective Time : 8.4575\n", + " User Sensitivity Time : 0.9733\n", + " Interface Time : 0.0738\n", + " Opt Solver Time: 0.1238\n", + " Calls to Objective Function : 32\n", + " Calls to Sens Function : 32\n", + "\n", + "\n", + " Objectives\n", + " Index Name Value\n", + " 0 traj.phase0.states:range -7.260052E+02\n", + "\n", + " Variables (c - continuous, i - integer, d - discrete)\n", + " Index Name Type Lower Bound Value Upper Bound Status\n", + " 0 traj.phase0.t_duration_0 c 3.000000E-01 5.637564E+00 1.000000E+01 \n", + " 1 traj.phase0.states:range_0 c 0.000000E+00 4.300778E+03 2.000000E+06 \n", + " 2 traj.phase0.states:range_1 c 0.000000E+00 1.019478E+04 2.000000E+06 \n", + " 3 traj.phase0.states:range_2 c 0.000000E+00 1.205044E+04 2.000000E+06 \n", + " 4 traj.phase0.states:range_3 c 0.000000E+00 1.205044E+04 2.000000E+06 \n", + " 5 traj.phase0.states:range_4 c 0.000000E+00 2.179716E+04 2.000000E+06 \n", + " 6 traj.phase0.states:range_5 c 0.000000E+00 3.502521E+04 2.000000E+06 \n", + " 7 traj.phase0.states:range_6 c 0.000000E+00 3.915789E+04 2.000000E+06 \n", + " 8 traj.phase0.states:range_7 c 0.000000E+00 3.915789E+04 2.000000E+06 \n", + " 9 traj.phase0.states:range_8 c 0.000000E+00 5.336791E+04 2.000000E+06 \n", + " 10 traj.phase0.states:range_9 c 0.000000E+00 7.250027E+04 2.000000E+06 \n", + " 11 traj.phase0.states:range_10 c 0.000000E+00 7.845561E+04 2.000000E+06 \n", + " 12 traj.phase0.states:range_11 c 0.000000E+00 7.845561E+04 2.000000E+06 \n", + " 13 traj.phase0.states:range_12 c 0.000000E+00 9.625935E+04 2.000000E+06 \n", + " 14 traj.phase0.states:range_13 c 0.000000E+00 1.208337E+05 2.000000E+06 \n", + " 15 traj.phase0.states:range_14 c 0.000000E+00 1.286109E+05 2.000000E+06 \n", + " 16 traj.phase0.states:range_15 c 0.000000E+00 1.286109E+05 2.000000E+06 \n", + " 17 traj.phase0.states:range_16 c 0.000000E+00 1.498279E+05 2.000000E+06 \n", + " 18 traj.phase0.states:range_17 c 0.000000E+00 1.791031E+05 2.000000E+06 \n", + " 19 traj.phase0.states:range_18 c 0.000000E+00 1.883686E+05 2.000000E+06 \n", + " 20 traj.phase0.states:range_19 c 0.000000E+00 1.883686E+05 2.000000E+06 \n", + " 21 traj.phase0.states:range_20 c 0.000000E+00 2.121241E+05 2.000000E+06 \n", + " 22 traj.phase0.states:range_21 c 0.000000E+00 2.449018E+05 2.000000E+06 \n", + " 23 traj.phase0.states:range_22 c 0.000000E+00 2.552758E+05 2.000000E+06 \n", + " 24 traj.phase0.states:range_23 c 0.000000E+00 2.552758E+05 2.000000E+06 \n", + " 25 traj.phase0.states:range_24 c 0.000000E+00 2.805971E+05 2.000000E+06 \n", + " 26 traj.phase0.states:range_25 c 0.000000E+00 3.155354E+05 2.000000E+06 \n", + " 27 traj.phase0.states:range_26 c 0.000000E+00 3.265932E+05 2.000000E+06 \n", + " 28 traj.phase0.states:range_27 c 0.000000E+00 3.265932E+05 2.000000E+06 \n", + " 29 traj.phase0.states:range_28 c 0.000000E+00 3.524437E+05 2.000000E+06 \n", + " 30 traj.phase0.states:range_29 c 0.000000E+00 3.881121E+05 2.000000E+06 \n", + " 31 traj.phase0.states:range_30 c 0.000000E+00 3.994010E+05 2.000000E+06 \n", + " 32 traj.phase0.states:range_31 c 0.000000E+00 3.994010E+05 2.000000E+06 \n", + " 33 traj.phase0.states:range_32 c 0.000000E+00 4.247223E+05 2.000000E+06 \n", + " 34 traj.phase0.states:range_33 c 0.000000E+00 4.596605E+05 2.000000E+06 \n", + " 35 traj.phase0.states:range_34 c 0.000000E+00 4.707183E+05 2.000000E+06 \n", + " 36 traj.phase0.states:range_35 c 0.000000E+00 4.707183E+05 2.000000E+06 \n", + " 37 traj.phase0.states:range_36 c 0.000000E+00 4.944738E+05 2.000000E+06 \n", + " 38 traj.phase0.states:range_37 c 0.000000E+00 5.272515E+05 2.000000E+06 \n", + " 39 traj.phase0.states:range_38 c 0.000000E+00 5.376255E+05 2.000000E+06 \n", + " 40 traj.phase0.states:range_39 c 0.000000E+00 5.376255E+05 2.000000E+06 \n", + " 41 traj.phase0.states:range_40 c 0.000000E+00 5.588425E+05 2.000000E+06 \n", + " 42 traj.phase0.states:range_41 c 0.000000E+00 5.881176E+05 2.000000E+06 \n", + " 43 traj.phase0.states:range_42 c 0.000000E+00 5.973831E+05 2.000000E+06 \n", + " 44 traj.phase0.states:range_43 c 0.000000E+00 5.973831E+05 2.000000E+06 \n", + " 45 traj.phase0.states:range_44 c 0.000000E+00 6.151931E+05 2.000000E+06 \n", + " 46 traj.phase0.states:range_45 c 0.000000E+00 6.397625E+05 2.000000E+06 \n", + " 47 traj.phase0.states:range_46 c 0.000000E+00 6.475361E+05 2.000000E+06 \n", + " 48 traj.phase0.states:range_47 c 0.000000E+00 6.475361E+05 2.000000E+06 \n", + " 49 traj.phase0.states:range_48 c 0.000000E+00 6.612680E+05 2.000000E+06 \n", + " 50 traj.phase0.states:range_49 c 0.000000E+00 6.805947E+05 2.000000E+06 \n", + " 51 traj.phase0.states:range_50 c 0.000000E+00 6.868473E+05 2.000000E+06 \n", + " 52 traj.phase0.states:range_51 c 0.000000E+00 6.868473E+05 2.000000E+06 \n", + " 53 traj.phase0.states:range_52 c 0.000000E+00 6.963491E+05 2.000000E+06 \n", + " 54 traj.phase0.states:range_53 c 0.000000E+00 7.096820E+05 2.000000E+06 \n", + " 55 traj.phase0.states:range_54 c 0.000000E+00 7.139547E+05 2.000000E+06 \n", + " 56 traj.phase0.states:range_55 c 0.000000E+00 7.139547E+05 2.000000E+06 \n", + " 57 traj.phase0.states:range_56 c 0.000000E+00 7.182109E+05 2.000000E+06 \n", + " 58 traj.phase0.states:range_57 c 0.000000E+00 7.241240E+05 2.000000E+06 \n", + " 59 traj.phase0.states:range_58 c 0.000000E+00 7.260052E+05 2.000000E+06 \n", + " 60 traj.phase0.states:mass_fuel_0 c 0.000000E+00 2.957208E+02 1.500000E+03 \n", + " 61 traj.phase0.states:mass_fuel_1 c 0.000000E+00 2.900371E+02 1.500000E+03 \n", + " 62 traj.phase0.states:mass_fuel_2 c 0.000000E+00 2.882890E+02 1.500000E+03 \n", + " 63 traj.phase0.states:mass_fuel_3 c 0.000000E+00 2.882890E+02 1.500000E+03 \n", + " 64 traj.phase0.states:mass_fuel_4 c 0.000000E+00 2.794117E+02 1.500000E+03 \n", + " 65 traj.phase0.states:mass_fuel_5 c 0.000000E+00 2.680940E+02 1.500000E+03 \n", + " 66 traj.phase0.states:mass_fuel_6 c 0.000000E+00 2.647067E+02 1.500000E+03 \n", + " 67 traj.phase0.states:mass_fuel_7 c 0.000000E+00 2.647067E+02 1.500000E+03 \n", + " 68 traj.phase0.states:mass_fuel_8 c 0.000000E+00 2.535688E+02 1.500000E+03 \n", + " 69 traj.phase0.states:mass_fuel_9 c 0.000000E+00 2.401846E+02 1.500000E+03 \n", + " 70 traj.phase0.states:mass_fuel_10 c 0.000000E+00 2.364961E+02 1.500000E+03 \n", + " 71 traj.phase0.states:mass_fuel_11 c 0.000000E+00 2.364961E+02 1.500000E+03 \n", + " 72 traj.phase0.states:mass_fuel_12 c 0.000000E+00 2.271299E+02 1.500000E+03 \n", + " 73 traj.phase0.states:mass_fuel_13 c 0.000000E+00 2.167574E+02 1.500000E+03 \n", + " 74 traj.phase0.states:mass_fuel_14 c 0.000000E+00 2.137292E+02 1.500000E+03 \n", + " 75 traj.phase0.states:mass_fuel_15 c 0.000000E+00 2.137292E+02 1.500000E+03 \n", + " 76 traj.phase0.states:mass_fuel_16 c 0.000000E+00 2.055422E+02 1.500000E+03 \n", + " 77 traj.phase0.states:mass_fuel_17 c 0.000000E+00 1.942336E+02 1.500000E+03 \n", + " 78 traj.phase0.states:mass_fuel_18 c 0.000000E+00 1.906363E+02 1.500000E+03 \n", + " 79 traj.phase0.states:mass_fuel_19 c 0.000000E+00 1.906363E+02 1.500000E+03 \n", + " 80 traj.phase0.states:mass_fuel_20 c 0.000000E+00 1.813581E+02 1.500000E+03 \n", + " 81 traj.phase0.states:mass_fuel_21 c 0.000000E+00 1.684992E+02 1.500000E+03 \n", + " 82 traj.phase0.states:mass_fuel_22 c 0.000000E+00 1.644355E+02 1.500000E+03 \n", + " 83 traj.phase0.states:mass_fuel_23 c 0.000000E+00 1.644355E+02 1.500000E+03 \n", + " 84 traj.phase0.states:mass_fuel_24 c 0.000000E+00 1.545567E+02 1.500000E+03 \n", + " 85 traj.phase0.states:mass_fuel_25 c 0.000000E+00 1.410094E+02 1.500000E+03 \n", + " 86 traj.phase0.states:mass_fuel_26 c 0.000000E+00 1.367384E+02 1.500000E+03 \n", + " 87 traj.phase0.states:mass_fuel_27 c 0.000000E+00 1.367384E+02 1.500000E+03 \n", + " 88 traj.phase0.states:mass_fuel_28 c 0.000000E+00 1.267738E+02 1.500000E+03 \n", + " 89 traj.phase0.states:mass_fuel_29 c 0.000000E+00 1.130185E+02 1.500000E+03 \n", + " 90 traj.phase0.states:mass_fuel_30 c 0.000000E+00 1.086503E+02 1.500000E+03 \n", + " 91 traj.phase0.states:mass_fuel_31 c 0.000000E+00 1.086503E+02 1.500000E+03 \n", + " 92 traj.phase0.states:mass_fuel_32 c 0.000000E+00 9.882576E+01 1.500000E+03 \n", + " 93 traj.phase0.states:mass_fuel_33 c 0.000000E+00 8.534597E+01 1.500000E+03 \n", + " 94 traj.phase0.states:mass_fuel_34 c 0.000000E+00 8.113325E+01 1.500000E+03 \n", + " 95 traj.phase0.states:mass_fuel_35 c 0.000000E+00 8.113325E+01 1.500000E+03 \n", + " 96 traj.phase0.states:mass_fuel_36 c 0.000000E+00 7.218114E+01 1.500000E+03 \n", + " 97 traj.phase0.states:mass_fuel_37 c 0.000000E+00 5.977771E+01 1.500000E+03 \n", + " 98 traj.phase0.states:mass_fuel_38 c 0.000000E+00 5.576976E+01 1.500000E+03 \n", + " 99 traj.phase0.states:mass_fuel_39 c 0.000000E+00 5.576976E+01 1.500000E+03 \n", + " 100 traj.phase0.states:mass_fuel_40 c 0.000000E+00 4.741802E+01 1.500000E+03 \n", + " 101 traj.phase0.states:mass_fuel_41 c 0.000000E+00 3.592792E+01 1.500000E+03 \n", + " 102 traj.phase0.states:mass_fuel_42 c 0.000000E+00 3.239651E+01 1.500000E+03 \n", + " 103 traj.phase0.states:mass_fuel_43 c 0.000000E+00 3.239651E+01 1.500000E+03 \n", + " 104 traj.phase0.states:mass_fuel_44 c 0.000000E+00 2.595941E+01 1.500000E+03 \n", + " 105 traj.phase0.states:mass_fuel_45 c 0.000000E+00 1.877799E+01 1.500000E+03 \n", + " 106 traj.phase0.states:mass_fuel_46 c 0.000000E+00 1.714587E+01 1.500000E+03 \n", + " 107 traj.phase0.states:mass_fuel_47 c 0.000000E+00 1.714587E+01 1.500000E+03 \n", + " 108 traj.phase0.states:mass_fuel_48 c 0.000000E+00 1.500523E+01 1.500000E+03 \n", + " 109 traj.phase0.states:mass_fuel_49 c 0.000000E+00 1.243555E+01 1.500000E+03 \n", + " 110 traj.phase0.states:mass_fuel_50 c 0.000000E+00 1.141787E+01 1.500000E+03 \n", + " 111 traj.phase0.states:mass_fuel_51 c 0.000000E+00 1.141787E+01 1.500000E+03 \n", + " 112 traj.phase0.states:mass_fuel_52 c 0.000000E+00 9.500576E+00 1.500000E+03 \n", + " 113 traj.phase0.states:mass_fuel_53 c 0.000000E+00 5.938689E+00 1.500000E+03 \n", + " 114 traj.phase0.states:mass_fuel_54 c 0.000000E+00 4.560755E+00 1.500000E+03 \n", + " 115 traj.phase0.states:mass_fuel_55 c 0.000000E+00 4.560755E+00 1.500000E+03 \n", + " 116 traj.phase0.states:mass_fuel_56 c 0.000000E+00 3.066294E+00 1.500000E+03 \n", + " 117 traj.phase0.states:mass_fuel_57 c 0.000000E+00 7.801232E-01 1.500000E+03 \n", + " 118 traj.phase0.states:alt_0 c 0.000000E+00 1.152283E+04 6.000000E+04 \n", + " 119 traj.phase0.states:alt_1 c 0.000000E+00 1.362403E+04 6.000000E+04 \n", + " 120 traj.phase0.states:alt_2 c 0.000000E+00 1.428905E+04 6.000000E+04 \n", + " 121 traj.phase0.states:alt_3 c 0.000000E+00 1.428905E+04 6.000000E+04 \n", + " 122 traj.phase0.states:alt_4 c 0.000000E+00 1.781028E+04 6.000000E+04 \n", + " 123 traj.phase0.states:alt_5 c 0.000000E+00 2.266886E+04 6.000000E+04 \n", + " 124 traj.phase0.states:alt_6 c 0.000000E+00 2.420659E+04 6.000000E+04 \n", + " 125 traj.phase0.states:alt_7 c 0.000000E+00 2.420659E+04 6.000000E+04 \n", + " 126 traj.phase0.states:alt_8 c 0.000000E+00 2.947162E+04 6.000000E+04 \n", + " 127 traj.phase0.states:alt_9 c 0.000000E+00 3.563844E+04 6.000000E+04 \n", + " 128 traj.phase0.states:alt_10 c 0.000000E+00 3.710397E+04 6.000000E+04 \n", + " 129 traj.phase0.states:alt_11 c 0.000000E+00 3.710397E+04 6.000000E+04 \n", + " 130 traj.phase0.states:alt_12 c 0.000000E+00 3.977281E+04 6.000000E+04 \n", + " 131 traj.phase0.states:alt_13 c 0.000000E+00 4.064815E+04 6.000000E+04 \n", + " 132 traj.phase0.states:alt_14 c 0.000000E+00 4.061935E+04 6.000000E+04 \n", + " 133 traj.phase0.states:alt_15 c 0.000000E+00 4.061935E+04 6.000000E+04 \n", + " 134 traj.phase0.states:alt_16 c 0.000000E+00 4.049114E+04 6.000000E+04 \n", + " 135 traj.phase0.states:alt_17 c 0.000000E+00 4.035336E+04 6.000000E+04 \n", + " 136 traj.phase0.states:alt_18 c 0.000000E+00 4.033654E+04 6.000000E+04 \n", + " 137 traj.phase0.states:alt_19 c 0.000000E+00 4.033654E+04 6.000000E+04 \n", + " 138 traj.phase0.states:alt_20 c 0.000000E+00 4.037083E+04 6.000000E+04 \n", + " 139 traj.phase0.states:alt_21 c 0.000000E+00 4.051555E+04 6.000000E+04 \n", + " 140 traj.phase0.states:alt_22 c 0.000000E+00 4.056201E+04 6.000000E+04 \n", + " 141 traj.phase0.states:alt_23 c 0.000000E+00 4.056201E+04 6.000000E+04 \n", + " 142 traj.phase0.states:alt_24 c 0.000000E+00 4.064374E+04 6.000000E+04 \n", + " 143 traj.phase0.states:alt_25 c 0.000000E+00 4.069398E+04 6.000000E+04 \n", + " 144 traj.phase0.states:alt_26 c 0.000000E+00 4.069889E+04 6.000000E+04 \n", + " 145 traj.phase0.states:alt_27 c 0.000000E+00 4.069889E+04 6.000000E+04 \n", + " 146 traj.phase0.states:alt_28 c 0.000000E+00 4.070252E+04 6.000000E+04 \n", + " 147 traj.phase0.states:alt_29 c 0.000000E+00 4.075182E+04 6.000000E+04 \n", + " 148 traj.phase0.states:alt_30 c 0.000000E+00 4.079374E+04 6.000000E+04 \n", + " 149 traj.phase0.states:alt_31 c 0.000000E+00 4.079374E+04 6.000000E+04 \n", + " 150 traj.phase0.states:alt_32 c 0.000000E+00 4.093550E+04 6.000000E+04 \n", + " 151 traj.phase0.states:alt_33 c 0.000000E+00 4.107641E+04 6.000000E+04 \n", + " 152 traj.phase0.states:alt_34 c 0.000000E+00 4.106576E+04 6.000000E+04 \n", + " 153 traj.phase0.states:alt_35 c 0.000000E+00 4.106576E+04 6.000000E+04 \n", + " 154 traj.phase0.states:alt_36 c 0.000000E+00 4.093920E+04 6.000000E+04 \n", + " 155 traj.phase0.states:alt_37 c 0.000000E+00 4.085651E+04 6.000000E+04 \n", + " 156 traj.phase0.states:alt_38 c 0.000000E+00 4.093625E+04 6.000000E+04 \n", + " 157 traj.phase0.states:alt_39 c 0.000000E+00 4.093625E+04 6.000000E+04 \n", + " 158 traj.phase0.states:alt_40 c 0.000000E+00 4.129895E+04 6.000000E+04 \n", + " 159 traj.phase0.states:alt_41 c 0.000000E+00 4.178378E+04 6.000000E+04 \n", + " 160 traj.phase0.states:alt_42 c 0.000000E+00 4.181539E+04 6.000000E+04 \n", + " 161 traj.phase0.states:alt_43 c 0.000000E+00 4.181539E+04 6.000000E+04 \n", + " 162 traj.phase0.states:alt_44 c 0.000000E+00 4.146281E+04 6.000000E+04 \n", + " 163 traj.phase0.states:alt_45 c 0.000000E+00 3.890556E+04 6.000000E+04 \n", + " 164 traj.phase0.states:alt_46 c 0.000000E+00 3.730605E+04 6.000000E+04 \n", + " 165 traj.phase0.states:alt_47 c 0.000000E+00 3.730605E+04 6.000000E+04 \n", + " 166 traj.phase0.states:alt_48 c 0.000000E+00 3.341148E+04 6.000000E+04 \n", + " 167 traj.phase0.states:alt_49 c 0.000000E+00 2.654155E+04 6.000000E+04 \n", + " 168 traj.phase0.states:alt_50 c 0.000000E+00 2.420659E+04 6.000000E+04 \n", + " 169 traj.phase0.states:alt_51 c 0.000000E+00 2.420659E+04 6.000000E+04 \n", + " 170 traj.phase0.states:alt_52 c 0.000000E+00 2.068536E+04 6.000000E+04 \n", + " 171 traj.phase0.states:alt_53 c 0.000000E+00 1.582678E+04 6.000000E+04 \n", + " 172 traj.phase0.states:alt_54 c 0.000000E+00 1.428905E+04 6.000000E+04 \n", + " 173 traj.phase0.states:alt_55 c 0.000000E+00 1.428905E+04 6.000000E+04 \n", + " 174 traj.phase0.states:alt_56 c 0.000000E+00 1.276622E+04 6.000000E+04 \n", + " 175 traj.phase0.states:alt_57 c 0.000000E+00 1.066502E+04 6.000000E+04 \n", + " 176 traj.phase0.controls:climb_rate_0 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", + " 177 traj.phase0.controls:climb_rate_1 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", + " 178 traj.phase0.controls:climb_rate_2 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", + " 179 traj.phase0.controls:climb_rate_3 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", + " 180 traj.phase0.controls:climb_rate_4 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", + " 181 traj.phase0.controls:climb_rate_5 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", + " 182 traj.phase0.controls:climb_rate_6 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", + " 183 traj.phase0.controls:climb_rate_7 c -3.000000E+03 2.834019E+03 3.000000E+03 \n", + " 184 traj.phase0.controls:climb_rate_8 c -3.000000E+03 2.059977E+03 3.000000E+03 \n", + " 185 traj.phase0.controls:climb_rate_9 c -3.000000E+03 1.683328E+03 3.000000E+03 \n", + " 186 traj.phase0.controls:climb_rate_10 c -3.000000E+03 6.801689E+02 3.000000E+03 \n", + " 187 traj.phase0.controls:climb_rate_11 c -3.000000E+03 8.660157E-01 3.000000E+03 \n", + " 188 traj.phase0.controls:climb_rate_12 c -3.000000E+03 -4.385177E+01 3.000000E+03 \n", + " 189 traj.phase0.controls:climb_rate_13 c -3.000000E+03 -4.577675E+01 3.000000E+03 \n", + " 190 traj.phase0.controls:climb_rate_14 c -3.000000E+03 -2.088271E+01 3.000000E+03 \n", + " 191 traj.phase0.controls:climb_rate_15 c -3.000000E+03 -6.348232E+00 3.000000E+03 \n", + " 192 traj.phase0.controls:climb_rate_16 c -3.000000E+03 2.513450E+01 3.000000E+03 \n", + " 193 traj.phase0.controls:climb_rate_17 c -3.000000E+03 3.611875E+01 3.000000E+03 \n", + " 194 traj.phase0.controls:climb_rate_18 c -3.000000E+03 3.175459E+01 3.000000E+03 \n", + " 195 traj.phase0.controls:climb_rate_19 c -3.000000E+03 1.816679E+01 3.000000E+03 \n", + " 196 traj.phase0.controls:climb_rate_20 c -3.000000E+03 4.886619E+00 3.000000E+03 \n", + " 197 traj.phase0.controls:climb_rate_21 c -3.000000E+03 2.004509E+00 3.000000E+03 \n", + " 198 traj.phase0.controls:climb_rate_22 c -3.000000E+03 2.211751E+00 3.000000E+03 \n", + " 199 traj.phase0.controls:climb_rate_23 c -3.000000E+03 2.286434E+01 3.000000E+03 \n", + " 200 traj.phase0.controls:climb_rate_24 c -3.000000E+03 3.432102E+01 3.000000E+03 \n", + " 201 traj.phase0.controls:climb_rate_25 c -3.000000E+03 4.562465E+01 3.000000E+03 \n", + " 202 traj.phase0.controls:climb_rate_26 c -3.000000E+03 5.244845E+00 3.000000E+03 \n", + " 203 traj.phase0.controls:climb_rate_27 c -3.000000E+03 -2.105813E+01 3.000000E+03 \n", + " 204 traj.phase0.controls:climb_rate_28 c -3.000000E+03 -4.836953E+01 3.000000E+03 \n", + " 205 traj.phase0.controls:climb_rate_29 c -3.000000E+03 3.274563E+01 3.000000E+03 \n", + " 206 traj.phase0.controls:climb_rate_30 c -3.000000E+03 8.711803E+01 3.000000E+03 \n", + " 207 traj.phase0.controls:climb_rate_31 c -3.000000E+03 1.552944E+02 3.000000E+03 \n", + " 208 traj.phase0.controls:climb_rate_32 c -3.000000E+03 6.174430E+01 3.000000E+03 \n", + " 209 traj.phase0.controls:climb_rate_33 c -3.000000E+03 -1.318940E+01 3.000000E+03 \n", + " 210 traj.phase0.controls:climb_rate_34 c -3.000000E+03 -3.453091E+02 3.000000E+03 \n", + " 211 traj.phase0.controls:climb_rate_35 c -3.000000E+03 -1.352388E+03 3.000000E+03 \n", + " 212 traj.phase0.controls:climb_rate_36 c -3.000000E+03 -1.803710E+03 3.000000E+03 \n", + " 213 traj.phase0.controls:climb_rate_37 c -3.000000E+03 -2.502392E+03 3.000000E+03 \n", + " 214 traj.phase0.controls:climb_rate_38 c -3.000000E+03 -2.971240E+03 3.000000E+03 \n", + " 215 traj.phase0.controls:climb_rate_39 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", + " 216 traj.phase0.controls:climb_rate_40 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", + " 217 traj.phase0.controls:climb_rate_41 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", + " 218 traj.phase0.controls:climb_rate_42 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", + " 219 traj.phase0.controls:climb_rate_43 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", + " 220 traj.phase0.controls:climb_rate_44 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", + "\n", + " Constraints (i - inequality, e - equality)\n", + " Index Name Type Lower Value Upper Status Lagrange Multiplier (N/A)\n", + " 0 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -5.952256E-12 0.000000E+00 9.00000E+100\n", + " 1 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 3.571353E-12 0.000000E+00 9.00000E+100\n", + " 2 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.190451E-12 0.000000E+00 9.00000E+100\n", + " 3 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.202135E-11 0.000000E+00 9.00000E+100\n", + " 4 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -2.752669E-12 0.000000E+00 9.00000E+100\n", + " 5 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 8.258006E-12 0.000000E+00 9.00000E+100\n", + " 6 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 7 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.677278E-11 0.000000E+00 9.00000E+100\n", + " 8 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.193195E-11 0.000000E+00 9.00000E+100\n", + " 9 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 7.100214E-11 0.000000E+00 9.00000E+100\n", + " 10 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.474660E-10 0.000000E+00 9.00000E+100\n", + " 11 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 5.461703E-12 0.000000E+00 9.00000E+100\n", + " 12 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -3.903927E-11 0.000000E+00 9.00000E+100\n", + " 13 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.212225E-10 0.000000E+00 9.00000E+100\n", + " 14 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.951963E-10 0.000000E+00 9.00000E+100\n", + " 15 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.185497E-11 0.000000E+00 9.00000E+100\n", + " 16 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.456998E-11 0.000000E+00 9.00000E+100\n", + " 17 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 9.470486E-11 0.000000E+00 9.00000E+100\n", + " 18 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.164777E-10 0.000000E+00 9.00000E+100\n", + " 19 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.795464E-10 0.000000E+00 9.00000E+100\n", + " 20 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.814410E-10 0.000000E+00 9.00000E+100\n", + " 21 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 3.963728E-11 0.000000E+00 9.00000E+100\n", + " 22 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 3.963728E-11 0.000000E+00 9.00000E+100\n", + " 23 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.189118E-10 0.000000E+00 9.00000E+100\n", + " 24 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -3.183723E-10 0.000000E+00 9.00000E+100\n", + " 25 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.950768E-10 0.000000E+00 9.00000E+100\n", + " 26 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 5.435625E-10 0.000000E+00 9.00000E+100\n", + " 27 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 6.775040E-10 0.000000E+00 9.00000E+100\n", + " 28 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 6.629340E-10 0.000000E+00 9.00000E+100\n", + " 29 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.602698E-10 0.000000E+00 9.00000E+100\n", + " 30 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.879909E-10 0.000000E+00 9.00000E+100\n", + " 31 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 3.838862E-10 0.000000E+00 9.00000E+100\n", + " 32 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.034058E-10 0.000000E+00 9.00000E+100\n", + " 33 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.638511E-11 0.000000E+00 9.00000E+100\n", + " 34 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.369362E-11 0.000000E+00 9.00000E+100\n", + " 35 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.092341E-10 0.000000E+00 9.00000E+100\n", + " 36 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.193195E-10 0.000000E+00 9.00000E+100\n", + " 37 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -4.193195E-11 0.000000E+00 9.00000E+100\n", + " 38 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.425686E-10 0.000000E+00 9.00000E+100\n", + " 39 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 6.303611E-10 0.000000E+00 9.00000E+100\n", + " 40 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -4.954803E-11 0.000000E+00 9.00000E+100\n", + " 41 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 9.909607E-11 0.000000E+00 9.00000E+100\n", + " 42 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -5.166558E-10 0.000000E+00 9.00000E+100\n", + " 43 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.238069E-10 0.000000E+00 9.00000E+100\n", + " 44 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -8.809338E-11 0.000000E+00 9.00000E+100\n", + " 45 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -1.249497E-13 0.000000E+00 9.00000E+100\n", + " 46 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -3.352310E-14 0.000000E+00 9.00000E+100\n", + " 47 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -2.285666E-14 0.000000E+00 9.00000E+100\n", + " 48 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 49 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 3.875757E-14 0.000000E+00 9.00000E+100\n", + " 50 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -9.865564E-14 0.000000E+00 9.00000E+100\n", + " 51 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -7.245841E-14 0.000000E+00 9.00000E+100\n", + " 52 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.367290E-14 0.000000E+00 9.00000E+100\n", + " 53 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -9.661122E-14 0.000000E+00 9.00000E+100\n", + " 54 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.551708E-13 0.000000E+00 9.00000E+100\n", + " 55 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.778914E-12 0.000000E+00 9.00000E+100\n", + " 56 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.108070E-11 0.000000E+00 9.00000E+100\n", + " 57 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.456217E-11 0.000000E+00 9.00000E+100\n", + " 58 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 7.607973E-12 0.000000E+00 9.00000E+100\n", + " 59 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -1.124331E-13 0.000000E+00 9.00000E+100\n", + " 60 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.781368E-13 0.000000E+00 9.00000E+100\n", + " 61 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.082009E-13 0.000000E+00 9.00000E+100\n", + " 62 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.944551E-13 0.000000E+00 9.00000E+100\n", + " 63 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.053579E-12 0.000000E+00 9.00000E+100\n", + " 64 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -3.975771E-14 0.000000E+00 9.00000E+100\n", + " 65 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.938685E-11 0.000000E+00 9.00000E+100\n", + " 66 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 3.265350E-11 0.000000E+00 9.00000E+100\n", + " 67 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.953329E-11 0.000000E+00 9.00000E+100\n", + " 68 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 6.749372E-11 0.000000E+00 9.00000E+100\n", + " 69 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 6.046154E-11 0.000000E+00 9.00000E+100\n", + " 70 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 3.742443E-11 0.000000E+00 9.00000E+100\n", + " 71 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 4.015529E-12 0.000000E+00 9.00000E+100\n", + " 72 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -2.331197E-13 0.000000E+00 9.00000E+100\n", + " 73 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.080510E-11 0.000000E+00 9.00000E+100\n", + " 74 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 4.911132E-11 0.000000E+00 9.00000E+100\n", + " 75 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 4.661809E-11 0.000000E+00 9.00000E+100\n", + " 76 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.800001E-11 0.000000E+00 9.00000E+100\n", + " 77 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.046699E-12 0.000000E+00 9.00000E+100\n", + " 78 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.118557E-13 0.000000E+00 9.00000E+100\n", + " 79 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.870087E-13 0.000000E+00 9.00000E+100\n", + " 80 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.170989E-13 0.000000E+00 9.00000E+100\n", + " 81 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 3.354556E-15 0.000000E+00 9.00000E+100\n", + " 82 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -1.006367E-15 0.000000E+00 9.00000E+100\n", + " 83 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -7.715479E-15 0.000000E+00 9.00000E+100\n", + " 84 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -1.057025E-14 0.000000E+00 9.00000E+100\n", + " 85 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.642562E-15 0.000000E+00 9.00000E+100\n", + " 86 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 87 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -3.428499E-15 0.000000E+00 9.00000E+100\n", + " 88 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -4.571332E-15 0.000000E+00 9.00000E+100\n", + " 89 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -4.571332E-15 0.000000E+00 9.00000E+100\n", + " 90 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 6.547481E-12 0.000000E+00 9.00000E+100\n", + " 91 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.678515E-12 0.000000E+00 9.00000E+100\n", + " 92 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.678515E-12 0.000000E+00 9.00000E+100\n", + " 93 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.720418E-11 0.000000E+00 9.00000E+100\n", + " 94 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 3.440836E-12 0.000000E+00 9.00000E+100\n", + " 95 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -5.505337E-12 0.000000E+00 9.00000E+100\n", + " 96 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 1.782108E-11 0.000000E+00 9.00000E+100\n", + " 97 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.153129E-11 0.000000E+00 9.00000E+100\n", + " 98 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.201427E-11 0.000000E+00 9.00000E+100\n", + " 99 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 1.160612E-11 0.000000E+00 9.00000E+100\n", + " 100 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.014003E-11 0.000000E+00 9.00000E+100\n", + " 101 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 5.971738E-12 0.000000E+00 9.00000E+100\n", + " 102 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -6.689542E-11 0.000000E+00 9.00000E+100\n", + " 103 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 6.404880E-12 0.000000E+00 9.00000E+100\n", + " 104 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.973694E-12 0.000000E+00 9.00000E+100\n", + " 105 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.411822E-11 0.000000E+00 9.00000E+100\n", + " 106 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -4.496204E-12 0.000000E+00 9.00000E+100\n", + " 107 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 5.748312E-12 0.000000E+00 9.00000E+100\n", + " 108 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.417518E-11 0.000000E+00 9.00000E+100\n", + " 109 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -5.626721E-12 0.000000E+00 9.00000E+100\n", + " 110 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.478942E-11 0.000000E+00 9.00000E+100\n", + " 111 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -6.466218E-12 0.000000E+00 9.00000E+100\n", + " 112 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 8.566142E-12 0.000000E+00 9.00000E+100\n", + " 113 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -5.945591E-12 0.000000E+00 9.00000E+100\n", + " 114 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.253722E-11 0.000000E+00 9.00000E+100\n", + " 115 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.513603E-11 0.000000E+00 9.00000E+100\n", + " 116 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.859775E-11 0.000000E+00 9.00000E+100\n", + " 117 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -3.736403E-11 0.000000E+00 9.00000E+100\n", + " 118 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.089903E-11 0.000000E+00 9.00000E+100\n", + " 119 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.054595E-11 0.000000E+00 9.00000E+100\n", + " 120 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -3.253272E-12 0.000000E+00 9.00000E+100\n", + " 121 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.744949E-11 0.000000E+00 9.00000E+100\n", + " 122 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 6.252383E-12 0.000000E+00 9.00000E+100\n", + " 123 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 1.765986E-11 0.000000E+00 9.00000E+100\n", + " 124 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 3.584243E-12 0.000000E+00 9.00000E+100\n", + " 125 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.024069E-11 0.000000E+00 9.00000E+100\n", + " 126 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.620747E-12 0.000000E+00 9.00000E+100\n", + " 127 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.048299E-12 0.000000E+00 9.00000E+100\n", + " 128 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 129 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -8.258006E-12 0.000000E+00 9.00000E+100\n", + " 130 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.376334E-12 0.000000E+00 9.00000E+100\n", + " 131 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.752669E-12 0.000000E+00 9.00000E+100\n", + " 132 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -5.357030E-12 0.000000E+00 9.00000E+100\n", + " 133 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 1.488064E-12 0.000000E+00 9.00000E+100\n", + " 134 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -3.868966E-12 0.000000E+00 9.00000E+100\n", + " 135 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 2.410900E-15 0.000000E+00 9.00000E+100\n", + " 136 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -6.119760E-15 0.000000E+00 9.00000E+100\n", + " 137 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -1.858039E-16 0.000000E+00 9.00000E+100\n", + " 138 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -1.096517E-14 0.000000E+00 9.00000E+100\n", + " 139 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -4.718990E-15 0.000000E+00 9.00000E+100\n", + " 140 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -2.447196E-14 0.000000E+00 9.00000E+100\n", + " 141 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -7.869392E-14 0.000000E+00 9.00000E+100\n", + " 142 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -1.260418E-14 0.000000E+00 9.00000E+100\n", + " 143 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 4.796573E-15 0.000000E+00 9.00000E+100\n", + " 144 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 4.666187E-14 0.000000E+00 9.00000E+100\n", + " 145 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -4.577213E-14 0.000000E+00 9.00000E+100\n", + " 146 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 4.531187E-14 0.000000E+00 9.00000E+100\n", + " 147 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -3.845281E-14 0.000000E+00 9.00000E+100\n", + " 148 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -4.152650E-14 0.000000E+00 9.00000E+100\n", + " 149 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 4.547474E-13 0.000000E+00 9.00000E+100\n", + " 150 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 7.275958E-12 0.000000E+00 9.00000E+100\n", + " 151 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -1.023182E-12 0.000000E+00 9.00000E+100\n", + " 152 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -3.865352E-12 0.000000E+00 9.00000E+100\n", + " 153 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 2.501110E-12 0.000000E+00 9.00000E+100\n", + " 154 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -2.160050E-12 0.000000E+00 9.00000E+100\n", + " 155 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -3.637979E-12 0.000000E+00 9.00000E+100\n", + " 156 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -2.273737E-13 0.000000E+00 9.00000E+100\n", + " 157 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -1.818989E-12 0.000000E+00 9.00000E+100\n", + " 158 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 8.810730E-13 0.000000E+00 9.00000E+100\n", + " 159 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 1.136868E-13 0.000000E+00 9.00000E+100\n", + " 160 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -7.105427E-14 0.000000E+00 9.00000E+100\n", + " 161 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -7.105427E-15 0.000000E+00 9.00000E+100\n", + " 162 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 9.947598E-14 0.000000E+00 9.00000E+100\n", + " 163 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.979747E-16 0.000000E+00 9.00000E+100\n", + " 164 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -1.570884E-15 0.000000E+00 9.00000E+100\n", + " 165 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -1.031209E-14 0.000000E+00 9.00000E+100\n", + " 166 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -3.417696E-15 0.000000E+00 9.00000E+100\n", + " 167 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 8.513534E-15 0.000000E+00 9.00000E+100\n", + " 168 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.867548E-15 0.000000E+00 9.00000E+100\n", + " 169 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -2.279172E-15 0.000000E+00 9.00000E+100\n", + " 170 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -3.186693E-15 0.000000E+00 9.00000E+100\n", + " 171 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.366444E-15 0.000000E+00 9.00000E+100\n", + " 172 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 2.386929E-15 0.000000E+00 9.00000E+100\n", + " 173 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 7.862198E-15 0.000000E+00 9.00000E+100\n", + " 174 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.513105E-16 0.000000E+00 9.00000E+100\n", + " 175 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.214444E-15 0.000000E+00 9.00000E+100\n", + " 176 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -8.536286E-16 0.000000E+00 9.00000E+100\n", + " 177 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -2.245913E-11 0.000000E+00 9.00000E+100\n", + " 178 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -1.488507E-11 0.000000E+00 9.00000E+100\n", + " 179 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 1.001433E-11 0.000000E+00 9.00000E+100\n", + " 180 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 5.124518E-12 0.000000E+00 9.00000E+100\n", + " 181 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -2.347107E-13 0.000000E+00 9.00000E+100\n", + " 182 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 3.911846E-14 0.000000E+00 9.00000E+100\n", + " 183 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 1.955923E-14 0.000000E+00 9.00000E+100\n", + " 184 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 185 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -3.129477E-13 0.000000E+00 9.00000E+100\n", + " 186 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 3.129477E-13 0.000000E+00 9.00000E+100\n", + " 187 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 188 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 1.251791E-11 0.000000E+00 9.00000E+100\n", + " 189 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 1.961228E-11 0.000000E+00 9.00000E+100\n", + " 190 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -2.167557E-11 0.000000E+00 9.00000E+100\n", + " 191 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 192 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 193 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 -2.273737E-13 0.000000E+00 9.00000E+100\n", + " 194 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 9.237056E-14 0.000000E+00 9.00000E+100\n", + " 195 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 -5.329071E-15 0.000000E+00 9.00000E+100\n", + " 196 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 197 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 198 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 199 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 3.552714E-15 0.000000E+00 9.00000E+100\n", + " 200 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 -1.421085E-14 0.000000E+00 9.00000E+100\n", + " 201 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 8.881784E-15 0.000000E+00 9.00000E+100\n", + " 202 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 4.547474E-13 0.000000E+00 9.00000E+100\n", + " 203 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 204 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 -4.547474E-13 0.000000E+00 9.00000E+100\n", + " 205 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.293064E-01 2.000000E+00 9.00000E+100\n", + " 206 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.459977E-01 2.000000E+00 9.00000E+100\n", + " 207 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.710745E-01 2.000000E+00 9.00000E+100\n", + " 208 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.795573E-01 2.000000E+00 9.00000E+100\n", + " 209 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.795573E-01 2.000000E+00 9.00000E+100\n", + " 210 traj.phases.phase0->path_constraint->tau i 1.000000E-02 6.296025E-01 2.000000E+00 9.00000E+100\n", + " 211 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.166094E-01 2.000000E+00 9.00000E+100\n", + " 212 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.497818E-01 2.000000E+00 9.00000E+100\n", + " 213 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.497818E-01 2.000000E+00 9.00000E+100\n", + " 214 traj.phases.phase0->path_constraint->tau i 1.000000E-02 8.706197E-01 2.000000E+00 9.00000E+100\n", + " 215 traj.phases.phase0->path_constraint->tau i 1.000000E-02 9.783658E-01 2.000000E+00 9.00000E+100\n", + " 216 traj.phases.phase0->path_constraint->tau i 1.000000E-02 9.719171E-01 2.000000E+00 9.00000E+100\n", + " 217 traj.phases.phase0->path_constraint->tau i 1.000000E-02 9.719171E-01 2.000000E+00 9.00000E+100\n", + " 218 traj.phases.phase0->path_constraint->tau i 1.000000E-02 8.846861E-01 2.000000E+00 9.00000E+100\n", + " 219 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.714096E-01 2.000000E+00 9.00000E+100\n", + " 220 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.598733E-01 2.000000E+00 9.00000E+100\n", + " 221 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.598733E-01 2.000000E+00 9.00000E+100\n", + " 222 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.532677E-01 2.000000E+00 9.00000E+100\n", + " 223 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.518371E-01 2.000000E+00 9.00000E+100\n", + " 224 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.538613E-01 2.000000E+00 9.00000E+100\n", + " 225 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.538613E-01 2.000000E+00 9.00000E+100\n", + " 226 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.607276E-01 2.000000E+00 9.00000E+100\n", + " 227 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.668859E-01 2.000000E+00 9.00000E+100\n", + " 228 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.671530E-01 2.000000E+00 9.00000E+100\n", + " 229 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.671530E-01 2.000000E+00 9.00000E+100\n", + " 230 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.659272E-01 2.000000E+00 9.00000E+100\n", + " 231 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.630001E-01 2.000000E+00 9.00000E+100\n", + " 232 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.619385E-01 2.000000E+00 9.00000E+100\n", + " 233 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.619385E-01 2.000000E+00 9.00000E+100\n", + " 234 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.606804E-01 2.000000E+00 9.00000E+100\n", + " 235 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.651018E-01 2.000000E+00 9.00000E+100\n", + " 236 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.685950E-01 2.000000E+00 9.00000E+100\n", + " 237 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.685950E-01 2.000000E+00 9.00000E+100\n", + " 238 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.751754E-01 2.000000E+00 9.00000E+100\n", + " 239 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.698308E-01 2.000000E+00 9.00000E+100\n", + " 240 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.629947E-01 2.000000E+00 9.00000E+100\n", + " 241 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.629947E-01 2.000000E+00 9.00000E+100\n", + " 242 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.508304E-01 2.000000E+00 9.00000E+100\n", + " 243 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.635164E-01 2.000000E+00 9.00000E+100\n", + " 244 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.778114E-01 2.000000E+00 9.00000E+100\n", + " 245 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.778114E-01 2.000000E+00 9.00000E+100\n", + " 246 traj.phases.phase0->path_constraint->tau i 1.000000E-02 8.060090E-01 2.000000E+00 9.00000E+100\n", + " 247 traj.phases.phase0->path_constraint->tau i 1.000000E-02 8.034671E-01 2.000000E+00 9.00000E+100\n", + " 248 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.873295E-01 2.000000E+00 9.00000E+100\n", + " 249 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.873295E-01 2.000000E+00 9.00000E+100\n", + " 250 traj.phases.phase0->path_constraint->tau i 1.000000E-02 6.985484E-01 2.000000E+00 9.00000E+100\n", + " 251 traj.phases.phase0->path_constraint->tau i 1.000000E-02 4.201178E-01 2.000000E+00 9.00000E+100\n", + " 252 traj.phases.phase0->path_constraint->tau i 1.000000E-02 3.127167E-01 2.000000E+00 9.00000E+100\n", + " 253 traj.phases.phase0->path_constraint->tau i 1.000000E-02 3.127167E-01 2.000000E+00 9.00000E+100\n", + " 254 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.836617E-01 2.000000E+00 9.00000E+100\n", + " 255 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.531111E-01 2.000000E+00 9.00000E+100\n", + " 256 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.633905E-01 2.000000E+00 9.00000E+100\n", + " 257 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.633905E-01 2.000000E+00 9.00000E+100\n", + " 258 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.816829E-01 2.000000E+00 9.00000E+100\n", + " 259 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.026853E-01 2.000000E+00 9.00000E+100\n", + " 260 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.082759E-01 2.000000E+00 9.00000E+100\n", + " 261 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.082759E-01 2.000000E+00 9.00000E+100\n", + " 262 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.133263E-01 2.000000E+00 9.00000E+100\n", + " 263 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.195263E-01 2.000000E+00 9.00000E+100\n", + " 264 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.213099E-01 2.000000E+00 9.00000E+100\n", + "\n", + "\n", + " Exit Status\n", + " Inform Description\n", + " 0 Solve Succeeded\n", + "--------------------------------------------------------------------------------\n", + "\n", + "INFO: checking out_of_order\n", + "INFO: checking system\n", + "INFO: checking solvers\n", + "INFO: checking dup_inputs\n", + "INFO: checking missing_recorders\n", + "WARNING: The Problem has no recorder of any kind attached\n", + "INFO: checking unserializable_options\n", + "INFO: checking comp_has_no_outputs\n", + "INFO: checking auto_ivc_warnings\n", + "\n", + "Simulating trajectory traj\n", + "Model viewer data has already been recorded for Driver.\n", + "INFO: checking out_of_order\n", + "INFO: checking system\n", + "INFO: checking solvers\n", + "INFO: checking dup_inputs\n", + "INFO: checking missing_recorders\n", + "WARNING: The Problem has no recorder of any kind attached\n", + "INFO: checking unserializable_options\n", + "INFO: checking comp_has_no_outputs\n", + "INFO: checking auto_ivc_warnings\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/group.py:1104: DerivativesWarning:Constraints or objectives [ode_eval.control_interp.control_rates:climb_rate_rate2, ode_eval.control_interp.control_rates:mach_rate2] cannot be impacted by the design variables of the problem because no partials were defined for them in their parent component(s).\n", + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_simulation.db, is being overwritten.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Done simulating trajectory traj\n" + ] + }, + { + "data": { + "text/plain": [ + "Problem: problem4\n", + "Driver: pyOptSparseDriver\n", + " success : True\n", + " iterations : 34\n", + " runtime : 1.0504E+01 s\n", + " model_evals : 34\n", + " model_time : 8.8804E+00 s\n", + " deriv_evals : 33\n", + " deriv_time : 7.7993E-01 s\n", + " exit_status : SUCCESS" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "dm.run_problem(p, simulate=True, make_plots=True)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { "tags": [] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " trajectory results for traj\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "from IPython.display import IFrame\n", - "IFrame(src=str(p.get_reports_dir() / 'traj_results_report.html'), width=800, height=1200)" + "from IPython.display import HTML\n", + "# Define the path to the HTML file\n", + "html_file_path = p.get_reports_dir() / 'traj_results_report.html'\n", + "html_content = html_file_path.read_text()\n", + "\n", + "# Inject CSS to control the output cell height and avoid scrollbars\n", + "html_with_custom_height = f\"\"\"\n", + "
\n", + " {html_content}\n", + "
\n", + "\"\"\"\n", + "\n", + "HTML(html_with_custom_height)\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "tags": [ "remove-input", "remove-output" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0.00116234087917496" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from openmdao.utils.assert_utils import assert_near_equal\n", "\n", @@ -734,7 +2745,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/docs/dymos_book/examples/moon_landing/moon_landing.ipynb b/docs/dymos_book/examples/moon_landing/moon_landing.ipynb index 2b69b3136..5468c07a2 100644 --- a/docs/dymos_book/examples/moon_landing/moon_landing.ipynb +++ b/docs/dymos_book/examples/moon_landing/moon_landing.ipynb @@ -235,8 +235,20 @@ "metadata": {}, "outputs": [], "source": [ - "from IPython.display import IFrame\n", - "IFrame(src=str(p.get_reports_dir() / 'traj_results_report.html'), width=800, height=1200)" + "from IPython.display import HTML\n", + "\n", + "# Define the path to the HTML file\n", + "html_file_path = p.get_reports_dir() / 'traj_results_report.html'\n", + "html_content = html_file_path.read_text()\n", + "\n", + "# Inject CSS to control the output cell height and avoid scrollbars\n", + "html_with_custom_height = f\"\"\"\n", + "
\n", + " {html_content}\n", + "
\n", + "\"\"\"\n", + "\n", + "HTML(html_with_custom_height)" ] }, { diff --git a/docs/dymos_book/examples/mountain_car/mountain_car.ipynb b/docs/dymos_book/examples/mountain_car/mountain_car.ipynb index 1c35916c5..c6e4be2dd 100644 --- a/docs/dymos_book/examples/mountain_car/mountain_car.ipynb +++ b/docs/dymos_book/examples/mountain_car/mountain_car.ipynb @@ -212,19 +212,19 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [ - "active-ipynb", - "remove-input", - "remove-output" - ] - }, - "outputs": [], - "source": [ - "%matplotlib inline" + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [ + "active-ipynb", + "remove-input", + "remove-output" ] + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] }, { "cell_type": "code", diff --git a/docs/dymos_book/faq/use_partial_coloring.ipynb b/docs/dymos_book/faq/use_partial_coloring.ipynb index 9178b9420..30a0f4bc9 100644 --- a/docs/dymos_book/faq/use_partial_coloring.ipynb +++ b/docs/dymos_book/faq/use_partial_coloring.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "scrolled": true, "tags": [ @@ -64,14 +64,170 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "scrolled": true, "tags": [ "remove-input" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
class DynamicPressureCompFD(om.ExplicitComponent):\n",
+       "    def initialize(self):\n",
+       "        self.options.declare('num_nodes', types=int)\n",
+       "        self.options.declare('partial_coloring', types=bool, default=False)\n",
+       "\n",
+       "    def setup(self):\n",
+       "        nn = self.options['num_nodes']\n",
+       "\n",
+       "        self.add_input(name='rho', shape=(nn,), desc='atmospheric density', units='kg/m**3')\n",
+       "        self.add_input(name='v', shape=(nn,), desc='air-relative velocity', units='m/s')\n",
+       "\n",
+       "        self.add_output(name='q', shape=(nn,), desc='dynamic pressure', units='N/m**2')\n",
+       "\n",
+       "        self.declare_partials(of='q', wrt='rho', method='fd')\n",
+       "        self.declare_partials(of='q', wrt='v', method='fd')\n",
+       "\n",
+       "        if self.options['partial_coloring']:\n",
+       "            self.declare_coloring(wrt=['*'], method='cs', tol=1.0E-6, num_full_jacs=2,\n",
+       "                                  show_summary=True, show_sparsity=False, min_improve_pct=10.)\n",
+       "\n",
+       "    def compute(self, inputs, outputs):\n",
+       "        outputs['q'] = 0.5 * inputs['rho'] * inputs['v'] ** 2\n",
+       "
\n" + ], + "text/latex": [ + "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n", + "\\PY{k}{class} \\PY{n+nc}{DynamicPressureCompFD}\\PY{p}{(}\\PY{n}{om}\\PY{o}{.}\\PY{n}{ExplicitComponent}\\PY{p}{)}\\PY{p}{:}\n", + " \\PY{k}{def} \\PY{n+nf}{initialize}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{int}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{partial\\PYZus{}coloring}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{bool}\\PY{p}{,} \\PY{n}{default}\\PY{o}{=}\\PY{k+kc}{False}\\PY{p}{)}\n", + "\n", + " \\PY{k}{def} \\PY{n+nf}{setup}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", + " \\PY{n}{nn} \\PY{o}{=} \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}input}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{shape}\\PY{o}{=}\\PY{p}{(}\\PY{n}{nn}\\PY{p}{,}\\PY{p}{)}\\PY{p}{,} \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmospheric density}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{units}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{kg/m**3}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}input}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{shape}\\PY{o}{=}\\PY{p}{(}\\PY{n}{nn}\\PY{p}{,}\\PY{p}{)}\\PY{p}{,} \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{air\\PYZhy{}relative velocity}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{units}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{m/s}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}output}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{shape}\\PY{o}{=}\\PY{p}{(}\\PY{n}{nn}\\PY{p}{,}\\PY{p}{)}\\PY{p}{,} \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{dynamic pressure}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{units}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{N/m**2}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{declare\\PYZus{}partials}\\PY{p}{(}\\PY{n}{of}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{wrt}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{method}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{fd}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{declare\\PYZus{}partials}\\PY{p}{(}\\PY{n}{of}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{wrt}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{method}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{fd}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{k}{if} \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{partial\\PYZus{}coloring}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{:}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{declare\\PYZus{}coloring}\\PY{p}{(}\\PY{n}{wrt}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{*}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{,} \\PY{n}{method}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{cs}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{tol}\\PY{o}{=}\\PY{l+m+mf}{1.0E\\PYZhy{}6}\\PY{p}{,} \\PY{n}{num\\PYZus{}full\\PYZus{}jacs}\\PY{o}{=}\\PY{l+m+mi}{2}\\PY{p}{,}\n", + " \\PY{n}{show\\PYZus{}summary}\\PY{o}{=}\\PY{k+kc}{True}\\PY{p}{,} \\PY{n}{show\\PYZus{}sparsity}\\PY{o}{=}\\PY{k+kc}{False}\\PY{p}{,} \\PY{n}{min\\PYZus{}improve\\PYZus{}pct}\\PY{o}{=}\\PY{l+m+mf}{10.}\\PY{p}{)}\n", + "\n", + " \\PY{k}{def} \\PY{n+nf}{compute}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{,} \\PY{n}{inputs}\\PY{p}{,} \\PY{n}{outputs}\\PY{p}{)}\\PY{p}{:}\n", + " \\PY{n}{outputs}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]} \\PY{o}{=} \\PY{l+m+mf}{0.5} \\PY{o}{*} \\PY{n}{inputs}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]} \\PY{o}{*} \\PY{n}{inputs}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]} \\PY{o}{*}\\PY{o}{*} \\PY{l+m+mi}{2}\n", + "\\end{Verbatim}\n" + ], + "text/plain": [ + "class DynamicPressureCompFD(om.ExplicitComponent):\n", + " def initialize(self):\n", + " self.options.declare('num_nodes', types=int)\n", + " self.options.declare('partial_coloring', types=bool, default=False)\n", + "\n", + " def setup(self):\n", + " nn = self.options['num_nodes']\n", + "\n", + " self.add_input(name='rho', shape=(nn,), desc='atmospheric density', units='kg/m**3')\n", + " self.add_input(name='v', shape=(nn,), desc='air-relative velocity', units='m/s')\n", + "\n", + " self.add_output(name='q', shape=(nn,), desc='dynamic pressure', units='N/m**2')\n", + "\n", + " self.declare_partials(of='q', wrt='rho', method='fd')\n", + " self.declare_partials(of='q', wrt='v', method='fd')\n", + "\n", + " if self.options['partial_coloring']:\n", + " self.declare_coloring(wrt=['*'], method='cs', tol=1.0E-6, num_full_jacs=2,\n", + " show_summary=True, show_sparsity=False, min_improve_pct=10.)\n", + "\n", + " def compute(self, inputs, outputs):\n", + " outputs['q'] = 0.5 * inputs['rho'] * inputs['v'] ** 2" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "om.display_source(\"dymos.examples.min_time_climb.doc.dynamic_pressure_comp_partial_coloring.DynamicPressureCompFD\")" ] @@ -160,7 +316,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "scrolled": true, "tags": [ @@ -203,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "scrolled": true, "tags": [ @@ -211,33 +367,2352 @@ "hide-output" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
class MinTimeClimbODE(om.Group):\n",
+       "\n",
+       "    def initialize(self):\n",
+       "        self.options.declare('num_nodes', types=int)\n",
+       "        self.options.declare('fd', types=bool, default=False, desc='If True, use fd for partials')\n",
+       "        self.options.declare('partial_coloring', types=bool, default=False,\n",
+       "                             desc='If True and fd is True, color the approximated partials')\n",
+       "\n",
+       "    def setup(self):\n",
+       "        nn = self.options['num_nodes']\n",
+       "\n",
+       "        self.add_subsystem(name='atmos',\n",
+       "                           subsys=USatm1976Comp(num_nodes=nn),\n",
+       "                           promotes_inputs=['h'])\n",
+       "\n",
+       "        self.add_subsystem(name='aero',\n",
+       "                           subsys=AeroGroup(num_nodes=nn,\n",
+       "                                            fd=self.options['fd'],\n",
+       "                                            partial_coloring=self.options['partial_coloring']),\n",
+       "                           promotes_inputs=['v', 'alpha', 'S'])\n",
+       "\n",
+       "        self.connect('atmos.sos', 'aero.sos')\n",
+       "        self.connect('atmos.rho', 'aero.rho')\n",
+       "\n",
+       "        self.add_subsystem(name='prop',\n",
+       "                           subsys=PropGroup(num_nodes=nn),\n",
+       "                           promotes_inputs=['h', 'Isp', 'throttle'])\n",
+       "\n",
+       "        self.connect('aero.mach', 'prop.mach')\n",
+       "\n",
+       "        self.add_subsystem(name='flight_dynamics',\n",
+       "                           subsys=FlightPathEOM2D(num_nodes=nn),\n",
+       "                           promotes_inputs=['m', 'v', 'gam', 'alpha'])\n",
+       "\n",
+       "        self.connect('aero.f_drag', 'flight_dynamics.D')\n",
+       "        self.connect('aero.f_lift', 'flight_dynamics.L')\n",
+       "        self.connect('prop.thrust', 'flight_dynamics.T')\n",
+       "
\n" + ], + "text/latex": [ + "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n", + "\\PY{k}{class} \\PY{n+nc}{MinTimeClimbODE}\\PY{p}{(}\\PY{n}{om}\\PY{o}{.}\\PY{n}{Group}\\PY{p}{)}\\PY{p}{:}\n", + "\n", + " \\PY{k}{def} \\PY{n+nf}{initialize}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{int}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{fd}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{bool}\\PY{p}{,} \\PY{n}{default}\\PY{o}{=}\\PY{k+kc}{False}\\PY{p}{,} \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{If True, use fd for partials}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{partial\\PYZus{}coloring}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{bool}\\PY{p}{,} \\PY{n}{default}\\PY{o}{=}\\PY{k+kc}{False}\\PY{p}{,}\n", + " \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{If True and fd is True, color the approximated partials}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{k}{def} \\PY{n+nf}{setup}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", + " \\PY{n}{nn} \\PY{o}{=} \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{USatm1976Comp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", + " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{h}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{AeroGroup}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{,}\n", + " \\PY{n}{fd}\\PY{o}{=}\\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{fd}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{,}\n", + " \\PY{n}{partial\\PYZus{}coloring}\\PY{o}{=}\\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{partial\\PYZus{}coloring}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\\PY{p}{,}\n", + " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alpha}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{S}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.sos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.sos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{prop}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{PropGroup}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", + " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{h}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{Isp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{throttle}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.mach}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{prop.mach}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}dynamics}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", + " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{FlightPathEOM2D}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", + " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{m}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{gam}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alpha}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", + "\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.f\\PYZus{}drag}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}dynamics.D}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.f\\PYZus{}lift}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}dynamics.L}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{prop.thrust}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}dynamics.T}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", + "\\end{Verbatim}\n" + ], + "text/plain": [ + "class MinTimeClimbODE(om.Group):\n", + "\n", + " def initialize(self):\n", + " self.options.declare('num_nodes', types=int)\n", + " self.options.declare('fd', types=bool, default=False, desc='If True, use fd for partials')\n", + " self.options.declare('partial_coloring', types=bool, default=False,\n", + " desc='If True and fd is True, color the approximated partials')\n", + "\n", + " def setup(self):\n", + " nn = self.options['num_nodes']\n", + "\n", + " self.add_subsystem(name='atmos',\n", + " subsys=USatm1976Comp(num_nodes=nn),\n", + " promotes_inputs=['h'])\n", + "\n", + " self.add_subsystem(name='aero',\n", + " subsys=AeroGroup(num_nodes=nn,\n", + " fd=self.options['fd'],\n", + " partial_coloring=self.options['partial_coloring']),\n", + " promotes_inputs=['v', 'alpha', 'S'])\n", + "\n", + " self.connect('atmos.sos', 'aero.sos')\n", + " self.connect('atmos.rho', 'aero.rho')\n", + "\n", + " self.add_subsystem(name='prop',\n", + " subsys=PropGroup(num_nodes=nn),\n", + " promotes_inputs=['h', 'Isp', 'throttle'])\n", + "\n", + " self.connect('aero.mach', 'prop.mach')\n", + "\n", + " self.add_subsystem(name='flight_dynamics',\n", + " subsys=FlightPathEOM2D(num_nodes=nn),\n", + " promotes_inputs=['m', 'v', 'gam', 'alpha'])\n", + "\n", + " self.connect('aero.f_drag', 'flight_dynamics.D')\n", + " self.connect('aero.f_lift', 'flight_dynamics.L')\n", + " self.connect('prop.thrust', 'flight_dynamics.T')" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "om.display_source(\"dymos.examples.min_time_climb.doc.min_time_climb_ode_partial_coloring.MinTimeClimbODE\")" ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [ - "active-ipynb", - "remove-input", - "remove-output" - ] - }, - "outputs": [], - "source": [ - "%matplotlib inline" + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [ + "active-ipynb", + "remove-input", + "remove-output" ] + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "--- Constraint Report [traj] ---\n", + " --- phase0 ---\n", + " [final] 2.0000e+04 == h [m]\n", + " [final] 1.0000e+00 == aero.mach [None]\n", + " [final] 0.0000e+00 == gam [rad]\n", + " [path] 1.0000e+02 <= h <= 2.0000e+04 [m]\n", + " [path] 1.0000e-01 <= aero.mach <= 1.8000e+00 [None]\n", + "\n", + "--------------------------------------------------------------------------------\n", + "--- Analytic derivatives in component ------------------------------------------\n", + "-------------------------------------------------------------------------------- \n", + "\n", + "Model viewer data has already been recorded for Driver.\n", + "Model viewer data has already been recorded for Driver.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/driver.py:659: DriverWarning:The following design variable initial conditions are out of their specified bounds:\n", + " traj.phase0.t_duration\n", + " val: [500.]\n", + " lower: 50.0\n", + " upper: 400.0\n", + "Set the initial value of the design variable to a valid value or set the driver option['invalid_desvar_behavior'] to 'ignore'.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Full total jacobian for problem 'problem6' was computed 3 times, taking 0.16893545794300735 seconds.\n", + "Total jacobian shape: (361, 212) \n", + "\n", + "\n", + "Jacobian shape: (361, 212) (3.44% nonzero)\n", + "FWD solves: 13 REV solves: 0\n", + "Total colors vs. total size: 13 vs 212 (93.87% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-12\n", + "Time to compute sparsity: 0.1689 sec\n", + "Time to compute coloring: 0.1029 sec\n", + "Memory to compute coloring: 0.0000 MB\n", + "Coloring created on: 2024-08-14 08:50:56\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->h', inds=[(0, 0)]), ('traj.phases.phase0->path_constraint->mach', inds=[(0, 0)])] cannot be impacted by the design variables of the problem.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Optimization Problem -- Optimization using pyOpt_sparse\n", + "================================================================================\n", + " Objective Function: _objfunc\n", + "\n", + " Solution: \n", + "--------------------------------------------------------------------------------\n", + " Total Time: 3.1586\n", + " User Objective Time : 1.2243\n", + " User Sensitivity Time : 1.1262\n", + " Interface Time : 0.3350\n", + " Opt Solver Time: 0.4730\n", + " Calls to Objective Function : 131\n", + " Calls to Sens Function : 107\n", + "\n", + "\n", + " Objectives\n", + " Index Name Value\n", + " 0 traj.phase0.t 3.235052E+00\n", + "\n", + " Variables (c - continuous, i - integer, d - discrete)\n", + " Index Name Type Lower Bound Value Upper Bound Status\n", + " 0 traj.phase0.t_duration_0 c 5.000000E-01 3.235052E+00 4.000000E+00 \n", + " 1 traj.phase0.states:r_0 c 0.000000E+00 1.808252E+00 1.000000E+03 \n", + " 2 traj.phase0.states:r_1 c 0.000000E+00 4.338693E+00 1.000000E+03 \n", + " 3 traj.phase0.states:r_2 c 0.000000E+00 7.365642E+00 1.000000E+03 \n", + " 4 traj.phase0.states:r_3 c 0.000000E+00 1.015782E+01 1.000000E+03 \n", + " 5 traj.phase0.states:r_4 c 0.000000E+00 1.292800E+01 1.000000E+03 \n", + " 6 traj.phase0.states:r_5 c 0.000000E+00 1.576496E+01 1.000000E+03 \n", + " 7 traj.phase0.states:r_6 c 0.000000E+00 1.862485E+01 1.000000E+03 \n", + " 8 traj.phase0.states:r_7 c 0.000000E+00 2.150885E+01 1.000000E+03 \n", + " 9 traj.phase0.states:r_8 c 0.000000E+00 2.455466E+01 1.000000E+03 \n", + " 10 traj.phase0.states:r_9 c 0.000000E+00 2.786246E+01 1.000000E+03 \n", + " 11 traj.phase0.states:r_10 c 0.000000E+00 3.146477E+01 1.000000E+03 \n", + " 12 traj.phase0.states:r_11 c 0.000000E+00 3.545805E+01 1.000000E+03 \n", + " 13 traj.phase0.states:r_12 c 0.000000E+00 3.978453E+01 1.000000E+03 \n", + " 14 traj.phase0.states:r_13 c 0.000000E+00 4.429259E+01 1.000000E+03 \n", + " 15 traj.phase0.states:r_14 c 0.000000E+00 4.889946E+01 1.000000E+03 \n", + " 16 traj.phase0.states:r_15 c 0.000000E+00 5.358762E+01 1.000000E+03 \n", + " 17 traj.phase0.states:r_16 c 0.000000E+00 5.836033E+01 1.000000E+03 \n", + " 18 traj.phase0.states:r_17 c 0.000000E+00 6.322201E+01 1.000000E+03 \n", + " 19 traj.phase0.states:r_18 c 0.000000E+00 6.817520E+01 1.000000E+03 \n", + " 20 traj.phase0.states:r_19 c 0.000000E+00 7.322459E+01 1.000000E+03 \n", + " 21 traj.phase0.states:r_20 c 0.000000E+00 7.838232E+01 1.000000E+03 \n", + " 22 traj.phase0.states:r_21 c 0.000000E+00 8.366789E+01 1.000000E+03 \n", + " 23 traj.phase0.states:r_22 c 0.000000E+00 8.909663E+01 1.000000E+03 \n", + " 24 traj.phase0.states:r_23 c 0.000000E+00 9.464601E+01 1.000000E+03 \n", + " 25 traj.phase0.states:r_24 c 0.000000E+00 1.001543E+02 1.000000E+03 \n", + " 26 traj.phase0.states:r_25 c 0.000000E+00 1.052003E+02 1.000000E+03 \n", + " 27 traj.phase0.states:r_26 c 0.000000E+00 1.093944E+02 1.000000E+03 \n", + " 28 traj.phase0.states:r_27 c 0.000000E+00 1.128537E+02 1.000000E+03 \n", + " 29 traj.phase0.states:r_28 c 0.000000E+00 1.159921E+02 1.000000E+03 \n", + " 30 traj.phase0.states:r_29 c 0.000000E+00 1.191438E+02 1.000000E+03 \n", + " 31 traj.phase0.states:h_0 c 0.000000E+00 1.061226E+00 2.000000E+02 \n", + " 32 traj.phase0.states:h_1 c 0.000000E+00 1.139375E+00 2.000000E+02 \n", + " 33 traj.phase0.states:h_2 c 0.000000E+00 8.818192E+00 2.000000E+02 \n", + " 34 traj.phase0.states:h_3 c 0.000000E+00 2.664437E+01 2.000000E+02 \n", + " 35 traj.phase0.states:h_4 c 0.000000E+00 4.417015E+01 2.000000E+02 \n", + " 36 traj.phase0.states:h_5 c 0.000000E+00 5.944126E+01 2.000000E+02 \n", + " 37 traj.phase0.states:h_6 c 0.000000E+00 7.289255E+01 2.000000E+02 \n", + " 38 traj.phase0.states:h_7 c 0.000000E+00 8.421209E+01 2.000000E+02 \n", + " 39 traj.phase0.states:h_8 c 0.000000E+00 9.049901E+01 2.000000E+02 \n", + " 40 traj.phase0.states:h_9 c 0.000000E+00 8.884960E+01 2.000000E+02 \n", + " 41 traj.phase0.states:h_10 c 0.000000E+00 8.147390E+01 2.000000E+02 \n", + " 42 traj.phase0.states:h_11 c 0.000000E+00 7.428830E+01 2.000000E+02 \n", + " 43 traj.phase0.states:h_12 c 0.000000E+00 7.108228E+01 2.000000E+02 \n", + " 44 traj.phase0.states:h_13 c 0.000000E+00 7.162013E+01 2.000000E+02 \n", + " 45 traj.phase0.states:h_14 c 0.000000E+00 7.403052E+01 2.000000E+02 \n", + " 46 traj.phase0.states:h_15 c 0.000000E+00 7.692182E+01 2.000000E+02 \n", + " 47 traj.phase0.states:h_16 c 0.000000E+00 7.977347E+01 2.000000E+02 \n", + " 48 traj.phase0.states:h_17 c 0.000000E+00 8.256112E+01 2.000000E+02 \n", + " 49 traj.phase0.states:h_18 c 0.000000E+00 8.533947E+01 2.000000E+02 \n", + " 50 traj.phase0.states:h_19 c 0.000000E+00 8.797577E+01 2.000000E+02 \n", + " 51 traj.phase0.states:h_20 c 0.000000E+00 9.008192E+01 2.000000E+02 \n", + " 52 traj.phase0.states:h_21 c 0.000000E+00 9.124551E+01 2.000000E+02 \n", + " 53 traj.phase0.states:h_22 c 0.000000E+00 9.175946E+01 2.000000E+02 \n", + " 54 traj.phase0.states:h_23 c 0.000000E+00 9.384358E+01 2.000000E+02 \n", + " 55 traj.phase0.states:h_24 c 0.000000E+00 1.021991E+02 2.000000E+02 \n", + " 56 traj.phase0.states:h_25 c 0.000000E+00 1.207230E+02 2.000000E+02 \n", + " 57 traj.phase0.states:h_26 c 0.000000E+00 1.466413E+02 2.000000E+02 \n", + " 58 traj.phase0.states:h_27 c 0.000000E+00 1.725207E+02 2.000000E+02 \n", + " 59 traj.phase0.states:h_28 c 0.000000E+00 1.921023E+02 2.000000E+02 \n", + " 60 traj.phase0.states:h_29 c 0.000000E+00 2.000000E+02 2.000000E+02 u\n", + " 61 traj.phase0.states:v_0 c 1.000000E-01 2.001427E+00 1.000000E+19 \n", + " 62 traj.phase0.states:v_1 c 1.000000E-01 2.688847E+00 1.000000E+19 \n", + " 63 traj.phase0.states:v_2 c 1.000000E-01 3.059740E+00 1.000000E+19 \n", + " 64 traj.phase0.states:v_3 c 1.000000E-01 3.065008E+00 1.000000E+19 \n", + " 65 traj.phase0.states:v_4 c 1.000000E-01 3.014449E+00 1.000000E+19 \n", + " 66 traj.phase0.states:v_5 c 1.000000E-01 2.961213E+00 1.000000E+19 \n", + " 67 traj.phase0.states:v_6 c 1.000000E-01 2.900125E+00 1.000000E+19 \n", + " 68 traj.phase0.states:v_7 c 1.000000E-01 2.859550E+00 1.000000E+19 \n", + " 69 traj.phase0.states:v_8 c 1.000000E-01 2.953666E+00 1.000000E+19 \n", + " 70 traj.phase0.states:v_9 c 1.000000E-01 3.228199E+00 1.000000E+19 \n", + " 71 traj.phase0.states:v_10 c 1.000000E-01 3.596243E+00 1.000000E+19 \n", + " 72 traj.phase0.states:v_11 c 1.000000E-01 3.914195E+00 1.000000E+19 \n", + " 73 traj.phase0.states:v_12 c 1.000000E-01 4.117592E+00 1.000000E+19 \n", + " 74 traj.phase0.states:v_13 c 1.000000E-01 4.235627E+00 1.000000E+19 \n", + " 75 traj.phase0.states:v_14 c 1.000000E-01 4.317742E+00 1.000000E+19 \n", + " 76 traj.phase0.states:v_15 c 1.000000E-01 4.394110E+00 1.000000E+19 \n", + " 77 traj.phase0.states:v_16 c 1.000000E-01 4.474274E+00 1.000000E+19 \n", + " 78 traj.phase0.states:v_17 c 1.000000E-01 4.557818E+00 1.000000E+19 \n", + " 79 traj.phase0.states:v_18 c 1.000000E-01 4.643762E+00 1.000000E+19 \n", + " 80 traj.phase0.states:v_19 c 1.000000E-01 4.735619E+00 1.000000E+19 \n", + " 81 traj.phase0.states:v_20 c 1.000000E-01 4.841473E+00 1.000000E+19 \n", + " 82 traj.phase0.states:v_21 c 1.000000E-01 4.967183E+00 1.000000E+19 \n", + " 83 traj.phase0.states:v_22 c 1.000000E-01 5.100042E+00 1.000000E+19 \n", + " 84 traj.phase0.states:v_23 c 1.000000E-01 5.186232E+00 1.000000E+19 \n", + " 85 traj.phase0.states:v_24 c 1.000000E-01 5.124438E+00 1.000000E+19 \n", + " 86 traj.phase0.states:v_25 c 1.000000E-01 4.823477E+00 1.000000E+19 \n", + " 87 traj.phase0.states:v_26 c 1.000000E-01 4.304544E+00 1.000000E+19 \n", + " 88 traj.phase0.states:v_27 c 1.000000E-01 3.708491E+00 1.000000E+19 \n", + " 89 traj.phase0.states:v_28 c 1.000000E-01 3.190617E+00 1.000000E+19 \n", + " 90 traj.phase0.states:v_29 c 1.000000E-01 2.950864E+00 1.000000E+19 \n", + " 91 traj.phase0.states:gam_0 c -1.500000E+00 1.134838E-02 1.500000E+00 \n", + " 92 traj.phase0.states:gam_1 c -1.500000E+00 3.612903E-02 1.500000E+00 \n", + " 93 traj.phase0.states:gam_2 c -1.500000E+00 4.740235E-01 1.500000E+00 \n", + " 94 traj.phase0.states:gam_3 c -1.500000E+00 5.938179E-01 1.500000E+00 \n", + " 95 traj.phase0.states:gam_4 c -1.500000E+00 5.275219E-01 1.500000E+00 \n", + " 96 traj.phase0.states:gam_5 c -1.500000E+00 4.638847E-01 1.500000E+00 \n", + " 97 traj.phase0.states:gam_6 c -1.500000E+00 4.145517E-01 1.500000E+00 \n", + " 98 traj.phase0.states:gam_7 c -1.500000E+00 3.138791E-01 1.500000E+00 \n", + " 99 traj.phase0.states:gam_8 c -1.500000E+00 7.811222E-02 1.500000E+00 \n", + " 100 traj.phase0.states:gam_9 c -1.500000E+00 -1.559814E-01 1.500000E+00 \n", + " 101 traj.phase0.states:gam_10 c -1.500000E+00 -2.145772E-01 1.500000E+00 \n", + " 102 traj.phase0.states:gam_11 c -1.500000E+00 -1.293071E-01 1.500000E+00 \n", + " 103 traj.phase0.states:gam_12 c -1.500000E+00 -2.372600E-02 1.500000E+00 \n", + " 104 traj.phase0.states:gam_13 c -1.500000E+00 3.905499E-02 1.500000E+00 \n", + " 105 traj.phase0.states:gam_14 c -1.500000E+00 6.020536E-02 1.500000E+00 \n", + " 106 traj.phase0.states:gam_15 c -1.500000E+00 6.124968E-02 1.500000E+00 \n", + " 107 traj.phase0.states:gam_16 c -1.500000E+00 5.816548E-02 1.500000E+00 \n", + " 108 traj.phase0.states:gam_17 c -1.500000E+00 5.666272E-02 1.500000E+00 \n", + " 109 traj.phase0.states:gam_18 c -1.500000E+00 5.498959E-02 1.500000E+00 \n", + " 110 traj.phase0.states:gam_19 c -1.500000E+00 4.804794E-02 1.500000E+00 \n", + " 111 traj.phase0.states:gam_20 c -1.500000E+00 3.219925E-02 1.500000E+00 \n", + " 112 traj.phase0.states:gam_21 c -1.500000E+00 1.263070E-02 1.500000E+00 \n", + " 113 traj.phase0.states:gam_22 c -1.500000E+00 1.284656E-02 1.500000E+00 \n", + " 114 traj.phase0.states:gam_23 c -1.500000E+00 7.683155E-02 1.500000E+00 \n", + " 115 traj.phase0.states:gam_24 c -1.500000E+00 2.409826E-01 1.500000E+00 \n", + " 116 traj.phase0.states:gam_25 c -1.500000E+00 4.652781E-01 1.500000E+00 \n", + " 117 traj.phase0.states:gam_26 c -1.500000E+00 6.245282E-01 1.500000E+00 \n", + " 118 traj.phase0.states:gam_27 c -1.500000E+00 6.313080E-01 1.500000E+00 \n", + " 119 traj.phase0.states:gam_28 c -1.500000E+00 4.419234E-01 1.500000E+00 \n", + " 120 traj.phase0.states:gam_29 c -1.500000E+00 -9.667975E-26 1.500000E+00 \n", + " 121 traj.phase0.states:m_0 c 1.000000E-02 1.894029E+01 1.000000E+02 \n", + " 122 traj.phase0.states:m_1 c 1.000000E-02 1.883985E+01 1.000000E+02 \n", + " 123 traj.phase0.states:m_2 c 1.000000E-02 1.873364E+01 1.000000E+02 \n", + " 124 traj.phase0.states:m_3 c 1.000000E-02 1.863493E+01 1.000000E+02 \n", + " 125 traj.phase0.states:m_4 c 1.000000E-02 1.854905E+01 1.000000E+02 \n", + " 126 traj.phase0.states:m_5 c 1.000000E-02 1.847497E+01 1.000000E+02 \n", + " 127 traj.phase0.states:m_6 c 1.000000E-02 1.841103E+01 1.000000E+02 \n", + " 128 traj.phase0.states:m_7 c 1.000000E-02 1.835554E+01 1.000000E+02 \n", + " 129 traj.phase0.states:m_8 c 1.000000E-02 1.830503E+01 1.000000E+02 \n", + " 130 traj.phase0.states:m_9 c 1.000000E-02 1.825308E+01 1.000000E+02 \n", + " 131 traj.phase0.states:m_10 c 1.000000E-02 1.819243E+01 1.000000E+02 \n", + " 132 traj.phase0.states:m_11 c 1.000000E-02 1.811956E+01 1.000000E+02 \n", + " 133 traj.phase0.states:m_12 c 1.000000E-02 1.803722E+01 1.000000E+02 \n", + " 134 traj.phase0.states:m_13 c 1.000000E-02 1.795050E+01 1.000000E+02 \n", + " 135 traj.phase0.states:m_14 c 1.000000E-02 1.786279E+01 1.000000E+02 \n", + " 136 traj.phase0.states:m_15 c 1.000000E-02 1.777533E+01 1.000000E+02 \n", + " 137 traj.phase0.states:m_16 c 1.000000E-02 1.768827E+01 1.000000E+02 \n", + " 138 traj.phase0.states:m_17 c 1.000000E-02 1.760153E+01 1.000000E+02 \n", + " 139 traj.phase0.states:m_18 c 1.000000E-02 1.751509E+01 1.000000E+02 \n", + " 140 traj.phase0.states:m_19 c 1.000000E-02 1.742893E+01 1.000000E+02 \n", + " 141 traj.phase0.states:m_20 c 1.000000E-02 1.734269E+01 1.000000E+02 \n", + " 142 traj.phase0.states:m_21 c 1.000000E-02 1.725559E+01 1.000000E+02 \n", + " 143 traj.phase0.states:m_22 c 1.000000E-02 1.716676E+01 1.000000E+02 \n", + " 144 traj.phase0.states:m_23 c 1.000000E-02 1.707678E+01 1.000000E+02 \n", + " 145 traj.phase0.states:m_24 c 1.000000E-02 1.699015E+01 1.000000E+02 \n", + " 146 traj.phase0.states:m_25 c 1.000000E-02 1.691718E+01 1.000000E+02 \n", + " 147 traj.phase0.states:m_26 c 1.000000E-02 1.686893E+01 1.000000E+02 \n", + " 148 traj.phase0.states:m_27 c 1.000000E-02 1.684156E+01 1.000000E+02 \n", + " 149 traj.phase0.states:m_28 c 1.000000E-02 1.682680E+01 1.000000E+02 \n", + " 150 traj.phase0.states:m_29 c 1.000000E-02 1.681812E+01 1.000000E+02 \n", + " 151 traj.phase0.controls:alpha_0 c -8.000000E+00 4.973570E+00 8.000000E+00 \n", + " 152 traj.phase0.controls:alpha_1 c -8.000000E+00 3.717203E+00 8.000000E+00 \n", + " 153 traj.phase0.controls:alpha_2 c -8.000000E+00 2.438053E+00 8.000000E+00 \n", + " 154 traj.phase0.controls:alpha_3 c -8.000000E+00 1.746324E+00 8.000000E+00 \n", + " 155 traj.phase0.controls:alpha_4 c -8.000000E+00 2.252217E+00 8.000000E+00 \n", + " 156 traj.phase0.controls:alpha_5 c -8.000000E+00 2.787355E+00 8.000000E+00 \n", + " 157 traj.phase0.controls:alpha_6 c -8.000000E+00 2.183358E+00 8.000000E+00 \n", + " 158 traj.phase0.controls:alpha_7 c -8.000000E+00 1.279499E+00 8.000000E+00 \n", + " 159 traj.phase0.controls:alpha_8 c -8.000000E+00 9.150496E-01 8.000000E+00 \n", + " 160 traj.phase0.controls:alpha_9 c -8.000000E+00 8.886856E-01 8.000000E+00 \n", + " 161 traj.phase0.controls:alpha_10 c -8.000000E+00 9.990812E-01 8.000000E+00 \n", + " 162 traj.phase0.controls:alpha_11 c -8.000000E+00 1.188628E+00 8.000000E+00 \n", + " 163 traj.phase0.controls:alpha_12 c -8.000000E+00 1.399716E+00 8.000000E+00 \n", + " 164 traj.phase0.controls:alpha_13 c -8.000000E+00 1.593759E+00 8.000000E+00 \n", + " 165 traj.phase0.controls:alpha_14 c -8.000000E+00 1.732167E+00 8.000000E+00 \n", + " 166 traj.phase0.controls:alpha_15 c -8.000000E+00 1.676253E+00 8.000000E+00 \n", + " 167 traj.phase0.controls:alpha_16 c -8.000000E+00 1.287328E+00 8.000000E+00 \n", + " 168 traj.phase0.controls:alpha_17 c -8.000000E+00 8.318812E-01 8.000000E+00 \n", + " 169 traj.phase0.controls:alpha_18 c -8.000000E+00 5.763993E-01 8.000000E+00 \n", + " 170 traj.phase0.controls:alpha_19 c -8.000000E+00 6.230897E-01 8.000000E+00 \n", + " 171 traj.phase0.controls:alpha_20 c -8.000000E+00 1.074159E+00 8.000000E+00 \n", + " 172 traj.phase0.controls:alpha_21 c -8.000000E+00 1.617142E+00 8.000000E+00 \n", + " 173 traj.phase0.controls:alpha_22 c -8.000000E+00 1.939570E+00 8.000000E+00 \n", + " 174 traj.phase0.controls:alpha_23 c -8.000000E+00 2.067110E+00 8.000000E+00 \n", + " 175 traj.phase0.controls:alpha_24 c -8.000000E+00 2.025427E+00 8.000000E+00 \n", + " 176 traj.phase0.controls:alpha_25 c -8.000000E+00 1.885758E+00 8.000000E+00 \n", + " 177 traj.phase0.controls:alpha_26 c -8.000000E+00 1.719343E+00 8.000000E+00 \n", + " 178 traj.phase0.controls:alpha_27 c -8.000000E+00 1.555927E+00 8.000000E+00 \n", + " 179 traj.phase0.controls:alpha_28 c -8.000000E+00 1.425256E+00 8.000000E+00 \n", + " 180 traj.phase0.controls:alpha_29 c -8.000000E+00 1.329070E+00 8.000000E+00 \n", + " 181 traj.phase0.controls:alpha_30 c -8.000000E+00 1.269107E+00 8.000000E+00 \n", + " 182 traj.phase0.controls:alpha_31 c -8.000000E+00 1.237556E+00 8.000000E+00 \n", + " 183 traj.phase0.controls:alpha_32 c -8.000000E+00 1.226606E+00 8.000000E+00 \n", + " 184 traj.phase0.controls:alpha_33 c -8.000000E+00 1.229107E+00 8.000000E+00 \n", + " 185 traj.phase0.controls:alpha_34 c -8.000000E+00 1.237911E+00 8.000000E+00 \n", + " 186 traj.phase0.controls:alpha_35 c -8.000000E+00 1.248382E+00 8.000000E+00 \n", + " 187 traj.phase0.controls:alpha_36 c -8.000000E+00 1.255885E+00 8.000000E+00 \n", + " 188 traj.phase0.controls:alpha_37 c -8.000000E+00 1.257922E+00 8.000000E+00 \n", + " 189 traj.phase0.controls:alpha_38 c -8.000000E+00 1.251999E+00 8.000000E+00 \n", + " 190 traj.phase0.controls:alpha_39 c -8.000000E+00 1.237719E+00 8.000000E+00 \n", + " 191 traj.phase0.controls:alpha_40 c -8.000000E+00 1.214691E+00 8.000000E+00 \n", + " 192 traj.phase0.controls:alpha_41 c -8.000000E+00 1.187428E+00 8.000000E+00 \n", + " 193 traj.phase0.controls:alpha_42 c -8.000000E+00 1.160447E+00 8.000000E+00 \n", + " 194 traj.phase0.controls:alpha_43 c -8.000000E+00 1.147674E+00 8.000000E+00 \n", + " 195 traj.phase0.controls:alpha_44 c -8.000000E+00 1.163032E+00 8.000000E+00 \n", + " 196 traj.phase0.controls:alpha_45 c -8.000000E+00 1.227486E+00 8.000000E+00 \n", + " 197 traj.phase0.controls:alpha_46 c -8.000000E+00 1.361995E+00 8.000000E+00 \n", + " 198 traj.phase0.controls:alpha_47 c -8.000000E+00 1.582015E+00 8.000000E+00 \n", + " 199 traj.phase0.controls:alpha_48 c -8.000000E+00 1.902997E+00 8.000000E+00 \n", + " 200 traj.phase0.controls:alpha_49 c -8.000000E+00 2.303846E+00 8.000000E+00 \n", + " 201 traj.phase0.controls:alpha_50 c -8.000000E+00 2.763468E+00 8.000000E+00 \n", + " 202 traj.phase0.controls:alpha_51 c -8.000000E+00 3.222359E+00 8.000000E+00 \n", + " 203 traj.phase0.controls:alpha_52 c -8.000000E+00 3.621015E+00 8.000000E+00 \n", + " 204 traj.phase0.controls:alpha_53 c -8.000000E+00 3.885907E+00 8.000000E+00 \n", + " 205 traj.phase0.controls:alpha_54 c -8.000000E+00 3.943506E+00 8.000000E+00 \n", + " 206 traj.phase0.controls:alpha_55 c -8.000000E+00 3.728444E+00 8.000000E+00 \n", + " 207 traj.phase0.controls:alpha_56 c -8.000000E+00 3.175352E+00 8.000000E+00 \n", + " 208 traj.phase0.controls:alpha_57 c -8.000000E+00 1.953508E+00 8.000000E+00 \n", + " 209 traj.phase0.controls:alpha_58 c -8.000000E+00 -2.678072E-01 8.000000E+00 \n", + " 210 traj.phase0.controls:alpha_59 c -8.000000E+00 -3.186040E+00 8.000000E+00 \n", + " 211 traj.phase0.controls:alpha_60 c -8.000000E+00 -6.498636E+00 8.000000E+00 \n", + "\n", + " Constraints (i - inequality, e - equality)\n", + " Index Name Type Lower Value Upper Status Lagrange Multiplier (N/A)\n", + " 0 traj.phases.phase0->final_boundary_constraint->h e 2.000000E+01 2.000000E+01 2.000000E+01 9.00000E+100\n", + " 1 traj.phases.phase0->final_boundary_constraint->mach e 1.000000E+00 1.000000E+00 1.000000E+00 9.00000E+100\n", + " 2 traj.phases.phase0->final_boundary_constraint->gam e 0.000000E+00 -9.667975E-26 0.000000E+00 9.00000E+100\n", + " 3 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.857617E-12 0.000000E+00 9.00000E+100\n", + " 4 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.562611E-10 0.000000E+00 9.00000E+100\n", + " 5 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.668183E-10 0.000000E+00 9.00000E+100\n", + " 6 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.510075E-10 0.000000E+00 9.00000E+100\n", + " 7 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.167350E-10 0.000000E+00 9.00000E+100\n", + " 8 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.247798E-10 0.000000E+00 9.00000E+100\n", + " 9 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.033742E-10 0.000000E+00 9.00000E+100\n", + " 10 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.305851E-11 0.000000E+00 9.00000E+100\n", + " 11 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.365306E-11 0.000000E+00 9.00000E+100\n", + " 12 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.876803E-11 0.000000E+00 9.00000E+100\n", + " 13 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.049574E-10 0.000000E+00 9.00000E+100\n", + " 14 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.843272E-10 0.000000E+00 9.00000E+100\n", + " 15 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.981502E-10 0.000000E+00 9.00000E+100\n", + " 16 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.192171E-10 0.000000E+00 9.00000E+100\n", + " 17 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 9.299695E-12 0.000000E+00 9.00000E+100\n", + " 18 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.798588E-10 0.000000E+00 9.00000E+100\n", + " 19 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.983689E-10 0.000000E+00 9.00000E+100\n", + " 20 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.710113E-10 0.000000E+00 9.00000E+100\n", + " 21 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.122631E-11 0.000000E+00 9.00000E+100\n", + " 22 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.582248E-10 0.000000E+00 9.00000E+100\n", + " 23 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.908664E-10 0.000000E+00 9.00000E+100\n", + " 24 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.970838E-10 0.000000E+00 9.00000E+100\n", + " 25 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 7.080616E-11 0.000000E+00 9.00000E+100\n", + " 26 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.521891E-11 0.000000E+00 9.00000E+100\n", + " 27 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 8.223133E-11 0.000000E+00 9.00000E+100\n", + " 28 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.081894E-12 0.000000E+00 9.00000E+100\n", + " 29 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.007913E-11 0.000000E+00 9.00000E+100\n", + " 30 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.569299E-11 0.000000E+00 9.00000E+100\n", + " 31 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 -3.673231E-12 0.000000E+00 9.00000E+100\n", + " 32 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 -5.570316E-11 0.000000E+00 9.00000E+100\n", + " 33 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 3.407747E-11 0.000000E+00 9.00000E+100\n", + " 34 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 4.599298E-10 0.000000E+00 9.00000E+100\n", + " 35 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.224315E-09 0.000000E+00 9.00000E+100\n", + " 36 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.101445E-09 0.000000E+00 9.00000E+100\n", + " 37 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.988684E-09 0.000000E+00 9.00000E+100\n", + " 38 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 3.794247E-10 0.000000E+00 9.00000E+100\n", + " 39 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.294541E-09 0.000000E+00 9.00000E+100\n", + " 40 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.686224E-09 0.000000E+00 9.00000E+100\n", + " 41 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -4.002431E-10 0.000000E+00 9.00000E+100\n", + " 42 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -5.188040E-10 0.000000E+00 9.00000E+100\n", + " 43 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.225507E-10 0.000000E+00 9.00000E+100\n", + " 44 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -3.735524E-10 0.000000E+00 9.00000E+100\n", + " 45 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.131199E-10 0.000000E+00 9.00000E+100\n", + " 46 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -5.246302E-10 0.000000E+00 9.00000E+100\n", + " 47 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -2.770746E-11 0.000000E+00 9.00000E+100\n", + " 48 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.758629E-09 0.000000E+00 9.00000E+100\n", + " 49 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -4.407425E-10 0.000000E+00 9.00000E+100\n", + " 50 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -3.361361E-10 0.000000E+00 9.00000E+100\n", + " 51 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.826408E-10 0.000000E+00 9.00000E+100\n", + " 52 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.871738E-09 0.000000E+00 9.00000E+100\n", + " 53 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -7.542685E-10 0.000000E+00 9.00000E+100\n", + " 54 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 3.679744E-12 0.000000E+00 9.00000E+100\n", + " 55 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.390602E-11 0.000000E+00 9.00000E+100\n", + " 56 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.243648E-10 0.000000E+00 9.00000E+100\n", + " 57 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.861450E-10 0.000000E+00 9.00000E+100\n", + " 58 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -7.297424E-12 0.000000E+00 9.00000E+100\n", + " 59 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.202774E-10 0.000000E+00 9.00000E+100\n", + " 60 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.108453E-10 0.000000E+00 9.00000E+100\n", + " 61 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.538865E-11 0.000000E+00 9.00000E+100\n", + " 62 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -2.205402E-10 0.000000E+00 9.00000E+100\n", + " 63 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.517080E-11 0.000000E+00 9.00000E+100\n", + " 64 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.310881E-11 0.000000E+00 9.00000E+100\n", + " 65 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.110402E-10 0.000000E+00 9.00000E+100\n", + " 66 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.081311E-11 0.000000E+00 9.00000E+100\n", + " 67 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.343879E-11 0.000000E+00 9.00000E+100\n", + " 68 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.443337E-10 0.000000E+00 9.00000E+100\n", + " 69 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 -2.763322E-12 0.000000E+00 9.00000E+100\n", + " 70 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.756277E-11 0.000000E+00 9.00000E+100\n", + " 71 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.313106E-10 0.000000E+00 9.00000E+100\n", + " 72 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.144650E-11 0.000000E+00 9.00000E+100\n", + " 73 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.119879E-11 0.000000E+00 9.00000E+100\n", + " 74 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.388667E-10 0.000000E+00 9.00000E+100\n", + " 75 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.098655E-10 0.000000E+00 9.00000E+100\n", + " 76 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.116181E-11 0.000000E+00 9.00000E+100\n", + " 77 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.945078E-11 0.000000E+00 9.00000E+100\n", + " 78 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 8.456106E-11 0.000000E+00 9.00000E+100\n", + " 79 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.218732E-10 0.000000E+00 9.00000E+100\n", + " 80 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.823437E-10 0.000000E+00 9.00000E+100\n", + " 81 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.946243E-11 0.000000E+00 9.00000E+100\n", + " 82 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.846456E-10 0.000000E+00 9.00000E+100\n", + " 83 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.307029E-10 0.000000E+00 9.00000E+100\n", + " 84 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.722859E-10 0.000000E+00 9.00000E+100\n", + " 85 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.097087E-10 0.000000E+00 9.00000E+100\n", + " 86 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.589362E-10 0.000000E+00 9.00000E+100\n", + " 87 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.262230E-11 0.000000E+00 9.00000E+100\n", + " 88 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.724454E-11 0.000000E+00 9.00000E+100\n", + " 89 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.631309E-11 0.000000E+00 9.00000E+100\n", + " 90 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.595983E-11 0.000000E+00 9.00000E+100\n", + " 91 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.480489E-11 0.000000E+00 9.00000E+100\n", + " 92 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.786582E-10 0.000000E+00 9.00000E+100\n", + " 93 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 3.330207E-13 0.000000E+00 9.00000E+100\n", + " 94 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.222030E-11 0.000000E+00 9.00000E+100\n", + " 95 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.443701E-10 0.000000E+00 9.00000E+100\n", + " 96 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.633565E-11 0.000000E+00 9.00000E+100\n", + " 97 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -5.181509E-11 0.000000E+00 9.00000E+100\n", + " 98 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.529204E-10 0.000000E+00 9.00000E+100\n", + " 99 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -6.804130E-11 0.000000E+00 9.00000E+100\n", + " 100 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.025768E-10 0.000000E+00 9.00000E+100\n", + " 101 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.386108E-10 0.000000E+00 9.00000E+100\n", + " 102 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 5.102021E-12 0.000000E+00 9.00000E+100\n", + " 103 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.169545E-11 0.000000E+00 9.00000E+100\n", + " 104 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.499546E-10 0.000000E+00 9.00000E+100\n", + " 105 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.636790E-11 0.000000E+00 9.00000E+100\n", + " 106 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.706163E-11 0.000000E+00 9.00000E+100\n", + " 107 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 3.164328E-13 0.000000E+00 9.00000E+100\n", + " 108 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 1.054185E-11 0.000000E+00 9.00000E+100\n", + " 109 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.565557E-10 0.000000E+00 9.00000E+100\n", + " 110 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 4.941235E-11 0.000000E+00 9.00000E+100\n", + " 111 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.165593E-11 0.000000E+00 9.00000E+100\n", + " 112 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 7.675668E-11 0.000000E+00 9.00000E+100\n", + " 113 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.614085E-10 0.000000E+00 9.00000E+100\n", + " 114 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.083001E-11 0.000000E+00 9.00000E+100\n", + " 115 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.086944E-11 0.000000E+00 9.00000E+100\n", + " 116 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.664189E-11 0.000000E+00 9.00000E+100\n", + " 117 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.893081E-11 0.000000E+00 9.00000E+100\n", + " 118 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 1.694295E-12 0.000000E+00 9.00000E+100\n", + " 119 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.331146E-11 0.000000E+00 9.00000E+100\n", + " 120 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -5.280834E-12 0.000000E+00 9.00000E+100\n", + " 121 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 1.975714E-12 0.000000E+00 9.00000E+100\n", + " 122 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.140862E-11 0.000000E+00 9.00000E+100\n", + " 123 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.987187E-14 0.000000E+00 9.00000E+100\n", + " 124 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.299888E-13 0.000000E+00 9.00000E+100\n", + " 125 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.520839E-12 0.000000E+00 9.00000E+100\n", + " 126 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 9.017383E-14 0.000000E+00 9.00000E+100\n", + " 127 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.153057E-13 0.000000E+00 9.00000E+100\n", + " 128 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.861251E-13 0.000000E+00 9.00000E+100\n", + " 129 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.665856E-14 0.000000E+00 9.00000E+100\n", + " 130 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.162002E-12 0.000000E+00 9.00000E+100\n", + " 131 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.483664E-12 0.000000E+00 9.00000E+100\n", + " 132 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.220542E-13 0.000000E+00 9.00000E+100\n", + " 133 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 2.321868E-13 0.000000E+00 9.00000E+100\n", + " 134 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.540724E-13 0.000000E+00 9.00000E+100\n", + " 135 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 2.476165E-13 0.000000E+00 9.00000E+100\n", + " 136 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.950595E-13 0.000000E+00 9.00000E+100\n", + " 137 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.280174E-14 0.000000E+00 9.00000E+100\n", + " 138 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -9.731878E-14 0.000000E+00 9.00000E+100\n", + " 139 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.237165E-13 0.000000E+00 9.00000E+100\n", + " 140 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -9.706019E-14 0.000000E+00 9.00000E+100\n", + " 141 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.102295E-13 0.000000E+00 9.00000E+100\n", + " 142 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.408456E-13 0.000000E+00 9.00000E+100\n", + " 143 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -9.091419E-13 0.000000E+00 9.00000E+100\n", + " 144 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.559842E-14 0.000000E+00 9.00000E+100\n", + " 145 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.174989E-13 0.000000E+00 9.00000E+100\n", + " 146 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.750709E-14 0.000000E+00 9.00000E+100\n", + " 147 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -5.723620E-14 0.000000E+00 9.00000E+100\n", + " 148 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.510419E-12 0.000000E+00 9.00000E+100\n", + " 149 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 2.494506E-14 0.000000E+00 9.00000E+100\n", + " 150 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.320581E-14 0.000000E+00 9.00000E+100\n", + " 151 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.935138E-14 0.000000E+00 9.00000E+100\n", + " 152 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.035687E-13 0.000000E+00 9.00000E+100\n", + " 153 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.346861E-12 0.000000E+00 9.00000E+100\n", + " 154 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.489536E-13 0.000000E+00 9.00000E+100\n", + " 155 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.489536E-13 0.000000E+00 9.00000E+100\n", + " 156 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.734305E-13 0.000000E+00 9.00000E+100\n", + " 157 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.122384E-13 0.000000E+00 9.00000E+100\n", + " 158 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.489536E-13 0.000000E+00 9.00000E+100\n", + " 159 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", + " 160 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.122384E-12 0.000000E+00 9.00000E+100\n", + " 161 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", + " 162 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 8.979073E-13 0.000000E+00 9.00000E+100\n", + " 163 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.571338E-12 0.000000E+00 9.00000E+100\n", + " 164 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 165 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.010146E-12 0.000000E+00 9.00000E+100\n", + " 166 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.734305E-13 0.000000E+00 9.00000E+100\n", + " 167 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.734305E-13 0.000000E+00 9.00000E+100\n", + " 168 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.661963E-13 0.000000E+00 9.00000E+100\n", + " 169 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 170 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.664156E-13 0.000000E+00 9.00000E+100\n", + " 171 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.332831E-12 0.000000E+00 9.00000E+100\n", + " 172 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 173 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 174 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", + " 175 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", + " 176 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.489536E-13 0.000000E+00 9.00000E+100\n", + " 177 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 178 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", + " 179 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.318801E-12 0.000000E+00 9.00000E+100\n", + " 180 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 2.693722E-12 0.000000E+00 9.00000E+100\n", + " 181 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 182 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.000000E-03 1.000000E+00 l 9.00000E+100\n", + " 183 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", + " 184 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.306130E-03 1.000000E+00 9.00000E+100\n", + " 185 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.306130E-03 1.000000E+00 9.00000E+100\n", + " 186 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", + " 187 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.696875E-03 1.000000E+00 9.00000E+100\n", + " 188 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.696875E-03 1.000000E+00 9.00000E+100\n", + " 189 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.613532E-02 1.000000E+00 9.00000E+100\n", + " 190 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.409096E-02 1.000000E+00 9.00000E+100\n", + " 191 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.409096E-02 1.000000E+00 9.00000E+100\n", + " 192 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.651126E-02 1.000000E+00 9.00000E+100\n", + " 193 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332218E-01 1.000000E+00 9.00000E+100\n", + " 194 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332218E-01 1.000000E+00 9.00000E+100\n", + " 195 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.783674E-01 1.000000E+00 9.00000E+100\n", + " 196 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208507E-01 1.000000E+00 9.00000E+100\n", + " 197 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208507E-01 1.000000E+00 9.00000E+100\n", + " 198 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.603261E-01 1.000000E+00 9.00000E+100\n", + " 199 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972063E-01 1.000000E+00 9.00000E+100\n", + " 200 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972063E-01 1.000000E+00 9.00000E+100\n", + " 201 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.318914E-01 1.000000E+00 9.00000E+100\n", + " 202 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644628E-01 1.000000E+00 9.00000E+100\n", + " 203 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644628E-01 1.000000E+00 9.00000E+100\n", + " 204 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.946839E-01 1.000000E+00 9.00000E+100\n", + " 205 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210605E-01 1.000000E+00 9.00000E+100\n", + " 206 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210605E-01 1.000000E+00 9.00000E+100\n", + " 207 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.411748E-01 1.000000E+00 9.00000E+100\n", + " 208 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.524950E-01 1.000000E+00 9.00000E+100\n", + " 209 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.524950E-01 1.000000E+00 9.00000E+100\n", + " 210 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.533048E-01 1.000000E+00 9.00000E+100\n", + " 211 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.442480E-01 1.000000E+00 9.00000E+100\n", + " 212 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.442480E-01 1.000000E+00 9.00000E+100\n", + " 213 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.275898E-01 1.000000E+00 9.00000E+100\n", + " 214 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.073695E-01 1.000000E+00 9.00000E+100\n", + " 215 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.073695E-01 1.000000E+00 9.00000E+100\n", + " 216 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.876462E-01 1.000000E+00 9.00000E+100\n", + " 217 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.714415E-01 1.000000E+00 9.00000E+100\n", + " 218 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.714415E-01 1.000000E+00 9.00000E+100\n", + " 219 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.606831E-01 1.000000E+00 9.00000E+100\n", + " 220 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554114E-01 1.000000E+00 9.00000E+100\n", + " 221 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554114E-01 1.000000E+00 9.00000E+100\n", + " 222 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.549831E-01 1.000000E+00 9.00000E+100\n", + " 223 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581007E-01 1.000000E+00 9.00000E+100\n", + " 224 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581007E-01 1.000000E+00 9.00000E+100\n", + " 225 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.634903E-01 1.000000E+00 9.00000E+100\n", + " 226 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701526E-01 1.000000E+00 9.00000E+100\n", + " 227 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701526E-01 1.000000E+00 9.00000E+100\n", + " 228 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.773190E-01 1.000000E+00 9.00000E+100\n", + " 229 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.846091E-01 1.000000E+00 9.00000E+100\n", + " 230 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.846091E-01 1.000000E+00 9.00000E+100\n", + " 231 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.917980E-01 1.000000E+00 9.00000E+100\n", + " 232 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988673E-01 1.000000E+00 9.00000E+100\n", + " 233 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988673E-01 1.000000E+00 9.00000E+100\n", + " 234 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.058498E-01 1.000000E+00 9.00000E+100\n", + " 235 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.128056E-01 1.000000E+00 9.00000E+100\n", + " 236 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.128056E-01 1.000000E+00 9.00000E+100\n", + " 237 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.197710E-01 1.000000E+00 9.00000E+100\n", + " 238 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.266974E-01 1.000000E+00 9.00000E+100\n", + " 239 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.266974E-01 1.000000E+00 9.00000E+100\n", + " 240 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.334753E-01 1.000000E+00 9.00000E+100\n", + " 241 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398788E-01 1.000000E+00 9.00000E+100\n", + " 242 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398788E-01 1.000000E+00 9.00000E+100\n", + " 243 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.456267E-01 1.000000E+00 9.00000E+100\n", + " 244 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504096E-01 1.000000E+00 9.00000E+100\n", + " 245 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504096E-01 1.000000E+00 9.00000E+100\n", + " 246 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.539462E-01 1.000000E+00 9.00000E+100\n", + " 247 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562275E-01 1.000000E+00 9.00000E+100\n", + " 248 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562275E-01 1.000000E+00 9.00000E+100\n", + " 249 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.574937E-01 1.000000E+00 9.00000E+100\n", + " 250 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.587973E-01 1.000000E+00 9.00000E+100\n", + " 251 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.587973E-01 1.000000E+00 9.00000E+100\n", + " 252 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.617663E-01 1.000000E+00 9.00000E+100\n", + " 253 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692179E-01 1.000000E+00 9.00000E+100\n", + " 254 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692179E-01 1.000000E+00 9.00000E+100\n", + " 255 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.845470E-01 1.000000E+00 9.00000E+100\n", + " 256 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109953E-01 1.000000E+00 9.00000E+100\n", + " 257 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109953E-01 1.000000E+00 9.00000E+100\n", + " 258 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.509620E-01 1.000000E+00 9.00000E+100\n", + " 259 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036152E-01 1.000000E+00 9.00000E+100\n", + " 260 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036152E-01 1.000000E+00 9.00000E+100\n", + " 261 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.660332E-01 1.000000E+00 9.00000E+100\n", + " 262 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332065E-01 1.000000E+00 9.00000E+100\n", + " 263 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332065E-01 1.000000E+00 9.00000E+100\n", + " 264 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.001168E-01 1.000000E+00 9.00000E+100\n", + " 265 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626036E-01 1.000000E+00 9.00000E+100\n", + " 266 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626036E-01 1.000000E+00 9.00000E+100\n", + " 267 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.171125E-01 1.000000E+00 9.00000E+100\n", + " 268 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605117E-01 1.000000E+00 9.00000E+100\n", + " 269 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605117E-01 1.000000E+00 9.00000E+100\n", + " 270 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.894525E-01 1.000000E+00 9.00000E+100\n", + " 271 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.000084E-01 1.800000E+00 9.00000E+100\n", + " 272 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.928085E-01 1.800000E+00 9.00000E+100\n", + " 273 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888639E-01 1.800000E+00 9.00000E+100\n", + " 274 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888639E-01 1.800000E+00 9.00000E+100\n", + " 275 traj.phases.phase0->path_constraint->mach i 1.000000E-01 6.907438E-01 1.800000E+00 9.00000E+100\n", + " 276 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911880E-01 1.800000E+00 9.00000E+100\n", + " 277 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911880E-01 1.800000E+00 9.00000E+100\n", + " 278 traj.phases.phase0->path_constraint->mach i 1.000000E-01 8.675432E-01 1.800000E+00 9.00000E+100\n", + " 279 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082431E-01 1.800000E+00 9.00000E+100\n", + " 280 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082431E-01 1.800000E+00 9.00000E+100\n", + " 281 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.235897E-01 1.800000E+00 9.00000E+100\n", + " 282 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290654E-01 1.800000E+00 9.00000E+100\n", + " 283 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290654E-01 1.800000E+00 9.00000E+100\n", + " 284 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.318654E-01 1.800000E+00 9.00000E+100\n", + " 285 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335852E-01 1.800000E+00 9.00000E+100\n", + " 286 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335852E-01 1.800000E+00 9.00000E+100\n", + " 287 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.348400E-01 1.800000E+00 9.00000E+100\n", + " 288 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351622E-01 1.800000E+00 9.00000E+100\n", + " 289 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351622E-01 1.800000E+00 9.00000E+100\n", + " 290 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.342034E-01 1.800000E+00 9.00000E+100\n", + " 291 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323520E-01 1.800000E+00 9.00000E+100\n", + " 292 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323520E-01 1.800000E+00 9.00000E+100\n", + " 293 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.308111E-01 1.800000E+00 9.00000E+100\n", + " 294 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336840E-01 1.800000E+00 9.00000E+100\n", + " 295 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336840E-01 1.800000E+00 9.00000E+100\n", + " 296 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.466460E-01 1.800000E+00 9.00000E+100\n", + " 297 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.729698E-01 1.800000E+00 9.00000E+100\n", + " 298 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.729698E-01 1.800000E+00 9.00000E+100\n", + " 299 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.012193E+00 1.800000E+00 9.00000E+100\n", + " 300 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060927E+00 1.800000E+00 9.00000E+100\n", + " 301 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060927E+00 1.800000E+00 9.00000E+100\n", + " 302 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.115356E+00 1.800000E+00 9.00000E+100\n", + " 303 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169773E+00 1.800000E+00 9.00000E+100\n", + " 304 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169773E+00 1.800000E+00 9.00000E+100\n", + " 305 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.219048E+00 1.800000E+00 9.00000E+100\n", + " 306 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260739E+00 1.800000E+00 9.00000E+100\n", + " 307 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260739E+00 1.800000E+00 9.00000E+100\n", + " 308 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.294123E+00 1.800000E+00 9.00000E+100\n", + " 309 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320529E+00 1.800000E+00 9.00000E+100\n", + " 310 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320529E+00 1.800000E+00 9.00000E+100\n", + " 311 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.341662E+00 1.800000E+00 9.00000E+100\n", + " 312 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359366E+00 1.800000E+00 9.00000E+100\n", + " 313 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359366E+00 1.800000E+00 9.00000E+100\n", + " 314 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.375207E+00 1.800000E+00 9.00000E+100\n", + " 315 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390234E+00 1.800000E+00 9.00000E+100\n", + " 316 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390234E+00 1.800000E+00 9.00000E+100\n", + " 317 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.405192E+00 1.800000E+00 9.00000E+100\n", + " 318 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420395E+00 1.800000E+00 9.00000E+100\n", + " 319 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420395E+00 1.800000E+00 9.00000E+100\n", + " 320 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.435996E+00 1.800000E+00 9.00000E+100\n", + " 321 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451969E+00 1.800000E+00 9.00000E+100\n", + " 322 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451969E+00 1.800000E+00 9.00000E+100\n", + " 323 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.468250E+00 1.800000E+00 9.00000E+100\n", + " 324 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484783E+00 1.800000E+00 9.00000E+100\n", + " 325 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484783E+00 1.800000E+00 9.00000E+100\n", + " 326 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.501553E+00 1.800000E+00 9.00000E+100\n", + " 327 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518640E+00 1.800000E+00 9.00000E+100\n", + " 328 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518640E+00 1.800000E+00 9.00000E+100\n", + " 329 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.536185E+00 1.800000E+00 9.00000E+100\n", + " 330 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554416E+00 1.800000E+00 9.00000E+100\n", + " 331 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554416E+00 1.800000E+00 9.00000E+100\n", + " 332 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.573585E+00 1.800000E+00 9.00000E+100\n", + " 333 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593892E+00 1.800000E+00 9.00000E+100\n", + " 334 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593892E+00 1.800000E+00 9.00000E+100\n", + " 335 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.615445E+00 1.800000E+00 9.00000E+100\n", + " 336 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637978E+00 1.800000E+00 9.00000E+100\n", + " 337 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637978E+00 1.800000E+00 9.00000E+100\n", + " 338 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.660941E+00 1.800000E+00 9.00000E+100\n", + " 339 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683018E+00 1.800000E+00 9.00000E+100\n", + " 340 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683018E+00 1.800000E+00 9.00000E+100\n", + " 341 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.702445E+00 1.800000E+00 9.00000E+100\n", + " 342 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716557E+00 1.800000E+00 9.00000E+100\n", + " 343 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716557E+00 1.800000E+00 9.00000E+100\n", + " 344 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.722339E+00 1.800000E+00 9.00000E+100\n", + " 345 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716750E+00 1.800000E+00 9.00000E+100\n", + " 346 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716750E+00 1.800000E+00 9.00000E+100\n", + " 347 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.696698E+00 1.800000E+00 9.00000E+100\n", + " 348 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634726E+00 1.800000E+00 9.00000E+100\n", + " 349 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634726E+00 1.800000E+00 9.00000E+100\n", + " 350 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.553459E+00 1.800000E+00 9.00000E+100\n", + " 351 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458854E+00 1.800000E+00 9.00000E+100\n", + " 352 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458854E+00 1.800000E+00 9.00000E+100\n", + " 353 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.357861E+00 1.800000E+00 9.00000E+100\n", + " 354 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256846E+00 1.800000E+00 9.00000E+100\n", + " 355 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256846E+00 1.800000E+00 9.00000E+100\n", + " 356 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.162025E+00 1.800000E+00 9.00000E+100\n", + " 357 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081333E+00 1.800000E+00 9.00000E+100\n", + " 358 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081333E+00 1.800000E+00 9.00000E+100\n", + " 359 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.024102E+00 1.800000E+00 9.00000E+100\n", + "\n", + "\n", + " Exit Status\n", + " Inform Description\n", + " 0 Solve Succeeded\n", + "--------------------------------------------------------------------------------\n", + "\n", + "coloring_files\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/utils/coloring.py:1326: OMDeprecationWarning:display is deprecated. Use display_bokeh for rich html displays of coloringor display_txt for a text-based display.\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAANaCAYAAABGOA9mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABnkElEQVR4nO3deXxUVZr/8W9YsrFKIIAYULBBFGwolUUUUESQaKP+wBEUtdHWEWVabadtURpwX3pQhtG23Wi3Vmy13eLG4k5UnKC27S4iuKCALLIOy/n9Ubm39qQqSeWeuvfzfr14kVRVkpPKSU499zznefKMMUYAAMBKTbweAAAASI2FGgAAi7FQAwBgMRZqAAAsxkINAIDFWKgBALAYCzUAABZjoQYAwGIs1AAAWIyF2iJ5eXlp/XvllVdq/VzXXXednnzyyXqPZ+bMmWk97sILL6zX12oIw4cPV58+fdJ6bLrfW7YsX75cF154oXr27KmioiIVFxfroIMO0pVXXqlvv/024883c+ZM5eXlNfg4hw8fruHDhzf4503Xzp07dcABB+iGG25wb3vvvfdUXl6url27qqioSO3atdPgwYP14IMPpvwcs2fPVt++fVVUVKS2bdvq8MMP15IlS2Ied+utt+rkk0/Wfvvtp7y8vEb7vj/77DNdeumlOuSQQ9S2bVu1a9dOQ4YM0WOPPZbw2G+++UYXXXSRhg0bprZt2yovL09//etfEx63adMmXXvttRo+fLg6deqkli1bqm/fvrrxxhu1ffv2mMcuWrRILVu2rNO8Q+No5vUAEFFZWRnz/tVXX62XX35Zixcvjrn9wAMPrPVzXXfddRo3bpxOPPHEhhyib1RWVmqfffbx5Gs/++yzOvXUU9W+fXtdeOGF6t+/v/Ly8vTPf/5T9957ryoqKrRs2TJPxhbv9ttv9/zrr1+/XlOnTnVv27Bhg8rKyjRhwgR16dJFW7Zs0UMPPaRJkyZpxYoVuvLKK93H7t69WyeddJLeeOMN/f73v9fhhx+uLVu26H//93+1ZcuWmK91xx13qEWLFjr66KP1zDPPNNr3+NJLL6miokKTJk3SYYcdpl27dmn+/PkaP368Zs2apT/+8Y/uY7/44gs99NBD6tevn8aMGaOHH3446edcuXKlbr31Vk2aNEmXXHKJWrZsqddff10zZ87UggULtGDBAveF3YgRIzRgwABNmzZN9913X6N8z8iQgbXOPPNM06JFizp9bIsWLcyZZ55Zr68vycyYMSOtx11wwQX1+loNYdiwYeaggw7yehg1Wr58uWnRooXp37+/2bBhQ8L9e/bsMY8//njGn3fGjBmmIX+dt2zZ0mCfq6527txpunTpYv7whz+k9fiBAweasrKymNtuueUW06RJE1NZWVnrx+/evdt9+6CDDjLDhg3LaLx1tWbNGrNnz56E28vLy01xcbHZvn27e1v0GJcuXWokmXnz5iV87ObNm83mzZsTbr/55puNJPP666/H3P7YY4+Zpk2bmpUrV9bjO0G2cOk7x/z000+aMmWKunTpovz8fHXv3l1XXHGFduzY4T4mLy9PW7Zs0X333edeLncu461Zs0ZTpkzRgQceqJYtW6q0tFRHH320Xn/99QYb4/bt2/W73/1O/fr1U5s2bdxLk0899VTCY/fs2aO5c+eqX79+7mXJQYMG6emnn455zE033aQDDjhABQUFKi0t1RlnnKFvvvkm6dd//fXXNWjQIBUVFalLly6aPn26du/eHfOY+Evf6T4vK1asUF5env70pz9p9uzZ2m+//dSyZUsNHjxYb731Vq3PzezZs7VlyxbdfvvtatOmTcL9eXl5Ovnkk2Nuu/fee/XLX/5ShYWFateunU466SR9/PHHtX6tdJ83Z8vgtdde0+GHH67i4mJNnjzZvS/6EnCm3/9dd92lnj17qqCgQAceeKD+9re/6ayzztK+++5b6/iffvppffvtt5o0aVKtj5Wk9u3bq1mz2IuEc+bM0dChQzVo0KBaP75Jk7r9OTTGaMyYMSopKdHKlSvd27du3aqDDjpIvXv3Toje48edbNtiwIAB2rp1q3766aeMx9iiRQu1aNEi6eeUpFWrVsXcfsIJJ6hly5a666670vr8aFws1Dlk+/btOuqoo3T//ffrkksuUUVFhU4//XTddNNNMX/cKysrVVRUpDFjxqiyslKVlZXuJUznl37GjBmqqKjQvHnz1L17dw0fPjytve907NixQz/99JMuvfRSPfnkk3r44Yd1xBFH6OSTT9b9998f89izzjpLv/3tb3XYYYdp/vz5euSRR/SrX/1KK1ascB9z/vnn67LLLtPIkSP19NNP6+qrr9YLL7ygww8/XGvXro35fKtXr9app56q0047TU899ZTGjRuna665Rr/97W9rHHOmz8ttt92mBQsW6NZbb9VDDz2kLVu2aMyYMdq4cWONX+ell15Sx44d01o4JOn666/X2WefrYMOOkhPPPGE5syZow8++ECDBw/W559/XuPHZvK8ff/99zr99NM1ceJEPffcc5oyZUqNnzud7//OO+/Uueeeq4MPPlhPPPGErrzySs2aNSvteVZRUaHS0tKUWz179uzRrl27tGbNGt1+++168cUXddlll7n3r1q1SitWrFDfvn01bdo0dezYUc2aNdNBBx3UoJd48/Ly9MADD6i4uFinnHKKdu7cKUmaMmWKvvrqKz366KNJF83avPzyy+rQoYNKS0sbbKzONtpBBx0Uc3t+fr4OP/xwVVRUNNjXQgPyOqRHavGXvu+44w4jyTz66KMxj7vxxhuNJPPSSy+5t6V76XvXrl1m586dZsSIEeakk06KuU8NdOnb+Rpnn3226d+/v3v7a6+9ZiSZK664IuXHfvzxx0aSmTJlSsztb7/9tpFkpk2b5t42bNgwI8k89dRTMY/9zW9+Y5o0aWK+/vrrtL+3VM/LV199ZSSZvn37ml27drm3v/POO0aSefjhh1N+TmOMKSwsNIMGDarxMY7169eboqIiM2bMmJjbV65caQoKCszEiRPd2+IvfdfleVu0aFHCGIYNGxZzCTjd73/37t2mU6dOZuDAgTGf7+uvvzbNmzc33bp1q/X77927txk9enTK+8877zwjyUgy+fn55vbbb4+5v7Ky0kgyrVu3NgceeKB59NFHzYsvvmjGjRtnJJk777wz5eeuy6XvN954wzRr1sxcdNFF5t577zWSzN13353R53DcddddRpKZM2dOysfUdOk7mffff98UFRUl/J47rrjiCtOkSZOkl8zhLSLqHLJ48WK1aNFC48aNi7n9rLPOkhTO3kzHHXfcoVAopMLCQjVr1kzNmzfXokWL0rqcmq6///3vGjJkiFq2bOl+jXvuuSfmazz//POSpAsuuCDl53n55ZclRb5Hx4ABA9S7d++E77lVq1b61a9+FXPbxIkTtWfPHr322ms1jjmT56W8vFxNmzZ13z/44IMlSV9//XWNXyMTlZWV2rZtW8L3XlZWpqOPPrrGn3emz9tee+2lo48+Ou2x1fb9f/rpp1q9erVOOeWUmI/r2rWrhgwZktbX+O6772qMJqdNm6alS5eqoqJCkydP1oUXXqg//elP7v179uyRFL4S9dxzz2n8+PE69thj9eijjyoUCumqq65K75tN05AhQ3Tttdfq1ltv1fnnn6/TTz9dZ599dsaf5/nnn9cFF1ygcePGxSTR1ceKFSt0/PHHq6ysTHfffXfSx5SWlmrPnj1avXp1g3xNNBwW6hyybt06derUKWE/q7S0VM2aNdO6detq/RyzZ8/W+eefr4EDB+rxxx/XW2+9paVLl2r06NHatm1bg4zziSee0CmnnKIuXbrowQcfVGVlpZYuXarJkyfHHA1Zs2aNmjZtqk6dOqX8XM731Llz54T79t5774TvuWPHjgmPcz5/Tc9Pps9LSUlJzPsFBQWSVOtz2LVrV3311Vc1PsaR6fden49N9ria1Pb9O58/2c8j2W3JbNu2TYWFhSnv79q1qw499FCNGTNGf/7zn3Xuuefq8ssv15o1a2LGeMABB6hbt27ux+Xl5WnUqFH65ptv9OOPP6Y1lnSddtppys/P144dO/Sf//mfGX/8iy++qJNPPlkjR47UQw891CBH7r7++msdddRRatasmRYtWqR27dolfZzzXDfU3wE0HI5n5ZCSkhK9/fbbMsbE/AL/+OOP2rVrl9q3b1/r53jwwQc1fPhw/fnPf465/eeff26wcT744IPab7/9NH/+/JhxRie8SVKHDh20e/durV69OuVC4fyx/f777xOOU3333XcJ3/MPP/yQ8DmcCCF+cYkfc7afF0kaNWqU5s6dq7feeqvWfero7z1esu891cem87w19Bls5+vX9POoTfv27WMSqWozYMAA3XHHHVq+fLk6dOigHj16qLi4OOljjTGS6p5Alszu3bt12mmnaa+99lJBQYHOPvtsvfnmm8rPz0/r41988UWdeOKJGjZsmB5//PG0P64mX3/9tYYPHy5jjF555ZUajyQ6z3U6f0fQuIioc8iIESO0efPmhEImToLWiBEj3NsKCgqSvjLOy8tzox/HBx98kHCGuz7y8vKUn58f88d/9erVCVnfxx13nCQlLI7RnMux8cUsli5dqo8//jjme5bCC2t0xrgk/e1vf1OTJk00dOjQGsec7edFki6++GK1aNFCU6ZMSZp4ZozRP/7xD0nS4MGDVVRUlPC9f/PNN1q8eHHC9x4t0+etofXq1UudOnXSo48+GnP7ypUrEwqNpHLAAQfoyy+/TPtrvvzyy2rSpIm6d+8uSWrWrJnGjh2rjz/+OCY50RijF154QT169GjQRWnGjBl6/fXX9dBDD2n+/Pl6//33046qX3rpJZ144ok64ogj9OSTTybMxbpYuXKlhg8frt27d2vx4sUxVxWSWb58uUpKStK+4oHGQ0SdQ8444wzddtttOvPMM91s1jfeeEPXXXedxowZo2OOOcZ9bN++ffXKK6/omWeeUefOndWqVSv16tVLxx9/vK6++mrNmDFDw4YN06effqqrrrpK++23n3bt2lXnsUUvyscff7yeeOIJTZkyRePGjdOqVat09dVXq3PnzjGZykceeaQmTZqka665Rj/88IOOP/54FRQUaNmyZSouLtbUqVPVq1cvnXvuuZo7d66aNGmi4447TitWrND06dNVVlamiy++OGYcJSUlOv/887Vy5Ur17NlTzz33nO666y6df/756tq1a8rxZ+t5ibfffvvpkUce0b/927+pX79+bsETSfroo4907733yhijk046SW3bttX06dM1bdo0nXHGGZowYYLWrVunWbNmqbCwUDNmzEj5dTJ93hpakyZNNGvWLJ133nkaN26cJk+erA0bNmjWrFnq3LlzWpHs8OHDddVVV2nr1q0xkfG5556r1q1ba8CAAerYsaPWrl2rv//975o/f77+8z//Ux06dHAfe/XVV+v555/X6NGjNXPmTLVu3Vp333233n///YQXEe+++667oG/atEnGGLc62GGHHVbjQrdgwQJdf/31mj59uvsi6Prrr9ell16q4cOH66STTkr5sW+88YZOPPFEderUSdOmTdN7770Xc/+BBx6o1q1bu+87Y1q+fLk77pYtW0qSm7/y448/6qijjtL333+ve+65Rz/++GPMZf599tknIbp+6623NGzYsKxUuEM9eZjIhlokK3iybt068+///u+mc+fOplmzZqZbt27m8ssvjymKYIwx7733nhkyZIgpLi42ktwM1h07dphLL73UdOnSxRQWFppQKGSefPJJc+aZZyZk4iqNrO8tW7YYSeZ3v/tdzO033HCD2XfffU1BQYHp3bu3ueuuu5IW5di9e7e55ZZbTJ8+fUx+fr5p06aNGTx4sHnmmWdiHnPjjTeanj17mubNm5v27dub008/3axatSrmczkFT1555RVz6KGHmoKCAtO5c2czbdo0s3Pnzhq/t3SfFyfr+eabb054LtJ5vhxffvmlmTJlitl///1NQUGBKSoqMgceeKC55JJLzFdffRXz2LvvvtscfPDB7vMzduxY869//SvmMame20yet2RSZX2n+/3feeedZv/99zf5+fmmZ8+e5t577zVjx46Nyf5P5YsvvjB5eXkJpxzuvfdec+SRR5r27dubZs2ambZt25phw4aZBx54IOnn+ec//2nKy8tNq1at3Kz76PnlOPPMM90s8vh/NWVWf/fdd6a0tNQcffTRMQVJ9uzZY0444QTTtm3bhJ9pNOdnl+rfyy+/HPP4mh7rePnll2t8XPzP6YsvvjCS6lRsB9mXZ0z1Zg1QB8uWLVMoFNJtt91W69lbYMOGDerZs6dOPPFE3XnnnbU+/oQTTtCuXbvcEwLIjunTp+v+++/Xl19+mVA0Bt5joUadfPPNN3rvvfd07bXX6oMPPtDnn3+uvffe2+thwSKrV6/Wtddeq6OOOkolJSX6+uuvdcstt+iTTz7Ru+++m1B0I5kPP/xQ/fv315IlS3TYYYc1wqiDZ8OGDerevbvmzp2r0047zevhIAmSyVAnd999t8aNG6fdu3fr6aefZpFGgoKCAq1YsUJTpkzRyJEj9R//8R/q2LGjXnnllbQWaUnq06eP5s2bx9neLPrqq690+eWXa+LEiV4PBSkQUQMAYDEiagAALJYzC/XPP/+s3//+9zr22GPVoUOHhO5H0f77v/9bgwYNUvv27VVQUKCuXbvq1FNP1b/+9a+0vtZPP/2kU089VaWlpcrLy8tKT+f4rkSNId2uRV778ccfddZZZ6l9+/YqLi7W4MGD0y6P6iczZ8607qjMzp07dcABB+iGG26Iuf2dd97RqFGj1KpVK7Vs2VJHHXWU3nzzzYSPr+/v5v/93//pj3/8o/bbbz/l5+erW7duuvzyyxNqBqxfv14TJkzQXnvtpe7duydNXHv77bdVVFSUduncV155RXl5eQ3WvAbZcd111yXUmpDCJZZbtmypb7/9tvEHVU85s1CvW7dOd955p3bs2FHrwrlu3Todd9xxuvvuu/XSSy9p1qxZWrZsmQYOHKhPP/201q919dVX6x//+IduueUWVVZW6qabbmqg7wK12bFjh0aMGKFFixZpzpw5euqpp9SxY0eNHj1ar776qtfDC7zbb79d69evj6lBvXTpUg0dOlTbtm3TAw88oAceeEDbt2/XiBEjEgrG1Pd3c8KECbr55pt17rnn6rnnntM555yj2bNn69/+7d9iHve73/1Oy5Yt04MPPqipU6fq/PPPj2lZumvXLp177rn6/e9/r969e6f1vYdCIVVWVioUCqX1eHgj1UI9YsQIDRgwQNOmTWv8QdWXl2fDMrFnzx63ufqaNWsyOrNqjDEfffSRkWSmT59e62OPOeYY07t377oONS3x51MbQ7Kz0vWxdevWBvtcjttuu81IMkuWLHFv27lzpznwwAPNgAED6vQ5t2zZ0lDDa1TJzkbXR32fh507d5ouXbqYP/zhDzG3jxo1ynTs2DHm82/atMm0b9/eHH744bV+3nR/N51uWP/1X/8Vc/t1112X0D2utLTU/O1vf3PfHzlypLnsssvc96+//nrTq1evhPoDuSZX53Y21dQ58LHHHjNNmzY1K1eubNxB1VPORNR5eXn1ugzoVCuq6YzgihUrlJeXp4ULF+rjjz92v+bTTz+tZs2a6eabb3Yfu3btWjVp0kRt2rSJqVz1H//xH+rQoYNbS9gYo5tuukndunVTYWGhQqFQRmdC9+zZo7lz56pfv34qKipS27ZtNWjQoJgymXv27NFNN92kAw44QAUFBSotLdUZZ5yhb775ptbPv337dl1++eXupcQuXbroggsu0IYNG2Iet++++7oVx/r376/CwkLNmjVLUrhT1sCBA9WmTRsVFxere/fumjx5ctrfY7R//OMf6tWrlwYPHuze1qxZM51++ul65513ar1sNXz4cPXp00evvfaaDj/8cBUXF7tj2bRpky699NKY7/Wiiy7Sli1b3I/v37+/jjzyyITPu3v3bnXp0iWm73cqf/vb3zR48GC1bNlSLVu2VL9+/XTPPffEPObee+/VL3/5SxUWFqpdu3Y66aST0roEm+7PuqbnYfHixRo+fLhKSkpUVFSkrl276v/9v/+nrVu31vi1n376aX377beaNGlSzO1vvvmmhg8fHlM9rFWrVho6dKiWLFmStFZ5tHR+N52vI0ljxoyJuf3444+XJD3++OPubdu3b4/pAd2yZUu3Iczy5ct19dVX6y9/+UtGpTqTXfo+66yz1LJlS33yyScaNWqUWrRooc6dO7tbA2+99ZaOOOIItWjRQj179kzog/3Xv/5VeXl5WrBggX7961+rXbt2atGihU444QS38pijpp/pypUr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qaee0hlnnFHj5dkFCxZo9+7dNf68KisrtW3btoTnvKysTEcffXSNP69Mf9bJnod+/fopPz9f5557ru67776Ey6s1+e6771RaWppw+9SpU/XZZ5/pwgsv1LfffqtVq1bp3//93/X1119LSt5Ksi6/m8cdd5z2339/XXbZZVqwYIE2bNigF154QdOmTVPTpk1jvk6vXr30ySef6PPPP9eaNWt0zz33aP369brkkkt0yy23qF27drr99tvdDlqnnXaa1q9fn/ZzES0vLy/mcnyzZs20//77q3Pnzm7DFUlq166dSktL3eclWqq/Ec7P3JHsZ7p48WIdeOCBGjBgQMztZ511lowx7u953759dcghh2jevHnuYz7++GO98847MVtV6f6uOI466qiYbQYnOe+4446L+X11bne+/yVLluinn37SmWeeGfN19uzZo9GjR2vp0qUJl9p/9atfxbx/8MEHa/v27Rn1FS8tLdWePXtyqoiOrxfqUCikQYMG6bTTTtPLL78sY0ydM/6cPaGFCxfqiy++0IoVK9yF+u2339bmzZu1cOFCde/eXfvtt5+kcIarJHXq1Cnh8yW7Ld6aNWvUtGnTGh/rfI1k/Zz33ntv9/5UH9usWbOYbkNS+A9Pp06dEj422dcYOnSonnzySe3atUtnnHGG9tlnH/Xp00cPP/xwjd9bKiUlJUnH7PTKTdX0vrZx/vDDD/rggw/UvHnzmH+tWrWSMUZr1651Hzt58mR9++237guwhx9+WDt27EhYIOOtWbNGkmrs+Vvfn1cmH5vscT169NDChQtVWlqqCy64QD169FCPHj00Z86clF/XsW3bNhUWFibcPnnyZN1www164IEHtM8++6hr16766KOPdOmll0qSunTpkvAxdfndzM/P1/PPP6+uXbvq2GOP1V577aVx48Zp2rRp2muvvRK+TpMmTbT//vu7rSwvvfRS9e/fXxMnTtSiRYt02WWXaf78+friiy+0Zs0aXXTRRbU+B8kUFxcnPC/5+flJ52p+fr67Vx4t1d+IdH6m69atSzknnPsdkydPVmVlpT755BNJ0rx581RQUKAJEya4j8nkd0VK/J10+minut35/p1e5ePGjUv4WjfeeKOMMQn9yON7yjs5Bsla+qbi/Kwy+RivBab6eqtWrXTAAQfos88+q9PH5+fn64gjjtDChQu1zz77qFOnTurbt6/b+/aVV17RokWL3MQWKTKpkr1yW716da1nmjt06KDdu3dr9erVSX8Ro7/G999/n7BAfPfddzX22y0pKdGuXbu0Zs2amMXaGKPVq1cn1FZOFc2OHTtWY8eO1Y4dO/TWW2/p+uuv18SJE7XvvvvGJIWlo2/fvvrnP/+ZcLtzW58+fWr9HMnG2b59exUVFenee+9N+jHRz9OoUaO09957a968eRo1apTmzZungQMH6sADD6zx6zrP4TfffKOysrKkj4n+ecVL5+flfGw6P+tUP68jjzxSRx55pHbv3q13331Xc+fO1UUXXaSOHTvq1FNPTfn127dvn/CH03HZZZfpoosu0ueff65WrVqpW7duOu+889SiRQsdcsghKT+nlNnv5v7776/Kykp9++23+umnn9SjRw9t3LhRv/3tb2vsN/7KK69o/vz57jx6/vnndeyxx+rQQw+VJF144YU6++yza/362ZLqb8T+++8fc1uyn2lJSUnK+STFzu0JEybokksu0V//+ldde+21euCBB3TiiSdqr732ch+Tye9KfTifZ+7cuRo0aFDSx2SjN7YzhxuyF3m2+TqijrZ27Vr985//TJj4mTjmmGP0v//7v3r88cfdy9stWrTQoEGDNHfuXH333XcxPaEHDRqkwsJCPfTQQzGfZ8mSJUkvf8U77rjjJEl//vOfUz7GuQz24IMPxty+dOlSffzxx25v3GSc++I/9vHHH9eWLVtq/NhkCgoKNGzYMN14442Swp21MnXSSSfpk08+0dtvv+3etmvXLj344IMaOHBgnWuKH3/88fryyy9VUlKiQw89NOFf9Iumpk2batKkSXryySf1+uuv6913300ri/3YY49V06ZNa/x5DR48WEVFRQnP+TfffKPFixfX+JzX52edTNOmTTVw4EDddtttkqSqqqoaH3/AAQfoyy+/THl/QUGB+vTpo27dumnlypWaP3++fvOb36ioqKjGz1uX380uXbqob9++Ki4u1s0336wWLVqkXGh37Nih8847TzNmzHBfWBtjYi6rbt682T2p4YVUfyPSKYo0YsQIffTRRwk/v/vvv195eXk66qij3Nv22msvnXjiibr//vv17LPPavXq1QlzO5PflfoYMmSI2rZtq48++ijp1zn00EPdKDwTBQUFNUbLy5cvV0lJSVZeBGRLTkXUzz//vLZs2aKff/5ZkvTRRx+5TdTHjBmj4uJibdy4USNHjtTEiRP1i1/8QkVFRfrss880Z84c7dixQzNmzKjz1x8xYoR2796tRYsWxRyzOOaYYzRjxgzl5eXF7B/ttddeuvTSS3XNNdfonHPO0fjx47Vq1SrNnDkzrUvfRx55pCZNmqRrrrlGP/zwg44//ngVFBRo2bJlKi4u1tSpU9WrVy+de+65mjt3rpo0aaLjjjtOK1as0PTp01VWVqaLL7445ecfOXKkRo0apcsuu0ybNm3SkCFD9MEHH2jGjBnq379/0qMc8f74xz/qm2++0YgRI7TPPvtow4YNmjNnjpo3b65hw4a5jxs+fLheffXVWv8YTp48WbfddpvGjx+vG264QaWlpbr99tv16aefujkAdXHRRRfp8ccf19ChQ3XxxRfr4IMP1p49e7Ry5Uq99NJL+t3vfqeBAwfGjOPGG2/UxIkTVVRUlFBQI5l9991X06ZN09VXX61t27a5x0g++ugjrV27VrNmzVLbtm01ffp0TZs2TWeccYYmTJigdevWadasWSosLKxxftbnZ+244447tHjxYpWXl6tr167avn27GzlFv8hMZvjw4brqqqu0devWmKNYH374oR5//HEdeuihKigo0Pvvv68bbrhBv/jFL3T11Ve7j8v0d7NZs2YaNmxYzN77TTfdpE6dOqlr16764Ycf9Oijj+rJJ5/UAw88kPQSuyRde+21KiwsjDl+NGrUKM2ZM0f//d//rf33319XXXWVRo8eXevzly3vvvtuzN+IK664Ql26dEmrdezFF1+s+++/X+Xl5brqqqvUrVs3VVRU6Pbbb9f555+fkFcyefJkzZ8/XxdeeKH22WefhJ97pr8rddWyZUvNnTtXZ555pn766SeNGzdOpaWlWrNmjd5//32tWbOmxhe9qfTt21evvPKKnnnmGXXu3FmtWrVSr1693PvfeustDRs2zLqqfzXyKoutLrp165ayEbrTmH379u3mnHPOMb179zYtW7Y0zZo1M/vss485/fTTE9L0U0mW9W1M+DhT+/btjSTz7bffurc7GZrJUv737Nljrr/+elNWVmby8/PNwQcfbJ555pm0C57s3r3b3HLLLaZPnz4mPz/ftGnTxgwePDim8f3u3bvNjTfeaHr27GmaN29u2rdvb04//XSzatWqmM+VrODJtm3bzGWXXWa6detmmjdvbjp37mzOP//8hKM63bp1M+Xl5Qnje/bZZ81xxx1nunTpYvLz801paakZM2aMef3112Med8ghh5hOnTrV+v0aY8zq1avNGWecYdq1a2cKCwvNoEGDzIIFC9L62FQ/O2OM2bx5s7nyyitNr1693Oeyb9++5uKLLzarV69OePzhhx9uJNWYxZ3M/fffbw477DBTWFhoWrZsafr372/mzZsX85i7777bHHzwwe44xo4dmzA/kx3PSvdnnep5qKysNCeddJLp1q2bKSgoMCUlJWbYsGG1HjszxpgvvvjC5OXlmUcffTTm9k8//dQMHTrUtGvXzuTn55v999/fXHnllQlZtZn+birJyYhZs2aZHj16mIKCAtO2bVszevRo89prr6Uc80cffWQKCwvNW2+9lXDf7NmzTdeuXU3r1q3NuHHjYo63JZMq67tFixYJj031/Mf/HjlZ3y+99JKZNGmSadu2rXsq4PPPP0/rcxpjzNdff20mTpxoSkpKTPPmzU2vXr3MzTffHJOJ79i9e7cpKyur8URJur8rkswFF1wQ87FfffWVkWRuvvnmmNud5+/vf/97zO2vvvqqKS8vN+3atTPNmzc3Xbp0MeXl5TGPc34X4n9GzvPn/P03xpj33nvPDBkyxBQXFyfMoS+++CIhSz8X0D0LWffzzz+rXbt2uvXWW2vMiIb9TjjhBO3atSujoj1I7a9//at+/etfa+nSpe5+ObJn+vTpuv/++/Xll1/WWmDHJoHZo4Z3XnvtNXXp0kW/+c1vvB4K6un666/XwoULtXTpUq+HAmRkw4YNuu2223Tdddfl1CItsVCjEZSXl2vFihV1SgyBXfr06aN58+bl1BlUQJK++uorXX755Zo4caLXQ8kYl74BALAYETUAABZjoQYAwGIs1AAAWIyFGgAAi6WVo75nzx599913atWqVW5VcwEAwELGGP3888/ae++9k3aYi5bWQv3dd9+lbDIAAADqZtWqVTV23JPSXKhbtWolSbrvvvvcFo6ItGkLqvFPhovav3aexwOxSNDnhCOXGh5kG3MCyWzdulVnnnmmu77WJK2F2rncXVxcrJYtW9ZvdD7iNAcJrPzwXGBKRAR+TlTj70QEcwI1SWc7OaM6ah07dkza9zSoUvWIDhrmhFS+a6MkqarsAI9HYgfmRAR/J5DM5s2b034sWd8AAFiMhRoA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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Jacobian shape: (361, 212) (3.44% nonzero)\n", + "FWD solves: 13 REV solves: 0\n", + "Total colors vs. total size: 13 vs 212 (93.87% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-12\n", + "Time to compute sparsity: 0.1689 sec\n", + "Time to compute coloring: 0.1029 sec\n", + "Memory to compute coloring: 0.0000 MB\n", + "Coloring created on: 2024-08-14 08:50:56\n", + "\n", + "--- Constraint Report [traj] ---\n", + " --- phase0 ---\n", + " [final] 2.0000e+04 == h [m]\n", + " [final] 1.0000e+00 == aero.mach [None]\n", + " [final] 0.0000e+00 == gam [rad]\n", + " [path] 1.0000e+02 <= h <= 2.0000e+04 [m]\n", + " [path] 1.0000e-01 <= aero.mach <= 1.8000e+00 [None]\n", + "\n", + "--------------------------------------------------------------------------------\n", + "--- Finite differenced component -----------------------------------------------\n", + "-------------------------------------------------------------------------------- \n", + "\n", + "Model viewer data has already been recorded for Driver.\n", + "Model viewer data has already been recorded for Driver.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/driver.py:659: DriverWarning:The following design variable initial conditions are out of their specified bounds:\n", + " traj.phase0.t_duration\n", + " val: [500.]\n", + " lower: 50.0\n", + " upper: 400.0\n", + "Set the initial value of the design variable to a valid value or set the driver option['invalid_desvar_behavior'] to 'ignore'.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Full total jacobian for problem 'problem7' was computed 3 times, taking 0.19410145794972777 seconds.\n", + "Total jacobian shape: (361, 212) \n", + "\n", + "\n", + "Jacobian shape: (361, 212) (23.30% nonzero)\n", + "FWD solves: 154 REV solves: 0\n", + "Total colors vs. total size: 154 vs 212 (27.36% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-12\n", + "Time to compute sparsity: 0.1941 sec\n", + "Time to compute coloring: 0.4864 sec\n", + "Memory to compute coloring: 2.9375 MB\n", + "Coloring created on: 2024-08-14 08:51:01\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->h', inds=[(0, 0)]), ('traj.phases.phase0->path_constraint->mach', inds=[(0, 0)])] cannot be impacted by the design variables of the problem.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Optimization Problem -- Optimization using pyOpt_sparse\n", + "================================================================================\n", + " Objective Function: _objfunc\n", + "\n", + " Solution: \n", + "--------------------------------------------------------------------------------\n", + " Total Time: 9.5988\n", + " User Objective Time : 1.5329\n", + " User Sensitivity Time : 6.0089\n", + " Interface Time : 0.4596\n", + " Opt Solver Time: 1.5974\n", + " Calls to Objective Function : 163\n", + " Calls to Sens Function : 141\n", + "\n", + "\n", + " Objectives\n", + " Index Name Value\n", + " 0 traj.phase0.t 3.235052E+00\n", + "\n", + " Variables (c - continuous, i - integer, d - discrete)\n", + " Index Name Type Lower Bound Value Upper Bound Status\n", + " 0 traj.phase0.t_duration_0 c 5.000000E-01 3.235052E+00 4.000000E+00 \n", + " 1 traj.phase0.states:r_0 c 0.000000E+00 1.808251E+00 1.000000E+03 \n", + " 2 traj.phase0.states:r_1 c 0.000000E+00 4.338695E+00 1.000000E+03 \n", + " 3 traj.phase0.states:r_2 c 0.000000E+00 7.365666E+00 1.000000E+03 \n", + " 4 traj.phase0.states:r_3 c 0.000000E+00 1.015786E+01 1.000000E+03 \n", + " 5 traj.phase0.states:r_4 c 0.000000E+00 1.292803E+01 1.000000E+03 \n", + " 6 traj.phase0.states:r_5 c 0.000000E+00 1.576502E+01 1.000000E+03 \n", + " 7 traj.phase0.states:r_6 c 0.000000E+00 1.862498E+01 1.000000E+03 \n", + " 8 traj.phase0.states:r_7 c 0.000000E+00 2.150890E+01 1.000000E+03 \n", + " 9 traj.phase0.states:r_8 c 0.000000E+00 2.455439E+01 1.000000E+03 \n", + " 10 traj.phase0.states:r_9 c 0.000000E+00 2.786181E+01 1.000000E+03 \n", + " 11 traj.phase0.states:r_10 c 0.000000E+00 3.146365E+01 1.000000E+03 \n", + " 12 traj.phase0.states:r_11 c 0.000000E+00 3.545645E+01 1.000000E+03 \n", + " 13 traj.phase0.states:r_12 c 0.000000E+00 3.978269E+01 1.000000E+03 \n", + " 14 traj.phase0.states:r_13 c 0.000000E+00 4.429074E+01 1.000000E+03 \n", + " 15 traj.phase0.states:r_14 c 0.000000E+00 4.889768E+01 1.000000E+03 \n", + " 16 traj.phase0.states:r_15 c 0.000000E+00 5.358594E+01 1.000000E+03 \n", + " 17 traj.phase0.states:r_16 c 0.000000E+00 5.835875E+01 1.000000E+03 \n", + " 18 traj.phase0.states:r_17 c 0.000000E+00 6.322053E+01 1.000000E+03 \n", + " 19 traj.phase0.states:r_18 c 0.000000E+00 6.817382E+01 1.000000E+03 \n", + " 20 traj.phase0.states:r_19 c 0.000000E+00 7.322328E+01 1.000000E+03 \n", + " 21 traj.phase0.states:r_20 c 0.000000E+00 7.838104E+01 1.000000E+03 \n", + " 22 traj.phase0.states:r_21 c 0.000000E+00 8.366664E+01 1.000000E+03 \n", + " 23 traj.phase0.states:r_22 c 0.000000E+00 8.909541E+01 1.000000E+03 \n", + " 24 traj.phase0.states:r_23 c 0.000000E+00 9.464480E+01 1.000000E+03 \n", + " 25 traj.phase0.states:r_24 c 0.000000E+00 1.001531E+02 1.000000E+03 \n", + " 26 traj.phase0.states:r_25 c 0.000000E+00 1.051991E+02 1.000000E+03 \n", + " 27 traj.phase0.states:r_26 c 0.000000E+00 1.093932E+02 1.000000E+03 \n", + " 28 traj.phase0.states:r_27 c 0.000000E+00 1.128526E+02 1.000000E+03 \n", + " 29 traj.phase0.states:r_28 c 0.000000E+00 1.159909E+02 1.000000E+03 \n", + " 30 traj.phase0.states:r_29 c 0.000000E+00 1.191426E+02 1.000000E+03 \n", + " 31 traj.phase0.states:h_0 c 0.000000E+00 1.061251E+00 2.000000E+02 \n", + " 32 traj.phase0.states:h_1 c 0.000000E+00 1.139163E+00 2.000000E+02 \n", + " 33 traj.phase0.states:h_2 c 0.000000E+00 8.817671E+00 2.000000E+02 \n", + " 34 traj.phase0.states:h_3 c 0.000000E+00 2.664396E+01 2.000000E+02 \n", + " 35 traj.phase0.states:h_4 c 0.000000E+00 4.416992E+01 2.000000E+02 \n", + " 36 traj.phase0.states:h_5 c 0.000000E+00 5.944069E+01 2.000000E+02 \n", + " 37 traj.phase0.states:h_6 c 0.000000E+00 7.289145E+01 2.000000E+02 \n", + " 38 traj.phase0.states:h_7 c 0.000000E+00 8.421306E+01 2.000000E+02 \n", + " 39 traj.phase0.states:h_8 c 0.000000E+00 9.050723E+01 2.000000E+02 \n", + " 40 traj.phase0.states:h_9 c 0.000000E+00 8.886610E+01 2.000000E+02 \n", + " 41 traj.phase0.states:h_10 c 0.000000E+00 8.149176E+01 2.000000E+02 \n", + " 42 traj.phase0.states:h_11 c 0.000000E+00 7.430073E+01 2.000000E+02 \n", + " 43 traj.phase0.states:h_12 c 0.000000E+00 7.108753E+01 2.000000E+02 \n", + " 44 traj.phase0.states:h_13 c 0.000000E+00 7.162002E+01 2.000000E+02 \n", + " 45 traj.phase0.states:h_14 c 0.000000E+00 7.402781E+01 2.000000E+02 \n", + " 46 traj.phase0.states:h_15 c 0.000000E+00 7.691804E+01 2.000000E+02 \n", + " 47 traj.phase0.states:h_16 c 0.000000E+00 7.976963E+01 2.000000E+02 \n", + " 48 traj.phase0.states:h_17 c 0.000000E+00 8.255693E+01 2.000000E+02 \n", + " 49 traj.phase0.states:h_18 c 0.000000E+00 8.533555E+01 2.000000E+02 \n", + " 50 traj.phase0.states:h_19 c 0.000000E+00 8.797341E+01 2.000000E+02 \n", + " 51 traj.phase0.states:h_20 c 0.000000E+00 9.008071E+01 2.000000E+02 \n", + " 52 traj.phase0.states:h_21 c 0.000000E+00 9.124420E+01 2.000000E+02 \n", + " 53 traj.phase0.states:h_22 c 0.000000E+00 9.175806E+01 2.000000E+02 \n", + " 54 traj.phase0.states:h_23 c 0.000000E+00 9.384262E+01 2.000000E+02 \n", + " 55 traj.phase0.states:h_24 c 0.000000E+00 1.021986E+02 2.000000E+02 \n", + " 56 traj.phase0.states:h_25 c 0.000000E+00 1.207230E+02 2.000000E+02 \n", + " 57 traj.phase0.states:h_26 c 0.000000E+00 1.466410E+02 2.000000E+02 \n", + " 58 traj.phase0.states:h_27 c 0.000000E+00 1.725203E+02 2.000000E+02 \n", + " 59 traj.phase0.states:h_28 c 0.000000E+00 1.921019E+02 2.000000E+02 \n", + " 60 traj.phase0.states:h_29 c 0.000000E+00 2.000000E+02 2.000000E+02 u\n", + " 61 traj.phase0.states:v_0 c 1.000000E-01 2.001425E+00 1.000000E+19 \n", + " 62 traj.phase0.states:v_1 c 1.000000E-01 2.688857E+00 1.000000E+19 \n", + " 63 traj.phase0.states:v_2 c 1.000000E-01 3.059756E+00 1.000000E+19 \n", + " 64 traj.phase0.states:v_3 c 1.000000E-01 3.065020E+00 1.000000E+19 \n", + " 65 traj.phase0.states:v_4 c 1.000000E-01 3.014454E+00 1.000000E+19 \n", + " 66 traj.phase0.states:v_5 c 1.000000E-01 2.961233E+00 1.000000E+19 \n", + " 67 traj.phase0.states:v_6 c 1.000000E-01 2.900159E+00 1.000000E+19 \n", + " 68 traj.phase0.states:v_7 c 1.000000E-01 2.859498E+00 1.000000E+19 \n", + " 69 traj.phase0.states:v_8 c 1.000000E-01 2.953381E+00 1.000000E+19 \n", + " 70 traj.phase0.states:v_9 c 1.000000E-01 3.227750E+00 1.000000E+19 \n", + " 71 traj.phase0.states:v_10 c 1.000000E-01 3.595819E+00 1.000000E+19 \n", + " 72 traj.phase0.states:v_11 c 1.000000E-01 3.913933E+00 1.000000E+19 \n", + " 73 traj.phase0.states:v_12 c 1.000000E-01 4.117508E+00 1.000000E+19 \n", + " 74 traj.phase0.states:v_13 c 1.000000E-01 4.235655E+00 1.000000E+19 \n", + " 75 traj.phase0.states:v_14 c 1.000000E-01 4.317820E+00 1.000000E+19 \n", + " 76 traj.phase0.states:v_15 c 1.000000E-01 4.394204E+00 1.000000E+19 \n", + " 77 traj.phase0.states:v_16 c 1.000000E-01 4.474365E+00 1.000000E+19 \n", + " 78 traj.phase0.states:v_17 c 1.000000E-01 4.557915E+00 1.000000E+19 \n", + " 79 traj.phase0.states:v_18 c 1.000000E-01 4.643845E+00 1.000000E+19 \n", + " 80 traj.phase0.states:v_19 c 1.000000E-01 4.735667E+00 1.000000E+19 \n", + " 81 traj.phase0.states:v_20 c 1.000000E-01 4.841499E+00 1.000000E+19 \n", + " 82 traj.phase0.states:v_21 c 1.000000E-01 4.967212E+00 1.000000E+19 \n", + " 83 traj.phase0.states:v_22 c 1.000000E-01 5.100068E+00 1.000000E+19 \n", + " 84 traj.phase0.states:v_23 c 1.000000E-01 5.186247E+00 1.000000E+19 \n", + " 85 traj.phase0.states:v_24 c 1.000000E-01 5.124442E+00 1.000000E+19 \n", + " 86 traj.phase0.states:v_25 c 1.000000E-01 4.823478E+00 1.000000E+19 \n", + " 87 traj.phase0.states:v_26 c 1.000000E-01 4.304558E+00 1.000000E+19 \n", + " 88 traj.phase0.states:v_27 c 1.000000E-01 3.708505E+00 1.000000E+19 \n", + " 89 traj.phase0.states:v_28 c 1.000000E-01 3.190636E+00 1.000000E+19 \n", + " 90 traj.phase0.states:v_29 c 1.000000E-01 2.950864E+00 1.000000E+19 \n", + " 91 traj.phase0.states:gam_0 c -1.500000E+00 1.135304E-02 1.500000E+00 \n", + " 92 traj.phase0.states:gam_1 c -1.500000E+00 3.610657E-02 1.500000E+00 \n", + " 93 traj.phase0.states:gam_2 c -1.500000E+00 4.740268E-01 1.500000E+00 \n", + " 94 traj.phase0.states:gam_3 c -1.500000E+00 5.938153E-01 1.500000E+00 \n", + " 95 traj.phase0.states:gam_4 c -1.500000E+00 5.275294E-01 1.500000E+00 \n", + " 96 traj.phase0.states:gam_5 c -1.500000E+00 4.638502E-01 1.500000E+00 \n", + " 97 traj.phase0.states:gam_6 c -1.500000E+00 4.145580E-01 1.500000E+00 \n", + " 98 traj.phase0.states:gam_7 c -1.500000E+00 3.140321E-01 1.500000E+00 \n", + " 99 traj.phase0.states:gam_8 c -1.500000E+00 7.842057E-02 1.500000E+00 \n", + " 100 traj.phase0.states:gam_9 c -1.500000E+00 -1.558413E-01 1.500000E+00 \n", + " 101 traj.phase0.states:gam_10 c -1.500000E+00 -2.146814E-01 1.500000E+00 \n", + " 102 traj.phase0.states:gam_11 c -1.500000E+00 -1.294795E-01 1.500000E+00 \n", + " 103 traj.phase0.states:gam_12 c -1.500000E+00 -2.388270E-02 1.500000E+00 \n", + " 104 traj.phase0.states:gam_13 c -1.500000E+00 3.897549E-02 1.500000E+00 \n", + " 105 traj.phase0.states:gam_14 c -1.500000E+00 6.016479E-02 1.500000E+00 \n", + " 106 traj.phase0.states:gam_15 c -1.500000E+00 6.124079E-02 1.500000E+00 \n", + " 107 traj.phase0.states:gam_16 c -1.500000E+00 5.816357E-02 1.500000E+00 \n", + " 108 traj.phase0.states:gam_17 c -1.500000E+00 5.665183E-02 1.500000E+00 \n", + " 109 traj.phase0.states:gam_18 c -1.500000E+00 5.501178E-02 1.500000E+00 \n", + " 110 traj.phase0.states:gam_19 c -1.500000E+00 4.807941E-02 1.500000E+00 \n", + " 111 traj.phase0.states:gam_20 c -1.500000E+00 3.220890E-02 1.500000E+00 \n", + " 112 traj.phase0.states:gam_21 c -1.500000E+00 1.262203E-02 1.500000E+00 \n", + " 113 traj.phase0.states:gam_22 c -1.500000E+00 1.285317E-02 1.500000E+00 \n", + " 114 traj.phase0.states:gam_23 c -1.500000E+00 7.683885E-02 1.500000E+00 \n", + " 115 traj.phase0.states:gam_24 c -1.500000E+00 2.409935E-01 1.500000E+00 \n", + " 116 traj.phase0.states:gam_25 c -1.500000E+00 4.652793E-01 1.500000E+00 \n", + " 117 traj.phase0.states:gam_26 c -1.500000E+00 6.245177E-01 1.500000E+00 \n", + " 118 traj.phase0.states:gam_27 c -1.500000E+00 6.313060E-01 1.500000E+00 \n", + " 119 traj.phase0.states:gam_28 c -1.500000E+00 4.419230E-01 1.500000E+00 \n", + " 120 traj.phase0.states:gam_29 c -1.500000E+00 -1.451374E-29 1.500000E+00 \n", + " 121 traj.phase0.states:m_0 c 1.000000E-02 1.894029E+01 1.000000E+02 \n", + " 122 traj.phase0.states:m_1 c 1.000000E-02 1.883985E+01 1.000000E+02 \n", + " 123 traj.phase0.states:m_2 c 1.000000E-02 1.873364E+01 1.000000E+02 \n", + " 124 traj.phase0.states:m_3 c 1.000000E-02 1.863493E+01 1.000000E+02 \n", + " 125 traj.phase0.states:m_4 c 1.000000E-02 1.854905E+01 1.000000E+02 \n", + " 126 traj.phase0.states:m_5 c 1.000000E-02 1.847497E+01 1.000000E+02 \n", + " 127 traj.phase0.states:m_6 c 1.000000E-02 1.841103E+01 1.000000E+02 \n", + " 128 traj.phase0.states:m_7 c 1.000000E-02 1.835553E+01 1.000000E+02 \n", + " 129 traj.phase0.states:m_8 c 1.000000E-02 1.830503E+01 1.000000E+02 \n", + " 130 traj.phase0.states:m_9 c 1.000000E-02 1.825309E+01 1.000000E+02 \n", + " 131 traj.phase0.states:m_10 c 1.000000E-02 1.819247E+01 1.000000E+02 \n", + " 132 traj.phase0.states:m_11 c 1.000000E-02 1.811961E+01 1.000000E+02 \n", + " 133 traj.phase0.states:m_12 c 1.000000E-02 1.803728E+01 1.000000E+02 \n", + " 134 traj.phase0.states:m_13 c 1.000000E-02 1.795056E+01 1.000000E+02 \n", + " 135 traj.phase0.states:m_14 c 1.000000E-02 1.786285E+01 1.000000E+02 \n", + " 136 traj.phase0.states:m_15 c 1.000000E-02 1.777538E+01 1.000000E+02 \n", + " 137 traj.phase0.states:m_16 c 1.000000E-02 1.768832E+01 1.000000E+02 \n", + " 138 traj.phase0.states:m_17 c 1.000000E-02 1.760158E+01 1.000000E+02 \n", + " 139 traj.phase0.states:m_18 c 1.000000E-02 1.751514E+01 1.000000E+02 \n", + " 140 traj.phase0.states:m_19 c 1.000000E-02 1.742897E+01 1.000000E+02 \n", + " 141 traj.phase0.states:m_20 c 1.000000E-02 1.734273E+01 1.000000E+02 \n", + " 142 traj.phase0.states:m_21 c 1.000000E-02 1.725562E+01 1.000000E+02 \n", + " 143 traj.phase0.states:m_22 c 1.000000E-02 1.716679E+01 1.000000E+02 \n", + " 144 traj.phase0.states:m_23 c 1.000000E-02 1.707681E+01 1.000000E+02 \n", + " 145 traj.phase0.states:m_24 c 1.000000E-02 1.699018E+01 1.000000E+02 \n", + " 146 traj.phase0.states:m_25 c 1.000000E-02 1.691721E+01 1.000000E+02 \n", + " 147 traj.phase0.states:m_26 c 1.000000E-02 1.686897E+01 1.000000E+02 \n", + " 148 traj.phase0.states:m_27 c 1.000000E-02 1.684160E+01 1.000000E+02 \n", + " 149 traj.phase0.states:m_28 c 1.000000E-02 1.682683E+01 1.000000E+02 \n", + " 150 traj.phase0.states:m_29 c 1.000000E-02 1.681815E+01 1.000000E+02 \n", + " 151 traj.phase0.controls:alpha_0 c -8.000000E+00 4.973442E+00 8.000000E+00 \n", + " 152 traj.phase0.controls:alpha_1 c -8.000000E+00 3.717277E+00 8.000000E+00 \n", + " 153 traj.phase0.controls:alpha_2 c -8.000000E+00 2.438031E+00 8.000000E+00 \n", + " 154 traj.phase0.controls:alpha_3 c -8.000000E+00 1.746173E+00 8.000000E+00 \n", + " 155 traj.phase0.controls:alpha_4 c -8.000000E+00 2.252173E+00 8.000000E+00 \n", + " 156 traj.phase0.controls:alpha_5 c -8.000000E+00 2.787437E+00 8.000000E+00 \n", + " 157 traj.phase0.controls:alpha_6 c -8.000000E+00 2.183369E+00 8.000000E+00 \n", + " 158 traj.phase0.controls:alpha_7 c -8.000000E+00 1.279424E+00 8.000000E+00 \n", + " 159 traj.phase0.controls:alpha_8 c -8.000000E+00 9.150560E-01 8.000000E+00 \n", + " 160 traj.phase0.controls:alpha_9 c -8.000000E+00 8.887437E-01 8.000000E+00 \n", + " 161 traj.phase0.controls:alpha_10 c -8.000000E+00 9.989669E-01 8.000000E+00 \n", + " 162 traj.phase0.controls:alpha_11 c -8.000000E+00 1.188370E+00 8.000000E+00 \n", + " 163 traj.phase0.controls:alpha_12 c -8.000000E+00 1.399596E+00 8.000000E+00 \n", + " 164 traj.phase0.controls:alpha_13 c -8.000000E+00 1.593930E+00 8.000000E+00 \n", + " 165 traj.phase0.controls:alpha_14 c -8.000000E+00 1.732653E+00 8.000000E+00 \n", + " 166 traj.phase0.controls:alpha_15 c -8.000000E+00 1.677144E+00 8.000000E+00 \n", + " 167 traj.phase0.controls:alpha_16 c -8.000000E+00 1.288778E+00 8.000000E+00 \n", + " 168 traj.phase0.controls:alpha_17 c -8.000000E+00 8.333924E-01 8.000000E+00 \n", + " 169 traj.phase0.controls:alpha_18 c -8.000000E+00 5.768231E-01 8.000000E+00 \n", + " 170 traj.phase0.controls:alpha_19 c -8.000000E+00 6.222670E-01 8.000000E+00 \n", + " 171 traj.phase0.controls:alpha_20 c -8.000000E+00 1.072921E+00 8.000000E+00 \n", + " 172 traj.phase0.controls:alpha_21 c -8.000000E+00 1.616123E+00 8.000000E+00 \n", + " 173 traj.phase0.controls:alpha_22 c -8.000000E+00 1.939212E+00 8.000000E+00 \n", + " 174 traj.phase0.controls:alpha_23 c -8.000000E+00 2.067380E+00 8.000000E+00 \n", + " 175 traj.phase0.controls:alpha_24 c -8.000000E+00 2.025821E+00 8.000000E+00 \n", + " 176 traj.phase0.controls:alpha_25 c -8.000000E+00 1.886097E+00 8.000000E+00 \n", + " 177 traj.phase0.controls:alpha_26 c -8.000000E+00 1.719769E+00 8.000000E+00 \n", + " 178 traj.phase0.controls:alpha_27 c -8.000000E+00 1.556405E+00 8.000000E+00 \n", + " 179 traj.phase0.controls:alpha_28 c -8.000000E+00 1.425576E+00 8.000000E+00 \n", + " 180 traj.phase0.controls:alpha_29 c -8.000000E+00 1.329200E+00 8.000000E+00 \n", + " 181 traj.phase0.controls:alpha_30 c -8.000000E+00 1.269196E+00 8.000000E+00 \n", + " 182 traj.phase0.controls:alpha_31 c -8.000000E+00 1.237649E+00 8.000000E+00 \n", + " 183 traj.phase0.controls:alpha_32 c -8.000000E+00 1.226643E+00 8.000000E+00 \n", + " 184 traj.phase0.controls:alpha_33 c -8.000000E+00 1.229056E+00 8.000000E+00 \n", + " 185 traj.phase0.controls:alpha_34 c -8.000000E+00 1.237764E+00 8.000000E+00 \n", + " 186 traj.phase0.controls:alpha_35 c -8.000000E+00 1.248216E+00 8.000000E+00 \n", + " 187 traj.phase0.controls:alpha_36 c -8.000000E+00 1.255861E+00 8.000000E+00 \n", + " 188 traj.phase0.controls:alpha_37 c -8.000000E+00 1.258037E+00 8.000000E+00 \n", + " 189 traj.phase0.controls:alpha_38 c -8.000000E+00 1.252083E+00 8.000000E+00 \n", + " 190 traj.phase0.controls:alpha_39 c -8.000000E+00 1.237697E+00 8.000000E+00 \n", + " 191 traj.phase0.controls:alpha_40 c -8.000000E+00 1.214581E+00 8.000000E+00 \n", + " 192 traj.phase0.controls:alpha_41 c -8.000000E+00 1.187259E+00 8.000000E+00 \n", + " 193 traj.phase0.controls:alpha_42 c -8.000000E+00 1.160259E+00 8.000000E+00 \n", + " 194 traj.phase0.controls:alpha_43 c -8.000000E+00 1.147529E+00 8.000000E+00 \n", + " 195 traj.phase0.controls:alpha_44 c -8.000000E+00 1.163018E+00 8.000000E+00 \n", + " 196 traj.phase0.controls:alpha_45 c -8.000000E+00 1.227572E+00 8.000000E+00 \n", + " 197 traj.phase0.controls:alpha_46 c -8.000000E+00 1.362033E+00 8.000000E+00 \n", + " 198 traj.phase0.controls:alpha_47 c -8.000000E+00 1.581976E+00 8.000000E+00 \n", + " 199 traj.phase0.controls:alpha_48 c -8.000000E+00 1.902974E+00 8.000000E+00 \n", + " 200 traj.phase0.controls:alpha_49 c -8.000000E+00 2.303857E+00 8.000000E+00 \n", + " 201 traj.phase0.controls:alpha_50 c -8.000000E+00 2.763451E+00 8.000000E+00 \n", + " 202 traj.phase0.controls:alpha_51 c -8.000000E+00 3.222276E+00 8.000000E+00 \n", + " 203 traj.phase0.controls:alpha_52 c -8.000000E+00 3.620850E+00 8.000000E+00 \n", + " 204 traj.phase0.controls:alpha_53 c -8.000000E+00 3.885758E+00 8.000000E+00 \n", + " 205 traj.phase0.controls:alpha_54 c -8.000000E+00 3.943583E+00 8.000000E+00 \n", + " 206 traj.phase0.controls:alpha_55 c -8.000000E+00 3.728639E+00 8.000000E+00 \n", + " 207 traj.phase0.controls:alpha_56 c -8.000000E+00 3.175237E+00 8.000000E+00 \n", + " 208 traj.phase0.controls:alpha_57 c -8.000000E+00 1.953374E+00 8.000000E+00 \n", + " 209 traj.phase0.controls:alpha_58 c -8.000000E+00 -2.669510E-01 8.000000E+00 \n", + " 210 traj.phase0.controls:alpha_59 c -8.000000E+00 -3.185529E+00 8.000000E+00 \n", + " 211 traj.phase0.controls:alpha_60 c -8.000000E+00 -6.502149E+00 8.000000E+00 \n", + "\n", + " Constraints (i - inequality, e - equality)\n", + " Index Name Type Lower Value Upper Status Lagrange Multiplier (N/A)\n", + " 0 traj.phases.phase0->final_boundary_constraint->h e 2.000000E+01 2.000000E+01 2.000000E+01 9.00000E+100\n", + " 1 traj.phases.phase0->final_boundary_constraint->mach e 1.000000E+00 1.000000E+00 1.000000E+00 9.00000E+100\n", + " 2 traj.phases.phase0->final_boundary_constraint->gam e 0.000000E+00 -1.451374E-29 0.000000E+00 9.00000E+100\n", + " 3 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.958707E-11 0.000000E+00 9.00000E+100\n", + " 4 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.170407E-10 0.000000E+00 9.00000E+100\n", + " 5 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.674016E-09 0.000000E+00 9.00000E+100\n", + " 6 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.483173E-09 0.000000E+00 9.00000E+100\n", + " 7 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.275880E-09 0.000000E+00 9.00000E+100\n", + " 8 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.891534E-10 0.000000E+00 9.00000E+100\n", + " 9 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 8.876132E-12 0.000000E+00 9.00000E+100\n", + " 10 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.192278E-09 0.000000E+00 9.00000E+100\n", + " 11 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.526827E-10 0.000000E+00 9.00000E+100\n", + " 12 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.403548E-09 0.000000E+00 9.00000E+100\n", + " 13 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.443211E-09 0.000000E+00 9.00000E+100\n", + " 14 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 7.460408E-09 0.000000E+00 9.00000E+100\n", + " 15 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.201537E-08 0.000000E+00 9.00000E+100\n", + " 16 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.453864E-08 0.000000E+00 9.00000E+100\n", + " 17 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.440186E-08 0.000000E+00 9.00000E+100\n", + " 18 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.118443E-08 0.000000E+00 9.00000E+100\n", + " 19 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.437229E-09 0.000000E+00 9.00000E+100\n", + " 20 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.282646E-09 0.000000E+00 9.00000E+100\n", + " 21 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 7.136694E-10 0.000000E+00 9.00000E+100\n", + " 22 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.266929E-10 0.000000E+00 9.00000E+100\n", + " 23 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 9.698335E-10 0.000000E+00 9.00000E+100\n", + " 24 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.686266E-09 0.000000E+00 9.00000E+100\n", + " 25 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.947525E-09 0.000000E+00 9.00000E+100\n", + " 26 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.968087E-09 0.000000E+00 9.00000E+100\n", + " 27 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.196982E-09 0.000000E+00 9.00000E+100\n", + " 28 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.003098E-09 0.000000E+00 9.00000E+100\n", + " 29 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.348922E-10 0.000000E+00 9.00000E+100\n", + " 30 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 9.573264E-11 0.000000E+00 9.00000E+100\n", + " 31 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.618833E-11 0.000000E+00 9.00000E+100\n", + " 32 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.939323E-12 0.000000E+00 9.00000E+100\n", + " 33 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.958776E-10 0.000000E+00 9.00000E+100\n", + " 34 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.228415E-09 0.000000E+00 9.00000E+100\n", + " 35 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 8.687241E-09 0.000000E+00 9.00000E+100\n", + " 36 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.213941E-08 0.000000E+00 9.00000E+100\n", + " 37 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 7.935680E-09 0.000000E+00 9.00000E+100\n", + " 38 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.183885E-10 0.000000E+00 9.00000E+100\n", + " 39 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 3.992336E-10 0.000000E+00 9.00000E+100\n", + " 40 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.166953E-08 0.000000E+00 9.00000E+100\n", + " 41 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.364229E-08 0.000000E+00 9.00000E+100\n", + " 42 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.509530E-08 0.000000E+00 9.00000E+100\n", + " 43 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.450711E-09 0.000000E+00 9.00000E+100\n", + " 44 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -6.244512E-09 0.000000E+00 9.00000E+100\n", + " 45 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.853536E-09 0.000000E+00 9.00000E+100\n", + " 46 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.659682E-08 0.000000E+00 9.00000E+100\n", + " 47 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.864625E-08 0.000000E+00 9.00000E+100\n", + " 48 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.327172E-08 0.000000E+00 9.00000E+100\n", + " 49 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -3.999166E-09 0.000000E+00 9.00000E+100\n", + " 50 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -2.595654E-09 0.000000E+00 9.00000E+100\n", + " 51 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.430617E-10 0.000000E+00 9.00000E+100\n", + " 52 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.639721E-10 0.000000E+00 9.00000E+100\n", + " 53 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.738167E-09 0.000000E+00 9.00000E+100\n", + " 54 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.035033E-09 0.000000E+00 9.00000E+100\n", + " 55 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.948604E-09 0.000000E+00 9.00000E+100\n", + " 56 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.150335E-09 0.000000E+00 9.00000E+100\n", + " 57 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.498266E-09 0.000000E+00 9.00000E+100\n", + " 58 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.885731E-09 0.000000E+00 9.00000E+100\n", + " 59 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.910319E-09 0.000000E+00 9.00000E+100\n", + " 60 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.608884E-09 0.000000E+00 9.00000E+100\n", + " 61 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.446982E-11 0.000000E+00 9.00000E+100\n", + " 62 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.177595E-11 0.000000E+00 9.00000E+100\n", + " 63 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 8.669661E-11 0.000000E+00 9.00000E+100\n", + " 64 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.425457E-10 0.000000E+00 9.00000E+100\n", + " 65 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.495271E-09 0.000000E+00 9.00000E+100\n", + " 66 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.890717E-09 0.000000E+00 9.00000E+100\n", + " 67 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.002595E-10 0.000000E+00 9.00000E+100\n", + " 68 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.233540E-11 0.000000E+00 9.00000E+100\n", + " 69 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.333111E-10 0.000000E+00 9.00000E+100\n", + " 70 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.586384E-10 0.000000E+00 9.00000E+100\n", + " 71 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.328661E-09 0.000000E+00 9.00000E+100\n", + " 72 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.244431E-09 0.000000E+00 9.00000E+100\n", + " 73 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.417564E-09 0.000000E+00 9.00000E+100\n", + " 74 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.313047E-08 0.000000E+00 9.00000E+100\n", + " 75 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.508276E-08 0.000000E+00 9.00000E+100\n", + " 76 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.290573E-08 0.000000E+00 9.00000E+100\n", + " 77 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.485751E-08 0.000000E+00 9.00000E+100\n", + " 78 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 8.460491E-09 0.000000E+00 9.00000E+100\n", + " 79 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.722336E-09 0.000000E+00 9.00000E+100\n", + " 80 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.961761E-09 0.000000E+00 9.00000E+100\n", + " 81 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.137116E-09 0.000000E+00 9.00000E+100\n", + " 82 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 6.134942E-10 0.000000E+00 9.00000E+100\n", + " 83 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.575649E-09 0.000000E+00 9.00000E+100\n", + " 84 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.877308E-09 0.000000E+00 9.00000E+100\n", + " 85 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.406236E-09 0.000000E+00 9.00000E+100\n", + " 86 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.197213E-09 0.000000E+00 9.00000E+100\n", + " 87 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.222827E-09 0.000000E+00 9.00000E+100\n", + " 88 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.184054E-10 0.000000E+00 9.00000E+100\n", + " 89 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.035708E-09 0.000000E+00 9.00000E+100\n", + " 90 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.411854E-10 0.000000E+00 9.00000E+100\n", + " 91 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.713817E-11 0.000000E+00 9.00000E+100\n", + " 92 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.013545E-11 0.000000E+00 9.00000E+100\n", + " 93 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 1.906407E-12 0.000000E+00 9.00000E+100\n", + " 94 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.544515E-10 0.000000E+00 9.00000E+100\n", + " 95 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.153722E-09 0.000000E+00 9.00000E+100\n", + " 96 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.294921E-09 0.000000E+00 9.00000E+100\n", + " 97 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.283903E-10 0.000000E+00 9.00000E+100\n", + " 98 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.186242E-10 0.000000E+00 9.00000E+100\n", + " 99 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.407349E-10 0.000000E+00 9.00000E+100\n", + " 100 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.355619E-11 0.000000E+00 9.00000E+100\n", + " 101 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.499061E-09 0.000000E+00 9.00000E+100\n", + " 102 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.860703E-10 0.000000E+00 9.00000E+100\n", + " 103 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.072973E-10 0.000000E+00 9.00000E+100\n", + " 104 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.310707E-09 0.000000E+00 9.00000E+100\n", + " 105 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.628688E-09 0.000000E+00 9.00000E+100\n", + " 106 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -8.892788E-09 0.000000E+00 9.00000E+100\n", + " 107 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -6.771570E-09 0.000000E+00 9.00000E+100\n", + " 108 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.515379E-09 0.000000E+00 9.00000E+100\n", + " 109 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.791748E-10 0.000000E+00 9.00000E+100\n", + " 110 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.434788E-10 0.000000E+00 9.00000E+100\n", + " 111 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.131372E-10 0.000000E+00 9.00000E+100\n", + " 112 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 3.961665E-11 0.000000E+00 9.00000E+100\n", + " 113 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.772205E-10 0.000000E+00 9.00000E+100\n", + " 114 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -6.956804E-10 0.000000E+00 9.00000E+100\n", + " 115 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.027190E-09 0.000000E+00 9.00000E+100\n", + " 116 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.398093E-10 0.000000E+00 9.00000E+100\n", + " 117 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.663799E-10 0.000000E+00 9.00000E+100\n", + " 118 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.439717E-10 0.000000E+00 9.00000E+100\n", + " 119 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.077334E-10 0.000000E+00 9.00000E+100\n", + " 120 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -5.873622E-11 0.000000E+00 9.00000E+100\n", + " 121 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.589182E-12 0.000000E+00 9.00000E+100\n", + " 122 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 5.678141E-13 0.000000E+00 9.00000E+100\n", + " 123 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.237633E-13 0.000000E+00 9.00000E+100\n", + " 124 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -6.531401E-13 0.000000E+00 9.00000E+100\n", + " 125 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.908550E-12 0.000000E+00 9.00000E+100\n", + " 126 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.938991E-12 0.000000E+00 9.00000E+100\n", + " 127 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.792036E-12 0.000000E+00 9.00000E+100\n", + " 128 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -7.633888E-13 0.000000E+00 9.00000E+100\n", + " 129 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 6.956028E-13 0.000000E+00 9.00000E+100\n", + " 130 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.016891E-12 0.000000E+00 9.00000E+100\n", + " 131 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.607554E-11 0.000000E+00 9.00000E+100\n", + " 132 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.976867E-12 0.000000E+00 9.00000E+100\n", + " 133 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.267879E-12 0.000000E+00 9.00000E+100\n", + " 134 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.066662E-12 0.000000E+00 9.00000E+100\n", + " 135 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -5.284450E-12 0.000000E+00 9.00000E+100\n", + " 136 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.832813E-12 0.000000E+00 9.00000E+100\n", + " 137 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.096152E-11 0.000000E+00 9.00000E+100\n", + " 138 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 8.725551E-13 0.000000E+00 9.00000E+100\n", + " 139 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.098462E-11 0.000000E+00 9.00000E+100\n", + " 140 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.368235E-12 0.000000E+00 9.00000E+100\n", + " 141 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.644216E-14 0.000000E+00 9.00000E+100\n", + " 142 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.473190E-13 0.000000E+00 9.00000E+100\n", + " 143 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.098858E-14 0.000000E+00 9.00000E+100\n", + " 144 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.390152E-12 0.000000E+00 9.00000E+100\n", + " 145 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.100810E-12 0.000000E+00 9.00000E+100\n", + " 146 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 2.490005E-13 0.000000E+00 9.00000E+100\n", + " 147 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.669389E-14 0.000000E+00 9.00000E+100\n", + " 148 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.282778E-11 0.000000E+00 9.00000E+100\n", + " 149 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -6.080867E-14 0.000000E+00 9.00000E+100\n", + " 150 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.161094E-13 0.000000E+00 9.00000E+100\n", + " 151 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.432280E-14 0.000000E+00 9.00000E+100\n", + " 152 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.998350E-15 0.000000E+00 9.00000E+100\n", + " 153 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.346861E-12 0.000000E+00 9.00000E+100\n", + " 154 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -8.979073E-13 0.000000E+00 9.00000E+100\n", + " 155 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.795815E-12 0.000000E+00 9.00000E+100\n", + " 156 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 157 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -5.611920E-13 0.000000E+00 9.00000E+100\n", + " 158 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.122384E-13 0.000000E+00 9.00000E+100\n", + " 159 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.010146E-12 0.000000E+00 9.00000E+100\n", + " 160 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 161 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.683576E-13 0.000000E+00 9.00000E+100\n", + " 162 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.122384E-12 0.000000E+00 9.00000E+100\n", + " 163 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.122384E-13 0.000000E+00 9.00000E+100\n", + " 164 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.964172E-12 0.000000E+00 9.00000E+100\n", + " 165 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", + " 166 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", + " 167 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.332831E-12 0.000000E+00 9.00000E+100\n", + " 168 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.331954E-12 0.000000E+00 9.00000E+100\n", + " 169 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", + " 170 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.664155E-13 0.000000E+00 9.00000E+100\n", + " 171 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.332078E-13 0.000000E+00 9.00000E+100\n", + " 172 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.669546E-12 0.000000E+00 9.00000E+100\n", + " 173 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.669546E-12 0.000000E+00 9.00000E+100\n", + " 174 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.226854E-13 0.000000E+00 9.00000E+100\n", + " 175 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.346861E-12 0.000000E+00 9.00000E+100\n", + " 176 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 177 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 2.469245E-12 0.000000E+00 9.00000E+100\n", + " 178 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734304E-13 0.000000E+00 9.00000E+100\n", + " 179 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.992232E-12 0.000000E+00 9.00000E+100\n", + " 180 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.346861E-12 0.000000E+00 9.00000E+100\n", + " 181 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 182 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.000000E-03 1.000000E+00 l 9.00000E+100\n", + " 183 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", + " 184 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.306255E-03 1.000000E+00 9.00000E+100\n", + " 185 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.306255E-03 1.000000E+00 9.00000E+100\n", + " 186 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", + " 187 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.695816E-03 1.000000E+00 9.00000E+100\n", + " 188 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.695816E-03 1.000000E+00 9.00000E+100\n", + " 189 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.613297E-02 1.000000E+00 9.00000E+100\n", + " 190 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.408835E-02 1.000000E+00 9.00000E+100\n", + " 191 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.408835E-02 1.000000E+00 9.00000E+100\n", + " 192 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.650905E-02 1.000000E+00 9.00000E+100\n", + " 193 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332198E-01 1.000000E+00 9.00000E+100\n", + " 194 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332198E-01 1.000000E+00 9.00000E+100\n", + " 195 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.783657E-01 1.000000E+00 9.00000E+100\n", + " 196 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208496E-01 1.000000E+00 9.00000E+100\n", + " 197 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208496E-01 1.000000E+00 9.00000E+100\n", + " 198 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.603248E-01 1.000000E+00 9.00000E+100\n", + " 199 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972034E-01 1.000000E+00 9.00000E+100\n", + " 200 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972034E-01 1.000000E+00 9.00000E+100\n", + " 201 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.318864E-01 1.000000E+00 9.00000E+100\n", + " 202 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644573E-01 1.000000E+00 9.00000E+100\n", + " 203 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644573E-01 1.000000E+00 9.00000E+100\n", + " 204 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.946811E-01 1.000000E+00 9.00000E+100\n", + " 205 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210653E-01 1.000000E+00 9.00000E+100\n", + " 206 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210653E-01 1.000000E+00 9.00000E+100\n", + " 207 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.411944E-01 1.000000E+00 9.00000E+100\n", + " 208 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.525361E-01 1.000000E+00 9.00000E+100\n", + " 209 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.525361E-01 1.000000E+00 9.00000E+100\n", + " 210 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.533691E-01 1.000000E+00 9.00000E+100\n", + " 211 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.443305E-01 1.000000E+00 9.00000E+100\n", + " 212 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.443305E-01 1.000000E+00 9.00000E+100\n", + " 213 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.276810E-01 1.000000E+00 9.00000E+100\n", + " 214 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.074588E-01 1.000000E+00 9.00000E+100\n", + " 215 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.074588E-01 1.000000E+00 9.00000E+100\n", + " 216 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.877243E-01 1.000000E+00 9.00000E+100\n", + " 217 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.715036E-01 1.000000E+00 9.00000E+100\n", + " 218 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.715036E-01 1.000000E+00 9.00000E+100\n", + " 219 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.607274E-01 1.000000E+00 9.00000E+100\n", + " 220 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554376E-01 1.000000E+00 9.00000E+100\n", + " 221 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554376E-01 1.000000E+00 9.00000E+100\n", + " 222 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.549938E-01 1.000000E+00 9.00000E+100\n", + " 223 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581001E-01 1.000000E+00 9.00000E+100\n", + " 224 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581001E-01 1.000000E+00 9.00000E+100\n", + " 225 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.634821E-01 1.000000E+00 9.00000E+100\n", + " 226 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701391E-01 1.000000E+00 9.00000E+100\n", + " 227 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701391E-01 1.000000E+00 9.00000E+100\n", + " 228 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.773019E-01 1.000000E+00 9.00000E+100\n", + " 229 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.845902E-01 1.000000E+00 9.00000E+100\n", + " 230 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.845902E-01 1.000000E+00 9.00000E+100\n", + " 231 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.917787E-01 1.000000E+00 9.00000E+100\n", + " 232 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988481E-01 1.000000E+00 9.00000E+100\n", + " 233 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988481E-01 1.000000E+00 9.00000E+100\n", + " 234 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.058300E-01 1.000000E+00 9.00000E+100\n", + " 235 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.127846E-01 1.000000E+00 9.00000E+100\n", + " 236 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.127846E-01 1.000000E+00 9.00000E+100\n", + " 237 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.197496E-01 1.000000E+00 9.00000E+100\n", + " 238 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.266777E-01 1.000000E+00 9.00000E+100\n", + " 239 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.266777E-01 1.000000E+00 9.00000E+100\n", + " 240 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.334593E-01 1.000000E+00 9.00000E+100\n", + " 241 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398670E-01 1.000000E+00 9.00000E+100\n", + " 242 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398670E-01 1.000000E+00 9.00000E+100\n", + " 243 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.456185E-01 1.000000E+00 9.00000E+100\n", + " 244 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504036E-01 1.000000E+00 9.00000E+100\n", + " 245 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504036E-01 1.000000E+00 9.00000E+100\n", + " 246 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.539405E-01 1.000000E+00 9.00000E+100\n", + " 247 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562210E-01 1.000000E+00 9.00000E+100\n", + " 248 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562210E-01 1.000000E+00 9.00000E+100\n", + " 249 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.574864E-01 1.000000E+00 9.00000E+100\n", + " 250 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.587903E-01 1.000000E+00 9.00000E+100\n", + " 251 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.587903E-01 1.000000E+00 9.00000E+100\n", + " 252 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.617603E-01 1.000000E+00 9.00000E+100\n", + " 253 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692131E-01 1.000000E+00 9.00000E+100\n", + " 254 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692131E-01 1.000000E+00 9.00000E+100\n", + " 255 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.845433E-01 1.000000E+00 9.00000E+100\n", + " 256 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109930E-01 1.000000E+00 9.00000E+100\n", + " 257 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109930E-01 1.000000E+00 9.00000E+100\n", + " 258 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.509611E-01 1.000000E+00 9.00000E+100\n", + " 259 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036149E-01 1.000000E+00 9.00000E+100\n", + " 260 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036149E-01 1.000000E+00 9.00000E+100\n", + " 261 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.660326E-01 1.000000E+00 9.00000E+100\n", + " 262 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332050E-01 1.000000E+00 9.00000E+100\n", + " 263 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332050E-01 1.000000E+00 9.00000E+100\n", + " 264 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.001149E-01 1.000000E+00 9.00000E+100\n", + " 265 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626017E-01 1.000000E+00 9.00000E+100\n", + " 266 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626017E-01 1.000000E+00 9.00000E+100\n", + " 267 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.171104E-01 1.000000E+00 9.00000E+100\n", + " 268 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605096E-01 1.000000E+00 9.00000E+100\n", + " 269 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605096E-01 1.000000E+00 9.00000E+100\n", + " 270 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.894516E-01 1.000000E+00 9.00000E+100\n", + " 271 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.000084E-01 1.800000E+00 9.00000E+100\n", + " 272 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.928085E-01 1.800000E+00 9.00000E+100\n", + " 273 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888633E-01 1.800000E+00 9.00000E+100\n", + " 274 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888633E-01 1.800000E+00 9.00000E+100\n", + " 275 traj.phases.phase0->path_constraint->mach i 1.000000E-01 6.907438E-01 1.800000E+00 9.00000E+100\n", + " 276 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911907E-01 1.800000E+00 9.00000E+100\n", + " 277 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911907E-01 1.800000E+00 9.00000E+100\n", + " 278 traj.phases.phase0->path_constraint->mach i 1.000000E-01 8.675478E-01 1.800000E+00 9.00000E+100\n", + " 279 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082474E-01 1.800000E+00 9.00000E+100\n", + " 280 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082474E-01 1.800000E+00 9.00000E+100\n", + " 281 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.235932E-01 1.800000E+00 9.00000E+100\n", + " 282 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290686E-01 1.800000E+00 9.00000E+100\n", + " 283 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290686E-01 1.800000E+00 9.00000E+100\n", + " 284 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.318678E-01 1.800000E+00 9.00000E+100\n", + " 285 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335865E-01 1.800000E+00 9.00000E+100\n", + " 286 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335865E-01 1.800000E+00 9.00000E+100\n", + " 287 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.348422E-01 1.800000E+00 9.00000E+100\n", + " 288 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351679E-01 1.800000E+00 9.00000E+100\n", + " 289 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351679E-01 1.800000E+00 9.00000E+100\n", + " 290 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.342128E-01 1.800000E+00 9.00000E+100\n", + " 291 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323614E-01 1.800000E+00 9.00000E+100\n", + " 292 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323614E-01 1.800000E+00 9.00000E+100\n", + " 293 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.308133E-01 1.800000E+00 9.00000E+100\n", + " 294 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336683E-01 1.800000E+00 9.00000E+100\n", + " 295 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336683E-01 1.800000E+00 9.00000E+100\n", + " 296 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.465991E-01 1.800000E+00 9.00000E+100\n", + " 297 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.728871E-01 1.800000E+00 9.00000E+100\n", + " 298 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.728871E-01 1.800000E+00 9.00000E+100\n", + " 299 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.012084E+00 1.800000E+00 9.00000E+100\n", + " 300 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060804E+00 1.800000E+00 9.00000E+100\n", + " 301 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060804E+00 1.800000E+00 9.00000E+100\n", + " 302 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.115233E+00 1.800000E+00 9.00000E+100\n", + " 303 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169664E+00 1.800000E+00 9.00000E+100\n", + " 304 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169664E+00 1.800000E+00 9.00000E+100\n", + " 305 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.218961E+00 1.800000E+00 9.00000E+100\n", + " 306 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260676E+00 1.800000E+00 9.00000E+100\n", + " 307 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260676E+00 1.800000E+00 9.00000E+100\n", + " 308 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.294084E+00 1.800000E+00 9.00000E+100\n", + " 309 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320511E+00 1.800000E+00 9.00000E+100\n", + " 310 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320511E+00 1.800000E+00 9.00000E+100\n", + " 311 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.341660E+00 1.800000E+00 9.00000E+100\n", + " 312 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359374E+00 1.800000E+00 9.00000E+100\n", + " 313 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359374E+00 1.800000E+00 9.00000E+100\n", + " 314 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.375222E+00 1.800000E+00 9.00000E+100\n", + " 315 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390254E+00 1.800000E+00 9.00000E+100\n", + " 316 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390254E+00 1.800000E+00 9.00000E+100\n", + " 317 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.405215E+00 1.800000E+00 9.00000E+100\n", + " 318 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420418E+00 1.800000E+00 9.00000E+100\n", + " 319 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420418E+00 1.800000E+00 9.00000E+100\n", + " 320 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.436019E+00 1.800000E+00 9.00000E+100\n", + " 321 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451991E+00 1.800000E+00 9.00000E+100\n", + " 322 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451991E+00 1.800000E+00 9.00000E+100\n", + " 323 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.468272E+00 1.800000E+00 9.00000E+100\n", + " 324 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484806E+00 1.800000E+00 9.00000E+100\n", + " 325 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484806E+00 1.800000E+00 9.00000E+100\n", + " 326 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.501575E+00 1.800000E+00 9.00000E+100\n", + " 327 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518659E+00 1.800000E+00 9.00000E+100\n", + " 328 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518659E+00 1.800000E+00 9.00000E+100\n", + " 329 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.536200E+00 1.800000E+00 9.00000E+100\n", + " 330 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554426E+00 1.800000E+00 9.00000E+100\n", + " 331 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554426E+00 1.800000E+00 9.00000E+100\n", + " 332 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.573592E+00 1.800000E+00 9.00000E+100\n", + " 333 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593898E+00 1.800000E+00 9.00000E+100\n", + " 334 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593898E+00 1.800000E+00 9.00000E+100\n", + " 335 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.615451E+00 1.800000E+00 9.00000E+100\n", + " 336 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637985E+00 1.800000E+00 9.00000E+100\n", + " 337 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637985E+00 1.800000E+00 9.00000E+100\n", + " 338 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.660947E+00 1.800000E+00 9.00000E+100\n", + " 339 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683024E+00 1.800000E+00 9.00000E+100\n", + " 340 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683024E+00 1.800000E+00 9.00000E+100\n", + " 341 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.702449E+00 1.800000E+00 9.00000E+100\n", + " 342 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716559E+00 1.800000E+00 9.00000E+100\n", + " 343 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716559E+00 1.800000E+00 9.00000E+100\n", + " 344 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.722341E+00 1.800000E+00 9.00000E+100\n", + " 345 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716750E+00 1.800000E+00 9.00000E+100\n", + " 346 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716750E+00 1.800000E+00 9.00000E+100\n", + " 347 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.696698E+00 1.800000E+00 9.00000E+100\n", + " 348 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634726E+00 1.800000E+00 9.00000E+100\n", + " 349 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634726E+00 1.800000E+00 9.00000E+100\n", + " 350 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.553462E+00 1.800000E+00 9.00000E+100\n", + " 351 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458859E+00 1.800000E+00 9.00000E+100\n", + " 352 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458859E+00 1.800000E+00 9.00000E+100\n", + " 353 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.357866E+00 1.800000E+00 9.00000E+100\n", + " 354 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256851E+00 1.800000E+00 9.00000E+100\n", + " 355 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256851E+00 1.800000E+00 9.00000E+100\n", + " 356 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.162030E+00 1.800000E+00 9.00000E+100\n", + " 357 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081340E+00 1.800000E+00 9.00000E+100\n", + " 358 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081340E+00 1.800000E+00 9.00000E+100\n", + " 359 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.024108E+00 1.800000E+00 9.00000E+100\n", + "\n", + "\n", + " Exit Status\n", + " Inform Description\n", + " 0 Solve Succeeded\n", + "--------------------------------------------------------------------------------\n", + "\n", + "coloring_files_fd\n" + ] + }, + { + "data": { + "image/png": "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KW3bthURkZo1a8pZZ50lq1evDklOVErJrFmzpF27dlXaKN19992yZMkSefnll2Xq1KmyYsWKhKPqOXPmyIgRI+Tkk0+W6dOnR5yLFbFx40YZMGCAHD16VBYsWBDSqxDNunXrpGHDhgn3eKD6EFGnkEsuuUSefPJJufTSS/3ZrB988IE8+OCDMnToUDn11FP9Zbt27SqLFi2Sd955R4qKiqROnTpy3HHHybBhw+S+++6Tu+++W/r37y/ffPON3HvvvdKmTRs5cuRIhesW3CgPGzZM3nrrLRk7dqyMHDlSNm3aJPfdd58UFRWFZCr//ve/l9GjR8v9998v27dvl2HDhklOTo58/vnnUqtWLbnuuuvkuOOOkyuvvFKeeOIJyczMlCFDhsj69etl3Lhx0qJFC7nhhhtC6tGwYUO5+uqrZePGjdK+fXt577335LnnnpOrr75aWrZsGbP+yTou4dq0aSOvvfaanH/++dKjRw//BU9ERL7++muZNGmSKKXk7LPPlnr16sm4cePkjjvukEsuuUQuuOAC2bVrl4wfP15yc3Pl7rvvjrmf8h63qpaZmSnjx4+Xq666SkaOHCljxoyRPXv2yPjx46WoqCihSHbAgAFy7733SklJSUhkfOWVV0rdunWlT58+0qRJE/npp59k2rRpMnXqVPnrX/8qjRs39pe97777ZObMmXLGGWfIPffcI3Xr1pXnn39eVqxYEfEj4tNPP/U36Hv37hWllP/qYL17947b0M2dO1f+/ve/y7hx4/w/gv7+97/LzTffLAMGDJCzzz475rYffPCBjBgxQpo2bSp33HGHfPHFFyHrO3XqJHXr1vW/tuu0bt06f71r164tIuLPX9mxY4cMHDhQtm7dKv/5z39kx44dId38zZs3j4iuly1bJv3790/KFe5QSQ4msqEM0S54smvXLvWnP/1JFRUVqZo1a6pWrVqp22+/PeSiCEop9cUXX6iTTjpJ1apVS4mIP4P10KFD6uabb1bFxcUqNzdXGYahpk+fri699NKITFxJIOv7wIEDSkTUTTfdFLL8H//4h2rdurXKyclRHTt2VM8991zUi3IcPXpU/etf/1JdunRR2dnZqqCgQJ144onqnXfeCSnz0EMPqfbt26usrCzVqFEjdfHFF6tNmzaFvJd9wZNFixapXr16qZycHFVUVKTuuOMOdfjw4bifLdHjYmc9P/LIIxHHIpHjZfv+++/V2LFj1THHHKNycnJUXl6e6tSpk7rxxhvVDz/8EFL2+eefV926dfMfn7POOkt99dVXIWViHdvyHLdoYmV9J/r5n332WXXMMceo7Oxs1b59ezVp0iR11llnhWT/x7J27VqVkZERMcth0qRJ6ve//71q1KiRqlmzpqpXr57q37+/+u9//xv1fVatWqVM01R16tTxZ90Hn1+2Sy+91J9FHv4vXmb1li1bVGFhoTrllFNCLkhSWlqqzjzzTFWvXr2I7zSY/d3F+rdw4cKQ8vHK2hYuXBi3XPj3tHbtWiUiFbrYDpIvQynfYA1QAZ9//rkYhiFPPvlkmXNvgT179kj79u1lxIgR8uyzz5ZZ/swzz5QjR474ZwggOcaNGydTpkyR77//PuKiMXAeDTUqZPPmzfLFF1/IAw88ICtXrpTvvvtOmjVr5nS1oJFt27bJAw88IAMHDpSGDRvKhg0b5F//+pesWbNGPv3004iLbkTz5ZdfSs+ePeWjjz6S3r17V0Ot3WfPnj3Stm1beeKJJ+Siiy5yujqIgmQyVMjzzz8vI0eOlKNHj8qMGTNopBEhJydH1q9fL2PHjpXBgwfLn//8Z2nSpIksWrQooUZaRKRLly4yefJk5vYm0Q8//CC33367XHjhhU5XBTEQUQMAoDEiagAANKZlQ71v3z655ZZb5LTTTpPGjRtH3Oko2GWXXea/Q1Twvw4dOsTdx9dffy05OTmSkZEhn376aUL1mj9/vvTq1Uvy8/MlIyMjYj5zZdl3Jop2I/hkind8dTJv3jw58cQTpVatWtKoUSO57LLLqvzKUqmgdevWEZcGddqSJUskJyfHfwnRo0ePyoQJE+SMM86Q5s2bS61ataRjx45y2223yZ49e0K2feGFF6L+H7b//eMf/yhXXebNm+ffNvzmI4sXL5aePXtKnTp1pF+/fvL1119HbH/NNddI//79JdHOxkTvBgbnfP3113LPPfeEzKe3jR49WkaMGFHtdSoPLRvqXbt2ybPPPiuHDh1K6ADm5eX57xJl/5s6dWrM8kePHpUxY8aU62IHSik577zzJCsrS2bMmCFLly6V/v37J7w9Kuf999+XIUOGSJMmTeTtt9+Wxx57TObNmyeDBg2KuOIZqpdSSv7yl7/IFVdc4Z9rfPDgQbnnnnukVatWMnHiRHnvvffkiiuukGeffVZOOumkkIvxmKYZ8f936dKlMnjwYBGRuHOQw+3fv1+uuOKKqDkTe/bskbPPPlt69+4tb731lhQUFMg555wTcgvUZcuWyaRJk+Tf//53wvOJx40b579IDfT09ddfy/jx46M21Pfcc494PB7/ncW05NjEsDhKS0v9N1LfuXNn3Pmp0eYal+WRRx5RxcXF6rHHHlMiopYvX17mNps3b1Yioh566KFy7as87Dmqid4Np6rEO77l9dtvv0XMWa4KvXv3Vp06dQp57w8//FCJSMRdkxJx5MiRiLnnqaJVq1YJ3RktEVVxHN577z0lImrNmjUh7/vTTz9FlJ02bZoSkZhznm379+9XtWvXVieffHK56nLNNdeonj17qrvuukuJiNq5c2dIPfPz89Vvv/2mlFLqxx9/VCKiVq9erZSyzt2uXbtW2f8Fp6TyuZ0s9nkXPifdNmzYMDV48ODqrVQ5aBlR291WyfDdd9/J3/72N3nqqadCrvYTzz333OO/is+tt94qGRkZ0rp1a3nyySclMzMzpPv1n//8p2RkZITcEaq0tFTq168vN910k3/Zli1b5LzzzpM6depIQUGBnH/++eXKbP3xxx/lyiuvlBYtWkh2drY0a9ZMRo4cGXJt5Y0bN8rFF18shYWFkpOTIx07dpR//vOf/rsKxfPll1/KWWedJfXr15fc3Fzp0aNHxD18Fy1a5L8X70033STFxcWSk5Mja9eulZKSErn55pulTZs2kpubKw0aNJBevXrJq6++mvBnDP6sy5cvl9GjR4fM8ezbt6+0b9++zGjGHlJ4+OGH5f7775c2bdpITk6O/w5Tn376qQwfPlwaNGggubm50rNnz5CrVq1YsUIyMjLkP//5T8R7z5w5UzIyMiIuWxpuz549ctNNN0nbtm0lJydHCgsLZejQobJmzRp/md27d8vYsWOluLhYsrOzpW3btnLnnXcm1GOQyHcd7ziUlpbK/fffL8cdd5zk5eVJvXr1pFu3bvLYY4+Vue+nn35aevfuLccdd5x/WY0aNaJeW71Pnz4iYt0rOp6pU6fK/v375f/9v/9X5v5tS5YskWeffVaef/75kDt72X799VfJycmRrKwsERH/1bzsG8U8+uij8ttvv8ntt9+e8D5Fond9Z2RkyLXXXiuTJ0/2H9NevXrJsmXLRCkljzzyiLRp00Zq164t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Y8eYZRYsWCCdOnXydzXaLrvsMlFKxU2csO/M1KJFi4htS0pKIu4ode6550a8R58+fWTmzJly2223yaJFi6rkHrexhkMSHSYZPny4v9tTRGTt2rWyZs0a/9WYjhw54v83dOhQ2bp1q3zzzTciYt1nOCcnJ6S77NVXX5VDhw7JH//4x7j7nTlzprRv3z7kpinhFixYIPn5+f6bKtjs7O5oXZPB25bnuw4/DiLW97VixQoZO3aszJ49W/bu3Rv3M9m2bNkiItY90ePZvXu3DB06VJRSMnXq1Lg35bCHGBLt9v7kk09k4sSJ8u9//1vy8vLilr366qtl9+7dsnr1atm+fbsMHz5c/vvf/8rKlSvlkUcekd27d8tFF13kv03mM888k1Adohk4cKD//7yI+P+/DhkyJOSctZfbGfO2WH8jSktLZfHixSHLw7/Tb775RrZs2SKjR48OOda1a9eWc889V5YtWyYlJSUiIjJmzBg5ePBgSALu5MmTJScnx/83qTz/V2zDhg0LeW1/TtM0I5YHf/Z3331X6tWr5798rP2vR48e0rRpU1m0aFHI9j169Ai54U5ubq60b98+4niWpbCwUH788cdybVNdUr6hjubss8+W/Px8WbZsmX/ZNddcI126dJFzzz1X9uzZI3v27PGfqPv37496y8FEnHrqqbJx40b57rvvZN68edKzZ08pLCyUU045RebNmycHDx6Ujz76KOSP9K5du6L+WGjatGlC+9y5c2fc+8ra+4h2j2c7G3bXrl1Vtm20so8//rjceuutMn36dBk4cKA0aNBARowYEXL3rETZY53R6rx7925p0KBBQu8TXk97PP/mm2+WrKyskH/2dcvt6T0NGjSQ4cOHy5QpU/xjhC+88IL06dOnzKtsJfp9NW3aNOJHR2FhodSsWTPp39ftt98ujz76qCxbtkyGDBkiDRs2lEGDBpU5ddH+AZabmxuzzM8//yyDBw+WH3/8UebOneu/DWU0hw8flilTpkj37t2lV69ecfdtGzNmjJxzzjnSq1cv//9te9x57969EfcUz8/P94997tq1S2666SaZOHGi1K9fX66//nrZvXu3rF27Vl577TW5+eab/eO95RV+Xtr3l4613K6zLd7fiLK+U3t9rPOitLRUfv75ZxER6dy5s/Tu3VsmT54sItasmJdeeknOOussf13L83+lIp8/+LNv375d9uzZI9nZ2RH72rZtW8R+ouVCxLrNbzy5ublVElAkQ9pefV0pFfJL8ssvv5QNGzZI/fr1I8oOHDhQCgoKIuZ3JsK+pd28efNk7ty5/iklgwYNkrvuuksWL14shw4dCmmoGzZsKJ988knEeyWaTNa4cWPZvHlz3DINGzaUrVu3Riy3I6B4U9PKu220iDY/P1/Gjx8v48ePl+3bt/uj6zPPPDMkgSoRXbp0ERGRVatWydChQ0PWrVq1yr++LOH1tD/H7bffLuecc07UbYITpP74xz/KtGnTZO7cudKyZUtZvnx53Htp2xL9vj7++GNRSoXUc8eOHXLkyJGkf181a9aUG2+8UW688UbZs2ePzJs3T+644w45/fTTZdOmTSG3mQxmv/fu3bujrv/555/l1FNPlR9++EHmz58v3bp1i/k5RKxoaseOHTJu3Li45YJ99dVX8tVXX8m0adMi1rVr1066d+8ecetI20033SS/+93v5IILLhARq/dj8uTJUlBQIL1795bTTjtN3nvvPRk4cGDC9akqwYmhNvtvRHjjFP6d2utjnReZmZkhfwv/+Mc/ytixY2X16tWybt062bp1a0hPUXn/r1RGo0aNpGHDhjJr1qyo6+vUqVMl+wm3e/dubefDp2VE/cYbb0hJSYmccMIJ/mWvvfaaLFy4MOTfrbfeKiIizzzzjLz77rsV2ldRUZF06tRJ3nzzTfnss8/8DfXgwYNl586dMmHCBKlbt27IDQUGDhwo+/bti8gUfuWVVxLa55AhQ2ThwoURXU3BBg0aJF9//bV4vd6Q5VOmTJGMjIy4f3gGDRokCxYs8P+hD962Vq1aIcc1EU2aNJHLLrtMLrjgAvnmm2/8PRmJKi4ulj59+shLL70UMef1m2++ifmHoyzHHXecHHvssbJixQrp1atX1H/BfxROO+00KS4ulsmTJ8vkyZMlNzfX/wc+niFDhsi3334bd7hh0KBBsn///oiL6EyZMsW/Pt62Ff2uo6lXr56MHDlSrrnmGtm9e3fUuac2uzszWras3UivW7dO5syZ47/vdjz/+c9/JDc3t1w3hwj/f71w4UK59NJLRcTKan7++edjbjdt2jR56qmn/MuUUnLgwAH/6/379yd84ZOqFutvRGZmpvTr1y/utscdd5wUFxfLK6+8ElL/AwcOyJtvvunPBLddcMEFkpubKy+88IK88MILUlxcLKeddlrI+5Xn/0plDBs2THbt2iVHjx6Nup+K/CDIyckREYkZMR85ckQ2bdoknTp1qlTdk8a54fH43nvvPTVt2jQ1adIkJSJq1KhRatq0aWratGn+TND169ervn37qscff1y99957aubMmeq2225Tubm5qnPnziGJHNFURTKZUkpdd911SkRUXl6eOnjwoH95mzZtlIio4cOHh5Q/cOCAat++vSooKFD/93//p2bPnq2uv/76cmd9FxYWqokTJ6r58+erN998U11xxRURWd9NmzZVzz77rD9rNCMjQ40dOzbk/SRG1nf79u3VSy+9pN577z110UUXKRFRDz/8sL+cnUw2bdq0iDr26dNH3XvvvWr69Onq/fffV88884xq2LChOvHEEyOOaSJzghcuXKhq1qypzj77bDV37lz18ssvqxYtWqguXbqUOWc03ne3YMEClZOTo0477TT1yiuvqPfff1/973//Uw8++KAaOXJkRPnbb79d5eTkqMaNG6sLL7ywzHorFcj6rl27trr//vvVnDlz1Ntvv61uvPHGiKzvOnXqqAkTJqi5c+equ+++W2VlZSWc9V3Wdx3vOAwbNkzddttt6o033lDvv/++mjJlimrdurVq1apVROJZuLZt26oLLrggZFlJSYnq3bu3ysjIUI899pg/09b+t3bt2oj3+fHHH1WNGjXiHtcXX3xR1ahRQ7344otx6xQrmcz266+/qmOPPTbkfFZKqQsuuEB17NhReTweNXHiRJWZmRk3CVCp2MlkwdnZSsU+/tH+HwVnfdszQ66//vqYmfzRvlM7CXPo0KHq7bffVq+//rrq3bt3SNZ3+GcvLCxU2dnZ6o477ohYn+j/lVh/V2N9J+HXwjhy5IgaMmSIatCggRo/fryaOXOmmjdvnnrhhRfUpZdeqt566y1/2VatWinTNCPqGn4f9XXr1ikRUSNGjFBLlixRy5cvD5nn/9lnnykRUTNmzIh4Lx1o21C3atUq5k3P7Zuw7969W5199tmqdevWKi8vT2VnZ6tjjz1W3XLLLSEZjLFUVUP99ttvKxGJmDBvZ3FHS/nfvHmzOvfcc1Xt2rVVnTp11Lnnnqs++uijhC94smnTJjVmzBjVtGlTlZWVpZo1a6bOO+88tX37dn+ZDRs2qAsvvFA1bNhQZWVlqeOOO0498sgjERm3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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Jacobian shape: (361, 212) (23.30% nonzero)\n", + "FWD solves: 154 REV solves: 0\n", + "Total colors vs. total size: 154 vs 212 (27.36% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-12\n", + "Time to compute sparsity: 0.1941 sec\n", + "Time to compute coloring: 0.4864 sec\n", + "Memory to compute coloring: 2.9375 MB\n", + "Coloring created on: 2024-08-14 08:51:01\n", + "\n", + "--- Constraint Report [traj] ---\n", + " --- phase0 ---\n", + " [final] 2.0000e+04 == h [m]\n", + " [final] 1.0000e+00 == aero.mach [None]\n", + " [final] 0.0000e+00 == gam [rad]\n", + " [path] 1.0000e+02 <= h <= 2.0000e+04 [m]\n", + " [path] 1.0000e-01 <= aero.mach <= 1.8000e+00 [None]\n", + "\n", + "--------------------------------------------------------------------------------\n", + "--- Finite differenced component with partial coloring -------------------------\n", + "-------------------------------------------------------------------------------- \n", + "\n", + "Model viewer data has already been recorded for Driver.\n", + "Model viewer data has already been recorded for Driver.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/driver.py:659: DriverWarning:The following design variable initial conditions are out of their specified bounds:\n", + " traj.phase0.t_duration\n", + " val: [500.]\n", + " lower: 50.0\n", + " upper: 400.0\n", + "Set the initial value of the design variable to a valid value or set the driver option['invalid_desvar_behavior'] to 'ignore'.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Coloring for 'traj.phases.phase0.rhs_disc.aero.q_comp' (class DynamicPressureCompFD)\n", + "\n", + "Jacobian shape: (60, 120) (1.67% nonzero)\n", + "FWD solves: 2 REV solves: 0\n", + "Total colors vs. total size: 2 vs 120 (98.33% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-06\n", + "Time to compute sparsity: 0.0037 sec\n", + "Time to compute coloring: 0.0040 sec\n", + "Memory to compute coloring: 0.0000 MB\n", + "\n", + "Coloring for 'traj.phases.phase0.rhs_col.aero.q_comp' (class DynamicPressureCompFD)\n", + "\n", + "Jacobian shape: (30, 60) (3.33% nonzero)\n", + "FWD solves: 2 REV solves: 0\n", + "Total colors vs. total size: 2 vs 60 (96.67% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-06\n", + "Time to compute sparsity: 0.0018 sec\n", + "Time to compute coloring: 0.0019 sec\n", + "Memory to compute coloring: 0.0000 MB\n", + "Full total jacobian for problem 'problem8' was computed 3 times, taking 0.19566941703669727 seconds.\n", + "Total jacobian shape: (361, 212) \n", + "\n", + "\n", + "Jacobian shape: (361, 212) (3.44% nonzero)\n", + "FWD solves: 13 REV solves: 0\n", + "Total colors vs. total size: 13 vs 212 (93.87% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-12\n", + "Time to compute sparsity: 0.1957 sec\n", + "Time to compute coloring: 0.1057 sec\n", + "Memory to compute coloring: 0.0781 MB\n", + "Coloring created on: 2024-08-14 08:51:12\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->h', inds=[(0, 0)]), ('traj.phases.phase0->path_constraint->mach', inds=[(0, 0)])] cannot be impacted by the design variables of the problem.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "Optimization Problem -- Optimization using pyOpt_sparse\n", + "================================================================================\n", + " Objective Function: _objfunc\n", + "\n", + " Solution: \n", + "--------------------------------------------------------------------------------\n", + " Total Time: 3.5145\n", + " User Objective Time : 1.2823\n", + " User Sensitivity Time : 1.3879\n", + " Interface Time : 0.3666\n", + " Opt Solver Time: 0.4778\n", + " Calls to Objective Function : 136\n", + " Calls to Sens Function : 111\n", + "\n", + "\n", + " Objectives\n", + " Index Name Value\n", + " 0 traj.phase0.t 3.235052E+00\n", + "\n", + " Variables (c - continuous, i - integer, d - discrete)\n", + " Index Name Type Lower Bound Value Upper Bound Status\n", + " 0 traj.phase0.t_duration_0 c 5.000000E-01 3.235052E+00 4.000000E+00 \n", + " 1 traj.phase0.states:r_0 c 0.000000E+00 1.808252E+00 1.000000E+03 \n", + " 2 traj.phase0.states:r_1 c 0.000000E+00 4.338692E+00 1.000000E+03 \n", + " 3 traj.phase0.states:r_2 c 0.000000E+00 7.365611E+00 1.000000E+03 \n", + " 4 traj.phase0.states:r_3 c 0.000000E+00 1.015780E+01 1.000000E+03 \n", + " 5 traj.phase0.states:r_4 c 0.000000E+00 1.292797E+01 1.000000E+03 \n", + " 6 traj.phase0.states:r_5 c 0.000000E+00 1.576494E+01 1.000000E+03 \n", + " 7 traj.phase0.states:r_6 c 0.000000E+00 1.862488E+01 1.000000E+03 \n", + " 8 traj.phase0.states:r_7 c 0.000000E+00 2.150884E+01 1.000000E+03 \n", + " 9 traj.phase0.states:r_8 c 0.000000E+00 2.455450E+01 1.000000E+03 \n", + " 10 traj.phase0.states:r_9 c 0.000000E+00 2.786210E+01 1.000000E+03 \n", + " 11 traj.phase0.states:r_10 c 0.000000E+00 3.146415E+01 1.000000E+03 \n", + " 12 traj.phase0.states:r_11 c 0.000000E+00 3.545715E+01 1.000000E+03 \n", + " 13 traj.phase0.states:r_12 c 0.000000E+00 3.978347E+01 1.000000E+03 \n", + " 14 traj.phase0.states:r_13 c 0.000000E+00 4.429150E+01 1.000000E+03 \n", + " 15 traj.phase0.states:r_14 c 0.000000E+00 4.889839E+01 1.000000E+03 \n", + " 16 traj.phase0.states:r_15 c 0.000000E+00 5.358656E+01 1.000000E+03 \n", + " 17 traj.phase0.states:r_16 c 0.000000E+00 5.835928E+01 1.000000E+03 \n", + " 18 traj.phase0.states:r_17 c 0.000000E+00 6.322095E+01 1.000000E+03 \n", + " 19 traj.phase0.states:r_18 c 0.000000E+00 6.817413E+01 1.000000E+03 \n", + " 20 traj.phase0.states:r_19 c 0.000000E+00 7.322350E+01 1.000000E+03 \n", + " 21 traj.phase0.states:r_20 c 0.000000E+00 7.838121E+01 1.000000E+03 \n", + " 22 traj.phase0.states:r_21 c 0.000000E+00 8.366676E+01 1.000000E+03 \n", + " 23 traj.phase0.states:r_22 c 0.000000E+00 8.909550E+01 1.000000E+03 \n", + " 24 traj.phase0.states:r_23 c 0.000000E+00 9.464487E+01 1.000000E+03 \n", + " 25 traj.phase0.states:r_24 c 0.000000E+00 1.001531E+02 1.000000E+03 \n", + " 26 traj.phase0.states:r_25 c 0.000000E+00 1.051992E+02 1.000000E+03 \n", + " 27 traj.phase0.states:r_26 c 0.000000E+00 1.093934E+02 1.000000E+03 \n", + " 28 traj.phase0.states:r_27 c 0.000000E+00 1.128527E+02 1.000000E+03 \n", + " 29 traj.phase0.states:r_28 c 0.000000E+00 1.159910E+02 1.000000E+03 \n", + " 30 traj.phase0.states:r_29 c 0.000000E+00 1.191427E+02 1.000000E+03 \n", + " 31 traj.phase0.states:h_0 c 0.000000E+00 1.061193E+00 2.000000E+02 \n", + " 32 traj.phase0.states:h_1 c 0.000000E+00 1.139660E+00 2.000000E+02 \n", + " 33 traj.phase0.states:h_2 c 0.000000E+00 8.818884E+00 2.000000E+02 \n", + " 34 traj.phase0.states:h_3 c 0.000000E+00 2.664471E+01 2.000000E+02 \n", + " 35 traj.phase0.states:h_4 c 0.000000E+00 4.417045E+01 2.000000E+02 \n", + " 36 traj.phase0.states:h_5 c 0.000000E+00 5.944120E+01 2.000000E+02 \n", + " 37 traj.phase0.states:h_6 c 0.000000E+00 7.289197E+01 2.000000E+02 \n", + " 38 traj.phase0.states:h_7 c 0.000000E+00 8.421245E+01 2.000000E+02 \n", + " 39 traj.phase0.states:h_8 c 0.000000E+00 9.050324E+01 2.000000E+02 \n", + " 40 traj.phase0.states:h_9 c 0.000000E+00 8.885867E+01 2.000000E+02 \n", + " 41 traj.phase0.states:h_10 c 0.000000E+00 8.148440E+01 2.000000E+02 \n", + " 42 traj.phase0.states:h_11 c 0.000000E+00 7.429612E+01 2.000000E+02 \n", + " 43 traj.phase0.states:h_12 c 0.000000E+00 7.108600E+01 2.000000E+02 \n", + " 44 traj.phase0.states:h_13 c 0.000000E+00 7.162076E+01 2.000000E+02 \n", + " 45 traj.phase0.states:h_14 c 0.000000E+00 7.403012E+01 2.000000E+02 \n", + " 46 traj.phase0.states:h_15 c 0.000000E+00 7.692156E+01 2.000000E+02 \n", + " 47 traj.phase0.states:h_16 c 0.000000E+00 7.977373E+01 2.000000E+02 \n", + " 48 traj.phase0.states:h_17 c 0.000000E+00 8.256154E+01 2.000000E+02 \n", + " 49 traj.phase0.states:h_18 c 0.000000E+00 8.534020E+01 2.000000E+02 \n", + " 50 traj.phase0.states:h_19 c 0.000000E+00 8.797691E+01 2.000000E+02 \n", + " 51 traj.phase0.states:h_20 c 0.000000E+00 9.008302E+01 2.000000E+02 \n", + " 52 traj.phase0.states:h_21 c 0.000000E+00 9.124628E+01 2.000000E+02 \n", + " 53 traj.phase0.states:h_22 c 0.000000E+00 9.176010E+01 2.000000E+02 \n", + " 54 traj.phase0.states:h_23 c 0.000000E+00 9.384403E+01 2.000000E+02 \n", + " 55 traj.phase0.states:h_24 c 0.000000E+00 1.021991E+02 2.000000E+02 \n", + " 56 traj.phase0.states:h_25 c 0.000000E+00 1.207227E+02 2.000000E+02 \n", + " 57 traj.phase0.states:h_26 c 0.000000E+00 1.466407E+02 2.000000E+02 \n", + " 58 traj.phase0.states:h_27 c 0.000000E+00 1.725202E+02 2.000000E+02 \n", + " 59 traj.phase0.states:h_28 c 0.000000E+00 1.921022E+02 2.000000E+02 \n", + " 60 traj.phase0.states:h_29 c 0.000000E+00 2.000000E+02 2.000000E+02 u\n", + " 61 traj.phase0.states:v_0 c 1.000000E-01 2.001429E+00 1.000000E+19 \n", + " 62 traj.phase0.states:v_1 c 1.000000E-01 2.688834E+00 1.000000E+19 \n", + " 63 traj.phase0.states:v_2 c 1.000000E-01 3.059718E+00 1.000000E+19 \n", + " 64 traj.phase0.states:v_3 c 1.000000E-01 3.064999E+00 1.000000E+19 \n", + " 65 traj.phase0.states:v_4 c 1.000000E-01 3.014441E+00 1.000000E+19 \n", + " 66 traj.phase0.states:v_5 c 1.000000E-01 2.961218E+00 1.000000E+19 \n", + " 67 traj.phase0.states:v_6 c 1.000000E-01 2.900146E+00 1.000000E+19 \n", + " 68 traj.phase0.states:v_7 c 1.000000E-01 2.859530E+00 1.000000E+19 \n", + " 69 traj.phase0.states:v_8 c 1.000000E-01 2.953520E+00 1.000000E+19 \n", + " 70 traj.phase0.states:v_9 c 1.000000E-01 3.227951E+00 1.000000E+19 \n", + " 71 traj.phase0.states:v_10 c 1.000000E-01 3.595990E+00 1.000000E+19 \n", + " 72 traj.phase0.states:v_11 c 1.000000E-01 3.914027E+00 1.000000E+19 \n", + " 73 traj.phase0.states:v_12 c 1.000000E-01 4.117528E+00 1.000000E+19 \n", + " 74 traj.phase0.states:v_13 c 1.000000E-01 4.235627E+00 1.000000E+19 \n", + " 75 traj.phase0.states:v_14 c 1.000000E-01 4.317759E+00 1.000000E+19 \n", + " 76 traj.phase0.states:v_15 c 1.000000E-01 4.394120E+00 1.000000E+19 \n", + " 77 traj.phase0.states:v_16 c 1.000000E-01 4.474273E+00 1.000000E+19 \n", + " 78 traj.phase0.states:v_17 c 1.000000E-01 4.557813E+00 1.000000E+19 \n", + " 79 traj.phase0.states:v_18 c 1.000000E-01 4.643749E+00 1.000000E+19 \n", + " 80 traj.phase0.states:v_19 c 1.000000E-01 4.735599E+00 1.000000E+19 \n", + " 81 traj.phase0.states:v_20 c 1.000000E-01 4.841455E+00 1.000000E+19 \n", + " 82 traj.phase0.states:v_21 c 1.000000E-01 4.967172E+00 1.000000E+19 \n", + " 83 traj.phase0.states:v_22 c 1.000000E-01 5.100034E+00 1.000000E+19 \n", + " 84 traj.phase0.states:v_23 c 1.000000E-01 5.186229E+00 1.000000E+19 \n", + " 85 traj.phase0.states:v_24 c 1.000000E-01 5.124443E+00 1.000000E+19 \n", + " 86 traj.phase0.states:v_25 c 1.000000E-01 4.823488E+00 1.000000E+19 \n", + " 87 traj.phase0.states:v_26 c 1.000000E-01 4.304563E+00 1.000000E+19 \n", + " 88 traj.phase0.states:v_27 c 1.000000E-01 3.708506E+00 1.000000E+19 \n", + " 89 traj.phase0.states:v_28 c 1.000000E-01 3.190624E+00 1.000000E+19 \n", + " 90 traj.phase0.states:v_29 c 1.000000E-01 2.950864E+00 1.000000E+19 \n", + " 91 traj.phase0.states:gam_0 c -1.500000E+00 1.134219E-02 1.500000E+00 \n", + " 92 traj.phase0.states:gam_1 c -1.500000E+00 3.615926E-02 1.500000E+00 \n", + " 93 traj.phase0.states:gam_2 c -1.500000E+00 4.740163E-01 1.500000E+00 \n", + " 94 traj.phase0.states:gam_3 c -1.500000E+00 5.938147E-01 1.500000E+00 \n", + " 95 traj.phase0.states:gam_4 c -1.500000E+00 5.275201E-01 1.500000E+00 \n", + " 96 traj.phase0.states:gam_5 c -1.500000E+00 4.638622E-01 1.500000E+00 \n", + " 97 traj.phase0.states:gam_6 c -1.500000E+00 4.145441E-01 1.500000E+00 \n", + " 98 traj.phase0.states:gam_7 c -1.500000E+00 3.139592E-01 1.500000E+00 \n", + " 99 traj.phase0.states:gam_8 c -1.500000E+00 7.827885E-02 1.500000E+00 \n", + " 100 traj.phase0.states:gam_9 c -1.500000E+00 -1.558849E-01 1.500000E+00 \n", + " 101 traj.phase0.states:gam_10 c -1.500000E+00 -2.146216E-01 1.500000E+00 \n", + " 102 traj.phase0.states:gam_11 c -1.500000E+00 -1.294009E-01 1.500000E+00 \n", + " 103 traj.phase0.states:gam_12 c -1.500000E+00 -2.381884E-02 1.500000E+00 \n", + " 104 traj.phase0.states:gam_13 c -1.500000E+00 3.901375E-02 1.500000E+00 \n", + " 105 traj.phase0.states:gam_14 c -1.500000E+00 6.019736E-02 1.500000E+00 \n", + " 106 traj.phase0.states:gam_15 c -1.500000E+00 6.126044E-02 1.500000E+00 \n", + " 107 traj.phase0.states:gam_16 c -1.500000E+00 5.817340E-02 1.500000E+00 \n", + " 108 traj.phase0.states:gam_17 c -1.500000E+00 5.666401E-02 1.500000E+00 \n", + " 109 traj.phase0.states:gam_18 c -1.500000E+00 5.500050E-02 1.500000E+00 \n", + " 110 traj.phase0.states:gam_19 c -1.500000E+00 4.805151E-02 1.500000E+00 \n", + " 111 traj.phase0.states:gam_20 c -1.500000E+00 3.219514E-02 1.500000E+00 \n", + " 112 traj.phase0.states:gam_21 c -1.500000E+00 1.262438E-02 1.500000E+00 \n", + " 113 traj.phase0.states:gam_22 c -1.500000E+00 1.284704E-02 1.500000E+00 \n", + " 114 traj.phase0.states:gam_23 c -1.500000E+00 7.682352E-02 1.500000E+00 \n", + " 115 traj.phase0.states:gam_24 c -1.500000E+00 2.409760E-01 1.500000E+00 \n", + " 116 traj.phase0.states:gam_25 c -1.500000E+00 4.652704E-01 1.500000E+00 \n", + " 117 traj.phase0.states:gam_26 c -1.500000E+00 6.245211E-01 1.500000E+00 \n", + " 118 traj.phase0.states:gam_27 c -1.500000E+00 6.313138E-01 1.500000E+00 \n", + " 119 traj.phase0.states:gam_28 c -1.500000E+00 4.419321E-01 1.500000E+00 \n", + " 120 traj.phase0.states:gam_29 c -1.500000E+00 3.443217E-27 1.500000E+00 \n", + " 121 traj.phase0.states:m_0 c 1.000000E-02 1.894029E+01 1.000000E+02 \n", + " 122 traj.phase0.states:m_1 c 1.000000E-02 1.883985E+01 1.000000E+02 \n", + " 123 traj.phase0.states:m_2 c 1.000000E-02 1.873364E+01 1.000000E+02 \n", + " 124 traj.phase0.states:m_3 c 1.000000E-02 1.863493E+01 1.000000E+02 \n", + " 125 traj.phase0.states:m_4 c 1.000000E-02 1.854905E+01 1.000000E+02 \n", + " 126 traj.phase0.states:m_5 c 1.000000E-02 1.847497E+01 1.000000E+02 \n", + " 127 traj.phase0.states:m_6 c 1.000000E-02 1.841103E+01 1.000000E+02 \n", + " 128 traj.phase0.states:m_7 c 1.000000E-02 1.835554E+01 1.000000E+02 \n", + " 129 traj.phase0.states:m_8 c 1.000000E-02 1.830504E+01 1.000000E+02 \n", + " 130 traj.phase0.states:m_9 c 1.000000E-02 1.825309E+01 1.000000E+02 \n", + " 131 traj.phase0.states:m_10 c 1.000000E-02 1.819245E+01 1.000000E+02 \n", + " 132 traj.phase0.states:m_11 c 1.000000E-02 1.811959E+01 1.000000E+02 \n", + " 133 traj.phase0.states:m_12 c 1.000000E-02 1.803726E+01 1.000000E+02 \n", + " 134 traj.phase0.states:m_13 c 1.000000E-02 1.795054E+01 1.000000E+02 \n", + " 135 traj.phase0.states:m_14 c 1.000000E-02 1.786283E+01 1.000000E+02 \n", + " 136 traj.phase0.states:m_15 c 1.000000E-02 1.777537E+01 1.000000E+02 \n", + " 137 traj.phase0.states:m_16 c 1.000000E-02 1.768831E+01 1.000000E+02 \n", + " 138 traj.phase0.states:m_17 c 1.000000E-02 1.760157E+01 1.000000E+02 \n", + " 139 traj.phase0.states:m_18 c 1.000000E-02 1.751513E+01 1.000000E+02 \n", + " 140 traj.phase0.states:m_19 c 1.000000E-02 1.742897E+01 1.000000E+02 \n", + " 141 traj.phase0.states:m_20 c 1.000000E-02 1.734274E+01 1.000000E+02 \n", + " 142 traj.phase0.states:m_21 c 1.000000E-02 1.725563E+01 1.000000E+02 \n", + " 143 traj.phase0.states:m_22 c 1.000000E-02 1.716680E+01 1.000000E+02 \n", + " 144 traj.phase0.states:m_23 c 1.000000E-02 1.707682E+01 1.000000E+02 \n", + " 145 traj.phase0.states:m_24 c 1.000000E-02 1.699019E+01 1.000000E+02 \n", + " 146 traj.phase0.states:m_25 c 1.000000E-02 1.691723E+01 1.000000E+02 \n", + " 147 traj.phase0.states:m_26 c 1.000000E-02 1.686898E+01 1.000000E+02 \n", + " 148 traj.phase0.states:m_27 c 1.000000E-02 1.684161E+01 1.000000E+02 \n", + " 149 traj.phase0.states:m_28 c 1.000000E-02 1.682684E+01 1.000000E+02 \n", + " 150 traj.phase0.states:m_29 c 1.000000E-02 1.681816E+01 1.000000E+02 \n", + " 151 traj.phase0.controls:alpha_0 c -8.000000E+00 4.973741E+00 8.000000E+00 \n", + " 152 traj.phase0.controls:alpha_1 c -8.000000E+00 3.717104E+00 8.000000E+00 \n", + " 153 traj.phase0.controls:alpha_2 c -8.000000E+00 2.438083E+00 8.000000E+00 \n", + " 154 traj.phase0.controls:alpha_3 c -8.000000E+00 1.746526E+00 8.000000E+00 \n", + " 155 traj.phase0.controls:alpha_4 c -8.000000E+00 2.252280E+00 8.000000E+00 \n", + " 156 traj.phase0.controls:alpha_5 c -8.000000E+00 2.787241E+00 8.000000E+00 \n", + " 157 traj.phase0.controls:alpha_6 c -8.000000E+00 2.183305E+00 8.000000E+00 \n", + " 158 traj.phase0.controls:alpha_7 c -8.000000E+00 1.279567E+00 8.000000E+00 \n", + " 159 traj.phase0.controls:alpha_8 c -8.000000E+00 9.151259E-01 8.000000E+00 \n", + " 160 traj.phase0.controls:alpha_9 c -8.000000E+00 8.887053E-01 8.000000E+00 \n", + " 161 traj.phase0.controls:alpha_10 c -8.000000E+00 9.990293E-01 8.000000E+00 \n", + " 162 traj.phase0.controls:alpha_11 c -8.000000E+00 1.188532E+00 8.000000E+00 \n", + " 163 traj.phase0.controls:alpha_12 c -8.000000E+00 1.399648E+00 8.000000E+00 \n", + " 164 traj.phase0.controls:alpha_13 c -8.000000E+00 1.593808E+00 8.000000E+00 \n", + " 165 traj.phase0.controls:alpha_14 c -8.000000E+00 1.732442E+00 8.000000E+00 \n", + " 166 traj.phase0.controls:alpha_15 c -8.000000E+00 1.676799E+00 8.000000E+00 \n", + " 167 traj.phase0.controls:alpha_16 c -8.000000E+00 1.288126E+00 8.000000E+00 \n", + " 168 traj.phase0.controls:alpha_17 c -8.000000E+00 8.326768E-01 8.000000E+00 \n", + " 169 traj.phase0.controls:alpha_18 c -8.000000E+00 5.767046E-01 8.000000E+00 \n", + " 170 traj.phase0.controls:alpha_19 c -8.000000E+00 6.228017E-01 8.000000E+00 \n", + " 171 traj.phase0.controls:alpha_20 c -8.000000E+00 1.073561E+00 8.000000E+00 \n", + " 172 traj.phase0.controls:alpha_21 c -8.000000E+00 1.616546E+00 8.000000E+00 \n", + " 173 traj.phase0.controls:alpha_22 c -8.000000E+00 1.939322E+00 8.000000E+00 \n", + " 174 traj.phase0.controls:alpha_23 c -8.000000E+00 2.067233E+00 8.000000E+00 \n", + " 175 traj.phase0.controls:alpha_24 c -8.000000E+00 2.025623E+00 8.000000E+00 \n", + " 176 traj.phase0.controls:alpha_25 c -8.000000E+00 1.885933E+00 8.000000E+00 \n", + " 177 traj.phase0.controls:alpha_26 c -8.000000E+00 1.719606E+00 8.000000E+00 \n", + " 178 traj.phase0.controls:alpha_27 c -8.000000E+00 1.556261E+00 8.000000E+00 \n", + " 179 traj.phase0.controls:alpha_28 c -8.000000E+00 1.425519E+00 8.000000E+00 \n", + " 180 traj.phase0.controls:alpha_29 c -8.000000E+00 1.329224E+00 8.000000E+00 \n", + " 181 traj.phase0.controls:alpha_30 c -8.000000E+00 1.269221E+00 8.000000E+00 \n", + " 182 traj.phase0.controls:alpha_31 c -8.000000E+00 1.237648E+00 8.000000E+00 \n", + " 183 traj.phase0.controls:alpha_32 c -8.000000E+00 1.226643E+00 8.000000E+00 \n", + " 184 traj.phase0.controls:alpha_33 c -8.000000E+00 1.229088E+00 8.000000E+00 \n", + " 185 traj.phase0.controls:alpha_34 c -8.000000E+00 1.237863E+00 8.000000E+00 \n", + " 186 traj.phase0.controls:alpha_35 c -8.000000E+00 1.248347E+00 8.000000E+00 \n", + " 187 traj.phase0.controls:alpha_36 c -8.000000E+00 1.255918E+00 8.000000E+00 \n", + " 188 traj.phase0.controls:alpha_37 c -8.000000E+00 1.258005E+00 8.000000E+00 \n", + " 189 traj.phase0.controls:alpha_38 c -8.000000E+00 1.252035E+00 8.000000E+00 \n", + " 190 traj.phase0.controls:alpha_39 c -8.000000E+00 1.237691E+00 8.000000E+00 \n", + " 191 traj.phase0.controls:alpha_40 c -8.000000E+00 1.214657E+00 8.000000E+00 \n", + " 192 traj.phase0.controls:alpha_41 c -8.000000E+00 1.187413E+00 8.000000E+00 \n", + " 193 traj.phase0.controls:alpha_42 c -8.000000E+00 1.160437E+00 8.000000E+00 \n", + " 194 traj.phase0.controls:alpha_43 c -8.000000E+00 1.147677E+00 8.000000E+00 \n", + " 195 traj.phase0.controls:alpha_44 c -8.000000E+00 1.163082E+00 8.000000E+00 \n", + " 196 traj.phase0.controls:alpha_45 c -8.000000E+00 1.227556E+00 8.000000E+00 \n", + " 197 traj.phase0.controls:alpha_46 c -8.000000E+00 1.362005E+00 8.000000E+00 \n", + " 198 traj.phase0.controls:alpha_47 c -8.000000E+00 1.581968E+00 8.000000E+00 \n", + " 199 traj.phase0.controls:alpha_48 c -8.000000E+00 1.902981E+00 8.000000E+00 \n", + " 200 traj.phase0.controls:alpha_49 c -8.000000E+00 2.303879E+00 8.000000E+00 \n", + " 201 traj.phase0.controls:alpha_50 c -8.000000E+00 2.763494E+00 8.000000E+00 \n", + " 202 traj.phase0.controls:alpha_51 c -8.000000E+00 3.222351E+00 8.000000E+00 \n", + " 203 traj.phase0.controls:alpha_52 c -8.000000E+00 3.620975E+00 8.000000E+00 \n", + " 204 traj.phase0.controls:alpha_53 c -8.000000E+00 3.885887E+00 8.000000E+00 \n", + " 205 traj.phase0.controls:alpha_54 c -8.000000E+00 3.943608E+00 8.000000E+00 \n", + " 206 traj.phase0.controls:alpha_55 c -8.000000E+00 3.728647E+00 8.000000E+00 \n", + " 207 traj.phase0.controls:alpha_56 c -8.000000E+00 3.175513E+00 8.000000E+00 \n", + " 208 traj.phase0.controls:alpha_57 c -8.000000E+00 1.953518E+00 8.000000E+00 \n", + " 209 traj.phase0.controls:alpha_58 c -8.000000E+00 -2.680277E-01 8.000000E+00 \n", + " 210 traj.phase0.controls:alpha_59 c -8.000000E+00 -3.186387E+00 8.000000E+00 \n", + " 211 traj.phase0.controls:alpha_60 c -8.000000E+00 -6.498824E+00 8.000000E+00 \n", + "\n", + " Constraints (i - inequality, e - equality)\n", + " Index Name Type Lower Value Upper Status Lagrange Multiplier (N/A)\n", + " 0 traj.phases.phase0->final_boundary_constraint->h e 2.000000E+01 2.000000E+01 2.000000E+01 9.00000E+100\n", + " 1 traj.phases.phase0->final_boundary_constraint->mach e 1.000000E+00 1.000000E+00 1.000000E+00 9.00000E+100\n", + " 2 traj.phases.phase0->final_boundary_constraint->gam e 0.000000E+00 3.443217E-27 0.000000E+00 9.00000E+100\n", + " 3 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.552810E-12 0.000000E+00 9.00000E+100\n", + " 4 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.046439E-11 0.000000E+00 9.00000E+100\n", + " 5 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.848173E-11 0.000000E+00 9.00000E+100\n", + " 6 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.610680E-11 0.000000E+00 9.00000E+100\n", + " 7 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 -2.665200E-12 0.000000E+00 9.00000E+100\n", + " 8 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.397515E-11 0.000000E+00 9.00000E+100\n", + " 9 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.344246E-11 0.000000E+00 9.00000E+100\n", + " 10 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.008652E-12 0.000000E+00 9.00000E+100\n", + " 11 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 9.233801E-11 0.000000E+00 9.00000E+100\n", + " 12 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.027775E-11 0.000000E+00 9.00000E+100\n", + " 13 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.950600E-13 0.000000E+00 9.00000E+100\n", + " 14 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.768393E-11 0.000000E+00 9.00000E+100\n", + " 15 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.872022E-11 0.000000E+00 9.00000E+100\n", + " 16 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.809246E-11 0.000000E+00 9.00000E+100\n", + " 17 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.754079E-11 0.000000E+00 9.00000E+100\n", + " 18 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.477482E-11 0.000000E+00 9.00000E+100\n", + " 19 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.055354E-11 0.000000E+00 9.00000E+100\n", + " 20 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.418264E-11 0.000000E+00 9.00000E+100\n", + " 21 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.516554E-12 0.000000E+00 9.00000E+100\n", + " 22 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.990013E-11 0.000000E+00 9.00000E+100\n", + " 23 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.710236E-10 0.000000E+00 9.00000E+100\n", + " 24 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.944973E-10 0.000000E+00 9.00000E+100\n", + " 25 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.195268E-10 0.000000E+00 9.00000E+100\n", + " 26 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.904603E-10 0.000000E+00 9.00000E+100\n", + " 27 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.109923E-10 0.000000E+00 9.00000E+100\n", + " 28 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.730646E-10 0.000000E+00 9.00000E+100\n", + " 29 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.910083E-11 0.000000E+00 9.00000E+100\n", + " 30 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.625019E-11 0.000000E+00 9.00000E+100\n", + " 31 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.908494E-12 0.000000E+00 9.00000E+100\n", + " 32 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 -8.581599E-14 0.000000E+00 9.00000E+100\n", + " 33 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 7.704140E-12 0.000000E+00 9.00000E+100\n", + " 34 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.113076E-10 0.000000E+00 9.00000E+100\n", + " 35 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.244031E-10 0.000000E+00 9.00000E+100\n", + " 36 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.474074E-10 0.000000E+00 9.00000E+100\n", + " 37 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.455747E-10 0.000000E+00 9.00000E+100\n", + " 38 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -7.867488E-12 0.000000E+00 9.00000E+100\n", + " 39 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 9.528717E-11 0.000000E+00 9.00000E+100\n", + " 40 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -4.757884E-11 0.000000E+00 9.00000E+100\n", + " 41 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 9.949985E-10 0.000000E+00 9.00000E+100\n", + " 42 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 4.319985E-10 0.000000E+00 9.00000E+100\n", + " 43 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -3.674005E-10 0.000000E+00 9.00000E+100\n", + " 44 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -2.405882E-10 0.000000E+00 9.00000E+100\n", + " 45 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.656754E-10 0.000000E+00 9.00000E+100\n", + " 46 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.359499E-11 0.000000E+00 9.00000E+100\n", + " 47 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.475263E-10 0.000000E+00 9.00000E+100\n", + " 48 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -6.480640E-12 0.000000E+00 9.00000E+100\n", + " 49 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.174606E-12 0.000000E+00 9.00000E+100\n", + " 50 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.122334E-11 0.000000E+00 9.00000E+100\n", + " 51 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.826693E-11 0.000000E+00 9.00000E+100\n", + " 52 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.114736E-10 0.000000E+00 9.00000E+100\n", + " 53 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 4.226978E-10 0.000000E+00 9.00000E+100\n", + " 54 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.908801E-10 0.000000E+00 9.00000E+100\n", + " 55 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.645522E-10 0.000000E+00 9.00000E+100\n", + " 56 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.303746E-10 0.000000E+00 9.00000E+100\n", + " 57 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.153195E-09 0.000000E+00 9.00000E+100\n", + " 58 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.224957E-09 0.000000E+00 9.00000E+100\n", + " 59 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.107411E-10 0.000000E+00 9.00000E+100\n", + " 60 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.910082E-11 0.000000E+00 9.00000E+100\n", + " 61 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.813936E-11 0.000000E+00 9.00000E+100\n", + " 62 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.367602E-13 0.000000E+00 9.00000E+100\n", + " 63 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.453280E-12 0.000000E+00 9.00000E+100\n", + " 64 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.836046E-11 0.000000E+00 9.00000E+100\n", + " 65 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.905250E-11 0.000000E+00 9.00000E+100\n", + " 66 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.911224E-11 0.000000E+00 9.00000E+100\n", + " 67 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.052043E-12 0.000000E+00 9.00000E+100\n", + " 68 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.138425E-11 0.000000E+00 9.00000E+100\n", + " 69 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.299781E-11 0.000000E+00 9.00000E+100\n", + " 70 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.509601E-11 0.000000E+00 9.00000E+100\n", + " 71 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.823833E-11 0.000000E+00 9.00000E+100\n", + " 72 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 -3.277984E-12 0.000000E+00 9.00000E+100\n", + " 73 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.687704E-13 0.000000E+00 9.00000E+100\n", + " 74 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.142828E-11 0.000000E+00 9.00000E+100\n", + " 75 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 8.973326E-12 0.000000E+00 9.00000E+100\n", + " 76 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.249802E-11 0.000000E+00 9.00000E+100\n", + " 77 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.787703E-11 0.000000E+00 9.00000E+100\n", + " 78 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.120084E-11 0.000000E+00 9.00000E+100\n", + " 79 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.920162E-11 0.000000E+00 9.00000E+100\n", + " 80 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.611434E-11 0.000000E+00 9.00000E+100\n", + " 81 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.303598E-12 0.000000E+00 9.00000E+100\n", + " 82 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.241654E-11 0.000000E+00 9.00000E+100\n", + " 83 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.751343E-10 0.000000E+00 9.00000E+100\n", + " 84 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 6.500658E-10 0.000000E+00 9.00000E+100\n", + " 85 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.129387E-09 0.000000E+00 9.00000E+100\n", + " 86 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.507006E-10 0.000000E+00 9.00000E+100\n", + " 87 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.210537E-10 0.000000E+00 9.00000E+100\n", + " 88 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 6.680607E-11 0.000000E+00 9.00000E+100\n", + " 89 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.117415E-10 0.000000E+00 9.00000E+100\n", + " 90 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.824569E-12 0.000000E+00 9.00000E+100\n", + " 91 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 6.248477E-13 0.000000E+00 9.00000E+100\n", + " 92 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.193594E-11 0.000000E+00 9.00000E+100\n", + " 93 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 6.057834E-14 0.000000E+00 9.00000E+100\n", + " 94 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.385452E-12 0.000000E+00 9.00000E+100\n", + " 95 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.471362E-11 0.000000E+00 9.00000E+100\n", + " 96 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 8.446511E-12 0.000000E+00 9.00000E+100\n", + " 97 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 2.128199E-12 0.000000E+00 9.00000E+100\n", + " 98 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.899771E-11 0.000000E+00 9.00000E+100\n", + " 99 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.353903E-11 0.000000E+00 9.00000E+100\n", + " 100 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 9.199743E-12 0.000000E+00 9.00000E+100\n", + " 101 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 2.889265E-11 0.000000E+00 9.00000E+100\n", + " 102 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.725557E-13 0.000000E+00 9.00000E+100\n", + " 103 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.971730E-12 0.000000E+00 9.00000E+100\n", + " 104 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.385422E-11 0.000000E+00 9.00000E+100\n", + " 105 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.190208E-12 0.000000E+00 9.00000E+100\n", + " 106 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.797238E-12 0.000000E+00 9.00000E+100\n", + " 107 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.365858E-11 0.000000E+00 9.00000E+100\n", + " 108 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -8.678590E-12 0.000000E+00 9.00000E+100\n", + " 109 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.377760E-11 0.000000E+00 9.00000E+100\n", + " 110 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -6.635415E-12 0.000000E+00 9.00000E+100\n", + " 111 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -8.489688E-13 0.000000E+00 9.00000E+100\n", + " 112 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -5.951590E-12 0.000000E+00 9.00000E+100\n", + " 113 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.142833E-11 0.000000E+00 9.00000E+100\n", + " 114 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.210596E-10 0.000000E+00 9.00000E+100\n", + " 115 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.511338E-10 0.000000E+00 9.00000E+100\n", + " 116 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.607014E-10 0.000000E+00 9.00000E+100\n", + " 117 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.519070E-11 0.000000E+00 9.00000E+100\n", + " 118 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.159547E-11 0.000000E+00 9.00000E+100\n", + " 119 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.258993E-11 0.000000E+00 9.00000E+100\n", + " 120 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 4.074534E-12 0.000000E+00 9.00000E+100\n", + " 121 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 3.332733E-13 0.000000E+00 9.00000E+100\n", + " 122 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 7.864171E-14 0.000000E+00 9.00000E+100\n", + " 123 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -8.935973E-15 0.000000E+00 9.00000E+100\n", + " 124 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -6.236026E-14 0.000000E+00 9.00000E+100\n", + " 125 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.938251E-13 0.000000E+00 9.00000E+100\n", + " 126 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.395569E-13 0.000000E+00 9.00000E+100\n", + " 127 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.072700E-14 0.000000E+00 9.00000E+100\n", + " 128 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.426505E-14 0.000000E+00 9.00000E+100\n", + " 129 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.007300E-14 0.000000E+00 9.00000E+100\n", + " 130 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.527459E-14 0.000000E+00 9.00000E+100\n", + " 131 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.050448E-13 0.000000E+00 9.00000E+100\n", + " 132 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.392197E-12 0.000000E+00 9.00000E+100\n", + " 133 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.110762E-12 0.000000E+00 9.00000E+100\n", + " 134 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.879678E-13 0.000000E+00 9.00000E+100\n", + " 135 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.070784E-14 0.000000E+00 9.00000E+100\n", + " 136 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -5.039774E-14 0.000000E+00 9.00000E+100\n", + " 137 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.008168E-14 0.000000E+00 9.00000E+100\n", + " 138 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.805121E-14 0.000000E+00 9.00000E+100\n", + " 139 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.395377E-14 0.000000E+00 9.00000E+100\n", + " 140 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.099246E-15 0.000000E+00 9.00000E+100\n", + " 141 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.740950E-15 0.000000E+00 9.00000E+100\n", + " 142 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.501397E-13 0.000000E+00 9.00000E+100\n", + " 143 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.507644E-14 0.000000E+00 9.00000E+100\n", + " 144 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.717767E-13 0.000000E+00 9.00000E+100\n", + " 145 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.366942E-13 0.000000E+00 9.00000E+100\n", + " 146 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.716139E-15 0.000000E+00 9.00000E+100\n", + " 147 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.227762E-13 0.000000E+00 9.00000E+100\n", + " 148 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -5.891756E-13 0.000000E+00 9.00000E+100\n", + " 149 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.507303E-13 0.000000E+00 9.00000E+100\n", + " 150 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.074328E-13 0.000000E+00 9.00000E+100\n", + " 151 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.080362E-14 0.000000E+00 9.00000E+100\n", + " 152 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 7.082094E-15 0.000000E+00 9.00000E+100\n", + " 153 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.346861E-12 0.000000E+00 9.00000E+100\n", + " 154 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -8.979073E-13 0.000000E+00 9.00000E+100\n", + " 155 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 156 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 157 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.734305E-13 0.000000E+00 9.00000E+100\n", + " 158 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", + " 159 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", + " 160 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", + " 161 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -8.417881E-13 0.000000E+00 9.00000E+100\n", + " 162 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.346861E-12 0.000000E+00 9.00000E+100\n", + " 163 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", + " 164 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.683576E-12 0.000000E+00 9.00000E+100\n", + " 165 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", + " 166 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.683576E-12 0.000000E+00 9.00000E+100\n", + " 167 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", + " 168 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -9.991849E-13 0.000000E+00 9.00000E+100\n", + " 169 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.297003E-13 0.000000E+00 9.00000E+100\n", + " 170 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 2.328947E-12 0.000000E+00 9.00000E+100\n", + " 171 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 9.996233E-13 0.000000E+00 9.00000E+100\n", + " 172 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", + " 173 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", + " 174 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", + " 175 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", + " 176 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -2.693722E-12 0.000000E+00 9.00000E+100\n", + " 177 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 5.162967E-12 0.000000E+00 9.00000E+100\n", + " 178 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.040583E-12 0.000000E+00 9.00000E+100\n", + " 179 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", + " 180 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -8.979073E-13 0.000000E+00 9.00000E+100\n", + " 181 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.795815E-12 0.000000E+00 9.00000E+100\n", + " 182 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.000000E-03 1.000000E+00 l 9.00000E+100\n", + " 183 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", + " 184 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.305963E-03 1.000000E+00 9.00000E+100\n", + " 185 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.305963E-03 1.000000E+00 9.00000E+100\n", + " 186 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", + " 187 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.698298E-03 1.000000E+00 9.00000E+100\n", + " 188 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.698298E-03 1.000000E+00 9.00000E+100\n", + " 189 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.613850E-02 1.000000E+00 9.00000E+100\n", + " 190 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.409442E-02 1.000000E+00 9.00000E+100\n", + " 191 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.409442E-02 1.000000E+00 9.00000E+100\n", + " 192 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.651376E-02 1.000000E+00 9.00000E+100\n", + " 193 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332236E-01 1.000000E+00 9.00000E+100\n", + " 194 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332236E-01 1.000000E+00 9.00000E+100\n", + " 195 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.783690E-01 1.000000E+00 9.00000E+100\n", + " 196 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208522E-01 1.000000E+00 9.00000E+100\n", + " 197 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208522E-01 1.000000E+00 9.00000E+100\n", + " 198 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.603270E-01 1.000000E+00 9.00000E+100\n", + " 199 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972060E-01 1.000000E+00 9.00000E+100\n", + " 200 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972060E-01 1.000000E+00 9.00000E+100\n", + " 201 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.318895E-01 1.000000E+00 9.00000E+100\n", + " 202 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644599E-01 1.000000E+00 9.00000E+100\n", + " 203 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644599E-01 1.000000E+00 9.00000E+100\n", + " 204 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.946819E-01 1.000000E+00 9.00000E+100\n", + " 205 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210622E-01 1.000000E+00 9.00000E+100\n", + " 206 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210622E-01 1.000000E+00 9.00000E+100\n", + " 207 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.411844E-01 1.000000E+00 9.00000E+100\n", + " 208 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.525162E-01 1.000000E+00 9.00000E+100\n", + " 209 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.525162E-01 1.000000E+00 9.00000E+100\n", + " 210 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.533390E-01 1.000000E+00 9.00000E+100\n", + " 211 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.442933E-01 1.000000E+00 9.00000E+100\n", + " 212 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.442933E-01 1.000000E+00 9.00000E+100\n", + " 213 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.276417E-01 1.000000E+00 9.00000E+100\n", + " 214 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.074220E-01 1.000000E+00 9.00000E+100\n", + " 215 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.074220E-01 1.000000E+00 9.00000E+100\n", + " 216 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.876936E-01 1.000000E+00 9.00000E+100\n", + " 217 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.714806E-01 1.000000E+00 9.00000E+100\n", + " 218 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.714806E-01 1.000000E+00 9.00000E+100\n", + " 219 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.607122E-01 1.000000E+00 9.00000E+100\n", + " 220 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554300E-01 1.000000E+00 9.00000E+100\n", + " 221 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554300E-01 1.000000E+00 9.00000E+100\n", + " 222 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.549925E-01 1.000000E+00 9.00000E+100\n", + " 223 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581038E-01 1.000000E+00 9.00000E+100\n", + " 224 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581038E-01 1.000000E+00 9.00000E+100\n", + " 225 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.634899E-01 1.000000E+00 9.00000E+100\n", + " 226 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701506E-01 1.000000E+00 9.00000E+100\n", + " 227 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701506E-01 1.000000E+00 9.00000E+100\n", + " 228 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.773168E-01 1.000000E+00 9.00000E+100\n", + " 229 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.846078E-01 1.000000E+00 9.00000E+100\n", + " 230 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.846078E-01 1.000000E+00 9.00000E+100\n", + " 231 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.917981E-01 1.000000E+00 9.00000E+100\n", + " 232 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988686E-01 1.000000E+00 9.00000E+100\n", + " 233 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988686E-01 1.000000E+00 9.00000E+100\n", + " 234 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.058517E-01 1.000000E+00 9.00000E+100\n", + " 235 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.128077E-01 1.000000E+00 9.00000E+100\n", + " 236 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.128077E-01 1.000000E+00 9.00000E+100\n", + " 237 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.197735E-01 1.000000E+00 9.00000E+100\n", + " 238 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.267010E-01 1.000000E+00 9.00000E+100\n", + " 239 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.267010E-01 1.000000E+00 9.00000E+100\n", + " 240 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.334802E-01 1.000000E+00 9.00000E+100\n", + " 241 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398845E-01 1.000000E+00 9.00000E+100\n", + " 242 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398845E-01 1.000000E+00 9.00000E+100\n", + " 243 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.456325E-01 1.000000E+00 9.00000E+100\n", + " 244 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504151E-01 1.000000E+00 9.00000E+100\n", + " 245 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504151E-01 1.000000E+00 9.00000E+100\n", + " 246 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.539510E-01 1.000000E+00 9.00000E+100\n", + " 247 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562314E-01 1.000000E+00 9.00000E+100\n", + " 248 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562314E-01 1.000000E+00 9.00000E+100\n", + " 249 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.574970E-01 1.000000E+00 9.00000E+100\n", + " 250 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.588005E-01 1.000000E+00 9.00000E+100\n", + " 251 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.588005E-01 1.000000E+00 9.00000E+100\n", + " 252 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.617693E-01 1.000000E+00 9.00000E+100\n", + " 253 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692202E-01 1.000000E+00 9.00000E+100\n", + " 254 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692202E-01 1.000000E+00 9.00000E+100\n", + " 255 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.845480E-01 1.000000E+00 9.00000E+100\n", + " 256 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109953E-01 1.000000E+00 9.00000E+100\n", + " 257 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109953E-01 1.000000E+00 9.00000E+100\n", + " 258 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.509613E-01 1.000000E+00 9.00000E+100\n", + " 259 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036137E-01 1.000000E+00 9.00000E+100\n", + " 260 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036137E-01 1.000000E+00 9.00000E+100\n", + " 261 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.660310E-01 1.000000E+00 9.00000E+100\n", + " 262 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332037E-01 1.000000E+00 9.00000E+100\n", + " 263 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332037E-01 1.000000E+00 9.00000E+100\n", + " 264 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.001140E-01 1.000000E+00 9.00000E+100\n", + " 265 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626012E-01 1.000000E+00 9.00000E+100\n", + " 266 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626012E-01 1.000000E+00 9.00000E+100\n", + " 267 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.171109E-01 1.000000E+00 9.00000E+100\n", + " 268 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605109E-01 1.000000E+00 9.00000E+100\n", + " 269 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605109E-01 1.000000E+00 9.00000E+100\n", + " 270 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.894524E-01 1.000000E+00 9.00000E+100\n", + " 271 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.000084E-01 1.800000E+00 9.00000E+100\n", + " 272 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.928085E-01 1.800000E+00 9.00000E+100\n", + " 273 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888646E-01 1.800000E+00 9.00000E+100\n", + " 274 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888646E-01 1.800000E+00 9.00000E+100\n", + " 275 traj.phases.phase0->path_constraint->mach i 1.000000E-01 6.907438E-01 1.800000E+00 9.00000E+100\n", + " 276 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911845E-01 1.800000E+00 9.00000E+100\n", + " 277 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911845E-01 1.800000E+00 9.00000E+100\n", + " 278 traj.phases.phase0->path_constraint->mach i 1.000000E-01 8.675368E-01 1.800000E+00 9.00000E+100\n", + " 279 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082374E-01 1.800000E+00 9.00000E+100\n", + " 280 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082374E-01 1.800000E+00 9.00000E+100\n", + " 281 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.235861E-01 1.800000E+00 9.00000E+100\n", + " 282 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290630E-01 1.800000E+00 9.00000E+100\n", + " 283 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290630E-01 1.800000E+00 9.00000E+100\n", + " 284 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.318632E-01 1.800000E+00 9.00000E+100\n", + " 285 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335832E-01 1.800000E+00 9.00000E+100\n", + " 286 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335832E-01 1.800000E+00 9.00000E+100\n", + " 287 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.348393E-01 1.800000E+00 9.00000E+100\n", + " 288 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351639E-01 1.800000E+00 9.00000E+100\n", + " 289 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351639E-01 1.800000E+00 9.00000E+100\n", + " 290 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.342080E-01 1.800000E+00 9.00000E+100\n", + " 291 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323579E-01 1.800000E+00 9.00000E+100\n", + " 292 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323579E-01 1.800000E+00 9.00000E+100\n", + " 293 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.308141E-01 1.800000E+00 9.00000E+100\n", + " 294 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336777E-01 1.800000E+00 9.00000E+100\n", + " 295 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336777E-01 1.800000E+00 9.00000E+100\n", + " 296 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.466231E-01 1.800000E+00 9.00000E+100\n", + " 297 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.729274E-01 1.800000E+00 9.00000E+100\n", + " 298 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.729274E-01 1.800000E+00 9.00000E+100\n", + " 299 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.012135E+00 1.800000E+00 9.00000E+100\n", + " 300 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060859E+00 1.800000E+00 9.00000E+100\n", + " 301 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060859E+00 1.800000E+00 9.00000E+100\n", + " 302 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.115285E+00 1.800000E+00 9.00000E+100\n", + " 303 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169708E+00 1.800000E+00 9.00000E+100\n", + " 304 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169708E+00 1.800000E+00 9.00000E+100\n", + " 305 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.218994E+00 1.800000E+00 9.00000E+100\n", + " 306 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260699E+00 1.800000E+00 9.00000E+100\n", + " 307 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260699E+00 1.800000E+00 9.00000E+100\n", + " 308 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.294096E+00 1.800000E+00 9.00000E+100\n", + " 309 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320515E+00 1.800000E+00 9.00000E+100\n", + " 310 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320515E+00 1.800000E+00 9.00000E+100\n", + " 311 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.341657E+00 1.800000E+00 9.00000E+100\n", + " 312 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359367E+00 1.800000E+00 9.00000E+100\n", + " 313 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359367E+00 1.800000E+00 9.00000E+100\n", + " 314 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.375210E+00 1.800000E+00 9.00000E+100\n", + " 315 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390239E+00 1.800000E+00 9.00000E+100\n", + " 316 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390239E+00 1.800000E+00 9.00000E+100\n", + " 317 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.405197E+00 1.800000E+00 9.00000E+100\n", + " 318 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420397E+00 1.800000E+00 9.00000E+100\n", + " 319 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420397E+00 1.800000E+00 9.00000E+100\n", + " 320 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.435998E+00 1.800000E+00 9.00000E+100\n", + " 321 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451969E+00 1.800000E+00 9.00000E+100\n", + " 322 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451969E+00 1.800000E+00 9.00000E+100\n", + " 323 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.468249E+00 1.800000E+00 9.00000E+100\n", + " 324 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484783E+00 1.800000E+00 9.00000E+100\n", + " 325 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484783E+00 1.800000E+00 9.00000E+100\n", + " 326 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.501552E+00 1.800000E+00 9.00000E+100\n", + " 327 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518638E+00 1.800000E+00 9.00000E+100\n", + " 328 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518638E+00 1.800000E+00 9.00000E+100\n", + " 329 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.536181E+00 1.800000E+00 9.00000E+100\n", + " 330 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554412E+00 1.800000E+00 9.00000E+100\n", + " 331 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554412E+00 1.800000E+00 9.00000E+100\n", + " 332 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.573581E+00 1.800000E+00 9.00000E+100\n", + " 333 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593889E+00 1.800000E+00 9.00000E+100\n", + " 334 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593889E+00 1.800000E+00 9.00000E+100\n", + " 335 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.615443E+00 1.800000E+00 9.00000E+100\n", + " 336 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637976E+00 1.800000E+00 9.00000E+100\n", + " 337 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637976E+00 1.800000E+00 9.00000E+100\n", + " 338 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.660939E+00 1.800000E+00 9.00000E+100\n", + " 339 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683017E+00 1.800000E+00 9.00000E+100\n", + " 340 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683017E+00 1.800000E+00 9.00000E+100\n", + " 341 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.702444E+00 1.800000E+00 9.00000E+100\n", + " 342 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716557E+00 1.800000E+00 9.00000E+100\n", + " 343 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716557E+00 1.800000E+00 9.00000E+100\n", + " 344 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.722340E+00 1.800000E+00 9.00000E+100\n", + " 345 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716752E+00 1.800000E+00 9.00000E+100\n", + " 346 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716752E+00 1.800000E+00 9.00000E+100\n", + " 347 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.696700E+00 1.800000E+00 9.00000E+100\n", + " 348 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634730E+00 1.800000E+00 9.00000E+100\n", + " 349 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634730E+00 1.800000E+00 9.00000E+100\n", + " 350 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.553465E+00 1.800000E+00 9.00000E+100\n", + " 351 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458861E+00 1.800000E+00 9.00000E+100\n", + " 352 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458861E+00 1.800000E+00 9.00000E+100\n", + " 353 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.357867E+00 1.800000E+00 9.00000E+100\n", + " 354 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256851E+00 1.800000E+00 9.00000E+100\n", + " 355 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256851E+00 1.800000E+00 9.00000E+100\n", + " 356 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.162028E+00 1.800000E+00 9.00000E+100\n", + " 357 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081335E+00 1.800000E+00 9.00000E+100\n", + " 358 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081335E+00 1.800000E+00 9.00000E+100\n", + " 359 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.024103E+00 1.800000E+00 9.00000E+100\n", + "\n", + "\n", + " Exit Status\n", + " Inform Description\n", + " 0 Solve Succeeded\n", + "--------------------------------------------------------------------------------\n", + "\n", + "coloring_files_fd_pc\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAANaCAYAAABGOA9mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABnkElEQVR4nO3deXxUVZr/8W9YsrFKIIAYULBBFGwolUUUUESQaKP+wBEUtdHWEWVabadtURpwX3pQhtG23Wi3Vmy13eLG4k5UnKC27S4iuKCALLIOy/n9Ubm39qQqSeWeuvfzfr14kVRVkpPKSU499zznefKMMUYAAMBKTbweAAAASI2FGgAAi7FQAwBgMRZqAAAsxkINAIDFWKgBALAYCzUAABZjoQYAwGIs1AAAWIyF2iJ5eXlp/XvllVdq/VzXXXednnzyyXqPZ+bMmWk97sILL6zX12oIw4cPV58+fdJ6bLrfW7YsX75cF154oXr27KmioiIVFxfroIMO0pVXXqlvv/024883c+ZM5eXlNfg4hw8fruHDhzf4503Xzp07dcABB+iGG25wb3vvvfdUXl6url27qqioSO3atdPgwYP14IMPpvwcs2fPVt++fVVUVKS2bdvq8MMP15IlS2Ied+utt+rkk0/Wfvvtp7y8vEb7vj/77DNdeumlOuSQQ9S2bVu1a9dOQ4YM0WOPPZbw2G+++UYXXXSRhg0bprZt2yovL09//etfEx63adMmXXvttRo+fLg6deqkli1bqm/fvrrxxhu1ffv2mMcuWrRILVu2rNO8Q+No5vUAEFFZWRnz/tVXX62XX35Zixcvjrn9wAMPrPVzXXfddRo3bpxOPPHEhhyib1RWVmqfffbx5Gs/++yzOvXUU9W+fXtdeOGF6t+/v/Ly8vTPf/5T9957ryoqKrRs2TJPxhbv9ttv9/zrr1+/XlOnTnVv27Bhg8rKyjRhwgR16dJFW7Zs0UMPPaRJkyZpxYoVuvLKK93H7t69WyeddJLeeOMN/f73v9fhhx+uLVu26H//93+1ZcuWmK91xx13qEWLFjr66KP1zDPPNNr3+NJLL6miokKTJk3SYYcdpl27dmn+/PkaP368Zs2apT/+8Y/uY7/44gs99NBD6tevn8aMGaOHH3446edcuXKlbr31Vk2aNEmXXHKJWrZsqddff10zZ87UggULtGDBAveF3YgRIzRgwABNmzZN9913X6N8z8iQgbXOPPNM06JFizp9bIsWLcyZZ55Zr68vycyYMSOtx11wwQX1+loNYdiwYeaggw7yehg1Wr58uWnRooXp37+/2bBhQ8L9e/bsMY8//njGn3fGjBmmIX+dt2zZ0mCfq6527txpunTpYv7whz+k9fiBAweasrKymNtuueUW06RJE1NZWVnrx+/evdt9+6CDDjLDhg3LaLx1tWbNGrNnz56E28vLy01xcbHZvn27e1v0GJcuXWokmXnz5iV87ObNm83mzZsTbr/55puNJPP666/H3P7YY4+Zpk2bmpUrV9bjO0G2cOk7x/z000+aMmWKunTpovz8fHXv3l1XXHGFduzY4T4mLy9PW7Zs0X333edeLncu461Zs0ZTpkzRgQceqJYtW6q0tFRHH320Xn/99QYb4/bt2/W73/1O/fr1U5s2bdxLk0899VTCY/fs2aO5c+eqX79+7mXJQYMG6emnn455zE033aQDDjhABQUFKi0t1RlnnKFvvvkm6dd//fXXNWjQIBUVFalLly6aPn26du/eHfOY+Evf6T4vK1asUF5env70pz9p9uzZ2m+//dSyZUsNHjxYb731Vq3PzezZs7VlyxbdfvvtatOmTcL9eXl5Ovnkk2Nuu/fee/XLX/5ShYWFateunU466SR9/PHHtX6tdJ83Z8vgtdde0+GHH67i4mJNnjzZvS/6EnCm3/9dd92lnj17qqCgQAceeKD+9re/6ayzztK+++5b6/iffvppffvtt5o0aVKtj5Wk9u3bq1mz2IuEc+bM0dChQzVo0KBaP75Jk7r9OTTGaMyYMSopKdHKlSvd27du3aqDDjpIvXv3Toje48edbNtiwIAB2rp1q3766aeMx9iiRQu1aNEi6eeUpFWrVsXcfsIJJ6hly5a666670vr8aFws1Dlk+/btOuqoo3T//ffrkksuUUVFhU4//XTddNNNMX/cKysrVVRUpDFjxqiyslKVlZXuJUznl37GjBmqqKjQvHnz1L17dw0fPjytve907NixQz/99JMuvfRSPfnkk3r44Yd1xBFH6OSTT9b9998f89izzjpLv/3tb3XYYYdp/vz5euSRR/SrX/1KK1ascB9z/vnn67LLLtPIkSP19NNP6+qrr9YLL7ygww8/XGvXro35fKtXr9app56q0047TU899ZTGjRuna665Rr/97W9rHHOmz8ttt92mBQsW6NZbb9VDDz2kLVu2aMyYMdq4cWONX+ell15Sx44d01o4JOn666/X2WefrYMOOkhPPPGE5syZow8++ECDBw/W559/XuPHZvK8ff/99zr99NM1ceJEPffcc5oyZUqNnzud7//OO+/Uueeeq4MPPlhPPPGErrzySs2aNSvteVZRUaHS0tKUWz179uzRrl27tGbNGt1+++168cUXddlll7n3r1q1SitWrFDfvn01bdo0dezYUc2aNdNBBx3UoJd48/Ly9MADD6i4uFinnHKKdu7cKUmaMmWKvvrqKz366KNJF83avPzyy+rQoYNKS0sbbKzONtpBBx0Uc3t+fr4OP/xwVVRUNNjXQgPyOqRHavGXvu+44w4jyTz66KMxj7vxxhuNJPPSSy+5t6V76XvXrl1m586dZsSIEeakk06KuU8NdOnb+Rpnn3226d+/v3v7a6+9ZiSZK664IuXHfvzxx0aSmTJlSsztb7/9tpFkpk2b5t42bNgwI8k89dRTMY/9zW9+Y5o0aWK+/vrrtL+3VM/LV199ZSSZvn37ml27drm3v/POO0aSefjhh1N+TmOMKSwsNIMGDarxMY7169eboqIiM2bMmJjbV65caQoKCszEiRPd2+IvfdfleVu0aFHCGIYNGxZzCTjd73/37t2mU6dOZuDAgTGf7+uvvzbNmzc33bp1q/X77927txk9enTK+8877zwjyUgy+fn55vbbb4+5v7Ky0kgyrVu3NgceeKB59NFHzYsvvmjGjRtnJJk777wz5eeuy6XvN954wzRr1sxcdNFF5t577zWSzN13353R53DcddddRpKZM2dOysfUdOk7mffff98UFRUl/J47rrjiCtOkSZOkl8zhLSLqHLJ48WK1aNFC48aNi7n9rLPOkhTO3kzHHXfcoVAopMLCQjVr1kzNmzfXokWL0rqcmq6///3vGjJkiFq2bOl+jXvuuSfmazz//POSpAsuuCDl53n55ZclRb5Hx4ABA9S7d++E77lVq1b61a9+FXPbxIkTtWfPHr322ms1jjmT56W8vFxNmzZ13z/44IMlSV9//XWNXyMTlZWV2rZtW8L3XlZWpqOPPrrGn3emz9tee+2lo48+Ou2x1fb9f/rpp1q9erVOOeWUmI/r2rWrhgwZktbX+O6772qMJqdNm6alS5eqoqJCkydP1oUXXqg//elP7v179uyRFL4S9dxzz2n8+PE69thj9eijjyoUCumqq65K75tN05AhQ3Tttdfq1ltv1fnnn6/TTz9dZ599dsaf5/nnn9cFF1ygcePGxSTR1ceKFSt0/PHHq6ysTHfffXfSx5SWlmrPnj1avXp1g3xNNBwW6hyybt06derUKWE/q7S0VM2aNdO6detq/RyzZ8/W+eefr4EDB+rxxx/XW2+9paVLl2r06NHatm1bg4zziSee0CmnnKIuXbrowQcfVGVlpZYuXarJkyfHHA1Zs2aNmjZtqk6dOqX8XM731Llz54T79t5774TvuWPHjgmPcz5/Tc9Pps9LSUlJzPsFBQWSVOtz2LVrV3311Vc1PsaR6fden49N9ria1Pb9O58/2c8j2W3JbNu2TYWFhSnv79q1qw499FCNGTNGf/7zn3Xuuefq8ssv15o1a2LGeMABB6hbt27ux+Xl5WnUqFH65ptv9OOPP6Y1lnSddtppys/P144dO/Sf//mfGX/8iy++qJNPPlkjR47UQw891CBH7r7++msdddRRatasmRYtWqR27dolfZzzXDfU3wE0HI5n5ZCSkhK9/fbbMsbE/AL/+OOP2rVrl9q3b1/r53jwwQc1fPhw/fnPf465/eeff26wcT744IPab7/9NH/+/JhxRie8SVKHDh20e/durV69OuVC4fyx/f777xOOU3333XcJ3/MPP/yQ8DmcCCF+cYkfc7afF0kaNWqU5s6dq7feeqvWfero7z1esu891cem87w19Bls5+vX9POoTfv27WMSqWozYMAA3XHHHVq+fLk6dOigHj16qLi4OOljjTGS6p5Alszu3bt12mmnaa+99lJBQYHOPvtsvfnmm8rPz0/r41988UWdeOKJGjZsmB5//PG0P64mX3/9tYYPHy5jjF555ZUajyQ6z3U6f0fQuIioc8iIESO0efPmhEImToLWiBEj3NsKCgqSvjLOy8tzox/HBx98kHCGuz7y8vKUn58f88d/9erVCVnfxx13nCQlLI7RnMux8cUsli5dqo8//jjme5bCC2t0xrgk/e1vf1OTJk00dOjQGsec7edFki6++GK1aNFCU6ZMSZp4ZozRP/7xD0nS4MGDVVRUlPC9f/PNN1q8eHHC9x4t0+etofXq1UudOnXSo48+GnP7ypUrEwqNpHLAAQfoyy+/TPtrvvzyy2rSpIm6d+8uSWrWrJnGjh2rjz/+OCY50RijF154QT169GjQRWnGjBl6/fXX9dBDD2n+/Pl6//33046qX3rpJZ144ok64ogj9OSTTybMxbpYuXKlhg8frt27d2vx4sUxVxWSWb58uUpKStK+4oHGQ0SdQ8444wzddtttOvPMM91s1jfeeEPXXXedxowZo2OOOcZ9bN++ffXKK6/omWeeUefOndWqVSv16tVLxx9/vK6++mrNmDFDw4YN06effqqrrrpK++23n3bt2lXnsUUvyscff7yeeOIJTZkyRePGjdOqVat09dVXq3PnzjGZykceeaQmTZqka665Rj/88IOOP/54FRQUaNmyZSouLtbUqVPVq1cvnXvuuZo7d66aNGmi4447TitWrND06dNVVlamiy++OGYcJSUlOv/887Vy5Ur17NlTzz33nO666y6df/756tq1a8rxZ+t5ibfffvvpkUce0b/927+pX79+bsETSfroo4907733yhijk046SW3bttX06dM1bdo0nXHGGZowYYLWrVunWbNmqbCwUDNmzEj5dTJ93hpakyZNNGvWLJ133nkaN26cJk+erA0bNmjWrFnq3LlzWpHs8OHDddVVV2nr1q0xkfG5556r1q1ba8CAAerYsaPWrl2rv//975o/f77+8z//Ux06dHAfe/XVV+v555/X6NGjNXPmTLVu3Vp333233n///YQXEe+++667oG/atEnGGLc62GGHHVbjQrdgwQJdf/31mj59uvsi6Prrr9ell16q4cOH66STTkr5sW+88YZOPPFEderUSdOmTdN7770Xc/+BBx6o1q1bu+87Y1q+fLk77pYtW0qSm7/y448/6qijjtL333+ve+65Rz/++GPMZf599tknIbp+6623NGzYsKxUuEM9eZjIhlokK3iybt068+///u+mc+fOplmzZqZbt27m8ssvjymKYIwx7733nhkyZIgpLi42ktwM1h07dphLL73UdOnSxRQWFppQKGSefPJJc+aZZyZk4iqNrO8tW7YYSeZ3v/tdzO033HCD2XfffU1BQYHp3bu3ueuuu5IW5di9e7e55ZZbTJ8+fUx+fr5p06aNGTx4sHnmmWdiHnPjjTeanj17mubNm5v27dub008/3axatSrmczkFT1555RVz6KGHmoKCAtO5c2czbdo0s3Pnzhq/t3SfFyfr+eabb054LtJ5vhxffvmlmTJlitl///1NQUGBKSoqMgceeKC55JJLzFdffRXz2LvvvtscfPDB7vMzduxY869//SvmMame20yet2RSZX2n+/3feeedZv/99zf5+fmmZ8+e5t577zVjx46Nyf5P5YsvvjB5eXkJpxzuvfdec+SRR5r27dubZs2ambZt25phw4aZBx54IOnn+ec//2nKy8tNq1at3Kz76PnlOPPMM90s8vh/NWVWf/fdd6a0tNQcffTRMQVJ9uzZY0444QTTtm3bhJ9pNOdnl+rfyy+/HPP4mh7rePnll2t8XPzP6YsvvjCS6lRsB9mXZ0z1Zg1QB8uWLVMoFNJtt91W69lbYMOGDerZs6dOPPFE3XnnnbU+/oQTTtCuXbvcEwLIjunTp+v+++/Xl19+mVA0Bt5joUadfPPNN3rvvfd07bXX6oMPPtDnn3+uvffe2+thwSKrV6/Wtddeq6OOOkolJSX6+uuvdcstt+iTTz7Ru+++m1B0I5kPP/xQ/fv315IlS3TYYYc1wqiDZ8OGDerevbvmzp2r0047zevhIAmSyVAnd999t8aNG6fdu3fr6aefZpFGgoKCAq1YsUJTpkzRyJEj9R//8R/q2LGjXnnllbQWaUnq06eP5s2bx9neLPrqq690+eWXa+LEiV4PBSkQUQMAYDEiagAALJYzC/XPP/+s3//+9zr22GPVoUOHhO5H0f77v/9bgwYNUvv27VVQUKCuXbvq1FNP1b/+9a+0vtZPP/2kU089VaWlpcrLy8tKT+f4rkSNId2uRV778ccfddZZZ6l9+/YqLi7W4MGD0y6P6iczZ8607qjMzp07dcABB+iGG26Iuf2dd97RqFGj1KpVK7Vs2VJHHXWU3nzzzYSPr+/v5v/93//pj3/8o/bbbz/l5+erW7duuvzyyxNqBqxfv14TJkzQXnvtpe7duydNXHv77bdVVFSUduncV155RXl5eQ3WvAbZcd111yXUmpDCJZZbtmypb7/9tvEHVU85s1CvW7dOd955p3bs2FHrwrlu3Todd9xxuvvuu/XSSy9p1qxZWrZsmQYOHKhPP/201q919dVX6x//+IduueUWVVZW6qabbmqg7wK12bFjh0aMGKFFixZpzpw5euqpp9SxY0eNHj1ar776qtfDC7zbb79d69evj6lBvXTpUg0dOlTbtm3TAw88oAceeEDbt2/XiBEjEgrG1Pd3c8KECbr55pt17rnn6rnnntM555yj2bNn69/+7d9iHve73/1Oy5Yt04MPPqipU6fq/PPPj2lZumvXLp177rn6/e9/r969e6f1vYdCIVVWVioUCqX1eHgj1UI9YsQIDRgwQNOmTWv8QdWXl2fDMrFnzx63ufqaNWsyOrNqjDEfffSRkWSmT59e62OPOeYY07t377oONS3x51MbQ7Kz0vWxdevWBvtcjttuu81IMkuWLHFv27lzpznwwAPNgAED6vQ5t2zZ0lDDa1TJzkbXR32fh507d5ouXbqYP/zhDzG3jxo1ynTs2DHm82/atMm0b9/eHH744bV+3nR/N51uWP/1X/8Vc/t1112X0D2utLTU/O1vf3PfHzlypLnsssvc96+//nrTq1evhPoDuSZX53Y21dQ58LHHHjNNmzY1K1eubNxB1VPORNR5eXn1ugzoVCuq6YzgihUrlJeXp4ULF+rjjz92v+bTTz+tZs2a6eabb3Yfu3btWjVp0kRt2rSJqVz1H//xH+rQoYNbS9gYo5tuukndunVTYWGhQqFQRmdC9+zZo7lz56pfv34qKipS27ZtNWjQoJgymXv27NFNN92kAw44QAUFBSotLdUZZ5yhb775ptbPv337dl1++eXupcQuXbroggsu0IYNG2Iet++++7oVx/r376/CwkLNmjVLUrhT1sCBA9WmTRsVFxere/fumjx5ctrfY7R//OMf6tWrlwYPHuze1qxZM51++ul65513ar1sNXz4cPXp00evvfaaDj/8cBUXF7tj2bRpky699NKY7/Wiiy7Sli1b3I/v37+/jjzyyITPu3v3bnXp0iWm73cqf/vb3zR48GC1bNlSLVu2VL9+/XTPPffEPObee+/VL3/5SxUWFqpdu3Y66aST0roEm+7PuqbnYfHixRo+fLhKSkpUVFSkrl276v/9v/+nrVu31vi1n376aX377beaNGlSzO1vvvmmhg8fHlM9rFWrVho6dKiWLFmStFZ5tHR+N52vI0ljxoyJuf3444+XJD3++OPubdu3b4/pAd2yZUu3Iczy5ct19dVX6y9/+UtGpTqTXfo+66yz1LJlS33yyScaNWqUWrRooc6dO7tbA2+99ZaOOOIItWjRQj179kzog/3Xv/5VeXl5WrBggX7961+rXbt2atGihU444QS38pijpp/pypUr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qaee0hlnnFHj5dkFCxZo9+7dNf68KisrtW3btoTnvKysTEcffXSNP69Mf9bJnod+/fopPz9f5557ru67776Ey6s1+e6771RaWppw+9SpU/XZZ5/pwgsv1LfffqtVq1bp3//93/X1119LSt5Ksi6/m8cdd5z2339/XXbZZVqwYIE2bNigF154QdOmTVPTpk1jvk6vXr30ySef6PPPP9eaNWt0zz33aP369brkkkt0yy23qF27drr99tvdDlqnnXaa1q9fn/ZzES0vLy/mcnyzZs20//77q3Pnzm7DFUlq166dSktL3eclWqq/Ec7P3JHsZ7p48WIdeOCBGjBgQMztZ511lowx7u953759dcghh2jevHnuYz7++GO98847MVtV6f6uOI466qiYbQYnOe+4446L+X11bne+/yVLluinn37SmWeeGfN19uzZo9GjR2vp0qUJl9p/9atfxbx/8MEHa/v27Rn1FS8tLdWePXtyqoiOrxfqUCikQYMG6bTTTtPLL78sY0ydM/6cPaGFCxfqiy++0IoVK9yF+u2339bmzZu1cOFCde/eXfvtt5+kcIarJHXq1Cnh8yW7Ld6aNWvUtGnTGh/rfI1k/Zz33ntv9/5UH9usWbOYbkNS+A9Pp06dEj422dcYOnSonnzySe3atUtnnHGG9tlnH/Xp00cPP/xwjd9bKiUlJUnH7PTKTdX0vrZx/vDDD/rggw/UvHnzmH+tWrWSMUZr1651Hzt58mR9++237guwhx9+WDt27EhYIOOtWbNGkmrs+Vvfn1cmH5vscT169NDChQtVWlqqCy64QD169FCPHj00Z86clF/XsW3bNhUWFibcPnnyZN1www164IEHtM8++6hr16766KOPdOmll0qSunTpkvAxdfndzM/P1/PPP6+uXbvq2GOP1V577aVx48Zp2rRp2muvvRK+TpMmTbT//vu7rSwvvfRS9e/fXxMnTtSiRYt02WWXaf78+friiy+0Zs0aXXTRRbU+B8kUFxcnPC/5+flJ52p+fr67Vx4t1d+IdH6m69atSzknnPsdkydPVmVlpT755BNJ0rx581RQUKAJEya4j8nkd0VK/J10+minut35/p1e5ePGjUv4WjfeeKOMMQn9yON7yjs5Bsla+qbi/Kwy+RivBab6eqtWrXTAAQfos88+q9PH5+fn64gjjtDChQu1zz77qFOnTurbt6/b+/aVV17RokWL3MQWKTKpkr1yW716da1nmjt06KDdu3dr9erVSX8Ro7/G999/n7BAfPfddzX22y0pKdGuXbu0Zs2amMXaGKPVq1cn1FZOFc2OHTtWY8eO1Y4dO/TWW2/p+uuv18SJE7XvvvvGJIWlo2/fvvrnP/+ZcLtzW58+fWr9HMnG2b59exUVFenee+9N+jHRz9OoUaO09957a968eRo1apTmzZungQMH6sADD6zx6zrP4TfffKOysrKkj4n+ecVL5+flfGw6P+tUP68jjzxSRx55pHbv3q13331Xc+fO1UUXXaSOHTvq1FNPTfn127dvn/CH03HZZZfpoosu0ueff65WrVqpW7duOu+889SiRQsdcsghKT+nlNnv5v7776/Kykp9++23+umnn9SjRw9t3LhRv/3tb2vsN/7KK69o/vz57jx6/vnndeyxx+rQQw+VJF144YU6++yza/362ZLqb8T+++8fc1uyn2lJSUnK+STFzu0JEybokksu0V//+ldde+21euCBB3TiiSdqr732ch+Tye9KfTifZ+7cuRo0aFDSx2SjN7YzhxuyF3m2+TqijrZ27Vr985//TJj4mTjmmGP0v//7v3r88cfdy9stWrTQoEGDNHfuXH333XcxPaEHDRqkwsJCPfTQQzGfZ8mSJUkvf8U77rjjJEl//vOfUz7GuQz24IMPxty+dOlSffzxx25v3GSc++I/9vHHH9eWLVtq/NhkCgoKNGzYMN14442Swp21MnXSSSfpk08+0dtvv+3etmvXLj344IMaOHBgnWuKH3/88fryyy9VUlKiQw89NOFf9Iumpk2batKkSXryySf1+uuv6913300ri/3YY49V06ZNa/x5DR48WEVFRQnP+TfffKPFixfX+JzX52edTNOmTTVw4EDddtttkqSqqqoaH3/AAQfoyy+/THl/QUGB+vTpo27dumnlypWaP3++fvOb36ioqKjGz1uX380uXbqob9++Ki4u1s0336wWLVqkXGh37Nih8847TzNmzHBfWBtjYi6rbt682T2p4YVUfyPSKYo0YsQIffTRRwk/v/vvv195eXk66qij3Nv22msvnXjiibr//vv17LPPavXq1QlzO5PflfoYMmSI2rZtq48++ijp1zn00EPdKDwTBQUFNUbLy5cvV0lJSVZeBGRLTkXUzz//vLZs2aKff/5ZkvTRRx+5TdTHjBmj4uJibdy4USNHjtTEiRP1i1/8QkVFRfrss880Z84c7dixQzNmzKjz1x8xYoR2796tRYsWxRyzOOaYYzRjxgzl5eXF7B/ttddeuvTSS3XNNdfonHPO0fjx47Vq1SrNnDkzrUvfRx55pCZNmqRrrrlGP/zwg44//ngVFBRo2bJlKi4u1tSpU9WrVy+de+65mjt3rpo0aaLjjjtOK1as0PTp01VWVqaLL7445ecfOXKkRo0apcsuu0ybNm3SkCFD9MEHH2jGjBnq379/0qMc8f74xz/qm2++0YgRI7TPPvtow4YNmjNnjpo3b65hw4a5jxs+fLheffXVWv8YTp48WbfddpvGjx+vG264QaWlpbr99tv16aefujkAdXHRRRfp8ccf19ChQ3XxxRfr4IMP1p49e7Ry5Uq99NJL+t3vfqeBAwfGjOPGG2/UxIkTVVRUlFBQI5l9991X06ZN09VXX61t27a5x0g++ugjrV27VrNmzVLbtm01ffp0TZs2TWeccYYmTJigdevWadasWSosLKxxftbnZ+244447tHjxYpWXl6tr167avn27GzlFv8hMZvjw4brqqqu0devWmKNYH374oR5//HEdeuihKigo0Pvvv68bbrhBv/jFL3T11Ve7j8v0d7NZs2YaNmxYzN77TTfdpE6dOqlr16764Ycf9Oijj+rJJ5/UAw88kPQSuyRde+21KiwsjDl+NGrUKM2ZM0f//d//rf33319XXXWVRo8eXevzly3vvvtuzN+IK664Ql26dEmrdezFF1+s+++/X+Xl5brqqqvUrVs3VVRU6Pbbb9f555+fkFcyefJkzZ8/XxdeeKH22WefhJ97pr8rddWyZUvNnTtXZ555pn766SeNGzdOpaWlWrNmjd5//32tWbOmxhe9qfTt21evvPKKnnnmGXXu3FmtWrVSr1693PvfeustDRs2zLqqfzXyKoutLrp165ayEbrTmH379u3mnHPOMb179zYtW7Y0zZo1M/vss485/fTTE9L0U0mW9W1M+DhT+/btjSTz7bffurc7GZrJUv737Nljrr/+elNWVmby8/PNwQcfbJ555pm0C57s3r3b3HLLLaZPnz4mPz/ftGnTxgwePDim8f3u3bvNjTfeaHr27GmaN29u2rdvb04//XSzatWqmM+VrODJtm3bzGWXXWa6detmmjdvbjp37mzOP//8hKM63bp1M+Xl5Qnje/bZZ81xxx1nunTpYvLz801paakZM2aMef3112Med8ghh5hOnTrV+v0aY8zq1avNGWecYdq1a2cKCwvNoEGDzIIFC9L62FQ/O2OM2bx5s7nyyitNr1693Oeyb9++5uKLLzarV69OePzhhx9uJNWYxZ3M/fffbw477DBTWFhoWrZsafr372/mzZsX85i7777bHHzwwe44xo4dmzA/kx3PSvdnnep5qKysNCeddJLp1q2bKSgoMCUlJWbYsGG1HjszxpgvvvjC5OXlmUcffTTm9k8//dQMHTrUtGvXzuTn55v999/fXHnllQlZtZn+birJyYhZs2aZHj16mIKCAtO2bVszevRo89prr6Uc80cffWQKCwvNW2+9lXDf7NmzTdeuXU3r1q3NuHHjYo63JZMq67tFixYJj031/Mf/HjlZ3y+99JKZNGmSadu2rXsq4PPPP0/rcxpjzNdff20mTpxoSkpKTPPmzU2vXr3MzTffHJOJ79i9e7cpKyur8URJur8rkswFF1wQ87FfffWVkWRuvvnmmNud5+/vf/97zO2vvvqqKS8vN+3atTPNmzc3Xbp0MeXl5TGPc34X4n9GzvPn/P03xpj33nvPDBkyxBQXFyfMoS+++CIhSz8X0D0LWffzzz+rXbt2uvXWW2vMiIb9TjjhBO3atSujoj1I7a9//at+/etfa+nSpe5+ObJn+vTpuv/++/Xll1/WWmDHJoHZo4Z3XnvtNXXp0kW/+c1vvB4K6un666/XwoULtXTpUq+HAmRkw4YNuu2223Tdddfl1CItsVCjEZSXl2vFihV1SgyBXfr06aN58+bl1BlUQJK++uorXX755Zo4caLXQ8kYl74BALAYETUAABZjoQYAwGIs1AAAWIyFGgAAi6WVo75nzx599913atWqVW5VcwEAwELGGP3888/ae++9k3aYi5bWQv3dd9+lbDIAAADqZtWqVTV23JPSXKhbtWolSbrvvvvcFo6ItGkLqvFPhovav3aexwOxSNDnhCOXGh5kG3MCyWzdulVnnnmmu77WJK2F2rncXVxcrJYtW9ZvdD7iNAcJrPzwXGBKRAR+TlTj70QEcwI1SWc7OaM6ah07dkza9zSoUvWIDhrmhFS+a6MkqarsAI9HYgfmRAR/J5DM5s2b034sWd8AAFiMhRoA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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Jacobian shape: (361, 212) (3.44% nonzero)\n", + "FWD solves: 13 REV solves: 0\n", + "Total colors vs. total size: 13 vs 212 (93.87% improvement)\n", + "\n", + "Sparsity computed using tolerance: 1e-12\n", + "Time to compute sparsity: 0.1957 sec\n", + "Time to compute coloring: 0.1057 sec\n", + "Memory to compute coloring: 0.0781 MB\n", + "Coloring created on: 2024-08-14 08:51:12\n" + ] + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "import os \n", "import matplotlib\n", @@ -371,13 +2846,13 @@ " #\n", " stfd = '_fd' if fd else ''\n", " stpc = '_pc' if pc else ''\n", - " coloring_dir = f'coloring_files{stfd}{stpc}'\n", - " if fd or pc:\n", - " if os.path.exists(coloring_dir):\n", - " shutil.rmtree(coloring_dir)\n", - " shutil.move('coloring_files', coloring_dir)\n", + " saved_coloring_dir = f'coloring_files{stfd}{stpc}'\n", + " print(saved_coloring_dir)\n", + " if os.path.exists(saved_coloring_dir):\n", + " shutil.rmtree(saved_coloring_dir)\n", + " shutil.move(p.get_coloring_dir(mode='output'), saved_coloring_dir)\n", "\n", - " _view_coloring(os.path.join(coloring_dir, 'total_coloring.pkl'));\n" + " _view_coloring(os.path.join(saved_coloring_dir, 'total_coloring.pkl'));\n" ] }, { @@ -450,7 +2925,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.5" + "version": "3.11.4" } }, "nbformat": 4, diff --git a/dymos/transcriptions/explicit_shooting/explicit_shooting.py b/dymos/transcriptions/explicit_shooting/explicit_shooting.py index d1f63b596..463ae0b14 100644 --- a/dymos/transcriptions/explicit_shooting/explicit_shooting.py +++ b/dymos/transcriptions/explicit_shooting/explicit_shooting.py @@ -18,7 +18,7 @@ class ExplicitShooting(TranscriptionBase): - """ + r""" The Transcription class for single explicit shooting. This transcription uses an external explicit integrator to propagate the states, and optionally their @@ -27,8 +27,8 @@ class ExplicitShooting(TranscriptionBase): If we view integration as a function .. math:: + \bar{x}_{f} = \mathcal{I}(\bar{x}_0, t_0, t_d, \bar{\theta}) = \bar{x}_{0} + \int_{t_0}^{t_0+t_d} \left( f_{ode}(\bar{x}, t, \bar{\theta}) \right) dt - \bar{x}_{f} = \mathcal{I}(\bar{x}_0, t_0, t_d, \bar{\theta}) = \bar{x}_{0} + \int_{t_0}^{t_0+t_d} \left( f_{ode}(\bar{x}, t, \bar{\theta}) \right) dt then the inputs are the initial states ($\bar{x}$), the initial time and duration ($t_0$ and $t_d$), and some set of parameters that impact the ODE ($\theta$). For Dymos, $\theta$ may include the phase parameters, or the node values @@ -38,6 +38,7 @@ class ExplicitShooting(TranscriptionBase): ---------- **kwargs : dict Dictionary of arguments. + """ # nopep8: E501, W605 def __init__(self, **kwargs): super(ExplicitShooting, self).__init__(**kwargs) From 18b314e8bb2a802a05e5722c9cd50fb1beb45640 Mon Sep 17 00:00:00 2001 From: Rob Falck Date: Wed, 14 Aug 2024 11:02:20 -0400 Subject: [PATCH 2/8] notebook linting --- .../brachistochrone_tandem_phases.ipynb | 853 +- .../bryson_denham/bryson_denham.ipynb | 73640 +--------------- .../commercial_aircraft.ipynb | 2026 +- 3 files changed, 42 insertions(+), 76477 deletions(-) diff --git a/docs/dymos_book/examples/brachistochrone/brachistochrone_tandem_phases.ipynb b/docs/dymos_book/examples/brachistochrone/brachistochrone_tandem_phases.ipynb index 89c939da4..65154f489 100644 --- a/docs/dymos_book/examples/brachistochrone/brachistochrone_tandem_phases.ipynb +++ b/docs/dymos_book/examples/brachistochrone/brachistochrone_tandem_phases.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "tags": [ "active-ipynb", @@ -78,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "tags": [ "active-ipynb", @@ -93,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -155,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -211,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -251,51 +251,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model viewer data has already been recorded for Driver.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_solution.db, is being overwritten.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Full total jacobian for problem 'problem' was computed 3 times, taking 0.10124999983236194 seconds.\n", - "Total jacobian shape: (223, 287) \n", - "\n", - "\n", - "Jacobian shape: (223, 287) (8.40% nonzero)\n", - "FWD solves: 29 REV solves: 0\n", - "Total colors vs. total size: 29 vs 287 (89.90% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-25\n", - "Time to compute sparsity: 0.1012 sec\n", - "Time to compute coloring: 0.1358 sec\n", - "Memory to compute coloring: 10.5938 MB\n", - "Coloring created on: 2024-08-14 10:29:31\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/visualization/opt_report/opt_report.py:625: UserWarning: Attempting to set identical low and high ylims makes transformation singular; automatically expanding.\n", - " ax.set_ylim([ymin_plot, ymax_plot])\n" - ] - } - ], + "outputs": [], "source": [ "p.model.linear_solver = om.DirectSolver()\n", "p.setup()\n", @@ -315,33 +273,14 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "tags": [ "remove-input", "remove-output" ] }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/driver.py:143: OMDeprecationWarning:boolean evaluation of DriverResult is temporarily implemented to mimick the previous `failed` return behavior of run_driver.\n", - "Use the `success` attribute of the returned DriverResult object to test for successful driver completion.\n" - ] - }, - { - "data": { - "text/plain": [ - "3.1955113155213425e-05" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from openmdao.utils.assert_utils import assert_near_equal\n", "\n", @@ -360,783 +299,13 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "tags": [ "hide-input" ] }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " Bokeh Plot\n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import pathlib\n", "\n", diff --git a/docs/dymos_book/examples/bryson_denham/bryson_denham.ipynb b/docs/dymos_book/examples/bryson_denham/bryson_denham.ipynb index 6136a41c8..903a4d821 100644 --- a/docs/dymos_book/examples/bryson_denham/bryson_denham.ipynb +++ b/docs/dymos_book/examples/bryson_denham/bryson_denham.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "e9bef506", "metadata": { "colab": { @@ -160,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "ec2b8a83", "metadata": { "colab": { @@ -221,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "0f14deb3", "metadata": { "tags": [ @@ -237,7 +237,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "ii-ApZna669K", "metadata": { "id": "ii-ApZna669K" @@ -264,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "3yXzgcIw8Tjq", "metadata": { "id": "3yXzgcIw8Tjq" @@ -294,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "sGYfpaiI8eH-", "metadata": { "id": "sGYfpaiI8eH-" @@ -338,7 +338,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "IdjlON_895PU", "metadata": { "id": "IdjlON_895PU" @@ -358,7 +358,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "d498cb7b", "metadata": { "colab": { @@ -367,29 +367,7 @@ "id": "d498cb7b", "outputId": "18be63ac-a3cb-4632-eb7d-130eced98d70" }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Constraint Report [traj] ---\n", - " --- phase0 ---\n", - " [path] x <= 1.1111e-01 [m]\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "#\n", "# Minimize time at the end of the phase\n", @@ -429,7 +407,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "iRY53Rq0_0c6", "metadata": { "colab": { @@ -441,116 +419,7 @@ "hide-output" ] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model viewer data has already been recorded for Driver.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_solution.db, is being overwritten.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Full total jacobian for problem 'problem' was computed 3 times, taking 0.18549308413639665 seconds.\n", - "Total jacobian shape: (336, 286) \n", - "\n", - "\n", - "Jacobian shape: (336, 286) (1.30% nonzero)\n", - "FWD solves: 7 REV solves: 0\n", - "Total colors vs. total size: 7 vs 286 (97.55% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-25\n", - "Time to compute sparsity: 0.1855 sec\n", - "Time to compute coloring: 0.0561 sec\n", - "Memory to compute coloring: 0.5625 MB\n", - "Coloring created on: 2024-08-14 10:31:10\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->x', inds=[(0, 0), (95, 0)])] cannot be impacted by the design variables of the problem.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimization terminated successfully (Exit mode 0)\n", - " Current function value: 4.000014657972209\n", - " Iterations: 38\n", - " Function evaluations: 38\n", - " Gradient evaluations: 38\n", - "Optimization Complete\n", - "-----------------------------------\n", - "INFO: checking out_of_order\n", - "INFO: checking system\n", - "INFO: checking solvers\n", - "INFO: checking dup_inputs\n", - "INFO: checking missing_recorders\n", - "WARNING: The Problem has no recorder of any kind attached\n", - "INFO: checking unserializable_options\n", - "INFO: checking comp_has_no_outputs\n", - "INFO: checking auto_ivc_warnings\n", - "\n", - "Simulating trajectory traj\n", - "Model viewer data has already been recorded for Driver.\n", - "INFO: checking out_of_order\n", - "INFO: checking system\n", - "INFO: checking solvers\n", - "INFO: checking dup_inputs\n", - "INFO: checking missing_recorders\n", - "WARNING: The Problem has no recorder of any kind attached\n", - "INFO: checking unserializable_options\n", - "INFO: checking comp_has_no_outputs\n", - "INFO: checking auto_ivc_warnings\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/group.py:1104: DerivativesWarning:Constraints or objectives [ode_eval.control_interp.control_rates:u_rate2] cannot be impacted by the design variables of the problem because no partials were defined for them in their parent component(s).\n", - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_simulation.db, is being overwritten.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Done simulating trajectory traj\n" - ] - }, - { - "data": { - "text/plain": [ - "Problem: problem\n", - "Driver: ScipyOptimizeDriver\n", - " success : True\n", - " iterations : 39\n", - " runtime : 4.0923E+00 s\n", - " model_evals : 39\n", - " model_time : 1.4088E-02 s\n", - " deriv_evals : 38\n", - " deriv_time : 1.0526E-01 s\n", - " exit_status : SUCCESS" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "#\n", "# Set the initial values\n", @@ -585,24 +454,12 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "beea4c6a", "metadata": { - "id": "beea4c6a", - "scrolled": true + "id": "beea4c6a" }, - "outputs": [ - { - "data": { - "image/png": "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i+Ozzz5j5MiRFCpUiGbNmjFx4kSznkKOtWvXLpo2bZq2/eqrrwL//D/uSPULi2Fo3J6IiIjZDMMgMjKSy5cvmx2KiDyAQoUKUaJECU14LyIiYiKN7BIREXEANwpdxYsXx8vLS38oi+QwhmFw9epVzp8/D6AJj0VEREykYpeIiIjJUlJS0gpdWhFOJOfKmzcvYF1pqnjx4rnqlkYRERFHotUYRURETJaUlASAl5eXyZGIyIO68Xt84/daREREsp+KXSIiIg5Cty6K5Hz6PRYRETGfil0iIiIiIiIiIuI0VOwSERGRbBcWFobFYiEkJOSBj2WxWPj5558f+DiSdQMGDKBTp052P8+4ceOoVauWwxxHREREHJuKXSIiIpIj3KlQERERQZs2bbI/IGHq1KnMmjXL7DAylFERdNSoUaxZs8acgERERCTbaDVGERERydFKlChhdgi5lre3t9khZEn+/PnJnz+/2WGIiIiInWlkl4iIjR05coQSJUoQFxd3z7YHDhzA39+fK1euZENkIrb3448/Ur16dfLmzUvRokVp3rw5V65cITU1lXfffRd/f388PDyoVasWK1euvONxZs2aRaFChdLt+/nnn9Mm+541axbjx49n3759WCwWLBZL2oiiW0fwHDhwgGbNmqXF9NxzzxEfH5/28xu33k2ePBk/Pz+KFi3K0KFDtXreXdzpdb71NsYmTZrw0ksvMWLECAoXLoyvry9ff/01V65cYeDAgRQoUIBy5cqxYsWKtMfc67XPyM6dO2nRogU+Pj54e3vzxBNPsGfPnrSfly5dGoDOnTtjsVjStm8dHXiv9+mN220XL15M06ZN8fLyombNmmzdujXrSRSRTFE/SkRsQcUuEZFMaNKkCSNGjMhU2zFjxjB06FAKFChwz7bVq1enbt26/Oc//3nACEWyX0REBL169eLZZ5/l8OHDrF+/ni5dumAYBlOnTuXjjz9m8uTJ7N+/n1atWtGxY0eOHTt2X+fq0aMHI0eOpGrVqkRERBAREUGPHj1ua3f16lVat25N4cKF2blzJz/88AO///47w4YNS9du3bp1nDhxgnXr1jF79mxmzZqV/bfjGQZcv2LOl2FkOsy7vc4ZmT17Nj4+PuzYsYOXXnqJF154ge7du9OwYUP27NlDq1at6NevH1evXr3v1MXFxdG/f382bdrEtm3bqFChAm3b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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "sol = om.CaseReader('dymos_solution.db').get_case('final')\n", "sim = om.CaseReader('dymos_simulation.db').get_case('final')\n", @@ -655,7 +512,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "13842bfe", "metadata": { "tags": [ @@ -663,18 +520,7 @@ "remove-output" ] }, - "outputs": [ - { - "data": { - "text/plain": [ - "3.6644930523355157e-06" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from openmdao.utils.assert_utils import assert_near_equal\n", "\n", @@ -699,7 +545,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "da31be29", "metadata": { "colab": { @@ -708,73461 +554,11 @@ }, "id": "da31be29", "outputId": "f351fca0-6415-4469-8a42-dc035fe2bbc4", - "scrolled": false, "tags": [ "hide-input" ] }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - " \n", - "
\n", - " \n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - "\n", - "\n", - "
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import pathlib\n", "\n", diff --git a/docs/dymos_book/examples/commercial_aircraft/commercial_aircraft.ipynb b/docs/dymos_book/examples/commercial_aircraft/commercial_aircraft.ipynb index 9881fc1f8..655185939 100644 --- a/docs/dymos_book/examples/commercial_aircraft/commercial_aircraft.ipynb +++ b/docs/dymos_book/examples/commercial_aircraft/commercial_aircraft.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "tags": [ "active-ipynb", @@ -510,315 +510,21 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "tags": [ "remove-input", "hide-output" ] }, - "outputs": [ - { - "data": { - "text/html": [ - "
import numpy as np\n",
-       "import openmdao.api as om\n",
-       "from dymos.models.atmosphere import USatm1976Comp\n",
-       "\n",
-       "from .steady_flight_path_angle_comp import SteadyFlightPathAngleComp\n",
-       "from .dynamic_pressure_comp import DynamicPressureComp\n",
-       "from .flight_equlibrium.steady_flight_equilibrium_group import SteadyFlightEquilibriumGroup\n",
-       "from .propulsion.propulsion_group import PropulsionGroup\n",
-       "from .range_rate_comp import RangeRateComp\n",
-       "from .true_airspeed_comp import TrueAirspeedComp\n",
-       "from .mass_comp import MassComp\n",
-       "\n",
-       "\n",
-       "class AircraftODE(om.Group):\n",
-       "\n",
-       "    def initialize(self):\n",
-       "        self.options.declare('num_nodes', types=int,\n",
-       "                             desc='Number of nodes to be evaluated in the RHS')\n",
-       "\n",
-       "    def setup(self):\n",
-       "        nn = self.options['num_nodes']\n",
-       "\n",
-       "        self.add_subsystem(name='mass_comp',\n",
-       "                           subsys=MassComp(num_nodes=nn),\n",
-       "                           promotes_inputs=['mass_fuel'])\n",
-       "\n",
-       "        self.connect('mass_comp.W_total', 'flight_equilibrium.W_total')\n",
-       "\n",
-       "        self.add_subsystem(name='atmos',\n",
-       "                           subsys=USatm1976Comp(num_nodes=nn),\n",
-       "                           promotes_inputs=[('h', 'alt')])\n",
-       "\n",
-       "        self.connect('atmos.pres', 'propulsion.pres')\n",
-       "        self.connect('atmos.sos', 'tas_comp.sos')\n",
-       "        self.connect('atmos.rho', 'q_comp.rho')\n",
-       "\n",
-       "        self.add_subsystem(name='tas_comp',\n",
-       "                           subsys=TrueAirspeedComp(num_nodes=nn))\n",
-       "\n",
-       "        self.connect('tas_comp.TAS',\n",
-       "                     ('gam_comp.TAS', 'q_comp.TAS', 'range_rate_comp.TAS'))\n",
-       "\n",
-       "        self.add_subsystem(name='gam_comp',\n",
-       "                           subsys=SteadyFlightPathAngleComp(num_nodes=nn))\n",
-       "\n",
-       "        self.connect('gam_comp.gam', ('flight_equilibrium.gam', 'range_rate_comp.gam'))\n",
-       "\n",
-       "        self.add_subsystem(name='q_comp',\n",
-       "                           subsys=DynamicPressureComp(num_nodes=nn))\n",
-       "\n",
-       "        self.connect('q_comp.q', ('aero.q', 'flight_equilibrium.q', 'propulsion.q'))\n",
-       "\n",
-       "        self.add_subsystem(name='flight_equilibrium',\n",
-       "                           subsys=SteadyFlightEquilibriumGroup(num_nodes=nn),\n",
-       "                           promotes_inputs=['aero.*', 'alt'],\n",
-       "                           promotes_outputs=['aero.*'])\n",
-       "\n",
-       "        self.connect('flight_equilibrium.CT', 'propulsion.CT')\n",
-       "\n",
-       "        self.add_subsystem(name='propulsion', subsys=PropulsionGroup(num_nodes=nn),\n",
-       "                           promotes_inputs=['alt'])\n",
-       "\n",
-       "        self.add_subsystem(name='range_rate_comp', subsys=RangeRateComp(num_nodes=nn))\n",
-       "\n",
-       "        # We promoted multiple inputs to the group named 'alt'.\n",
-       "        # In order to automatically create a source variable for 'alt', we must specify their units\n",
-       "        # since they have different units in different components.\n",
-       "        self.set_input_defaults('alt', val=np.ones(nn,), units='m')\n",
-       "
\n" - ], - "text/latex": [ - "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n", - "\\PY{k+kn}{import} \\PY{n+nn}{numpy} \\PY{k}{as} \\PY{n+nn}{np}\n", - "\\PY{k+kn}{import} \\PY{n+nn}{openmdao}\\PY{n+nn}{.}\\PY{n+nn}{api} \\PY{k}{as} \\PY{n+nn}{om}\n", - "\\PY{k+kn}{from} \\PY{n+nn}{dymos}\\PY{n+nn}{.}\\PY{n+nn}{models}\\PY{n+nn}{.}\\PY{n+nn}{atmosphere} \\PY{k+kn}{import} \\PY{n}{USatm1976Comp}\n", - "\n", - "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{steady\\PYZus{}flight\\PYZus{}path\\PYZus{}angle\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{SteadyFlightPathAngleComp}\n", - "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{dynamic\\PYZus{}pressure\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{DynamicPressureComp}\n", - "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{flight\\PYZus{}equlibrium}\\PY{n+nn}{.}\\PY{n+nn}{steady\\PYZus{}flight\\PYZus{}equilibrium\\PYZus{}group} \\PY{k+kn}{import} \\PY{n}{SteadyFlightEquilibriumGroup}\n", - "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{propulsion}\\PY{n+nn}{.}\\PY{n+nn}{propulsion\\PYZus{}group} \\PY{k+kn}{import} \\PY{n}{PropulsionGroup}\n", - "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{range\\PYZus{}rate\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{RangeRateComp}\n", - "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{true\\PYZus{}airspeed\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{TrueAirspeedComp}\n", - "\\PY{k+kn}{from} \\PY{n+nn}{.}\\PY{n+nn}{mass\\PYZus{}comp} \\PY{k+kn}{import} \\PY{n}{MassComp}\n", - "\n", - "\n", - "\\PY{k}{class} \\PY{n+nc}{AircraftODE}\\PY{p}{(}\\PY{n}{om}\\PY{o}{.}\\PY{n}{Group}\\PY{p}{)}\\PY{p}{:}\n", - "\n", - " \\PY{k}{def} \\PY{n+nf}{initialize}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{int}\\PY{p}{,}\n", - " \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{Number of nodes to be evaluated in the RHS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{k}{def} \\PY{n+nf}{setup}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", - " \\PY{n}{nn} \\PY{o}{=} \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{mass\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{MassComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", - " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{mass\\PYZus{}fuel}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{mass\\PYZus{}comp.W\\PYZus{}total}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium.W\\PYZus{}total}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{USatm1976Comp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", - " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{h}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alt}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\\PY{p}{]}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.pres}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{propulsion.pres}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.sos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{tas\\PYZus{}comp.sos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q\\PYZus{}comp.rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{tas\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{TrueAirspeedComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{tas\\PYZus{}comp.TAS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{gam\\PYZus{}comp.TAS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q\\PYZus{}comp.TAS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{range\\PYZus{}rate\\PYZus{}comp.TAS}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{gam\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{SteadyFlightPathAngleComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{gam\\PYZus{}comp.gam}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium.gam}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{range\\PYZus{}rate\\PYZus{}comp.gam}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{DynamicPressureComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q\\PYZus{}comp.q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium.q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{propulsion.q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{SteadyFlightEquilibriumGroup}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", - " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.*}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alt}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{,}\n", - " \\PY{n}{promotes\\PYZus{}outputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.*}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}equilibrium.CT}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{propulsion.CT}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{propulsion}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{PropulsionGroup}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", - " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alt}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{range\\PYZus{}rate\\PYZus{}comp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{RangeRateComp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{)}\n", - "\n", - " \\PY{c+c1}{\\PYZsh{} We promoted multiple inputs to the group named \\PYZsq{}alt\\PYZsq{}.}\n", - " \\PY{c+c1}{\\PYZsh{} In order to automatically create a source variable for \\PYZsq{}alt\\PYZsq{}, we must specify their units}\n", - " \\PY{c+c1}{\\PYZsh{} since they have different units in different components.}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{set\\PYZus{}input\\PYZus{}defaults}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alt}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{val}\\PY{o}{=}\\PY{n}{np}\\PY{o}{.}\\PY{n}{ones}\\PY{p}{(}\\PY{n}{nn}\\PY{p}{,}\\PY{p}{)}\\PY{p}{,} \\PY{n}{units}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{m}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\\end{Verbatim}\n" - ], - "text/plain": [ - "import numpy as np\n", - "import openmdao.api as om\n", - "from dymos.models.atmosphere import USatm1976Comp\n", - "\n", - "from .steady_flight_path_angle_comp import SteadyFlightPathAngleComp\n", - "from .dynamic_pressure_comp import DynamicPressureComp\n", - "from .flight_equlibrium.steady_flight_equilibrium_group import SteadyFlightEquilibriumGroup\n", - "from .propulsion.propulsion_group import PropulsionGroup\n", - "from .range_rate_comp import RangeRateComp\n", - "from .true_airspeed_comp import TrueAirspeedComp\n", - "from .mass_comp import MassComp\n", - "\n", - "\n", - "class AircraftODE(om.Group):\n", - "\n", - " def initialize(self):\n", - " self.options.declare('num_nodes', types=int,\n", - " desc='Number of nodes to be evaluated in the RHS')\n", - "\n", - " def setup(self):\n", - " nn = self.options['num_nodes']\n", - "\n", - " self.add_subsystem(name='mass_comp',\n", - " subsys=MassComp(num_nodes=nn),\n", - " promotes_inputs=['mass_fuel'])\n", - "\n", - " self.connect('mass_comp.W_total', 'flight_equilibrium.W_total')\n", - "\n", - " self.add_subsystem(name='atmos',\n", - " subsys=USatm1976Comp(num_nodes=nn),\n", - " promotes_inputs=[('h', 'alt')])\n", - "\n", - " self.connect('atmos.pres', 'propulsion.pres')\n", - " self.connect('atmos.sos', 'tas_comp.sos')\n", - " self.connect('atmos.rho', 'q_comp.rho')\n", - "\n", - " self.add_subsystem(name='tas_comp',\n", - " subsys=TrueAirspeedComp(num_nodes=nn))\n", - "\n", - " self.connect('tas_comp.TAS',\n", - " ('gam_comp.TAS', 'q_comp.TAS', 'range_rate_comp.TAS'))\n", - "\n", - " self.add_subsystem(name='gam_comp',\n", - " subsys=SteadyFlightPathAngleComp(num_nodes=nn))\n", - "\n", - " self.connect('gam_comp.gam', ('flight_equilibrium.gam', 'range_rate_comp.gam'))\n", - "\n", - " self.add_subsystem(name='q_comp',\n", - " subsys=DynamicPressureComp(num_nodes=nn))\n", - "\n", - " self.connect('q_comp.q', ('aero.q', 'flight_equilibrium.q', 'propulsion.q'))\n", - "\n", - " self.add_subsystem(name='flight_equilibrium',\n", - " subsys=SteadyFlightEquilibriumGroup(num_nodes=nn),\n", - " promotes_inputs=['aero.*', 'alt'],\n", - " promotes_outputs=['aero.*'])\n", - "\n", - " self.connect('flight_equilibrium.CT', 'propulsion.CT')\n", - "\n", - " self.add_subsystem(name='propulsion', subsys=PropulsionGroup(num_nodes=nn),\n", - " promotes_inputs=['alt'])\n", - "\n", - " self.add_subsystem(name='range_rate_comp', subsys=RangeRateComp(num_nodes=nn))\n", - "\n", - " # We promoted multiple inputs to the group named 'alt'.\n", - " # In order to automatically create a source variable for 'alt', we must specify their units\n", - " # since they have different units in different components.\n", - " self.set_input_defaults('alt', val=np.ones(nn,), units='m')" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "om.display_source(\"dymos.examples.aircraft_steady_flight.aircraft_ode\")" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "tags": [ "active-ipynb", @@ -833,31 +539,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Constraint Report [traj] ---\n", - " --- phase0 ---\n", - " [path] 1.0000e-02 <= propulsion.tau <= 2.0000e+00 [None]\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", @@ -948,7 +632,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -975,1693 +659,20 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model viewer data has already been recorded for Driver.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_solution.db, is being overwritten.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Full total jacobian for problem 'problem4' was computed 3 times, taking 0.3479246669448912 seconds.\n", - "Total jacobian shape: (224, 221) \n", - "\n", - "\n", - "Jacobian shape: (224, 221) (2.51% nonzero)\n", - "FWD solves: 11 REV solves: 0\n", - "Total colors vs. total size: 11 vs 221 (95.02% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-25\n", - "Time to compute sparsity: 0.3479 sec\n", - "Time to compute coloring: 0.0586 sec\n", - "Memory to compute coloring: 0.0156 MB\n", - "Coloring created on: 2024-08-14 09:44:29\n", - "\n", - "\n", - "Optimization Problem -- Optimization using pyOpt_sparse\n", - "================================================================================\n", - " Objective Function: _objfunc\n", - "\n", - " Solution: \n", - "--------------------------------------------------------------------------------\n", - " Total Time: 9.6284\n", - " User Objective Time : 8.4575\n", - " User Sensitivity Time : 0.9733\n", - " Interface Time : 0.0738\n", - " Opt Solver Time: 0.1238\n", - " Calls to Objective Function : 32\n", - " Calls to Sens Function : 32\n", - "\n", - "\n", - " Objectives\n", - " Index Name Value\n", - " 0 traj.phase0.states:range -7.260052E+02\n", - "\n", - " Variables (c - continuous, i - integer, d - discrete)\n", - " Index Name Type Lower Bound Value Upper Bound Status\n", - " 0 traj.phase0.t_duration_0 c 3.000000E-01 5.637564E+00 1.000000E+01 \n", - " 1 traj.phase0.states:range_0 c 0.000000E+00 4.300778E+03 2.000000E+06 \n", - " 2 traj.phase0.states:range_1 c 0.000000E+00 1.019478E+04 2.000000E+06 \n", - " 3 traj.phase0.states:range_2 c 0.000000E+00 1.205044E+04 2.000000E+06 \n", - " 4 traj.phase0.states:range_3 c 0.000000E+00 1.205044E+04 2.000000E+06 \n", - " 5 traj.phase0.states:range_4 c 0.000000E+00 2.179716E+04 2.000000E+06 \n", - " 6 traj.phase0.states:range_5 c 0.000000E+00 3.502521E+04 2.000000E+06 \n", - " 7 traj.phase0.states:range_6 c 0.000000E+00 3.915789E+04 2.000000E+06 \n", - " 8 traj.phase0.states:range_7 c 0.000000E+00 3.915789E+04 2.000000E+06 \n", - " 9 traj.phase0.states:range_8 c 0.000000E+00 5.336791E+04 2.000000E+06 \n", - " 10 traj.phase0.states:range_9 c 0.000000E+00 7.250027E+04 2.000000E+06 \n", - " 11 traj.phase0.states:range_10 c 0.000000E+00 7.845561E+04 2.000000E+06 \n", - " 12 traj.phase0.states:range_11 c 0.000000E+00 7.845561E+04 2.000000E+06 \n", - " 13 traj.phase0.states:range_12 c 0.000000E+00 9.625935E+04 2.000000E+06 \n", - " 14 traj.phase0.states:range_13 c 0.000000E+00 1.208337E+05 2.000000E+06 \n", - " 15 traj.phase0.states:range_14 c 0.000000E+00 1.286109E+05 2.000000E+06 \n", - " 16 traj.phase0.states:range_15 c 0.000000E+00 1.286109E+05 2.000000E+06 \n", - " 17 traj.phase0.states:range_16 c 0.000000E+00 1.498279E+05 2.000000E+06 \n", - " 18 traj.phase0.states:range_17 c 0.000000E+00 1.791031E+05 2.000000E+06 \n", - " 19 traj.phase0.states:range_18 c 0.000000E+00 1.883686E+05 2.000000E+06 \n", - " 20 traj.phase0.states:range_19 c 0.000000E+00 1.883686E+05 2.000000E+06 \n", - " 21 traj.phase0.states:range_20 c 0.000000E+00 2.121241E+05 2.000000E+06 \n", - " 22 traj.phase0.states:range_21 c 0.000000E+00 2.449018E+05 2.000000E+06 \n", - " 23 traj.phase0.states:range_22 c 0.000000E+00 2.552758E+05 2.000000E+06 \n", - " 24 traj.phase0.states:range_23 c 0.000000E+00 2.552758E+05 2.000000E+06 \n", - " 25 traj.phase0.states:range_24 c 0.000000E+00 2.805971E+05 2.000000E+06 \n", - " 26 traj.phase0.states:range_25 c 0.000000E+00 3.155354E+05 2.000000E+06 \n", - " 27 traj.phase0.states:range_26 c 0.000000E+00 3.265932E+05 2.000000E+06 \n", - " 28 traj.phase0.states:range_27 c 0.000000E+00 3.265932E+05 2.000000E+06 \n", - " 29 traj.phase0.states:range_28 c 0.000000E+00 3.524437E+05 2.000000E+06 \n", - " 30 traj.phase0.states:range_29 c 0.000000E+00 3.881121E+05 2.000000E+06 \n", - " 31 traj.phase0.states:range_30 c 0.000000E+00 3.994010E+05 2.000000E+06 \n", - " 32 traj.phase0.states:range_31 c 0.000000E+00 3.994010E+05 2.000000E+06 \n", - " 33 traj.phase0.states:range_32 c 0.000000E+00 4.247223E+05 2.000000E+06 \n", - " 34 traj.phase0.states:range_33 c 0.000000E+00 4.596605E+05 2.000000E+06 \n", - " 35 traj.phase0.states:range_34 c 0.000000E+00 4.707183E+05 2.000000E+06 \n", - " 36 traj.phase0.states:range_35 c 0.000000E+00 4.707183E+05 2.000000E+06 \n", - " 37 traj.phase0.states:range_36 c 0.000000E+00 4.944738E+05 2.000000E+06 \n", - " 38 traj.phase0.states:range_37 c 0.000000E+00 5.272515E+05 2.000000E+06 \n", - " 39 traj.phase0.states:range_38 c 0.000000E+00 5.376255E+05 2.000000E+06 \n", - " 40 traj.phase0.states:range_39 c 0.000000E+00 5.376255E+05 2.000000E+06 \n", - " 41 traj.phase0.states:range_40 c 0.000000E+00 5.588425E+05 2.000000E+06 \n", - " 42 traj.phase0.states:range_41 c 0.000000E+00 5.881176E+05 2.000000E+06 \n", - " 43 traj.phase0.states:range_42 c 0.000000E+00 5.973831E+05 2.000000E+06 \n", - " 44 traj.phase0.states:range_43 c 0.000000E+00 5.973831E+05 2.000000E+06 \n", - " 45 traj.phase0.states:range_44 c 0.000000E+00 6.151931E+05 2.000000E+06 \n", - " 46 traj.phase0.states:range_45 c 0.000000E+00 6.397625E+05 2.000000E+06 \n", - " 47 traj.phase0.states:range_46 c 0.000000E+00 6.475361E+05 2.000000E+06 \n", - " 48 traj.phase0.states:range_47 c 0.000000E+00 6.475361E+05 2.000000E+06 \n", - " 49 traj.phase0.states:range_48 c 0.000000E+00 6.612680E+05 2.000000E+06 \n", - " 50 traj.phase0.states:range_49 c 0.000000E+00 6.805947E+05 2.000000E+06 \n", - " 51 traj.phase0.states:range_50 c 0.000000E+00 6.868473E+05 2.000000E+06 \n", - " 52 traj.phase0.states:range_51 c 0.000000E+00 6.868473E+05 2.000000E+06 \n", - " 53 traj.phase0.states:range_52 c 0.000000E+00 6.963491E+05 2.000000E+06 \n", - " 54 traj.phase0.states:range_53 c 0.000000E+00 7.096820E+05 2.000000E+06 \n", - " 55 traj.phase0.states:range_54 c 0.000000E+00 7.139547E+05 2.000000E+06 \n", - " 56 traj.phase0.states:range_55 c 0.000000E+00 7.139547E+05 2.000000E+06 \n", - " 57 traj.phase0.states:range_56 c 0.000000E+00 7.182109E+05 2.000000E+06 \n", - " 58 traj.phase0.states:range_57 c 0.000000E+00 7.241240E+05 2.000000E+06 \n", - " 59 traj.phase0.states:range_58 c 0.000000E+00 7.260052E+05 2.000000E+06 \n", - " 60 traj.phase0.states:mass_fuel_0 c 0.000000E+00 2.957208E+02 1.500000E+03 \n", - " 61 traj.phase0.states:mass_fuel_1 c 0.000000E+00 2.900371E+02 1.500000E+03 \n", - " 62 traj.phase0.states:mass_fuel_2 c 0.000000E+00 2.882890E+02 1.500000E+03 \n", - " 63 traj.phase0.states:mass_fuel_3 c 0.000000E+00 2.882890E+02 1.500000E+03 \n", - " 64 traj.phase0.states:mass_fuel_4 c 0.000000E+00 2.794117E+02 1.500000E+03 \n", - " 65 traj.phase0.states:mass_fuel_5 c 0.000000E+00 2.680940E+02 1.500000E+03 \n", - " 66 traj.phase0.states:mass_fuel_6 c 0.000000E+00 2.647067E+02 1.500000E+03 \n", - " 67 traj.phase0.states:mass_fuel_7 c 0.000000E+00 2.647067E+02 1.500000E+03 \n", - " 68 traj.phase0.states:mass_fuel_8 c 0.000000E+00 2.535688E+02 1.500000E+03 \n", - " 69 traj.phase0.states:mass_fuel_9 c 0.000000E+00 2.401846E+02 1.500000E+03 \n", - " 70 traj.phase0.states:mass_fuel_10 c 0.000000E+00 2.364961E+02 1.500000E+03 \n", - " 71 traj.phase0.states:mass_fuel_11 c 0.000000E+00 2.364961E+02 1.500000E+03 \n", - " 72 traj.phase0.states:mass_fuel_12 c 0.000000E+00 2.271299E+02 1.500000E+03 \n", - " 73 traj.phase0.states:mass_fuel_13 c 0.000000E+00 2.167574E+02 1.500000E+03 \n", - " 74 traj.phase0.states:mass_fuel_14 c 0.000000E+00 2.137292E+02 1.500000E+03 \n", - " 75 traj.phase0.states:mass_fuel_15 c 0.000000E+00 2.137292E+02 1.500000E+03 \n", - " 76 traj.phase0.states:mass_fuel_16 c 0.000000E+00 2.055422E+02 1.500000E+03 \n", - " 77 traj.phase0.states:mass_fuel_17 c 0.000000E+00 1.942336E+02 1.500000E+03 \n", - " 78 traj.phase0.states:mass_fuel_18 c 0.000000E+00 1.906363E+02 1.500000E+03 \n", - " 79 traj.phase0.states:mass_fuel_19 c 0.000000E+00 1.906363E+02 1.500000E+03 \n", - " 80 traj.phase0.states:mass_fuel_20 c 0.000000E+00 1.813581E+02 1.500000E+03 \n", - " 81 traj.phase0.states:mass_fuel_21 c 0.000000E+00 1.684992E+02 1.500000E+03 \n", - " 82 traj.phase0.states:mass_fuel_22 c 0.000000E+00 1.644355E+02 1.500000E+03 \n", - " 83 traj.phase0.states:mass_fuel_23 c 0.000000E+00 1.644355E+02 1.500000E+03 \n", - " 84 traj.phase0.states:mass_fuel_24 c 0.000000E+00 1.545567E+02 1.500000E+03 \n", - " 85 traj.phase0.states:mass_fuel_25 c 0.000000E+00 1.410094E+02 1.500000E+03 \n", - " 86 traj.phase0.states:mass_fuel_26 c 0.000000E+00 1.367384E+02 1.500000E+03 \n", - " 87 traj.phase0.states:mass_fuel_27 c 0.000000E+00 1.367384E+02 1.500000E+03 \n", - " 88 traj.phase0.states:mass_fuel_28 c 0.000000E+00 1.267738E+02 1.500000E+03 \n", - " 89 traj.phase0.states:mass_fuel_29 c 0.000000E+00 1.130185E+02 1.500000E+03 \n", - " 90 traj.phase0.states:mass_fuel_30 c 0.000000E+00 1.086503E+02 1.500000E+03 \n", - " 91 traj.phase0.states:mass_fuel_31 c 0.000000E+00 1.086503E+02 1.500000E+03 \n", - " 92 traj.phase0.states:mass_fuel_32 c 0.000000E+00 9.882576E+01 1.500000E+03 \n", - " 93 traj.phase0.states:mass_fuel_33 c 0.000000E+00 8.534597E+01 1.500000E+03 \n", - " 94 traj.phase0.states:mass_fuel_34 c 0.000000E+00 8.113325E+01 1.500000E+03 \n", - " 95 traj.phase0.states:mass_fuel_35 c 0.000000E+00 8.113325E+01 1.500000E+03 \n", - " 96 traj.phase0.states:mass_fuel_36 c 0.000000E+00 7.218114E+01 1.500000E+03 \n", - " 97 traj.phase0.states:mass_fuel_37 c 0.000000E+00 5.977771E+01 1.500000E+03 \n", - " 98 traj.phase0.states:mass_fuel_38 c 0.000000E+00 5.576976E+01 1.500000E+03 \n", - " 99 traj.phase0.states:mass_fuel_39 c 0.000000E+00 5.576976E+01 1.500000E+03 \n", - " 100 traj.phase0.states:mass_fuel_40 c 0.000000E+00 4.741802E+01 1.500000E+03 \n", - " 101 traj.phase0.states:mass_fuel_41 c 0.000000E+00 3.592792E+01 1.500000E+03 \n", - " 102 traj.phase0.states:mass_fuel_42 c 0.000000E+00 3.239651E+01 1.500000E+03 \n", - " 103 traj.phase0.states:mass_fuel_43 c 0.000000E+00 3.239651E+01 1.500000E+03 \n", - " 104 traj.phase0.states:mass_fuel_44 c 0.000000E+00 2.595941E+01 1.500000E+03 \n", - " 105 traj.phase0.states:mass_fuel_45 c 0.000000E+00 1.877799E+01 1.500000E+03 \n", - " 106 traj.phase0.states:mass_fuel_46 c 0.000000E+00 1.714587E+01 1.500000E+03 \n", - " 107 traj.phase0.states:mass_fuel_47 c 0.000000E+00 1.714587E+01 1.500000E+03 \n", - " 108 traj.phase0.states:mass_fuel_48 c 0.000000E+00 1.500523E+01 1.500000E+03 \n", - " 109 traj.phase0.states:mass_fuel_49 c 0.000000E+00 1.243555E+01 1.500000E+03 \n", - " 110 traj.phase0.states:mass_fuel_50 c 0.000000E+00 1.141787E+01 1.500000E+03 \n", - " 111 traj.phase0.states:mass_fuel_51 c 0.000000E+00 1.141787E+01 1.500000E+03 \n", - " 112 traj.phase0.states:mass_fuel_52 c 0.000000E+00 9.500576E+00 1.500000E+03 \n", - " 113 traj.phase0.states:mass_fuel_53 c 0.000000E+00 5.938689E+00 1.500000E+03 \n", - " 114 traj.phase0.states:mass_fuel_54 c 0.000000E+00 4.560755E+00 1.500000E+03 \n", - " 115 traj.phase0.states:mass_fuel_55 c 0.000000E+00 4.560755E+00 1.500000E+03 \n", - " 116 traj.phase0.states:mass_fuel_56 c 0.000000E+00 3.066294E+00 1.500000E+03 \n", - " 117 traj.phase0.states:mass_fuel_57 c 0.000000E+00 7.801232E-01 1.500000E+03 \n", - " 118 traj.phase0.states:alt_0 c 0.000000E+00 1.152283E+04 6.000000E+04 \n", - " 119 traj.phase0.states:alt_1 c 0.000000E+00 1.362403E+04 6.000000E+04 \n", - " 120 traj.phase0.states:alt_2 c 0.000000E+00 1.428905E+04 6.000000E+04 \n", - " 121 traj.phase0.states:alt_3 c 0.000000E+00 1.428905E+04 6.000000E+04 \n", - " 122 traj.phase0.states:alt_4 c 0.000000E+00 1.781028E+04 6.000000E+04 \n", - " 123 traj.phase0.states:alt_5 c 0.000000E+00 2.266886E+04 6.000000E+04 \n", - " 124 traj.phase0.states:alt_6 c 0.000000E+00 2.420659E+04 6.000000E+04 \n", - " 125 traj.phase0.states:alt_7 c 0.000000E+00 2.420659E+04 6.000000E+04 \n", - " 126 traj.phase0.states:alt_8 c 0.000000E+00 2.947162E+04 6.000000E+04 \n", - " 127 traj.phase0.states:alt_9 c 0.000000E+00 3.563844E+04 6.000000E+04 \n", - " 128 traj.phase0.states:alt_10 c 0.000000E+00 3.710397E+04 6.000000E+04 \n", - " 129 traj.phase0.states:alt_11 c 0.000000E+00 3.710397E+04 6.000000E+04 \n", - " 130 traj.phase0.states:alt_12 c 0.000000E+00 3.977281E+04 6.000000E+04 \n", - " 131 traj.phase0.states:alt_13 c 0.000000E+00 4.064815E+04 6.000000E+04 \n", - " 132 traj.phase0.states:alt_14 c 0.000000E+00 4.061935E+04 6.000000E+04 \n", - " 133 traj.phase0.states:alt_15 c 0.000000E+00 4.061935E+04 6.000000E+04 \n", - " 134 traj.phase0.states:alt_16 c 0.000000E+00 4.049114E+04 6.000000E+04 \n", - " 135 traj.phase0.states:alt_17 c 0.000000E+00 4.035336E+04 6.000000E+04 \n", - " 136 traj.phase0.states:alt_18 c 0.000000E+00 4.033654E+04 6.000000E+04 \n", - " 137 traj.phase0.states:alt_19 c 0.000000E+00 4.033654E+04 6.000000E+04 \n", - " 138 traj.phase0.states:alt_20 c 0.000000E+00 4.037083E+04 6.000000E+04 \n", - " 139 traj.phase0.states:alt_21 c 0.000000E+00 4.051555E+04 6.000000E+04 \n", - " 140 traj.phase0.states:alt_22 c 0.000000E+00 4.056201E+04 6.000000E+04 \n", - " 141 traj.phase0.states:alt_23 c 0.000000E+00 4.056201E+04 6.000000E+04 \n", - " 142 traj.phase0.states:alt_24 c 0.000000E+00 4.064374E+04 6.000000E+04 \n", - " 143 traj.phase0.states:alt_25 c 0.000000E+00 4.069398E+04 6.000000E+04 \n", - " 144 traj.phase0.states:alt_26 c 0.000000E+00 4.069889E+04 6.000000E+04 \n", - " 145 traj.phase0.states:alt_27 c 0.000000E+00 4.069889E+04 6.000000E+04 \n", - " 146 traj.phase0.states:alt_28 c 0.000000E+00 4.070252E+04 6.000000E+04 \n", - " 147 traj.phase0.states:alt_29 c 0.000000E+00 4.075182E+04 6.000000E+04 \n", - " 148 traj.phase0.states:alt_30 c 0.000000E+00 4.079374E+04 6.000000E+04 \n", - " 149 traj.phase0.states:alt_31 c 0.000000E+00 4.079374E+04 6.000000E+04 \n", - " 150 traj.phase0.states:alt_32 c 0.000000E+00 4.093550E+04 6.000000E+04 \n", - " 151 traj.phase0.states:alt_33 c 0.000000E+00 4.107641E+04 6.000000E+04 \n", - " 152 traj.phase0.states:alt_34 c 0.000000E+00 4.106576E+04 6.000000E+04 \n", - " 153 traj.phase0.states:alt_35 c 0.000000E+00 4.106576E+04 6.000000E+04 \n", - " 154 traj.phase0.states:alt_36 c 0.000000E+00 4.093920E+04 6.000000E+04 \n", - " 155 traj.phase0.states:alt_37 c 0.000000E+00 4.085651E+04 6.000000E+04 \n", - " 156 traj.phase0.states:alt_38 c 0.000000E+00 4.093625E+04 6.000000E+04 \n", - " 157 traj.phase0.states:alt_39 c 0.000000E+00 4.093625E+04 6.000000E+04 \n", - " 158 traj.phase0.states:alt_40 c 0.000000E+00 4.129895E+04 6.000000E+04 \n", - " 159 traj.phase0.states:alt_41 c 0.000000E+00 4.178378E+04 6.000000E+04 \n", - " 160 traj.phase0.states:alt_42 c 0.000000E+00 4.181539E+04 6.000000E+04 \n", - " 161 traj.phase0.states:alt_43 c 0.000000E+00 4.181539E+04 6.000000E+04 \n", - " 162 traj.phase0.states:alt_44 c 0.000000E+00 4.146281E+04 6.000000E+04 \n", - " 163 traj.phase0.states:alt_45 c 0.000000E+00 3.890556E+04 6.000000E+04 \n", - " 164 traj.phase0.states:alt_46 c 0.000000E+00 3.730605E+04 6.000000E+04 \n", - " 165 traj.phase0.states:alt_47 c 0.000000E+00 3.730605E+04 6.000000E+04 \n", - " 166 traj.phase0.states:alt_48 c 0.000000E+00 3.341148E+04 6.000000E+04 \n", - " 167 traj.phase0.states:alt_49 c 0.000000E+00 2.654155E+04 6.000000E+04 \n", - " 168 traj.phase0.states:alt_50 c 0.000000E+00 2.420659E+04 6.000000E+04 \n", - " 169 traj.phase0.states:alt_51 c 0.000000E+00 2.420659E+04 6.000000E+04 \n", - " 170 traj.phase0.states:alt_52 c 0.000000E+00 2.068536E+04 6.000000E+04 \n", - " 171 traj.phase0.states:alt_53 c 0.000000E+00 1.582678E+04 6.000000E+04 \n", - " 172 traj.phase0.states:alt_54 c 0.000000E+00 1.428905E+04 6.000000E+04 \n", - " 173 traj.phase0.states:alt_55 c 0.000000E+00 1.428905E+04 6.000000E+04 \n", - " 174 traj.phase0.states:alt_56 c 0.000000E+00 1.276622E+04 6.000000E+04 \n", - " 175 traj.phase0.states:alt_57 c 0.000000E+00 1.066502E+04 6.000000E+04 \n", - " 176 traj.phase0.controls:climb_rate_0 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", - " 177 traj.phase0.controls:climb_rate_1 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", - " 178 traj.phase0.controls:climb_rate_2 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", - " 179 traj.phase0.controls:climb_rate_3 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", - " 180 traj.phase0.controls:climb_rate_4 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", - " 181 traj.phase0.controls:climb_rate_5 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", - " 182 traj.phase0.controls:climb_rate_6 c -3.000000E+03 3.000000E+03 3.000000E+03 U\n", - " 183 traj.phase0.controls:climb_rate_7 c -3.000000E+03 2.834019E+03 3.000000E+03 \n", - " 184 traj.phase0.controls:climb_rate_8 c -3.000000E+03 2.059977E+03 3.000000E+03 \n", - " 185 traj.phase0.controls:climb_rate_9 c -3.000000E+03 1.683328E+03 3.000000E+03 \n", - " 186 traj.phase0.controls:climb_rate_10 c -3.000000E+03 6.801689E+02 3.000000E+03 \n", - " 187 traj.phase0.controls:climb_rate_11 c -3.000000E+03 8.660157E-01 3.000000E+03 \n", - " 188 traj.phase0.controls:climb_rate_12 c -3.000000E+03 -4.385177E+01 3.000000E+03 \n", - " 189 traj.phase0.controls:climb_rate_13 c -3.000000E+03 -4.577675E+01 3.000000E+03 \n", - " 190 traj.phase0.controls:climb_rate_14 c -3.000000E+03 -2.088271E+01 3.000000E+03 \n", - " 191 traj.phase0.controls:climb_rate_15 c -3.000000E+03 -6.348232E+00 3.000000E+03 \n", - " 192 traj.phase0.controls:climb_rate_16 c -3.000000E+03 2.513450E+01 3.000000E+03 \n", - " 193 traj.phase0.controls:climb_rate_17 c -3.000000E+03 3.611875E+01 3.000000E+03 \n", - " 194 traj.phase0.controls:climb_rate_18 c -3.000000E+03 3.175459E+01 3.000000E+03 \n", - " 195 traj.phase0.controls:climb_rate_19 c -3.000000E+03 1.816679E+01 3.000000E+03 \n", - " 196 traj.phase0.controls:climb_rate_20 c -3.000000E+03 4.886619E+00 3.000000E+03 \n", - " 197 traj.phase0.controls:climb_rate_21 c -3.000000E+03 2.004509E+00 3.000000E+03 \n", - " 198 traj.phase0.controls:climb_rate_22 c -3.000000E+03 2.211751E+00 3.000000E+03 \n", - " 199 traj.phase0.controls:climb_rate_23 c -3.000000E+03 2.286434E+01 3.000000E+03 \n", - " 200 traj.phase0.controls:climb_rate_24 c -3.000000E+03 3.432102E+01 3.000000E+03 \n", - " 201 traj.phase0.controls:climb_rate_25 c -3.000000E+03 4.562465E+01 3.000000E+03 \n", - " 202 traj.phase0.controls:climb_rate_26 c -3.000000E+03 5.244845E+00 3.000000E+03 \n", - " 203 traj.phase0.controls:climb_rate_27 c -3.000000E+03 -2.105813E+01 3.000000E+03 \n", - " 204 traj.phase0.controls:climb_rate_28 c -3.000000E+03 -4.836953E+01 3.000000E+03 \n", - " 205 traj.phase0.controls:climb_rate_29 c -3.000000E+03 3.274563E+01 3.000000E+03 \n", - " 206 traj.phase0.controls:climb_rate_30 c -3.000000E+03 8.711803E+01 3.000000E+03 \n", - " 207 traj.phase0.controls:climb_rate_31 c -3.000000E+03 1.552944E+02 3.000000E+03 \n", - " 208 traj.phase0.controls:climb_rate_32 c -3.000000E+03 6.174430E+01 3.000000E+03 \n", - " 209 traj.phase0.controls:climb_rate_33 c -3.000000E+03 -1.318940E+01 3.000000E+03 \n", - " 210 traj.phase0.controls:climb_rate_34 c -3.000000E+03 -3.453091E+02 3.000000E+03 \n", - " 211 traj.phase0.controls:climb_rate_35 c -3.000000E+03 -1.352388E+03 3.000000E+03 \n", - " 212 traj.phase0.controls:climb_rate_36 c -3.000000E+03 -1.803710E+03 3.000000E+03 \n", - " 213 traj.phase0.controls:climb_rate_37 c -3.000000E+03 -2.502392E+03 3.000000E+03 \n", - " 214 traj.phase0.controls:climb_rate_38 c -3.000000E+03 -2.971240E+03 3.000000E+03 \n", - " 215 traj.phase0.controls:climb_rate_39 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", - " 216 traj.phase0.controls:climb_rate_40 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", - " 217 traj.phase0.controls:climb_rate_41 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", - " 218 traj.phase0.controls:climb_rate_42 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", - " 219 traj.phase0.controls:climb_rate_43 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", - " 220 traj.phase0.controls:climb_rate_44 c -3.000000E+03 -3.000000E+03 3.000000E+03 L\n", - "\n", - " Constraints (i - inequality, e - equality)\n", - " Index Name Type Lower Value Upper Status Lagrange Multiplier (N/A)\n", - " 0 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -5.952256E-12 0.000000E+00 9.00000E+100\n", - " 1 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 3.571353E-12 0.000000E+00 9.00000E+100\n", - " 2 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.190451E-12 0.000000E+00 9.00000E+100\n", - " 3 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.202135E-11 0.000000E+00 9.00000E+100\n", - " 4 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -2.752669E-12 0.000000E+00 9.00000E+100\n", - " 5 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 8.258006E-12 0.000000E+00 9.00000E+100\n", - " 6 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 7 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.677278E-11 0.000000E+00 9.00000E+100\n", - " 8 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.193195E-11 0.000000E+00 9.00000E+100\n", - " 9 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 7.100214E-11 0.000000E+00 9.00000E+100\n", - " 10 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.474660E-10 0.000000E+00 9.00000E+100\n", - " 11 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 5.461703E-12 0.000000E+00 9.00000E+100\n", - " 12 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -3.903927E-11 0.000000E+00 9.00000E+100\n", - " 13 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.212225E-10 0.000000E+00 9.00000E+100\n", - " 14 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.951963E-10 0.000000E+00 9.00000E+100\n", - " 15 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.185497E-11 0.000000E+00 9.00000E+100\n", - " 16 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.456998E-11 0.000000E+00 9.00000E+100\n", - " 17 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 9.470486E-11 0.000000E+00 9.00000E+100\n", - " 18 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.164777E-10 0.000000E+00 9.00000E+100\n", - " 19 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.795464E-10 0.000000E+00 9.00000E+100\n", - " 20 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.814410E-10 0.000000E+00 9.00000E+100\n", - " 21 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 3.963728E-11 0.000000E+00 9.00000E+100\n", - " 22 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 3.963728E-11 0.000000E+00 9.00000E+100\n", - " 23 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.189118E-10 0.000000E+00 9.00000E+100\n", - " 24 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -3.183723E-10 0.000000E+00 9.00000E+100\n", - " 25 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 2.950768E-10 0.000000E+00 9.00000E+100\n", - " 26 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 5.435625E-10 0.000000E+00 9.00000E+100\n", - " 27 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 6.775040E-10 0.000000E+00 9.00000E+100\n", - " 28 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 6.629340E-10 0.000000E+00 9.00000E+100\n", - " 29 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.602698E-10 0.000000E+00 9.00000E+100\n", - " 30 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.879909E-10 0.000000E+00 9.00000E+100\n", - " 31 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 3.838862E-10 0.000000E+00 9.00000E+100\n", - " 32 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.034058E-10 0.000000E+00 9.00000E+100\n", - " 33 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.638511E-11 0.000000E+00 9.00000E+100\n", - " 34 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.369362E-11 0.000000E+00 9.00000E+100\n", - " 35 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.092341E-10 0.000000E+00 9.00000E+100\n", - " 36 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 4.193195E-10 0.000000E+00 9.00000E+100\n", - " 37 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -4.193195E-11 0.000000E+00 9.00000E+100\n", - " 38 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -1.425686E-10 0.000000E+00 9.00000E+100\n", - " 39 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 6.303611E-10 0.000000E+00 9.00000E+100\n", - " 40 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -4.954803E-11 0.000000E+00 9.00000E+100\n", - " 41 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 9.909607E-11 0.000000E+00 9.00000E+100\n", - " 42 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -5.166558E-10 0.000000E+00 9.00000E+100\n", - " 43 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 1.238069E-10 0.000000E+00 9.00000E+100\n", - " 44 traj.phase0.collocation_constraint.defects:range e 0.000000E+00 -8.809338E-11 0.000000E+00 9.00000E+100\n", - " 45 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -1.249497E-13 0.000000E+00 9.00000E+100\n", - " 46 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -3.352310E-14 0.000000E+00 9.00000E+100\n", - " 47 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -2.285666E-14 0.000000E+00 9.00000E+100\n", - " 48 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 49 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 3.875757E-14 0.000000E+00 9.00000E+100\n", - " 50 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -9.865564E-14 0.000000E+00 9.00000E+100\n", - " 51 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -7.245841E-14 0.000000E+00 9.00000E+100\n", - " 52 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.367290E-14 0.000000E+00 9.00000E+100\n", - " 53 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -9.661122E-14 0.000000E+00 9.00000E+100\n", - " 54 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.551708E-13 0.000000E+00 9.00000E+100\n", - " 55 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.778914E-12 0.000000E+00 9.00000E+100\n", - " 56 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.108070E-11 0.000000E+00 9.00000E+100\n", - " 57 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.456217E-11 0.000000E+00 9.00000E+100\n", - " 58 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 7.607973E-12 0.000000E+00 9.00000E+100\n", - " 59 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -1.124331E-13 0.000000E+00 9.00000E+100\n", - " 60 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.781368E-13 0.000000E+00 9.00000E+100\n", - " 61 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.082009E-13 0.000000E+00 9.00000E+100\n", - " 62 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.944551E-13 0.000000E+00 9.00000E+100\n", - " 63 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.053579E-12 0.000000E+00 9.00000E+100\n", - " 64 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -3.975771E-14 0.000000E+00 9.00000E+100\n", - " 65 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.938685E-11 0.000000E+00 9.00000E+100\n", - " 66 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 3.265350E-11 0.000000E+00 9.00000E+100\n", - " 67 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 5.953329E-11 0.000000E+00 9.00000E+100\n", - " 68 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 6.749372E-11 0.000000E+00 9.00000E+100\n", - " 69 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 6.046154E-11 0.000000E+00 9.00000E+100\n", - " 70 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 3.742443E-11 0.000000E+00 9.00000E+100\n", - " 71 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 4.015529E-12 0.000000E+00 9.00000E+100\n", - " 72 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -2.331197E-13 0.000000E+00 9.00000E+100\n", - " 73 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.080510E-11 0.000000E+00 9.00000E+100\n", - " 74 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 4.911132E-11 0.000000E+00 9.00000E+100\n", - " 75 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 4.661809E-11 0.000000E+00 9.00000E+100\n", - " 76 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.800001E-11 0.000000E+00 9.00000E+100\n", - " 77 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.046699E-12 0.000000E+00 9.00000E+100\n", - " 78 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.118557E-13 0.000000E+00 9.00000E+100\n", - " 79 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.870087E-13 0.000000E+00 9.00000E+100\n", - " 80 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 1.170989E-13 0.000000E+00 9.00000E+100\n", - " 81 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 3.354556E-15 0.000000E+00 9.00000E+100\n", - " 82 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -1.006367E-15 0.000000E+00 9.00000E+100\n", - " 83 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -7.715479E-15 0.000000E+00 9.00000E+100\n", - " 84 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -1.057025E-14 0.000000E+00 9.00000E+100\n", - " 85 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 2.642562E-15 0.000000E+00 9.00000E+100\n", - " 86 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 87 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -3.428499E-15 0.000000E+00 9.00000E+100\n", - " 88 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -4.571332E-15 0.000000E+00 9.00000E+100\n", - " 89 traj.phase0.collocation_constraint.defects:mass_fuel e 0.000000E+00 -4.571332E-15 0.000000E+00 9.00000E+100\n", - " 90 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 6.547481E-12 0.000000E+00 9.00000E+100\n", - " 91 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.678515E-12 0.000000E+00 9.00000E+100\n", - " 92 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.678515E-12 0.000000E+00 9.00000E+100\n", - " 93 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.720418E-11 0.000000E+00 9.00000E+100\n", - " 94 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 3.440836E-12 0.000000E+00 9.00000E+100\n", - " 95 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -5.505337E-12 0.000000E+00 9.00000E+100\n", - " 96 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 1.782108E-11 0.000000E+00 9.00000E+100\n", - " 97 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.153129E-11 0.000000E+00 9.00000E+100\n", - " 98 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.201427E-11 0.000000E+00 9.00000E+100\n", - " 99 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 1.160612E-11 0.000000E+00 9.00000E+100\n", - " 100 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.014003E-11 0.000000E+00 9.00000E+100\n", - " 101 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 5.971738E-12 0.000000E+00 9.00000E+100\n", - " 102 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -6.689542E-11 0.000000E+00 9.00000E+100\n", - " 103 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 6.404880E-12 0.000000E+00 9.00000E+100\n", - " 104 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.973694E-12 0.000000E+00 9.00000E+100\n", - " 105 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.411822E-11 0.000000E+00 9.00000E+100\n", - " 106 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -4.496204E-12 0.000000E+00 9.00000E+100\n", - " 107 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 5.748312E-12 0.000000E+00 9.00000E+100\n", - " 108 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.417518E-11 0.000000E+00 9.00000E+100\n", - " 109 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -5.626721E-12 0.000000E+00 9.00000E+100\n", - " 110 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.478942E-11 0.000000E+00 9.00000E+100\n", - " 111 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -6.466218E-12 0.000000E+00 9.00000E+100\n", - " 112 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 8.566142E-12 0.000000E+00 9.00000E+100\n", - " 113 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -5.945591E-12 0.000000E+00 9.00000E+100\n", - " 114 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.253722E-11 0.000000E+00 9.00000E+100\n", - " 115 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.513603E-11 0.000000E+00 9.00000E+100\n", - " 116 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.859775E-11 0.000000E+00 9.00000E+100\n", - " 117 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -3.736403E-11 0.000000E+00 9.00000E+100\n", - " 118 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.089903E-11 0.000000E+00 9.00000E+100\n", - " 119 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.054595E-11 0.000000E+00 9.00000E+100\n", - " 120 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -3.253272E-12 0.000000E+00 9.00000E+100\n", - " 121 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 2.744949E-11 0.000000E+00 9.00000E+100\n", - " 122 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 6.252383E-12 0.000000E+00 9.00000E+100\n", - " 123 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 1.765986E-11 0.000000E+00 9.00000E+100\n", - " 124 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 3.584243E-12 0.000000E+00 9.00000E+100\n", - " 125 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.024069E-11 0.000000E+00 9.00000E+100\n", - " 126 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.620747E-12 0.000000E+00 9.00000E+100\n", - " 127 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.048299E-12 0.000000E+00 9.00000E+100\n", - " 128 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 129 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -8.258006E-12 0.000000E+00 9.00000E+100\n", - " 130 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -1.376334E-12 0.000000E+00 9.00000E+100\n", - " 131 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -2.752669E-12 0.000000E+00 9.00000E+100\n", - " 132 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -5.357030E-12 0.000000E+00 9.00000E+100\n", - " 133 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 1.488064E-12 0.000000E+00 9.00000E+100\n", - " 134 traj.phase0.collocation_constraint.defects:alt e 0.000000E+00 -3.868966E-12 0.000000E+00 9.00000E+100\n", - " 135 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 2.410900E-15 0.000000E+00 9.00000E+100\n", - " 136 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -6.119760E-15 0.000000E+00 9.00000E+100\n", - " 137 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -1.858039E-16 0.000000E+00 9.00000E+100\n", - " 138 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -1.096517E-14 0.000000E+00 9.00000E+100\n", - " 139 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -4.718990E-15 0.000000E+00 9.00000E+100\n", - " 140 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -2.447196E-14 0.000000E+00 9.00000E+100\n", - " 141 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -7.869392E-14 0.000000E+00 9.00000E+100\n", - " 142 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -1.260418E-14 0.000000E+00 9.00000E+100\n", - " 143 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 4.796573E-15 0.000000E+00 9.00000E+100\n", - " 144 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 4.666187E-14 0.000000E+00 9.00000E+100\n", - " 145 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -4.577213E-14 0.000000E+00 9.00000E+100\n", - " 146 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 4.531187E-14 0.000000E+00 9.00000E+100\n", - " 147 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -3.845281E-14 0.000000E+00 9.00000E+100\n", - " 148 traj.phase0.continuity_comp.defect_states:range e 0.000000E+00 -4.152650E-14 0.000000E+00 9.00000E+100\n", - " 149 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 4.547474E-13 0.000000E+00 9.00000E+100\n", - " 150 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 7.275958E-12 0.000000E+00 9.00000E+100\n", - " 151 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -1.023182E-12 0.000000E+00 9.00000E+100\n", - " 152 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -3.865352E-12 0.000000E+00 9.00000E+100\n", - " 153 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 2.501110E-12 0.000000E+00 9.00000E+100\n", - " 154 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -2.160050E-12 0.000000E+00 9.00000E+100\n", - " 155 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -3.637979E-12 0.000000E+00 9.00000E+100\n", - " 156 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -2.273737E-13 0.000000E+00 9.00000E+100\n", - " 157 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -1.818989E-12 0.000000E+00 9.00000E+100\n", - " 158 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 8.810730E-13 0.000000E+00 9.00000E+100\n", - " 159 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 1.136868E-13 0.000000E+00 9.00000E+100\n", - " 160 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -7.105427E-14 0.000000E+00 9.00000E+100\n", - " 161 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 -7.105427E-15 0.000000E+00 9.00000E+100\n", - " 162 traj.phase0.continuity_comp.defect_states:mass_fuel e 0.000000E+00 9.947598E-14 0.000000E+00 9.00000E+100\n", - " 163 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.979747E-16 0.000000E+00 9.00000E+100\n", - " 164 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -1.570884E-15 0.000000E+00 9.00000E+100\n", - " 165 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -1.031209E-14 0.000000E+00 9.00000E+100\n", - " 166 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -3.417696E-15 0.000000E+00 9.00000E+100\n", - " 167 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 8.513534E-15 0.000000E+00 9.00000E+100\n", - " 168 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.867548E-15 0.000000E+00 9.00000E+100\n", - " 169 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -2.279172E-15 0.000000E+00 9.00000E+100\n", - " 170 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -3.186693E-15 0.000000E+00 9.00000E+100\n", - " 171 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.366444E-15 0.000000E+00 9.00000E+100\n", - " 172 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 2.386929E-15 0.000000E+00 9.00000E+100\n", - " 173 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 7.862198E-15 0.000000E+00 9.00000E+100\n", - " 174 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.513105E-16 0.000000E+00 9.00000E+100\n", - " 175 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 1.214444E-15 0.000000E+00 9.00000E+100\n", - " 176 traj.phase0.continuity_comp.defect_states:alt e 0.000000E+00 -8.536286E-16 0.000000E+00 9.00000E+100\n", - " 177 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -2.245913E-11 0.000000E+00 9.00000E+100\n", - " 178 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -1.488507E-11 0.000000E+00 9.00000E+100\n", - " 179 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 1.001433E-11 0.000000E+00 9.00000E+100\n", - " 180 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 5.124518E-12 0.000000E+00 9.00000E+100\n", - " 181 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -2.347107E-13 0.000000E+00 9.00000E+100\n", - " 182 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 3.911846E-14 0.000000E+00 9.00000E+100\n", - " 183 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 1.955923E-14 0.000000E+00 9.00000E+100\n", - " 184 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 185 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -3.129477E-13 0.000000E+00 9.00000E+100\n", - " 186 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 3.129477E-13 0.000000E+00 9.00000E+100\n", - " 187 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 188 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 1.251791E-11 0.000000E+00 9.00000E+100\n", - " 189 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 1.961228E-11 0.000000E+00 9.00000E+100\n", - " 190 traj.phase0.continuity_comp.defect_control_rates:climb_rate_rate e 0.000000E+00 -2.167557E-11 0.000000E+00 9.00000E+100\n", - " 191 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 192 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 193 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 -2.273737E-13 0.000000E+00 9.00000E+100\n", - " 194 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 9.237056E-14 0.000000E+00 9.00000E+100\n", - " 195 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 -5.329071E-15 0.000000E+00 9.00000E+100\n", - " 196 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 197 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 198 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 199 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 3.552714E-15 0.000000E+00 9.00000E+100\n", - " 200 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 -1.421085E-14 0.000000E+00 9.00000E+100\n", - " 201 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 8.881784E-15 0.000000E+00 9.00000E+100\n", - " 202 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 4.547474E-13 0.000000E+00 9.00000E+100\n", - " 203 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 204 traj.phase0.continuity_comp.defect_controls:climb_rate e 0.000000E+00 -4.547474E-13 0.000000E+00 9.00000E+100\n", - " 205 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.293064E-01 2.000000E+00 9.00000E+100\n", - " 206 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.459977E-01 2.000000E+00 9.00000E+100\n", - " 207 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.710745E-01 2.000000E+00 9.00000E+100\n", - " 208 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.795573E-01 2.000000E+00 9.00000E+100\n", - " 209 traj.phases.phase0->path_constraint->tau i 1.000000E-02 5.795573E-01 2.000000E+00 9.00000E+100\n", - " 210 traj.phases.phase0->path_constraint->tau i 1.000000E-02 6.296025E-01 2.000000E+00 9.00000E+100\n", - " 211 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.166094E-01 2.000000E+00 9.00000E+100\n", - " 212 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.497818E-01 2.000000E+00 9.00000E+100\n", - " 213 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.497818E-01 2.000000E+00 9.00000E+100\n", - " 214 traj.phases.phase0->path_constraint->tau i 1.000000E-02 8.706197E-01 2.000000E+00 9.00000E+100\n", - " 215 traj.phases.phase0->path_constraint->tau i 1.000000E-02 9.783658E-01 2.000000E+00 9.00000E+100\n", - " 216 traj.phases.phase0->path_constraint->tau i 1.000000E-02 9.719171E-01 2.000000E+00 9.00000E+100\n", - " 217 traj.phases.phase0->path_constraint->tau i 1.000000E-02 9.719171E-01 2.000000E+00 9.00000E+100\n", - " 218 traj.phases.phase0->path_constraint->tau i 1.000000E-02 8.846861E-01 2.000000E+00 9.00000E+100\n", - " 219 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.714096E-01 2.000000E+00 9.00000E+100\n", - " 220 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.598733E-01 2.000000E+00 9.00000E+100\n", - " 221 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.598733E-01 2.000000E+00 9.00000E+100\n", - " 222 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.532677E-01 2.000000E+00 9.00000E+100\n", - " 223 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.518371E-01 2.000000E+00 9.00000E+100\n", - " 224 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.538613E-01 2.000000E+00 9.00000E+100\n", - " 225 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.538613E-01 2.000000E+00 9.00000E+100\n", - " 226 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.607276E-01 2.000000E+00 9.00000E+100\n", - " 227 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.668859E-01 2.000000E+00 9.00000E+100\n", - " 228 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.671530E-01 2.000000E+00 9.00000E+100\n", - " 229 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.671530E-01 2.000000E+00 9.00000E+100\n", - " 230 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.659272E-01 2.000000E+00 9.00000E+100\n", - " 231 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.630001E-01 2.000000E+00 9.00000E+100\n", - " 232 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.619385E-01 2.000000E+00 9.00000E+100\n", - " 233 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.619385E-01 2.000000E+00 9.00000E+100\n", - " 234 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.606804E-01 2.000000E+00 9.00000E+100\n", - " 235 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.651018E-01 2.000000E+00 9.00000E+100\n", - " 236 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.685950E-01 2.000000E+00 9.00000E+100\n", - " 237 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.685950E-01 2.000000E+00 9.00000E+100\n", - " 238 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.751754E-01 2.000000E+00 9.00000E+100\n", - " 239 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.698308E-01 2.000000E+00 9.00000E+100\n", - " 240 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.629947E-01 2.000000E+00 9.00000E+100\n", - " 241 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.629947E-01 2.000000E+00 9.00000E+100\n", - " 242 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.508304E-01 2.000000E+00 9.00000E+100\n", - " 243 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.635164E-01 2.000000E+00 9.00000E+100\n", - " 244 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.778114E-01 2.000000E+00 9.00000E+100\n", - " 245 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.778114E-01 2.000000E+00 9.00000E+100\n", - " 246 traj.phases.phase0->path_constraint->tau i 1.000000E-02 8.060090E-01 2.000000E+00 9.00000E+100\n", - " 247 traj.phases.phase0->path_constraint->tau i 1.000000E-02 8.034671E-01 2.000000E+00 9.00000E+100\n", - " 248 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.873295E-01 2.000000E+00 9.00000E+100\n", - " 249 traj.phases.phase0->path_constraint->tau i 1.000000E-02 7.873295E-01 2.000000E+00 9.00000E+100\n", - " 250 traj.phases.phase0->path_constraint->tau i 1.000000E-02 6.985484E-01 2.000000E+00 9.00000E+100\n", - " 251 traj.phases.phase0->path_constraint->tau i 1.000000E-02 4.201178E-01 2.000000E+00 9.00000E+100\n", - " 252 traj.phases.phase0->path_constraint->tau i 1.000000E-02 3.127167E-01 2.000000E+00 9.00000E+100\n", - " 253 traj.phases.phase0->path_constraint->tau i 1.000000E-02 3.127167E-01 2.000000E+00 9.00000E+100\n", - " 254 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.836617E-01 2.000000E+00 9.00000E+100\n", - " 255 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.531111E-01 2.000000E+00 9.00000E+100\n", - " 256 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.633905E-01 2.000000E+00 9.00000E+100\n", - " 257 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.633905E-01 2.000000E+00 9.00000E+100\n", - " 258 traj.phases.phase0->path_constraint->tau i 1.000000E-02 1.816829E-01 2.000000E+00 9.00000E+100\n", - " 259 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.026853E-01 2.000000E+00 9.00000E+100\n", - " 260 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.082759E-01 2.000000E+00 9.00000E+100\n", - " 261 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.082759E-01 2.000000E+00 9.00000E+100\n", - " 262 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.133263E-01 2.000000E+00 9.00000E+100\n", - " 263 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.195263E-01 2.000000E+00 9.00000E+100\n", - " 264 traj.phases.phase0->path_constraint->tau i 1.000000E-02 2.213099E-01 2.000000E+00 9.00000E+100\n", - "\n", - "\n", - " Exit Status\n", - " Inform Description\n", - " 0 Solve Succeeded\n", - "--------------------------------------------------------------------------------\n", - "\n", - "INFO: checking out_of_order\n", - "INFO: checking system\n", - "INFO: checking solvers\n", - "INFO: checking dup_inputs\n", - "INFO: checking missing_recorders\n", - "WARNING: The Problem has no recorder of any kind attached\n", - "INFO: checking unserializable_options\n", - "INFO: checking comp_has_no_outputs\n", - "INFO: checking auto_ivc_warnings\n", - "\n", - "Simulating trajectory traj\n", - "Model viewer data has already been recorded for Driver.\n", - "INFO: checking out_of_order\n", - "INFO: checking system\n", - "INFO: checking solvers\n", - "INFO: checking dup_inputs\n", - "INFO: checking missing_recorders\n", - "WARNING: The Problem has no recorder of any kind attached\n", - "INFO: checking unserializable_options\n", - "INFO: checking comp_has_no_outputs\n", - "INFO: checking auto_ivc_warnings\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/group.py:1104: DerivativesWarning:Constraints or objectives [ode_eval.control_interp.control_rates:climb_rate_rate2, ode_eval.control_interp.control_rates:mach_rate2] cannot be impacted by the design variables of the problem because no partials were defined for them in their parent component(s).\n", - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/recorders/sqlite_recorder.py:226: UserWarning:The existing case recorder file, dymos_simulation.db, is being overwritten.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Done simulating trajectory traj\n" - ] - }, - { - "data": { - "text/plain": [ - "Problem: problem4\n", - "Driver: pyOptSparseDriver\n", - " success : True\n", - " iterations : 34\n", - " runtime : 1.0504E+01 s\n", - " model_evals : 34\n", - " model_time : 8.8804E+00 s\n", - " deriv_evals : 33\n", - " deriv_time : 7.7993E-01 s\n", - " exit_status : SUCCESS" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "dm.run_problem(p, simulate=True, make_plots=True)" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "tags": [] }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " trajectory results for traj\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from IPython.display import HTML\n", "# Define the path to the HTML file\n", @@ -2680,25 +691,14 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "tags": [ "remove-input", "remove-output" ] }, - "outputs": [ - { - "data": { - "text/plain": [ - "0.00116234087917496" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from openmdao.utils.assert_utils import assert_near_equal\n", "\n", From bac630840f188fe05b2e47245ec95d961fd7a8ff Mon Sep 17 00:00:00 2001 From: Rob Falck Date: Wed, 14 Aug 2024 11:20:14 -0400 Subject: [PATCH 3/8] more notebook linting --- .../dymos_book/faq/use_partial_coloring.ipynb | 2502 +---------------- 1 file changed, 10 insertions(+), 2492 deletions(-) diff --git a/docs/dymos_book/faq/use_partial_coloring.ipynb b/docs/dymos_book/faq/use_partial_coloring.ipynb index 30a0f4bc9..655416311 100644 --- a/docs/dymos_book/faq/use_partial_coloring.ipynb +++ b/docs/dymos_book/faq/use_partial_coloring.ipynb @@ -2,9 +2,8 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { - "scrolled": true, "tags": [ "active-ipynb", "remove-input", @@ -64,170 +63,13 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { - "scrolled": true, "tags": [ "remove-input" ] }, - "outputs": [ - { - "data": { - "text/html": [ - "
class DynamicPressureCompFD(om.ExplicitComponent):\n",
-       "    def initialize(self):\n",
-       "        self.options.declare('num_nodes', types=int)\n",
-       "        self.options.declare('partial_coloring', types=bool, default=False)\n",
-       "\n",
-       "    def setup(self):\n",
-       "        nn = self.options['num_nodes']\n",
-       "\n",
-       "        self.add_input(name='rho', shape=(nn,), desc='atmospheric density', units='kg/m**3')\n",
-       "        self.add_input(name='v', shape=(nn,), desc='air-relative velocity', units='m/s')\n",
-       "\n",
-       "        self.add_output(name='q', shape=(nn,), desc='dynamic pressure', units='N/m**2')\n",
-       "\n",
-       "        self.declare_partials(of='q', wrt='rho', method='fd')\n",
-       "        self.declare_partials(of='q', wrt='v', method='fd')\n",
-       "\n",
-       "        if self.options['partial_coloring']:\n",
-       "            self.declare_coloring(wrt=['*'], method='cs', tol=1.0E-6, num_full_jacs=2,\n",
-       "                                  show_summary=True, show_sparsity=False, min_improve_pct=10.)\n",
-       "\n",
-       "    def compute(self, inputs, outputs):\n",
-       "        outputs['q'] = 0.5 * inputs['rho'] * inputs['v'] ** 2\n",
-       "
\n" - ], - "text/latex": [ - "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n", - "\\PY{k}{class} \\PY{n+nc}{DynamicPressureCompFD}\\PY{p}{(}\\PY{n}{om}\\PY{o}{.}\\PY{n}{ExplicitComponent}\\PY{p}{)}\\PY{p}{:}\n", - " \\PY{k}{def} \\PY{n+nf}{initialize}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{int}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{partial\\PYZus{}coloring}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{bool}\\PY{p}{,} \\PY{n}{default}\\PY{o}{=}\\PY{k+kc}{False}\\PY{p}{)}\n", - "\n", - " \\PY{k}{def} \\PY{n+nf}{setup}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", - " \\PY{n}{nn} \\PY{o}{=} \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}input}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{shape}\\PY{o}{=}\\PY{p}{(}\\PY{n}{nn}\\PY{p}{,}\\PY{p}{)}\\PY{p}{,} \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmospheric density}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{units}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{kg/m**3}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}input}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{shape}\\PY{o}{=}\\PY{p}{(}\\PY{n}{nn}\\PY{p}{,}\\PY{p}{)}\\PY{p}{,} \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{air\\PYZhy{}relative velocity}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{units}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{m/s}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}output}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{shape}\\PY{o}{=}\\PY{p}{(}\\PY{n}{nn}\\PY{p}{,}\\PY{p}{)}\\PY{p}{,} \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{dynamic pressure}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{units}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{N/m**2}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{declare\\PYZus{}partials}\\PY{p}{(}\\PY{n}{of}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{wrt}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{method}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{fd}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{declare\\PYZus{}partials}\\PY{p}{(}\\PY{n}{of}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{wrt}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{method}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{fd}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{k}{if} \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{partial\\PYZus{}coloring}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{:}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{declare\\PYZus{}coloring}\\PY{p}{(}\\PY{n}{wrt}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{*}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{,} \\PY{n}{method}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{cs}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{tol}\\PY{o}{=}\\PY{l+m+mf}{1.0E\\PYZhy{}6}\\PY{p}{,} \\PY{n}{num\\PYZus{}full\\PYZus{}jacs}\\PY{o}{=}\\PY{l+m+mi}{2}\\PY{p}{,}\n", - " \\PY{n}{show\\PYZus{}summary}\\PY{o}{=}\\PY{k+kc}{True}\\PY{p}{,} \\PY{n}{show\\PYZus{}sparsity}\\PY{o}{=}\\PY{k+kc}{False}\\PY{p}{,} \\PY{n}{min\\PYZus{}improve\\PYZus{}pct}\\PY{o}{=}\\PY{l+m+mf}{10.}\\PY{p}{)}\n", - "\n", - " \\PY{k}{def} \\PY{n+nf}{compute}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{,} \\PY{n}{inputs}\\PY{p}{,} \\PY{n}{outputs}\\PY{p}{)}\\PY{p}{:}\n", - " \\PY{n}{outputs}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{q}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]} \\PY{o}{=} \\PY{l+m+mf}{0.5} \\PY{o}{*} \\PY{n}{inputs}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]} \\PY{o}{*} \\PY{n}{inputs}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]} \\PY{o}{*}\\PY{o}{*} \\PY{l+m+mi}{2}\n", - "\\end{Verbatim}\n" - ], - "text/plain": [ - "class DynamicPressureCompFD(om.ExplicitComponent):\n", - " def initialize(self):\n", - " self.options.declare('num_nodes', types=int)\n", - " self.options.declare('partial_coloring', types=bool, default=False)\n", - "\n", - " def setup(self):\n", - " nn = self.options['num_nodes']\n", - "\n", - " self.add_input(name='rho', shape=(nn,), desc='atmospheric density', units='kg/m**3')\n", - " self.add_input(name='v', shape=(nn,), desc='air-relative velocity', units='m/s')\n", - "\n", - " self.add_output(name='q', shape=(nn,), desc='dynamic pressure', units='N/m**2')\n", - "\n", - " self.declare_partials(of='q', wrt='rho', method='fd')\n", - " self.declare_partials(of='q', wrt='v', method='fd')\n", - "\n", - " if self.options['partial_coloring']:\n", - " self.declare_coloring(wrt=['*'], method='cs', tol=1.0E-6, num_full_jacs=2,\n", - " show_summary=True, show_sparsity=False, min_improve_pct=10.)\n", - "\n", - " def compute(self, inputs, outputs):\n", - " outputs['q'] = 0.5 * inputs['rho'] * inputs['v'] ** 2" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "om.display_source(\"dymos.examples.min_time_climb.doc.dynamic_pressure_comp_partial_coloring.DynamicPressureCompFD\")" ] @@ -316,9 +158,8 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { - "scrolled": true, "tags": [ "remove-input", "remove-output" @@ -359,223 +200,21 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { - "scrolled": true, "tags": [ "remove-input", "hide-output" ] }, - "outputs": [ - { - "data": { - "text/html": [ - "
class MinTimeClimbODE(om.Group):\n",
-       "\n",
-       "    def initialize(self):\n",
-       "        self.options.declare('num_nodes', types=int)\n",
-       "        self.options.declare('fd', types=bool, default=False, desc='If True, use fd for partials')\n",
-       "        self.options.declare('partial_coloring', types=bool, default=False,\n",
-       "                             desc='If True and fd is True, color the approximated partials')\n",
-       "\n",
-       "    def setup(self):\n",
-       "        nn = self.options['num_nodes']\n",
-       "\n",
-       "        self.add_subsystem(name='atmos',\n",
-       "                           subsys=USatm1976Comp(num_nodes=nn),\n",
-       "                           promotes_inputs=['h'])\n",
-       "\n",
-       "        self.add_subsystem(name='aero',\n",
-       "                           subsys=AeroGroup(num_nodes=nn,\n",
-       "                                            fd=self.options['fd'],\n",
-       "                                            partial_coloring=self.options['partial_coloring']),\n",
-       "                           promotes_inputs=['v', 'alpha', 'S'])\n",
-       "\n",
-       "        self.connect('atmos.sos', 'aero.sos')\n",
-       "        self.connect('atmos.rho', 'aero.rho')\n",
-       "\n",
-       "        self.add_subsystem(name='prop',\n",
-       "                           subsys=PropGroup(num_nodes=nn),\n",
-       "                           promotes_inputs=['h', 'Isp', 'throttle'])\n",
-       "\n",
-       "        self.connect('aero.mach', 'prop.mach')\n",
-       "\n",
-       "        self.add_subsystem(name='flight_dynamics',\n",
-       "                           subsys=FlightPathEOM2D(num_nodes=nn),\n",
-       "                           promotes_inputs=['m', 'v', 'gam', 'alpha'])\n",
-       "\n",
-       "        self.connect('aero.f_drag', 'flight_dynamics.D')\n",
-       "        self.connect('aero.f_lift', 'flight_dynamics.L')\n",
-       "        self.connect('prop.thrust', 'flight_dynamics.T')\n",
-       "
\n" - ], - "text/latex": [ - "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n", - "\\PY{k}{class} \\PY{n+nc}{MinTimeClimbODE}\\PY{p}{(}\\PY{n}{om}\\PY{o}{.}\\PY{n}{Group}\\PY{p}{)}\\PY{p}{:}\n", - "\n", - " \\PY{k}{def} \\PY{n+nf}{initialize}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{int}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{fd}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{bool}\\PY{p}{,} \\PY{n}{default}\\PY{o}{=}\\PY{k+kc}{False}\\PY{p}{,} \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{If True, use fd for partials}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{o}{.}\\PY{n}{declare}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{partial\\PYZus{}coloring}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{n}{types}\\PY{o}{=}\\PY{n+nb}{bool}\\PY{p}{,} \\PY{n}{default}\\PY{o}{=}\\PY{k+kc}{False}\\PY{p}{,}\n", - " \\PY{n}{desc}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{If True and fd is True, color the approximated partials}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{k}{def} \\PY{n+nf}{setup}\\PY{p}{(}\\PY{n+nb+bp}{self}\\PY{p}{)}\\PY{p}{:}\n", - " \\PY{n}{nn} \\PY{o}{=} \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{num\\PYZus{}nodes}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{USatm1976Comp}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", - " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{h}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{AeroGroup}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{,}\n", - " \\PY{n}{fd}\\PY{o}{=}\\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{fd}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{,}\n", - " \\PY{n}{partial\\PYZus{}coloring}\\PY{o}{=}\\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{options}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{partial\\PYZus{}coloring}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\\PY{p}{,}\n", - " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alpha}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{S}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.sos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.sos}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{atmos.rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.rho}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{prop}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{PropGroup}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", - " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{h}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{Isp}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{throttle}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.mach}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{prop.mach}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{add\\PYZus{}subsystem}\\PY{p}{(}\\PY{n}{name}\\PY{o}{=}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}dynamics}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,}\n", - " \\PY{n}{subsys}\\PY{o}{=}\\PY{n}{FlightPathEOM2D}\\PY{p}{(}\\PY{n}{num\\PYZus{}nodes}\\PY{o}{=}\\PY{n}{nn}\\PY{p}{)}\\PY{p}{,}\n", - " \\PY{n}{promotes\\PYZus{}inputs}\\PY{o}{=}\\PY{p}{[}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{m}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{v}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{gam}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{alpha}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{]}\\PY{p}{)}\n", - "\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.f\\PYZus{}drag}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}dynamics.D}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{aero.f\\PYZus{}lift}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}dynamics.L}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - " \\PY{n+nb+bp}{self}\\PY{o}{.}\\PY{n}{connect}\\PY{p}{(}\\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{prop.thrust}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{,} \\PY{l+s+s1}{\\PYZsq{}}\\PY{l+s+s1}{flight\\PYZus{}dynamics.T}\\PY{l+s+s1}{\\PYZsq{}}\\PY{p}{)}\n", - "\\end{Verbatim}\n" - ], - "text/plain": [ - "class MinTimeClimbODE(om.Group):\n", - "\n", - " def initialize(self):\n", - " self.options.declare('num_nodes', types=int)\n", - " self.options.declare('fd', types=bool, default=False, desc='If True, use fd for partials')\n", - " self.options.declare('partial_coloring', types=bool, default=False,\n", - " desc='If True and fd is True, color the approximated partials')\n", - "\n", - " def setup(self):\n", - " nn = self.options['num_nodes']\n", - "\n", - " self.add_subsystem(name='atmos',\n", - " subsys=USatm1976Comp(num_nodes=nn),\n", - " promotes_inputs=['h'])\n", - "\n", - " self.add_subsystem(name='aero',\n", - " subsys=AeroGroup(num_nodes=nn,\n", - " fd=self.options['fd'],\n", - " partial_coloring=self.options['partial_coloring']),\n", - " promotes_inputs=['v', 'alpha', 'S'])\n", - "\n", - " self.connect('atmos.sos', 'aero.sos')\n", - " self.connect('atmos.rho', 'aero.rho')\n", - "\n", - " self.add_subsystem(name='prop',\n", - " subsys=PropGroup(num_nodes=nn),\n", - " promotes_inputs=['h', 'Isp', 'throttle'])\n", - "\n", - " self.connect('aero.mach', 'prop.mach')\n", - "\n", - " self.add_subsystem(name='flight_dynamics',\n", - " subsys=FlightPathEOM2D(num_nodes=nn),\n", - " promotes_inputs=['m', 'v', 'gam', 'alpha'])\n", - "\n", - " self.connect('aero.f_drag', 'flight_dynamics.D')\n", - " self.connect('aero.f_lift', 'flight_dynamics.L')\n", - " self.connect('prop.thrust', 'flight_dynamics.T')" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "om.display_source(\"dymos.examples.min_time_climb.doc.min_time_climb_ode_partial_coloring.MinTimeClimbODE\")" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "tags": [ "active-ipynb", @@ -590,2129 +229,9 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "--- Constraint Report [traj] ---\n", - " --- phase0 ---\n", - " [final] 2.0000e+04 == h [m]\n", - " [final] 1.0000e+00 == aero.mach [None]\n", - " [final] 0.0000e+00 == gam [rad]\n", - " [path] 1.0000e+02 <= h <= 2.0000e+04 [m]\n", - " [path] 1.0000e-01 <= aero.mach <= 1.8000e+00 [None]\n", - "\n", - "--------------------------------------------------------------------------------\n", - "--- Analytic derivatives in component ------------------------------------------\n", - "-------------------------------------------------------------------------------- \n", - "\n", - "Model viewer data has already been recorded for Driver.\n", - "Model viewer data has already been recorded for Driver.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/driver.py:659: DriverWarning:The following design variable initial conditions are out of their specified bounds:\n", - " traj.phase0.t_duration\n", - " val: [500.]\n", - " lower: 50.0\n", - " upper: 400.0\n", - "Set the initial value of the design variable to a valid value or set the driver option['invalid_desvar_behavior'] to 'ignore'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Full total jacobian for problem 'problem6' was computed 3 times, taking 0.16893545794300735 seconds.\n", - "Total jacobian shape: (361, 212) \n", - "\n", - "\n", - "Jacobian shape: (361, 212) (3.44% nonzero)\n", - "FWD solves: 13 REV solves: 0\n", - "Total colors vs. total size: 13 vs 212 (93.87% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-12\n", - "Time to compute sparsity: 0.1689 sec\n", - "Time to compute coloring: 0.1029 sec\n", - "Memory to compute coloring: 0.0000 MB\n", - "Coloring created on: 2024-08-14 08:50:56\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->h', inds=[(0, 0)]), ('traj.phases.phase0->path_constraint->mach', inds=[(0, 0)])] cannot be impacted by the design variables of the problem.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "Optimization Problem -- Optimization using pyOpt_sparse\n", - "================================================================================\n", - " Objective Function: _objfunc\n", - "\n", - " Solution: \n", - "--------------------------------------------------------------------------------\n", - " Total Time: 3.1586\n", - " User Objective Time : 1.2243\n", - " User Sensitivity Time : 1.1262\n", - " Interface Time : 0.3350\n", - " Opt Solver Time: 0.4730\n", - " Calls to Objective Function : 131\n", - " Calls to Sens Function : 107\n", - "\n", - "\n", - " Objectives\n", - " Index Name Value\n", - " 0 traj.phase0.t 3.235052E+00\n", - "\n", - " Variables (c - continuous, i - integer, d - discrete)\n", - " Index Name Type Lower Bound Value Upper Bound Status\n", - " 0 traj.phase0.t_duration_0 c 5.000000E-01 3.235052E+00 4.000000E+00 \n", - " 1 traj.phase0.states:r_0 c 0.000000E+00 1.808252E+00 1.000000E+03 \n", - " 2 traj.phase0.states:r_1 c 0.000000E+00 4.338693E+00 1.000000E+03 \n", - " 3 traj.phase0.states:r_2 c 0.000000E+00 7.365642E+00 1.000000E+03 \n", - " 4 traj.phase0.states:r_3 c 0.000000E+00 1.015782E+01 1.000000E+03 \n", - " 5 traj.phase0.states:r_4 c 0.000000E+00 1.292800E+01 1.000000E+03 \n", - " 6 traj.phase0.states:r_5 c 0.000000E+00 1.576496E+01 1.000000E+03 \n", - " 7 traj.phase0.states:r_6 c 0.000000E+00 1.862485E+01 1.000000E+03 \n", - " 8 traj.phase0.states:r_7 c 0.000000E+00 2.150885E+01 1.000000E+03 \n", - " 9 traj.phase0.states:r_8 c 0.000000E+00 2.455466E+01 1.000000E+03 \n", - " 10 traj.phase0.states:r_9 c 0.000000E+00 2.786246E+01 1.000000E+03 \n", - " 11 traj.phase0.states:r_10 c 0.000000E+00 3.146477E+01 1.000000E+03 \n", - " 12 traj.phase0.states:r_11 c 0.000000E+00 3.545805E+01 1.000000E+03 \n", - " 13 traj.phase0.states:r_12 c 0.000000E+00 3.978453E+01 1.000000E+03 \n", - " 14 traj.phase0.states:r_13 c 0.000000E+00 4.429259E+01 1.000000E+03 \n", - " 15 traj.phase0.states:r_14 c 0.000000E+00 4.889946E+01 1.000000E+03 \n", - " 16 traj.phase0.states:r_15 c 0.000000E+00 5.358762E+01 1.000000E+03 \n", - " 17 traj.phase0.states:r_16 c 0.000000E+00 5.836033E+01 1.000000E+03 \n", - " 18 traj.phase0.states:r_17 c 0.000000E+00 6.322201E+01 1.000000E+03 \n", - " 19 traj.phase0.states:r_18 c 0.000000E+00 6.817520E+01 1.000000E+03 \n", - " 20 traj.phase0.states:r_19 c 0.000000E+00 7.322459E+01 1.000000E+03 \n", - " 21 traj.phase0.states:r_20 c 0.000000E+00 7.838232E+01 1.000000E+03 \n", - " 22 traj.phase0.states:r_21 c 0.000000E+00 8.366789E+01 1.000000E+03 \n", - " 23 traj.phase0.states:r_22 c 0.000000E+00 8.909663E+01 1.000000E+03 \n", - " 24 traj.phase0.states:r_23 c 0.000000E+00 9.464601E+01 1.000000E+03 \n", - " 25 traj.phase0.states:r_24 c 0.000000E+00 1.001543E+02 1.000000E+03 \n", - " 26 traj.phase0.states:r_25 c 0.000000E+00 1.052003E+02 1.000000E+03 \n", - " 27 traj.phase0.states:r_26 c 0.000000E+00 1.093944E+02 1.000000E+03 \n", - " 28 traj.phase0.states:r_27 c 0.000000E+00 1.128537E+02 1.000000E+03 \n", - " 29 traj.phase0.states:r_28 c 0.000000E+00 1.159921E+02 1.000000E+03 \n", - " 30 traj.phase0.states:r_29 c 0.000000E+00 1.191438E+02 1.000000E+03 \n", - " 31 traj.phase0.states:h_0 c 0.000000E+00 1.061226E+00 2.000000E+02 \n", - " 32 traj.phase0.states:h_1 c 0.000000E+00 1.139375E+00 2.000000E+02 \n", - " 33 traj.phase0.states:h_2 c 0.000000E+00 8.818192E+00 2.000000E+02 \n", - " 34 traj.phase0.states:h_3 c 0.000000E+00 2.664437E+01 2.000000E+02 \n", - " 35 traj.phase0.states:h_4 c 0.000000E+00 4.417015E+01 2.000000E+02 \n", - " 36 traj.phase0.states:h_5 c 0.000000E+00 5.944126E+01 2.000000E+02 \n", - " 37 traj.phase0.states:h_6 c 0.000000E+00 7.289255E+01 2.000000E+02 \n", - " 38 traj.phase0.states:h_7 c 0.000000E+00 8.421209E+01 2.000000E+02 \n", - " 39 traj.phase0.states:h_8 c 0.000000E+00 9.049901E+01 2.000000E+02 \n", - " 40 traj.phase0.states:h_9 c 0.000000E+00 8.884960E+01 2.000000E+02 \n", - " 41 traj.phase0.states:h_10 c 0.000000E+00 8.147390E+01 2.000000E+02 \n", - " 42 traj.phase0.states:h_11 c 0.000000E+00 7.428830E+01 2.000000E+02 \n", - " 43 traj.phase0.states:h_12 c 0.000000E+00 7.108228E+01 2.000000E+02 \n", - " 44 traj.phase0.states:h_13 c 0.000000E+00 7.162013E+01 2.000000E+02 \n", - " 45 traj.phase0.states:h_14 c 0.000000E+00 7.403052E+01 2.000000E+02 \n", - " 46 traj.phase0.states:h_15 c 0.000000E+00 7.692182E+01 2.000000E+02 \n", - " 47 traj.phase0.states:h_16 c 0.000000E+00 7.977347E+01 2.000000E+02 \n", - " 48 traj.phase0.states:h_17 c 0.000000E+00 8.256112E+01 2.000000E+02 \n", - " 49 traj.phase0.states:h_18 c 0.000000E+00 8.533947E+01 2.000000E+02 \n", - " 50 traj.phase0.states:h_19 c 0.000000E+00 8.797577E+01 2.000000E+02 \n", - " 51 traj.phase0.states:h_20 c 0.000000E+00 9.008192E+01 2.000000E+02 \n", - " 52 traj.phase0.states:h_21 c 0.000000E+00 9.124551E+01 2.000000E+02 \n", - " 53 traj.phase0.states:h_22 c 0.000000E+00 9.175946E+01 2.000000E+02 \n", - " 54 traj.phase0.states:h_23 c 0.000000E+00 9.384358E+01 2.000000E+02 \n", - " 55 traj.phase0.states:h_24 c 0.000000E+00 1.021991E+02 2.000000E+02 \n", - " 56 traj.phase0.states:h_25 c 0.000000E+00 1.207230E+02 2.000000E+02 \n", - " 57 traj.phase0.states:h_26 c 0.000000E+00 1.466413E+02 2.000000E+02 \n", - " 58 traj.phase0.states:h_27 c 0.000000E+00 1.725207E+02 2.000000E+02 \n", - " 59 traj.phase0.states:h_28 c 0.000000E+00 1.921023E+02 2.000000E+02 \n", - " 60 traj.phase0.states:h_29 c 0.000000E+00 2.000000E+02 2.000000E+02 u\n", - " 61 traj.phase0.states:v_0 c 1.000000E-01 2.001427E+00 1.000000E+19 \n", - " 62 traj.phase0.states:v_1 c 1.000000E-01 2.688847E+00 1.000000E+19 \n", - " 63 traj.phase0.states:v_2 c 1.000000E-01 3.059740E+00 1.000000E+19 \n", - " 64 traj.phase0.states:v_3 c 1.000000E-01 3.065008E+00 1.000000E+19 \n", - " 65 traj.phase0.states:v_4 c 1.000000E-01 3.014449E+00 1.000000E+19 \n", - " 66 traj.phase0.states:v_5 c 1.000000E-01 2.961213E+00 1.000000E+19 \n", - " 67 traj.phase0.states:v_6 c 1.000000E-01 2.900125E+00 1.000000E+19 \n", - " 68 traj.phase0.states:v_7 c 1.000000E-01 2.859550E+00 1.000000E+19 \n", - " 69 traj.phase0.states:v_8 c 1.000000E-01 2.953666E+00 1.000000E+19 \n", - " 70 traj.phase0.states:v_9 c 1.000000E-01 3.228199E+00 1.000000E+19 \n", - " 71 traj.phase0.states:v_10 c 1.000000E-01 3.596243E+00 1.000000E+19 \n", - " 72 traj.phase0.states:v_11 c 1.000000E-01 3.914195E+00 1.000000E+19 \n", - " 73 traj.phase0.states:v_12 c 1.000000E-01 4.117592E+00 1.000000E+19 \n", - " 74 traj.phase0.states:v_13 c 1.000000E-01 4.235627E+00 1.000000E+19 \n", - " 75 traj.phase0.states:v_14 c 1.000000E-01 4.317742E+00 1.000000E+19 \n", - " 76 traj.phase0.states:v_15 c 1.000000E-01 4.394110E+00 1.000000E+19 \n", - " 77 traj.phase0.states:v_16 c 1.000000E-01 4.474274E+00 1.000000E+19 \n", - " 78 traj.phase0.states:v_17 c 1.000000E-01 4.557818E+00 1.000000E+19 \n", - " 79 traj.phase0.states:v_18 c 1.000000E-01 4.643762E+00 1.000000E+19 \n", - " 80 traj.phase0.states:v_19 c 1.000000E-01 4.735619E+00 1.000000E+19 \n", - " 81 traj.phase0.states:v_20 c 1.000000E-01 4.841473E+00 1.000000E+19 \n", - " 82 traj.phase0.states:v_21 c 1.000000E-01 4.967183E+00 1.000000E+19 \n", - " 83 traj.phase0.states:v_22 c 1.000000E-01 5.100042E+00 1.000000E+19 \n", - " 84 traj.phase0.states:v_23 c 1.000000E-01 5.186232E+00 1.000000E+19 \n", - " 85 traj.phase0.states:v_24 c 1.000000E-01 5.124438E+00 1.000000E+19 \n", - " 86 traj.phase0.states:v_25 c 1.000000E-01 4.823477E+00 1.000000E+19 \n", - " 87 traj.phase0.states:v_26 c 1.000000E-01 4.304544E+00 1.000000E+19 \n", - " 88 traj.phase0.states:v_27 c 1.000000E-01 3.708491E+00 1.000000E+19 \n", - " 89 traj.phase0.states:v_28 c 1.000000E-01 3.190617E+00 1.000000E+19 \n", - " 90 traj.phase0.states:v_29 c 1.000000E-01 2.950864E+00 1.000000E+19 \n", - " 91 traj.phase0.states:gam_0 c -1.500000E+00 1.134838E-02 1.500000E+00 \n", - " 92 traj.phase0.states:gam_1 c -1.500000E+00 3.612903E-02 1.500000E+00 \n", - " 93 traj.phase0.states:gam_2 c -1.500000E+00 4.740235E-01 1.500000E+00 \n", - " 94 traj.phase0.states:gam_3 c -1.500000E+00 5.938179E-01 1.500000E+00 \n", - " 95 traj.phase0.states:gam_4 c -1.500000E+00 5.275219E-01 1.500000E+00 \n", - " 96 traj.phase0.states:gam_5 c -1.500000E+00 4.638847E-01 1.500000E+00 \n", - " 97 traj.phase0.states:gam_6 c -1.500000E+00 4.145517E-01 1.500000E+00 \n", - " 98 traj.phase0.states:gam_7 c -1.500000E+00 3.138791E-01 1.500000E+00 \n", - " 99 traj.phase0.states:gam_8 c -1.500000E+00 7.811222E-02 1.500000E+00 \n", - " 100 traj.phase0.states:gam_9 c -1.500000E+00 -1.559814E-01 1.500000E+00 \n", - " 101 traj.phase0.states:gam_10 c -1.500000E+00 -2.145772E-01 1.500000E+00 \n", - " 102 traj.phase0.states:gam_11 c -1.500000E+00 -1.293071E-01 1.500000E+00 \n", - " 103 traj.phase0.states:gam_12 c -1.500000E+00 -2.372600E-02 1.500000E+00 \n", - " 104 traj.phase0.states:gam_13 c -1.500000E+00 3.905499E-02 1.500000E+00 \n", - " 105 traj.phase0.states:gam_14 c -1.500000E+00 6.020536E-02 1.500000E+00 \n", - " 106 traj.phase0.states:gam_15 c -1.500000E+00 6.124968E-02 1.500000E+00 \n", - " 107 traj.phase0.states:gam_16 c -1.500000E+00 5.816548E-02 1.500000E+00 \n", - " 108 traj.phase0.states:gam_17 c -1.500000E+00 5.666272E-02 1.500000E+00 \n", - " 109 traj.phase0.states:gam_18 c -1.500000E+00 5.498959E-02 1.500000E+00 \n", - " 110 traj.phase0.states:gam_19 c -1.500000E+00 4.804794E-02 1.500000E+00 \n", - " 111 traj.phase0.states:gam_20 c -1.500000E+00 3.219925E-02 1.500000E+00 \n", - " 112 traj.phase0.states:gam_21 c -1.500000E+00 1.263070E-02 1.500000E+00 \n", - " 113 traj.phase0.states:gam_22 c -1.500000E+00 1.284656E-02 1.500000E+00 \n", - " 114 traj.phase0.states:gam_23 c -1.500000E+00 7.683155E-02 1.500000E+00 \n", - " 115 traj.phase0.states:gam_24 c -1.500000E+00 2.409826E-01 1.500000E+00 \n", - " 116 traj.phase0.states:gam_25 c -1.500000E+00 4.652781E-01 1.500000E+00 \n", - " 117 traj.phase0.states:gam_26 c -1.500000E+00 6.245282E-01 1.500000E+00 \n", - " 118 traj.phase0.states:gam_27 c -1.500000E+00 6.313080E-01 1.500000E+00 \n", - " 119 traj.phase0.states:gam_28 c -1.500000E+00 4.419234E-01 1.500000E+00 \n", - " 120 traj.phase0.states:gam_29 c -1.500000E+00 -9.667975E-26 1.500000E+00 \n", - " 121 traj.phase0.states:m_0 c 1.000000E-02 1.894029E+01 1.000000E+02 \n", - " 122 traj.phase0.states:m_1 c 1.000000E-02 1.883985E+01 1.000000E+02 \n", - " 123 traj.phase0.states:m_2 c 1.000000E-02 1.873364E+01 1.000000E+02 \n", - " 124 traj.phase0.states:m_3 c 1.000000E-02 1.863493E+01 1.000000E+02 \n", - " 125 traj.phase0.states:m_4 c 1.000000E-02 1.854905E+01 1.000000E+02 \n", - " 126 traj.phase0.states:m_5 c 1.000000E-02 1.847497E+01 1.000000E+02 \n", - " 127 traj.phase0.states:m_6 c 1.000000E-02 1.841103E+01 1.000000E+02 \n", - " 128 traj.phase0.states:m_7 c 1.000000E-02 1.835554E+01 1.000000E+02 \n", - " 129 traj.phase0.states:m_8 c 1.000000E-02 1.830503E+01 1.000000E+02 \n", - " 130 traj.phase0.states:m_9 c 1.000000E-02 1.825308E+01 1.000000E+02 \n", - " 131 traj.phase0.states:m_10 c 1.000000E-02 1.819243E+01 1.000000E+02 \n", - " 132 traj.phase0.states:m_11 c 1.000000E-02 1.811956E+01 1.000000E+02 \n", - " 133 traj.phase0.states:m_12 c 1.000000E-02 1.803722E+01 1.000000E+02 \n", - " 134 traj.phase0.states:m_13 c 1.000000E-02 1.795050E+01 1.000000E+02 \n", - " 135 traj.phase0.states:m_14 c 1.000000E-02 1.786279E+01 1.000000E+02 \n", - " 136 traj.phase0.states:m_15 c 1.000000E-02 1.777533E+01 1.000000E+02 \n", - " 137 traj.phase0.states:m_16 c 1.000000E-02 1.768827E+01 1.000000E+02 \n", - " 138 traj.phase0.states:m_17 c 1.000000E-02 1.760153E+01 1.000000E+02 \n", - " 139 traj.phase0.states:m_18 c 1.000000E-02 1.751509E+01 1.000000E+02 \n", - " 140 traj.phase0.states:m_19 c 1.000000E-02 1.742893E+01 1.000000E+02 \n", - " 141 traj.phase0.states:m_20 c 1.000000E-02 1.734269E+01 1.000000E+02 \n", - " 142 traj.phase0.states:m_21 c 1.000000E-02 1.725559E+01 1.000000E+02 \n", - " 143 traj.phase0.states:m_22 c 1.000000E-02 1.716676E+01 1.000000E+02 \n", - " 144 traj.phase0.states:m_23 c 1.000000E-02 1.707678E+01 1.000000E+02 \n", - " 145 traj.phase0.states:m_24 c 1.000000E-02 1.699015E+01 1.000000E+02 \n", - " 146 traj.phase0.states:m_25 c 1.000000E-02 1.691718E+01 1.000000E+02 \n", - " 147 traj.phase0.states:m_26 c 1.000000E-02 1.686893E+01 1.000000E+02 \n", - " 148 traj.phase0.states:m_27 c 1.000000E-02 1.684156E+01 1.000000E+02 \n", - " 149 traj.phase0.states:m_28 c 1.000000E-02 1.682680E+01 1.000000E+02 \n", - " 150 traj.phase0.states:m_29 c 1.000000E-02 1.681812E+01 1.000000E+02 \n", - " 151 traj.phase0.controls:alpha_0 c -8.000000E+00 4.973570E+00 8.000000E+00 \n", - " 152 traj.phase0.controls:alpha_1 c -8.000000E+00 3.717203E+00 8.000000E+00 \n", - " 153 traj.phase0.controls:alpha_2 c -8.000000E+00 2.438053E+00 8.000000E+00 \n", - " 154 traj.phase0.controls:alpha_3 c -8.000000E+00 1.746324E+00 8.000000E+00 \n", - " 155 traj.phase0.controls:alpha_4 c -8.000000E+00 2.252217E+00 8.000000E+00 \n", - " 156 traj.phase0.controls:alpha_5 c -8.000000E+00 2.787355E+00 8.000000E+00 \n", - " 157 traj.phase0.controls:alpha_6 c -8.000000E+00 2.183358E+00 8.000000E+00 \n", - " 158 traj.phase0.controls:alpha_7 c -8.000000E+00 1.279499E+00 8.000000E+00 \n", - " 159 traj.phase0.controls:alpha_8 c -8.000000E+00 9.150496E-01 8.000000E+00 \n", - " 160 traj.phase0.controls:alpha_9 c -8.000000E+00 8.886856E-01 8.000000E+00 \n", - " 161 traj.phase0.controls:alpha_10 c -8.000000E+00 9.990812E-01 8.000000E+00 \n", - " 162 traj.phase0.controls:alpha_11 c -8.000000E+00 1.188628E+00 8.000000E+00 \n", - " 163 traj.phase0.controls:alpha_12 c -8.000000E+00 1.399716E+00 8.000000E+00 \n", - " 164 traj.phase0.controls:alpha_13 c -8.000000E+00 1.593759E+00 8.000000E+00 \n", - " 165 traj.phase0.controls:alpha_14 c -8.000000E+00 1.732167E+00 8.000000E+00 \n", - " 166 traj.phase0.controls:alpha_15 c -8.000000E+00 1.676253E+00 8.000000E+00 \n", - " 167 traj.phase0.controls:alpha_16 c -8.000000E+00 1.287328E+00 8.000000E+00 \n", - " 168 traj.phase0.controls:alpha_17 c -8.000000E+00 8.318812E-01 8.000000E+00 \n", - " 169 traj.phase0.controls:alpha_18 c -8.000000E+00 5.763993E-01 8.000000E+00 \n", - " 170 traj.phase0.controls:alpha_19 c -8.000000E+00 6.230897E-01 8.000000E+00 \n", - " 171 traj.phase0.controls:alpha_20 c -8.000000E+00 1.074159E+00 8.000000E+00 \n", - " 172 traj.phase0.controls:alpha_21 c -8.000000E+00 1.617142E+00 8.000000E+00 \n", - " 173 traj.phase0.controls:alpha_22 c -8.000000E+00 1.939570E+00 8.000000E+00 \n", - " 174 traj.phase0.controls:alpha_23 c -8.000000E+00 2.067110E+00 8.000000E+00 \n", - " 175 traj.phase0.controls:alpha_24 c -8.000000E+00 2.025427E+00 8.000000E+00 \n", - " 176 traj.phase0.controls:alpha_25 c -8.000000E+00 1.885758E+00 8.000000E+00 \n", - " 177 traj.phase0.controls:alpha_26 c -8.000000E+00 1.719343E+00 8.000000E+00 \n", - " 178 traj.phase0.controls:alpha_27 c -8.000000E+00 1.555927E+00 8.000000E+00 \n", - " 179 traj.phase0.controls:alpha_28 c -8.000000E+00 1.425256E+00 8.000000E+00 \n", - " 180 traj.phase0.controls:alpha_29 c -8.000000E+00 1.329070E+00 8.000000E+00 \n", - " 181 traj.phase0.controls:alpha_30 c -8.000000E+00 1.269107E+00 8.000000E+00 \n", - " 182 traj.phase0.controls:alpha_31 c -8.000000E+00 1.237556E+00 8.000000E+00 \n", - " 183 traj.phase0.controls:alpha_32 c -8.000000E+00 1.226606E+00 8.000000E+00 \n", - " 184 traj.phase0.controls:alpha_33 c -8.000000E+00 1.229107E+00 8.000000E+00 \n", - " 185 traj.phase0.controls:alpha_34 c -8.000000E+00 1.237911E+00 8.000000E+00 \n", - " 186 traj.phase0.controls:alpha_35 c -8.000000E+00 1.248382E+00 8.000000E+00 \n", - " 187 traj.phase0.controls:alpha_36 c -8.000000E+00 1.255885E+00 8.000000E+00 \n", - " 188 traj.phase0.controls:alpha_37 c -8.000000E+00 1.257922E+00 8.000000E+00 \n", - " 189 traj.phase0.controls:alpha_38 c -8.000000E+00 1.251999E+00 8.000000E+00 \n", - " 190 traj.phase0.controls:alpha_39 c -8.000000E+00 1.237719E+00 8.000000E+00 \n", - " 191 traj.phase0.controls:alpha_40 c -8.000000E+00 1.214691E+00 8.000000E+00 \n", - " 192 traj.phase0.controls:alpha_41 c -8.000000E+00 1.187428E+00 8.000000E+00 \n", - " 193 traj.phase0.controls:alpha_42 c -8.000000E+00 1.160447E+00 8.000000E+00 \n", - " 194 traj.phase0.controls:alpha_43 c -8.000000E+00 1.147674E+00 8.000000E+00 \n", - " 195 traj.phase0.controls:alpha_44 c -8.000000E+00 1.163032E+00 8.000000E+00 \n", - " 196 traj.phase0.controls:alpha_45 c -8.000000E+00 1.227486E+00 8.000000E+00 \n", - " 197 traj.phase0.controls:alpha_46 c -8.000000E+00 1.361995E+00 8.000000E+00 \n", - " 198 traj.phase0.controls:alpha_47 c -8.000000E+00 1.582015E+00 8.000000E+00 \n", - " 199 traj.phase0.controls:alpha_48 c -8.000000E+00 1.902997E+00 8.000000E+00 \n", - " 200 traj.phase0.controls:alpha_49 c -8.000000E+00 2.303846E+00 8.000000E+00 \n", - " 201 traj.phase0.controls:alpha_50 c -8.000000E+00 2.763468E+00 8.000000E+00 \n", - " 202 traj.phase0.controls:alpha_51 c -8.000000E+00 3.222359E+00 8.000000E+00 \n", - " 203 traj.phase0.controls:alpha_52 c -8.000000E+00 3.621015E+00 8.000000E+00 \n", - " 204 traj.phase0.controls:alpha_53 c -8.000000E+00 3.885907E+00 8.000000E+00 \n", - " 205 traj.phase0.controls:alpha_54 c -8.000000E+00 3.943506E+00 8.000000E+00 \n", - " 206 traj.phase0.controls:alpha_55 c -8.000000E+00 3.728444E+00 8.000000E+00 \n", - " 207 traj.phase0.controls:alpha_56 c -8.000000E+00 3.175352E+00 8.000000E+00 \n", - " 208 traj.phase0.controls:alpha_57 c -8.000000E+00 1.953508E+00 8.000000E+00 \n", - " 209 traj.phase0.controls:alpha_58 c -8.000000E+00 -2.678072E-01 8.000000E+00 \n", - " 210 traj.phase0.controls:alpha_59 c -8.000000E+00 -3.186040E+00 8.000000E+00 \n", - " 211 traj.phase0.controls:alpha_60 c -8.000000E+00 -6.498636E+00 8.000000E+00 \n", - "\n", - " Constraints (i - inequality, e - equality)\n", - " Index Name Type Lower Value Upper Status Lagrange Multiplier (N/A)\n", - " 0 traj.phases.phase0->final_boundary_constraint->h e 2.000000E+01 2.000000E+01 2.000000E+01 9.00000E+100\n", - " 1 traj.phases.phase0->final_boundary_constraint->mach e 1.000000E+00 1.000000E+00 1.000000E+00 9.00000E+100\n", - " 2 traj.phases.phase0->final_boundary_constraint->gam e 0.000000E+00 -9.667975E-26 0.000000E+00 9.00000E+100\n", - " 3 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.857617E-12 0.000000E+00 9.00000E+100\n", - " 4 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.562611E-10 0.000000E+00 9.00000E+100\n", - " 5 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.668183E-10 0.000000E+00 9.00000E+100\n", - " 6 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.510075E-10 0.000000E+00 9.00000E+100\n", - " 7 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.167350E-10 0.000000E+00 9.00000E+100\n", - " 8 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.247798E-10 0.000000E+00 9.00000E+100\n", - " 9 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.033742E-10 0.000000E+00 9.00000E+100\n", - " 10 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.305851E-11 0.000000E+00 9.00000E+100\n", - " 11 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.365306E-11 0.000000E+00 9.00000E+100\n", - " 12 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.876803E-11 0.000000E+00 9.00000E+100\n", - " 13 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.049574E-10 0.000000E+00 9.00000E+100\n", - " 14 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.843272E-10 0.000000E+00 9.00000E+100\n", - " 15 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.981502E-10 0.000000E+00 9.00000E+100\n", - " 16 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.192171E-10 0.000000E+00 9.00000E+100\n", - " 17 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 9.299695E-12 0.000000E+00 9.00000E+100\n", - " 18 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.798588E-10 0.000000E+00 9.00000E+100\n", - " 19 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.983689E-10 0.000000E+00 9.00000E+100\n", - " 20 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.710113E-10 0.000000E+00 9.00000E+100\n", - " 21 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.122631E-11 0.000000E+00 9.00000E+100\n", - " 22 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.582248E-10 0.000000E+00 9.00000E+100\n", - " 23 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.908664E-10 0.000000E+00 9.00000E+100\n", - " 24 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.970838E-10 0.000000E+00 9.00000E+100\n", - " 25 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 7.080616E-11 0.000000E+00 9.00000E+100\n", - " 26 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.521891E-11 0.000000E+00 9.00000E+100\n", - " 27 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 8.223133E-11 0.000000E+00 9.00000E+100\n", - " 28 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.081894E-12 0.000000E+00 9.00000E+100\n", - " 29 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.007913E-11 0.000000E+00 9.00000E+100\n", - " 30 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.569299E-11 0.000000E+00 9.00000E+100\n", - " 31 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 -3.673231E-12 0.000000E+00 9.00000E+100\n", - " 32 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 -5.570316E-11 0.000000E+00 9.00000E+100\n", - " 33 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 3.407747E-11 0.000000E+00 9.00000E+100\n", - " 34 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 4.599298E-10 0.000000E+00 9.00000E+100\n", - " 35 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.224315E-09 0.000000E+00 9.00000E+100\n", - " 36 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.101445E-09 0.000000E+00 9.00000E+100\n", - " 37 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.988684E-09 0.000000E+00 9.00000E+100\n", - " 38 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 3.794247E-10 0.000000E+00 9.00000E+100\n", - " 39 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.294541E-09 0.000000E+00 9.00000E+100\n", - " 40 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.686224E-09 0.000000E+00 9.00000E+100\n", - " 41 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -4.002431E-10 0.000000E+00 9.00000E+100\n", - " 42 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -5.188040E-10 0.000000E+00 9.00000E+100\n", - " 43 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.225507E-10 0.000000E+00 9.00000E+100\n", - " 44 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -3.735524E-10 0.000000E+00 9.00000E+100\n", - " 45 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.131199E-10 0.000000E+00 9.00000E+100\n", - " 46 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -5.246302E-10 0.000000E+00 9.00000E+100\n", - " 47 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -2.770746E-11 0.000000E+00 9.00000E+100\n", - " 48 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.758629E-09 0.000000E+00 9.00000E+100\n", - " 49 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -4.407425E-10 0.000000E+00 9.00000E+100\n", - " 50 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -3.361361E-10 0.000000E+00 9.00000E+100\n", - " 51 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.826408E-10 0.000000E+00 9.00000E+100\n", - " 52 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.871738E-09 0.000000E+00 9.00000E+100\n", - " 53 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -7.542685E-10 0.000000E+00 9.00000E+100\n", - " 54 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 3.679744E-12 0.000000E+00 9.00000E+100\n", - " 55 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.390602E-11 0.000000E+00 9.00000E+100\n", - " 56 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.243648E-10 0.000000E+00 9.00000E+100\n", - " 57 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.861450E-10 0.000000E+00 9.00000E+100\n", - " 58 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -7.297424E-12 0.000000E+00 9.00000E+100\n", - " 59 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.202774E-10 0.000000E+00 9.00000E+100\n", - " 60 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.108453E-10 0.000000E+00 9.00000E+100\n", - " 61 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.538865E-11 0.000000E+00 9.00000E+100\n", - " 62 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -2.205402E-10 0.000000E+00 9.00000E+100\n", - " 63 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.517080E-11 0.000000E+00 9.00000E+100\n", - " 64 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.310881E-11 0.000000E+00 9.00000E+100\n", - " 65 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.110402E-10 0.000000E+00 9.00000E+100\n", - " 66 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.081311E-11 0.000000E+00 9.00000E+100\n", - " 67 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.343879E-11 0.000000E+00 9.00000E+100\n", - " 68 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.443337E-10 0.000000E+00 9.00000E+100\n", - " 69 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 -2.763322E-12 0.000000E+00 9.00000E+100\n", - " 70 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.756277E-11 0.000000E+00 9.00000E+100\n", - " 71 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.313106E-10 0.000000E+00 9.00000E+100\n", - " 72 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.144650E-11 0.000000E+00 9.00000E+100\n", - " 73 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.119879E-11 0.000000E+00 9.00000E+100\n", - " 74 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.388667E-10 0.000000E+00 9.00000E+100\n", - " 75 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.098655E-10 0.000000E+00 9.00000E+100\n", - " 76 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.116181E-11 0.000000E+00 9.00000E+100\n", - " 77 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.945078E-11 0.000000E+00 9.00000E+100\n", - " 78 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 8.456106E-11 0.000000E+00 9.00000E+100\n", - " 79 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.218732E-10 0.000000E+00 9.00000E+100\n", - " 80 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.823437E-10 0.000000E+00 9.00000E+100\n", - " 81 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.946243E-11 0.000000E+00 9.00000E+100\n", - " 82 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.846456E-10 0.000000E+00 9.00000E+100\n", - " 83 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.307029E-10 0.000000E+00 9.00000E+100\n", - " 84 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.722859E-10 0.000000E+00 9.00000E+100\n", - " 85 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.097087E-10 0.000000E+00 9.00000E+100\n", - " 86 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.589362E-10 0.000000E+00 9.00000E+100\n", - " 87 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.262230E-11 0.000000E+00 9.00000E+100\n", - " 88 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.724454E-11 0.000000E+00 9.00000E+100\n", - " 89 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.631309E-11 0.000000E+00 9.00000E+100\n", - " 90 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.595983E-11 0.000000E+00 9.00000E+100\n", - " 91 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.480489E-11 0.000000E+00 9.00000E+100\n", - " 92 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.786582E-10 0.000000E+00 9.00000E+100\n", - " 93 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 3.330207E-13 0.000000E+00 9.00000E+100\n", - " 94 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.222030E-11 0.000000E+00 9.00000E+100\n", - " 95 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.443701E-10 0.000000E+00 9.00000E+100\n", - " 96 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.633565E-11 0.000000E+00 9.00000E+100\n", - " 97 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -5.181509E-11 0.000000E+00 9.00000E+100\n", - " 98 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.529204E-10 0.000000E+00 9.00000E+100\n", - " 99 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -6.804130E-11 0.000000E+00 9.00000E+100\n", - " 100 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.025768E-10 0.000000E+00 9.00000E+100\n", - " 101 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.386108E-10 0.000000E+00 9.00000E+100\n", - " 102 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 5.102021E-12 0.000000E+00 9.00000E+100\n", - " 103 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.169545E-11 0.000000E+00 9.00000E+100\n", - " 104 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.499546E-10 0.000000E+00 9.00000E+100\n", - " 105 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.636790E-11 0.000000E+00 9.00000E+100\n", - " 106 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.706163E-11 0.000000E+00 9.00000E+100\n", - " 107 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 3.164328E-13 0.000000E+00 9.00000E+100\n", - " 108 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 1.054185E-11 0.000000E+00 9.00000E+100\n", - " 109 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.565557E-10 0.000000E+00 9.00000E+100\n", - " 110 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 4.941235E-11 0.000000E+00 9.00000E+100\n", - " 111 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.165593E-11 0.000000E+00 9.00000E+100\n", - " 112 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 7.675668E-11 0.000000E+00 9.00000E+100\n", - " 113 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.614085E-10 0.000000E+00 9.00000E+100\n", - " 114 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.083001E-11 0.000000E+00 9.00000E+100\n", - " 115 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.086944E-11 0.000000E+00 9.00000E+100\n", - " 116 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.664189E-11 0.000000E+00 9.00000E+100\n", - " 117 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.893081E-11 0.000000E+00 9.00000E+100\n", - " 118 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 1.694295E-12 0.000000E+00 9.00000E+100\n", - " 119 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.331146E-11 0.000000E+00 9.00000E+100\n", - " 120 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -5.280834E-12 0.000000E+00 9.00000E+100\n", - " 121 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 1.975714E-12 0.000000E+00 9.00000E+100\n", - " 122 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.140862E-11 0.000000E+00 9.00000E+100\n", - " 123 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.987187E-14 0.000000E+00 9.00000E+100\n", - " 124 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.299888E-13 0.000000E+00 9.00000E+100\n", - " 125 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.520839E-12 0.000000E+00 9.00000E+100\n", - " 126 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 9.017383E-14 0.000000E+00 9.00000E+100\n", - " 127 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.153057E-13 0.000000E+00 9.00000E+100\n", - " 128 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.861251E-13 0.000000E+00 9.00000E+100\n", - " 129 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.665856E-14 0.000000E+00 9.00000E+100\n", - " 130 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.162002E-12 0.000000E+00 9.00000E+100\n", - " 131 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.483664E-12 0.000000E+00 9.00000E+100\n", - " 132 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.220542E-13 0.000000E+00 9.00000E+100\n", - " 133 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 2.321868E-13 0.000000E+00 9.00000E+100\n", - " 134 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.540724E-13 0.000000E+00 9.00000E+100\n", - " 135 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 2.476165E-13 0.000000E+00 9.00000E+100\n", - " 136 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.950595E-13 0.000000E+00 9.00000E+100\n", - " 137 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.280174E-14 0.000000E+00 9.00000E+100\n", - " 138 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -9.731878E-14 0.000000E+00 9.00000E+100\n", - " 139 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.237165E-13 0.000000E+00 9.00000E+100\n", - " 140 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -9.706019E-14 0.000000E+00 9.00000E+100\n", - " 141 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.102295E-13 0.000000E+00 9.00000E+100\n", - " 142 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.408456E-13 0.000000E+00 9.00000E+100\n", - " 143 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -9.091419E-13 0.000000E+00 9.00000E+100\n", - " 144 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.559842E-14 0.000000E+00 9.00000E+100\n", - " 145 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.174989E-13 0.000000E+00 9.00000E+100\n", - " 146 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.750709E-14 0.000000E+00 9.00000E+100\n", - " 147 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -5.723620E-14 0.000000E+00 9.00000E+100\n", - " 148 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.510419E-12 0.000000E+00 9.00000E+100\n", - " 149 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 2.494506E-14 0.000000E+00 9.00000E+100\n", - " 150 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.320581E-14 0.000000E+00 9.00000E+100\n", - " 151 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.935138E-14 0.000000E+00 9.00000E+100\n", - " 152 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.035687E-13 0.000000E+00 9.00000E+100\n", - " 153 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.346861E-12 0.000000E+00 9.00000E+100\n", - " 154 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.489536E-13 0.000000E+00 9.00000E+100\n", - " 155 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.489536E-13 0.000000E+00 9.00000E+100\n", - " 156 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.734305E-13 0.000000E+00 9.00000E+100\n", - " 157 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.122384E-13 0.000000E+00 9.00000E+100\n", - " 158 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.489536E-13 0.000000E+00 9.00000E+100\n", - " 159 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", - " 160 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.122384E-12 0.000000E+00 9.00000E+100\n", - " 161 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", - " 162 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 8.979073E-13 0.000000E+00 9.00000E+100\n", - " 163 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.571338E-12 0.000000E+00 9.00000E+100\n", - " 164 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 165 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.010146E-12 0.000000E+00 9.00000E+100\n", - " 166 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.734305E-13 0.000000E+00 9.00000E+100\n", - " 167 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.734305E-13 0.000000E+00 9.00000E+100\n", - " 168 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.661963E-13 0.000000E+00 9.00000E+100\n", - " 169 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 170 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.664156E-13 0.000000E+00 9.00000E+100\n", - " 171 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.332831E-12 0.000000E+00 9.00000E+100\n", - " 172 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 173 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 174 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", - " 175 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", - " 176 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.489536E-13 0.000000E+00 9.00000E+100\n", - " 177 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 178 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", - " 179 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.318801E-12 0.000000E+00 9.00000E+100\n", - " 180 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 2.693722E-12 0.000000E+00 9.00000E+100\n", - " 181 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 182 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.000000E-03 1.000000E+00 l 9.00000E+100\n", - " 183 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", - " 184 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.306130E-03 1.000000E+00 9.00000E+100\n", - " 185 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.306130E-03 1.000000E+00 9.00000E+100\n", - " 186 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", - " 187 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.696875E-03 1.000000E+00 9.00000E+100\n", - " 188 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.696875E-03 1.000000E+00 9.00000E+100\n", - " 189 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.613532E-02 1.000000E+00 9.00000E+100\n", - " 190 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.409096E-02 1.000000E+00 9.00000E+100\n", - " 191 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.409096E-02 1.000000E+00 9.00000E+100\n", - " 192 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.651126E-02 1.000000E+00 9.00000E+100\n", - " 193 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332218E-01 1.000000E+00 9.00000E+100\n", - " 194 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332218E-01 1.000000E+00 9.00000E+100\n", - " 195 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.783674E-01 1.000000E+00 9.00000E+100\n", - " 196 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208507E-01 1.000000E+00 9.00000E+100\n", - " 197 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208507E-01 1.000000E+00 9.00000E+100\n", - " 198 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.603261E-01 1.000000E+00 9.00000E+100\n", - " 199 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972063E-01 1.000000E+00 9.00000E+100\n", - " 200 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972063E-01 1.000000E+00 9.00000E+100\n", - " 201 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.318914E-01 1.000000E+00 9.00000E+100\n", - " 202 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644628E-01 1.000000E+00 9.00000E+100\n", - " 203 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644628E-01 1.000000E+00 9.00000E+100\n", - " 204 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.946839E-01 1.000000E+00 9.00000E+100\n", - " 205 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210605E-01 1.000000E+00 9.00000E+100\n", - " 206 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210605E-01 1.000000E+00 9.00000E+100\n", - " 207 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.411748E-01 1.000000E+00 9.00000E+100\n", - " 208 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.524950E-01 1.000000E+00 9.00000E+100\n", - " 209 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.524950E-01 1.000000E+00 9.00000E+100\n", - " 210 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.533048E-01 1.000000E+00 9.00000E+100\n", - " 211 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.442480E-01 1.000000E+00 9.00000E+100\n", - " 212 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.442480E-01 1.000000E+00 9.00000E+100\n", - " 213 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.275898E-01 1.000000E+00 9.00000E+100\n", - " 214 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.073695E-01 1.000000E+00 9.00000E+100\n", - " 215 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.073695E-01 1.000000E+00 9.00000E+100\n", - " 216 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.876462E-01 1.000000E+00 9.00000E+100\n", - " 217 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.714415E-01 1.000000E+00 9.00000E+100\n", - " 218 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.714415E-01 1.000000E+00 9.00000E+100\n", - " 219 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.606831E-01 1.000000E+00 9.00000E+100\n", - " 220 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554114E-01 1.000000E+00 9.00000E+100\n", - " 221 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554114E-01 1.000000E+00 9.00000E+100\n", - " 222 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.549831E-01 1.000000E+00 9.00000E+100\n", - " 223 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581007E-01 1.000000E+00 9.00000E+100\n", - " 224 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581007E-01 1.000000E+00 9.00000E+100\n", - " 225 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.634903E-01 1.000000E+00 9.00000E+100\n", - " 226 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701526E-01 1.000000E+00 9.00000E+100\n", - " 227 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701526E-01 1.000000E+00 9.00000E+100\n", - " 228 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.773190E-01 1.000000E+00 9.00000E+100\n", - " 229 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.846091E-01 1.000000E+00 9.00000E+100\n", - " 230 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.846091E-01 1.000000E+00 9.00000E+100\n", - " 231 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.917980E-01 1.000000E+00 9.00000E+100\n", - " 232 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988673E-01 1.000000E+00 9.00000E+100\n", - " 233 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988673E-01 1.000000E+00 9.00000E+100\n", - " 234 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.058498E-01 1.000000E+00 9.00000E+100\n", - " 235 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.128056E-01 1.000000E+00 9.00000E+100\n", - " 236 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.128056E-01 1.000000E+00 9.00000E+100\n", - " 237 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.197710E-01 1.000000E+00 9.00000E+100\n", - " 238 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.266974E-01 1.000000E+00 9.00000E+100\n", - " 239 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.266974E-01 1.000000E+00 9.00000E+100\n", - " 240 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.334753E-01 1.000000E+00 9.00000E+100\n", - " 241 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398788E-01 1.000000E+00 9.00000E+100\n", - " 242 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398788E-01 1.000000E+00 9.00000E+100\n", - " 243 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.456267E-01 1.000000E+00 9.00000E+100\n", - " 244 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504096E-01 1.000000E+00 9.00000E+100\n", - " 245 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504096E-01 1.000000E+00 9.00000E+100\n", - " 246 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.539462E-01 1.000000E+00 9.00000E+100\n", - " 247 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562275E-01 1.000000E+00 9.00000E+100\n", - " 248 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562275E-01 1.000000E+00 9.00000E+100\n", - " 249 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.574937E-01 1.000000E+00 9.00000E+100\n", - " 250 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.587973E-01 1.000000E+00 9.00000E+100\n", - " 251 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.587973E-01 1.000000E+00 9.00000E+100\n", - " 252 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.617663E-01 1.000000E+00 9.00000E+100\n", - " 253 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692179E-01 1.000000E+00 9.00000E+100\n", - " 254 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692179E-01 1.000000E+00 9.00000E+100\n", - " 255 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.845470E-01 1.000000E+00 9.00000E+100\n", - " 256 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109953E-01 1.000000E+00 9.00000E+100\n", - " 257 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109953E-01 1.000000E+00 9.00000E+100\n", - " 258 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.509620E-01 1.000000E+00 9.00000E+100\n", - " 259 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036152E-01 1.000000E+00 9.00000E+100\n", - " 260 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036152E-01 1.000000E+00 9.00000E+100\n", - " 261 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.660332E-01 1.000000E+00 9.00000E+100\n", - " 262 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332065E-01 1.000000E+00 9.00000E+100\n", - " 263 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332065E-01 1.000000E+00 9.00000E+100\n", - " 264 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.001168E-01 1.000000E+00 9.00000E+100\n", - " 265 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626036E-01 1.000000E+00 9.00000E+100\n", - " 266 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626036E-01 1.000000E+00 9.00000E+100\n", - " 267 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.171125E-01 1.000000E+00 9.00000E+100\n", - " 268 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605117E-01 1.000000E+00 9.00000E+100\n", - " 269 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605117E-01 1.000000E+00 9.00000E+100\n", - " 270 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.894525E-01 1.000000E+00 9.00000E+100\n", - " 271 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.000084E-01 1.800000E+00 9.00000E+100\n", - " 272 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.928085E-01 1.800000E+00 9.00000E+100\n", - " 273 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888639E-01 1.800000E+00 9.00000E+100\n", - " 274 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888639E-01 1.800000E+00 9.00000E+100\n", - " 275 traj.phases.phase0->path_constraint->mach i 1.000000E-01 6.907438E-01 1.800000E+00 9.00000E+100\n", - " 276 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911880E-01 1.800000E+00 9.00000E+100\n", - " 277 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911880E-01 1.800000E+00 9.00000E+100\n", - " 278 traj.phases.phase0->path_constraint->mach i 1.000000E-01 8.675432E-01 1.800000E+00 9.00000E+100\n", - " 279 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082431E-01 1.800000E+00 9.00000E+100\n", - " 280 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082431E-01 1.800000E+00 9.00000E+100\n", - " 281 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.235897E-01 1.800000E+00 9.00000E+100\n", - " 282 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290654E-01 1.800000E+00 9.00000E+100\n", - " 283 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290654E-01 1.800000E+00 9.00000E+100\n", - " 284 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.318654E-01 1.800000E+00 9.00000E+100\n", - " 285 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335852E-01 1.800000E+00 9.00000E+100\n", - " 286 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335852E-01 1.800000E+00 9.00000E+100\n", - " 287 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.348400E-01 1.800000E+00 9.00000E+100\n", - " 288 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351622E-01 1.800000E+00 9.00000E+100\n", - " 289 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351622E-01 1.800000E+00 9.00000E+100\n", - " 290 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.342034E-01 1.800000E+00 9.00000E+100\n", - " 291 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323520E-01 1.800000E+00 9.00000E+100\n", - " 292 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323520E-01 1.800000E+00 9.00000E+100\n", - " 293 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.308111E-01 1.800000E+00 9.00000E+100\n", - " 294 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336840E-01 1.800000E+00 9.00000E+100\n", - " 295 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336840E-01 1.800000E+00 9.00000E+100\n", - " 296 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.466460E-01 1.800000E+00 9.00000E+100\n", - " 297 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.729698E-01 1.800000E+00 9.00000E+100\n", - " 298 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.729698E-01 1.800000E+00 9.00000E+100\n", - " 299 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.012193E+00 1.800000E+00 9.00000E+100\n", - " 300 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060927E+00 1.800000E+00 9.00000E+100\n", - " 301 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060927E+00 1.800000E+00 9.00000E+100\n", - " 302 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.115356E+00 1.800000E+00 9.00000E+100\n", - " 303 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169773E+00 1.800000E+00 9.00000E+100\n", - " 304 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169773E+00 1.800000E+00 9.00000E+100\n", - " 305 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.219048E+00 1.800000E+00 9.00000E+100\n", - " 306 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260739E+00 1.800000E+00 9.00000E+100\n", - " 307 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260739E+00 1.800000E+00 9.00000E+100\n", - " 308 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.294123E+00 1.800000E+00 9.00000E+100\n", - " 309 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320529E+00 1.800000E+00 9.00000E+100\n", - " 310 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320529E+00 1.800000E+00 9.00000E+100\n", - " 311 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.341662E+00 1.800000E+00 9.00000E+100\n", - " 312 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359366E+00 1.800000E+00 9.00000E+100\n", - " 313 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359366E+00 1.800000E+00 9.00000E+100\n", - " 314 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.375207E+00 1.800000E+00 9.00000E+100\n", - " 315 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390234E+00 1.800000E+00 9.00000E+100\n", - " 316 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390234E+00 1.800000E+00 9.00000E+100\n", - " 317 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.405192E+00 1.800000E+00 9.00000E+100\n", - " 318 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420395E+00 1.800000E+00 9.00000E+100\n", - " 319 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420395E+00 1.800000E+00 9.00000E+100\n", - " 320 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.435996E+00 1.800000E+00 9.00000E+100\n", - " 321 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451969E+00 1.800000E+00 9.00000E+100\n", - " 322 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451969E+00 1.800000E+00 9.00000E+100\n", - " 323 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.468250E+00 1.800000E+00 9.00000E+100\n", - " 324 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484783E+00 1.800000E+00 9.00000E+100\n", - " 325 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484783E+00 1.800000E+00 9.00000E+100\n", - " 326 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.501553E+00 1.800000E+00 9.00000E+100\n", - " 327 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518640E+00 1.800000E+00 9.00000E+100\n", - " 328 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518640E+00 1.800000E+00 9.00000E+100\n", - " 329 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.536185E+00 1.800000E+00 9.00000E+100\n", - " 330 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554416E+00 1.800000E+00 9.00000E+100\n", - " 331 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554416E+00 1.800000E+00 9.00000E+100\n", - " 332 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.573585E+00 1.800000E+00 9.00000E+100\n", - " 333 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593892E+00 1.800000E+00 9.00000E+100\n", - " 334 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593892E+00 1.800000E+00 9.00000E+100\n", - " 335 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.615445E+00 1.800000E+00 9.00000E+100\n", - " 336 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637978E+00 1.800000E+00 9.00000E+100\n", - " 337 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637978E+00 1.800000E+00 9.00000E+100\n", - " 338 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.660941E+00 1.800000E+00 9.00000E+100\n", - " 339 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683018E+00 1.800000E+00 9.00000E+100\n", - " 340 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683018E+00 1.800000E+00 9.00000E+100\n", - " 341 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.702445E+00 1.800000E+00 9.00000E+100\n", - " 342 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716557E+00 1.800000E+00 9.00000E+100\n", - " 343 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716557E+00 1.800000E+00 9.00000E+100\n", - " 344 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.722339E+00 1.800000E+00 9.00000E+100\n", - " 345 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716750E+00 1.800000E+00 9.00000E+100\n", - " 346 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716750E+00 1.800000E+00 9.00000E+100\n", - " 347 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.696698E+00 1.800000E+00 9.00000E+100\n", - " 348 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634726E+00 1.800000E+00 9.00000E+100\n", - " 349 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634726E+00 1.800000E+00 9.00000E+100\n", - " 350 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.553459E+00 1.800000E+00 9.00000E+100\n", - " 351 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458854E+00 1.800000E+00 9.00000E+100\n", - " 352 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458854E+00 1.800000E+00 9.00000E+100\n", - " 353 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.357861E+00 1.800000E+00 9.00000E+100\n", - " 354 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256846E+00 1.800000E+00 9.00000E+100\n", - " 355 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256846E+00 1.800000E+00 9.00000E+100\n", - " 356 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.162025E+00 1.800000E+00 9.00000E+100\n", - " 357 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081333E+00 1.800000E+00 9.00000E+100\n", - " 358 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081333E+00 1.800000E+00 9.00000E+100\n", - " 359 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.024102E+00 1.800000E+00 9.00000E+100\n", - "\n", - "\n", - " Exit Status\n", - " Inform Description\n", - " 0 Solve Succeeded\n", - "--------------------------------------------------------------------------------\n", - "\n", - "coloring_files\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/utils/coloring.py:1326: OMDeprecationWarning:display is deprecated. Use display_bokeh for rich html displays of coloringor display_txt for a text-based display.\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAANaCAYAAABGOA9mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABnkElEQVR4nO3deXxUVZr/8W9YsrFKIIAYULBBFGwolUUUUESQaKP+wBEUtdHWEWVabadtURpwX3pQhtG23Wi3Vmy13eLG4k5UnKC27S4iuKCALLIOy/n9Ubm39qQqSeWeuvfzfr14kVRVkpPKSU499zznefKMMUYAAMBKTbweAAAASI2FGgAAi7FQAwBgMRZqAAAsxkINAIDFWKgBALAYCzUAABZjoQYAwGIs1AAAWIyF2iJ5eXlp/XvllVdq/VzXXXednnzyyXqPZ+bMmWk97sILL6zX12oIw4cPV58+fdJ6bLrfW7YsX75cF154oXr27KmioiIVFxfroIMO0pVXXqlvv/024883c+ZM5eXlNfg4hw8fruHDhzf4503Xzp07dcABB+iGG25wb3vvvfdUXl6url27qqioSO3atdPgwYP14IMPpvwcs2fPVt++fVVUVKS2bdvq8MMP15IlS2Ied+utt+rkk0/Wfvvtp7y8vEb7vj/77DNdeumlOuSQQ9S2bVu1a9dOQ4YM0WOPPZbw2G+++UYXXXSRhg0bprZt2yovL09//etfEx63adMmXXvttRo+fLg6deqkli1bqm/fvrrxxhu1ffv2mMcuWrRILVu2rNO8Q+No5vUAEFFZWRnz/tVXX62XX35Zixcvjrn9wAMPrPVzXXfddRo3bpxOPPHEhhyib1RWVmqfffbx5Gs/++yzOvXUU9W+fXtdeOGF6t+/v/Ly8vTPf/5T9957ryoqKrRs2TJPxhbv9ttv9/zrr1+/XlOnTnVv27Bhg8rKyjRhwgR16dJFW7Zs0UMPPaRJkyZpxYoVuvLKK93H7t69WyeddJLeeOMN/f73v9fhhx+uLVu26H//93+1ZcuWmK91xx13qEWLFjr66KP1zDPPNNr3+NJLL6miokKTJk3SYYcdpl27dmn+/PkaP368Zs2apT/+8Y/uY7/44gs99NBD6tevn8aMGaOHH3446edcuXKlbr31Vk2aNEmXXHKJWrZsqddff10zZ87UggULtGDBAveF3YgRIzRgwABNmzZN9913X6N8z8iQgbXOPPNM06JFizp9bIsWLcyZZ55Zr68vycyYMSOtx11wwQX1+loNYdiwYeaggw7yehg1Wr58uWnRooXp37+/2bBhQ8L9e/bsMY8//njGn3fGjBmmIX+dt2zZ0mCfq6527txpunTpYv7whz+k9fiBAweasrKymNtuueUW06RJE1NZWVnrx+/evdt9+6CDDjLDhg3LaLx1tWbNGrNnz56E28vLy01xcbHZvn27e1v0GJcuXWokmXnz5iV87ObNm83mzZsTbr/55puNJPP666/H3P7YY4+Zpk2bmpUrV9bjO0G2cOk7x/z000+aMmWKunTpovz8fHXv3l1XXHGFduzY4T4mLy9PW7Zs0X333edeLncu461Zs0ZTpkzRgQceqJYtW6q0tFRHH320Xn/99QYb4/bt2/W73/1O/fr1U5s2bdxLk0899VTCY/fs2aO5c+eqX79+7mXJQYMG6emnn455zE033aQDDjhABQUFKi0t1RlnnKFvvvkm6dd//fXXNWjQIBUVFalLly6aPn26du/eHfOY+Evf6T4vK1asUF5env70pz9p9uzZ2m+//dSyZUsNHjxYb731Vq3PzezZs7VlyxbdfvvtatOmTcL9eXl5Ovnkk2Nuu/fee/XLX/5ShYWFateunU466SR9/PHHtX6tdJ83Z8vgtdde0+GHH67i4mJNnjzZvS/6EnCm3/9dd92lnj17qqCgQAceeKD+9re/6ayzztK+++5b6/iffvppffvtt5o0aVKtj5Wk9u3bq1mz2IuEc+bM0dChQzVo0KBaP75Jk7r9OTTGaMyYMSopKdHKlSvd27du3aqDDjpIvXv3Toje48edbNtiwIAB2rp1q3766aeMx9iiRQu1aNEi6eeUpFWrVsXcfsIJJ6hly5a666670vr8aFws1Dlk+/btOuqoo3T//ffrkksuUUVFhU4//XTddNNNMX/cKysrVVRUpDFjxqiyslKVlZXuJUznl37GjBmqqKjQvHnz1L17dw0fPjytve907NixQz/99JMuvfRSPfnkk3r44Yd1xBFH6OSTT9b9998f89izzjpLv/3tb3XYYYdp/vz5euSRR/SrX/1KK1ascB9z/vnn67LLLtPIkSP19NNP6+qrr9YLL7ygww8/XGvXro35fKtXr9app56q0047TU899ZTGjRuna665Rr/97W9rHHOmz8ttt92mBQsW6NZbb9VDDz2kLVu2aMyYMdq4cWONX+ell15Sx44d01o4JOn666/X2WefrYMOOkhPPPGE5syZow8++ECDBw/W559/XuPHZvK8ff/99zr99NM1ceJEPffcc5oyZUqNnzud7//OO+/Uueeeq4MPPlhPPPGErrzySs2aNSvteVZRUaHS0tKUWz179uzRrl27tGbNGt1+++168cUXddlll7n3r1q1SitWrFDfvn01bdo0dezYUc2aNdNBBx3UoJd48/Ly9MADD6i4uFinnHKKdu7cKUmaMmWKvvrqKz366KNJF83avPzyy+rQoYNKS0sbbKzONtpBBx0Uc3t+fr4OP/xwVVRUNNjXQgPyOqRHavGXvu+44w4jyTz66KMxj7vxxhuNJPPSSy+5t6V76XvXrl1m586dZsSIEeakk06KuU8NdOnb+Rpnn3226d+/v3v7a6+9ZiSZK664IuXHfvzxx0aSmTJlSsztb7/9tpFkpk2b5t42bNgwI8k89dRTMY/9zW9+Y5o0aWK+/vrrtL+3VM/LV199ZSSZvn37ml27drm3v/POO0aSefjhh1N+TmOMKSwsNIMGDarxMY7169eboqIiM2bMmJjbV65caQoKCszEiRPd2+IvfdfleVu0aFHCGIYNGxZzCTjd73/37t2mU6dOZuDAgTGf7+uvvzbNmzc33bp1q/X77927txk9enTK+8877zwjyUgy+fn55vbbb4+5v7Ky0kgyrVu3NgceeKB59NFHzYsvvmjGjRtnJJk777wz5eeuy6XvN954wzRr1sxcdNFF5t577zWSzN13353R53DcddddRpKZM2dOysfUdOk7mffff98UFRUl/J47rrjiCtOkSZOkl8zhLSLqHLJ48WK1aNFC48aNi7n9rLPOkhTO3kzHHXfcoVAopMLCQjVr1kzNmzfXokWL0rqcmq6///3vGjJkiFq2bOl+jXvuuSfmazz//POSpAsuuCDl53n55ZclRb5Hx4ABA9S7d++E77lVq1b61a9+FXPbxIkTtWfPHr322ms1jjmT56W8vFxNmzZ13z/44IMlSV9//XWNXyMTlZWV2rZtW8L3XlZWpqOPPrrGn3emz9tee+2lo48+Ou2x1fb9f/rpp1q9erVOOeWUmI/r2rWrhgwZktbX+O6772qMJqdNm6alS5eqoqJCkydP1oUXXqg//elP7v179uyRFL4S9dxzz2n8+PE69thj9eijjyoUCumqq65K75tN05AhQ3Tttdfq1ltv1fnnn6/TTz9dZ599dsaf5/nnn9cFF1ygcePGxSTR1ceKFSt0/PHHq6ysTHfffXfSx5SWlmrPnj1avXp1g3xNNBwW6hyybt06derUKWE/q7S0VM2aNdO6detq/RyzZ8/W+eefr4EDB+rxxx/XW2+9paVLl2r06NHatm1bg4zziSee0CmnnKIuXbrowQcfVGVlpZYuXarJkyfHHA1Zs2aNmjZtqk6dOqX8XM731Llz54T79t5774TvuWPHjgmPcz5/Tc9Pps9LSUlJzPsFBQWSVOtz2LVrV3311Vc1PsaR6fden49N9ria1Pb9O58/2c8j2W3JbNu2TYWFhSnv79q1qw499FCNGTNGf/7zn3Xuuefq8ssv15o1a2LGeMABB6hbt27ux+Xl5WnUqFH65ptv9OOPP6Y1lnSddtppys/P144dO/Sf//mfGX/8iy++qJNPPlkjR47UQw891CBH7r7++msdddRRatasmRYtWqR27dolfZzzXDfU3wE0HI5n5ZCSkhK9/fbbMsbE/AL/+OOP2rVrl9q3b1/r53jwwQc1fPhw/fnPf465/eeff26wcT744IPab7/9NH/+/JhxRie8SVKHDh20e/durV69OuVC4fyx/f777xOOU3333XcJ3/MPP/yQ8DmcCCF+cYkfc7afF0kaNWqU5s6dq7feeqvWfero7z1esu891cem87w19Bls5+vX9POoTfv27WMSqWozYMAA3XHHHVq+fLk6dOigHj16qLi4OOljjTGS6p5Alszu3bt12mmnaa+99lJBQYHOPvtsvfnmm8rPz0/r41988UWdeOKJGjZsmB5//PG0P64mX3/9tYYPHy5jjF555ZUajyQ6z3U6f0fQuIioc8iIESO0efPmhEImToLWiBEj3NsKCgqSvjLOy8tzox/HBx98kHCGuz7y8vKUn58f88d/9erVCVnfxx13nCQlLI7RnMux8cUsli5dqo8//jjme5bCC2t0xrgk/e1vf1OTJk00dOjQGsec7edFki6++GK1aNFCU6ZMSZp4ZozRP/7xD0nS4MGDVVRUlPC9f/PNN1q8eHHC9x4t0+etofXq1UudOnXSo48+GnP7ypUrEwqNpHLAAQfoyy+/TPtrvvzyy2rSpIm6d+8uSWrWrJnGjh2rjz/+OCY50RijF154QT169GjQRWnGjBl6/fXX9dBDD2n+/Pl6//33046qX3rpJZ144ok64ogj9OSTTybMxbpYuXKlhg8frt27d2vx4sUxVxWSWb58uUpKStK+4oHGQ0SdQ8444wzddtttOvPMM91s1jfeeEPXXXedxowZo2OOOcZ9bN++ffXKK6/omWeeUefOndWqVSv16tVLxx9/vK6++mrNmDFDw4YN06effqqrrrpK++23n3bt2lXnsUUvyscff7yeeOIJTZkyRePGjdOqVat09dVXq3PnzjGZykceeaQmTZqka665Rj/88IOOP/54FRQUaNmyZSouLtbUqVPVq1cvnXvuuZo7d66aNGmi4447TitWrND06dNVVlamiy++OGYcJSUlOv/887Vy5Ur17NlTzz33nO666y6df/756tq1a8rxZ+t5ibfffvvpkUce0b/927+pX79+bsETSfroo4907733yhijk046SW3bttX06dM1bdo0nXHGGZowYYLWrVunWbNmqbCwUDNmzEj5dTJ93hpakyZNNGvWLJ133nkaN26cJk+erA0bNmjWrFnq3LlzWpHs8OHDddVVV2nr1q0xkfG5556r1q1ba8CAAerYsaPWrl2rv//975o/f77+8z//Ux06dHAfe/XVV+v555/X6NGjNXPmTLVu3Vp333233n///YQXEe+++667oG/atEnGGLc62GGHHVbjQrdgwQJdf/31mj59uvsi6Prrr9ell16q4cOH66STTkr5sW+88YZOPPFEderUSdOmTdN7770Xc/+BBx6o1q1bu+87Y1q+fLk77pYtW0qSm7/y448/6qijjtL333+ve+65Rz/++GPMZf599tknIbp+6623NGzYsKxUuEM9eZjIhlokK3iybt068+///u+mc+fOplmzZqZbt27m8ssvjymKYIwx7733nhkyZIgpLi42ktwM1h07dphLL73UdOnSxRQWFppQKGSefPJJc+aZZyZk4iqNrO8tW7YYSeZ3v/tdzO033HCD2XfffU1BQYHp3bu3ueuuu5IW5di9e7e55ZZbTJ8+fUx+fr5p06aNGTx4sHnmmWdiHnPjjTeanj17mubNm5v27dub008/3axatSrmczkFT1555RVz6KGHmoKCAtO5c2czbdo0s3Pnzhq/t3SfFyfr+eabb054LtJ5vhxffvmlmTJlitl///1NQUGBKSoqMgceeKC55JJLzFdffRXz2LvvvtscfPDB7vMzduxY869//SvmMame20yet2RSZX2n+/3feeedZv/99zf5+fmmZ8+e5t577zVjx46Nyf5P5YsvvjB5eXkJpxzuvfdec+SRR5r27dubZs2ambZt25phw4aZBx54IOnn+ec//2nKy8tNq1at3Kz76PnlOPPMM90s8vh/NWVWf/fdd6a0tNQcffTRMQVJ9uzZY0444QTTtm3bhJ9pNOdnl+rfyy+/HPP4mh7rePnll2t8XPzP6YsvvjCS6lRsB9mXZ0z1Zg1QB8uWLVMoFNJtt91W69lbYMOGDerZs6dOPPFE3XnnnbU+/oQTTtCuXbvcEwLIjunTp+v+++/Xl19+mVA0Bt5joUadfPPNN3rvvfd07bXX6oMPPtDnn3+uvffe2+thwSKrV6/Wtddeq6OOOkolJSX6+uuvdcstt+iTTz7Ru+++m1B0I5kPP/xQ/fv315IlS3TYYYc1wqiDZ8OGDerevbvmzp2r0047zevhIAmSyVAnd999t8aNG6fdu3fr6aefZpFGgoKCAq1YsUJTpkzRyJEj9R//8R/q2LGjXnnllbQWaUnq06eP5s2bx9neLPrqq690+eWXa+LEiV4PBSkQUQMAYDEiagAALJYzC/XPP/+s3//+9zr22GPVoUOHhO5H0f77v/9bgwYNUvv27VVQUKCuXbvq1FNP1b/+9a+0vtZPP/2kU089VaWlpcrLy8tKT+f4rkSNId2uRV778ccfddZZZ6l9+/YqLi7W4MGD0y6P6iczZ8607qjMzp07dcABB+iGG26Iuf2dd97RqFGj1KpVK7Vs2VJHHXWU3nzzzYSPr+/v5v/93//pj3/8o/bbbz/l5+erW7duuvzyyxNqBqxfv14TJkzQXnvtpe7duydNXHv77bdVVFSUduncV155RXl5eQ3WvAbZcd111yXUmpDCJZZbtmypb7/9tvEHVU85s1CvW7dOd955p3bs2FHrwrlu3Todd9xxuvvuu/XSSy9p1qxZWrZsmQYOHKhPP/201q919dVX6x//+IduueUWVVZW6qabbmqg7wK12bFjh0aMGKFFixZpzpw5euqpp9SxY0eNHj1ar776qtfDC7zbb79d69evj6lBvXTpUg0dOlTbtm3TAw88oAceeEDbt2/XiBEjEgrG1Pd3c8KECbr55pt17rnn6rnnntM555yj2bNn69/+7d9iHve73/1Oy5Yt04MPPqipU6fq/PPPj2lZumvXLp177rn6/e9/r969e6f1vYdCIVVWVioUCqX1eHgj1UI9YsQIDRgwQNOmTWv8QdWXl2fDMrFnzx63ufqaNWsyOrNqjDEfffSRkWSmT59e62OPOeYY07t377oONS3x51MbQ7Kz0vWxdevWBvtcjttuu81IMkuWLHFv27lzpznwwAPNgAED6vQ5t2zZ0lDDa1TJzkbXR32fh507d5ouXbqYP/zhDzG3jxo1ynTs2DHm82/atMm0b9/eHH744bV+3nR/N51uWP/1X/8Vc/t1112X0D2utLTU/O1vf3PfHzlypLnsssvc96+//nrTq1evhPoDuSZX53Y21dQ58LHHHjNNmzY1K1eubNxB1VPORNR5eXn1ugzoVCuq6YzgihUrlJeXp4ULF+rjjz92v+bTTz+tZs2a6eabb3Yfu3btWjVp0kRt2rSJqVz1H//xH+rQoYNbS9gYo5tuukndunVTYWGhQqFQRmdC9+zZo7lz56pfv34qKipS27ZtNWjQoJgymXv27NFNN92kAw44QAUFBSotLdUZZ5yhb775ptbPv337dl1++eXupcQuXbroggsu0IYNG2Iet++++7oVx/r376/CwkLNmjVLUrhT1sCBA9WmTRsVFxere/fumjx5ctrfY7R//OMf6tWrlwYPHuze1qxZM51++ul65513ar1sNXz4cPXp00evvfaaDj/8cBUXF7tj2bRpky699NKY7/Wiiy7Sli1b3I/v37+/jjzyyITPu3v3bnXp0iWm73cqf/vb3zR48GC1bNlSLVu2VL9+/XTPPffEPObee+/VL3/5SxUWFqpdu3Y66aST0roEm+7PuqbnYfHixRo+fLhKSkpUVFSkrl276v/9v/+nrVu31vi1n376aX377beaNGlSzO1vvvmmhg8fHlM9rFWrVho6dKiWLFmStFZ5tHR+N52vI0ljxoyJuf3444+XJD3++OPubdu3b4/pAd2yZUu3Iczy5ct19dVX6y9/+UtGpTqTXfo+66yz1LJlS33yyScaNWqUWrRooc6dO7tbA2+99ZaOOOIItWjRQj179kzog/3Xv/5VeXl5WrBggX7961+rXbt2atGihU444QS38pijpp/pypUr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qaee0hlnnFHj5dkFCxZo9+7dNf68KisrtW3btoTnvKysTEcffXSNP69Mf9bJnod+/fopPz9f5557ru67776Ey6s1+e6771RaWppw+9SpU/XZZ5/pwgsv1LfffqtVq1bp3//93/X1119LSt5Ksi6/m8cdd5z2339/XXbZZVqwYIE2bNigF154QdOmTVPTpk1jvk6vXr30ySef6PPPP9eaNWt0zz33aP369brkkkt0yy23qF27drr99tvdDlqnnXaa1q9fn/ZzES0vLy/mcnyzZs20//77q3Pnzm7DFUlq166dSktL3eclWqq/Ec7P3JHsZ7p48WIdeOCBGjBgQMztZ511lowx7u953759dcghh2jevHnuYz7++GO98847MVtV6f6uOI466qiYbQYnOe+4446L+X11bne+/yVLluinn37SmWeeGfN19uzZo9GjR2vp0qUJl9p/9atfxbx/8MEHa/v27Rn1FS8tLdWePXtyqoiOrxfqUCikQYMG6bTTTtPLL78sY0ydM/6cPaGFCxfqiy++0IoVK9yF+u2339bmzZu1cOFCde/eXfvtt5+kcIarJHXq1Cnh8yW7Ld6aNWvUtGnTGh/rfI1k/Zz33ntv9/5UH9usWbOYbkNS+A9Pp06dEj422dcYOnSonnzySe3atUtnnHGG9tlnH/Xp00cPP/xwjd9bKiUlJUnH7PTKTdX0vrZx/vDDD/rggw/UvHnzmH+tWrWSMUZr1651Hzt58mR9++237guwhx9+WDt27EhYIOOtWbNGkmrs+Vvfn1cmH5vscT169NDChQtVWlqqCy64QD169FCPHj00Z86clF/XsW3bNhUWFibcPnnyZN1www164IEHtM8++6hr16766KOPdOmll0qSunTpkvAxdfndzM/P1/PPP6+uXbvq2GOP1V577aVx48Zp2rRp2muvvRK+TpMmTbT//vu7rSwvvfRS9e/fXxMnTtSiRYt02WWXaf78+friiy+0Zs0aXXTRRbU+B8kUFxcnPC/5+flJ52p+fr67Vx4t1d+IdH6m69atSzknnPsdkydPVmVlpT755BNJ0rx581RQUKAJEya4j8nkd0VK/J10+minut35/p1e5ePGjUv4WjfeeKOMMQn9yON7yjs5Bsla+qbi/Kwy+RivBab6eqtWrXTAAQfos88+q9PH5+fn64gjjtDChQu1zz77qFOnTurbt6/b+/aVV17RokWL3MQWKTKpkr1yW716da1nmjt06KDdu3dr9erVSX8Ro7/G999/n7BAfPfddzX22y0pKdGuXbu0Zs2amMXaGKPVq1cn1FZOFc2OHTtWY8eO1Y4dO/TWW2/p+uuv18SJE7XvvvvGJIWlo2/fvvrnP/+ZcLtzW58+fWr9HMnG2b59exUVFenee+9N+jHRz9OoUaO09957a968eRo1apTmzZungQMH6sADD6zx6zrP4TfffKOysrKkj4n+ecVL5+flfGw6P+tUP68jjzxSRx55pHbv3q13331Xc+fO1UUXXaSOHTvq1FNPTfn127dvn/CH03HZZZfpoosu0ueff65WrVqpW7duOu+889SiRQsdcsghKT+nlNnv5v7776/Kykp9++23+umnn9SjRw9t3LhRv/3tb2vsN/7KK69o/vz57jx6/vnndeyxx+rQQw+VJF144YU6++yza/362ZLqb8T+++8fc1uyn2lJSUnK+STFzu0JEybokksu0V//+ldde+21euCBB3TiiSdqr732ch+Tye9KfTifZ+7cuRo0aFDSx2SjN7YzhxuyF3m2+TqijrZ27Vr985//TJj4mTjmmGP0v//7v3r88cfdy9stWrTQoEGDNHfuXH333XcxPaEHDRqkwsJCPfTQQzGfZ8mSJUkvf8U77rjjJEl//vOfUz7GuQz24IMPxty+dOlSffzxx25v3GSc++I/9vHHH9eWLVtq/NhkCgoKNGzYMN14442Swp21MnXSSSfpk08+0dtvv+3etmvXLj344IMaOHBgnWuKH3/88fryyy9VUlKiQw89NOFf9Iumpk2batKkSXryySf1+uuv6913300ri/3YY49V06ZNa/x5DR48WEVFRQnP+TfffKPFixfX+JzX52edTNOmTTVw4EDddtttkqSqqqoaH3/AAQfoyy+/THl/QUGB+vTpo27dumnlypWaP3++fvOb36ioqKjGz1uX380uXbqob9++Ki4u1s0336wWLVqkXGh37Nih8847TzNmzHBfWBtjYi6rbt682T2p4YVUfyPSKYo0YsQIffTRRwk/v/vvv195eXk66qij3Nv22msvnXjiibr//vv17LPPavXq1QlzO5PflfoYMmSI2rZtq48++ijp1zn00EPdKDwTBQUFNUbLy5cvV0lJSVZeBGRLTkXUzz//vLZs2aKff/5ZkvTRRx+5TdTHjBmj4uJibdy4USNHjtTEiRP1i1/8QkVFRfrss880Z84c7dixQzNmzKjz1x8xYoR2796tRYsWxRyzOOaYYzRjxgzl5eXF7B/ttddeuvTSS3XNNdfonHPO0fjx47Vq1SrNnDkzrUvfRx55pCZNmqRrrrlGP/zwg44//ngVFBRo2bJlKi4u1tSpU9WrVy+de+65mjt3rpo0aaLjjjtOK1as0PTp01VWVqaLL7445ecfOXKkRo0apcsuu0ybNm3SkCFD9MEHH2jGjBnq379/0qMc8f74xz/qm2++0YgRI7TPPvtow4YNmjNnjpo3b65hw4a5jxs+fLheffXVWv8YTp48WbfddpvGjx+vG264QaWlpbr99tv16aefujkAdXHRRRfp8ccf19ChQ3XxxRfr4IMP1p49e7Ry5Uq99NJL+t3vfqeBAwfGjOPGG2/UxIkTVVRUlFBQI5l9991X06ZN09VXX61t27a5x0g++ugjrV27VrNmzVLbtm01ffp0TZs2TWeccYYmTJigdevWadasWSosLKxxftbnZ+244447tHjxYpWXl6tr167avn27GzlFv8hMZvjw4brqqqu0devWmKNYH374oR5//HEdeuihKigo0Pvvv68bbrhBv/jFL3T11Ve7j8v0d7NZs2YaNmxYzN77TTfdpE6dOqlr16764Ycf9Oijj+rJJ5/UAw88kPQSuyRde+21KiwsjDl+NGrUKM2ZM0f//d//rf33319XXXWVRo8eXevzly3vvvtuzN+IK664Ql26dEmrdezFF1+s+++/X+Xl5brqqqvUrVs3VVRU6Pbbb9f555+fkFcyefJkzZ8/XxdeeKH22WefhJ97pr8rddWyZUvNnTtXZ555pn766SeNGzdOpaWlWrNmjd5//32tWbOmxhe9qfTt21evvPKKnnnmGXXu3FmtWrVSr1693PvfeustDRs2zLqqfzXyKoutLrp165ayEbrTmH379u3mnHPOMb179zYtW7Y0zZo1M/vss485/fTTE9L0U0mW9W1M+DhT+/btjSTz7bffurc7GZrJUv737Nljrr/+elNWVmby8/PNwQcfbJ555pm0C57s3r3b3HLLLaZPnz4mPz/ftGnTxgwePDim8f3u3bvNjTfeaHr27GmaN29u2rdvb04//XSzatWqmM+VrODJtm3bzGWXXWa6detmmjdvbjp37mzOP//8hKM63bp1M+Xl5Qnje/bZZ81xxx1nunTpYvLz801paakZM2aMef3112Med8ghh5hOnTrV+v0aY8zq1avNGWecYdq1a2cKCwvNoEGDzIIFC9L62FQ/O2OM2bx5s7nyyitNr1693Oeyb9++5uKLLzarV69OePzhhx9uJNWYxZ3M/fffbw477DBTWFhoWrZsafr372/mzZsX85i7777bHHzwwe44xo4dmzA/kx3PSvdnnep5qKysNCeddJLp1q2bKSgoMCUlJWbYsGG1HjszxpgvvvjC5OXlmUcffTTm9k8//dQMHTrUtGvXzuTn55v999/fXHnllQlZtZn+birJyYhZs2aZHj16mIKCAtO2bVszevRo89prr6Uc80cffWQKCwvNW2+9lXDf7NmzTdeuXU3r1q3NuHHjYo63JZMq67tFixYJj031/Mf/HjlZ3y+99JKZNGmSadu2rXsq4PPPP0/rcxpjzNdff20mTpxoSkpKTPPmzU2vXr3MzTffHJOJ79i9e7cpKyur8URJur8rkswFF1wQ87FfffWVkWRuvvnmmNud5+/vf/97zO2vvvqqKS8vN+3atTPNmzc3Xbp0MeXl5TGPc34X4n9GzvPn/P03xpj33nvPDBkyxBQXFyfMoS+++CIhSz8X0D0LWffzzz+rXbt2uvXWW2vMiIb9TjjhBO3atSujoj1I7a9//at+/etfa+nSpe5+ObJn+vTpuv/++/Xll1/WWmDHJoHZo4Z3XnvtNXXp0kW/+c1vvB4K6un666/XwoULtXTpUq+HAmRkw4YNuu2223Tdddfl1CItsVCjEZSXl2vFihV1SgyBXfr06aN58+bl1BlUQJK++uorXX755Zo4caLXQ8kYl74BALAYETUAABZjoQYAwGIs1AAAWIyFGgAAi6WVo75nzx599913atWqVW5VcwEAwELGGP3888/ae++9k3aYi5bWQv3dd9+lbDIAAADqZtWqVTV23JPSXKhbtWolSbrvvvvcFo6ItGkLqvFPhovav3aexwOxSNDnhCOXGh5kG3MCyWzdulVnnnmmu77WJK2F2rncXVxcrJYtW9ZvdD7iNAcJrPzwXGBKRAR+TlTj70QEcwI1SWc7OaM6ah07dkza9zSoUvWIDhrmhFS+a6MkqarsAI9HYgfmRAR/J5DM5s2b034sWd8AAFiMhRoA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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Jacobian shape: (361, 212) (3.44% nonzero)\n", - "FWD solves: 13 REV solves: 0\n", - "Total colors vs. total size: 13 vs 212 (93.87% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-12\n", - "Time to compute sparsity: 0.1689 sec\n", - "Time to compute coloring: 0.1029 sec\n", - "Memory to compute coloring: 0.0000 MB\n", - "Coloring created on: 2024-08-14 08:50:56\n", - "\n", - "--- Constraint Report [traj] ---\n", - " --- phase0 ---\n", - " [final] 2.0000e+04 == h [m]\n", - " [final] 1.0000e+00 == aero.mach [None]\n", - " [final] 0.0000e+00 == gam [rad]\n", - " [path] 1.0000e+02 <= h <= 2.0000e+04 [m]\n", - " [path] 1.0000e-01 <= aero.mach <= 1.8000e+00 [None]\n", - "\n", - "--------------------------------------------------------------------------------\n", - "--- Finite differenced component -----------------------------------------------\n", - "-------------------------------------------------------------------------------- \n", - "\n", - "Model viewer data has already been recorded for Driver.\n", - "Model viewer data has already been recorded for Driver.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/driver.py:659: DriverWarning:The following design variable initial conditions are out of their specified bounds:\n", - " traj.phase0.t_duration\n", - " val: [500.]\n", - " lower: 50.0\n", - " upper: 400.0\n", - "Set the initial value of the design variable to a valid value or set the driver option['invalid_desvar_behavior'] to 'ignore'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Full total jacobian for problem 'problem7' was computed 3 times, taking 0.19410145794972777 seconds.\n", - "Total jacobian shape: (361, 212) \n", - "\n", - "\n", - "Jacobian shape: (361, 212) (23.30% nonzero)\n", - "FWD solves: 154 REV solves: 0\n", - "Total colors vs. total size: 154 vs 212 (27.36% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-12\n", - "Time to compute sparsity: 0.1941 sec\n", - "Time to compute coloring: 0.4864 sec\n", - "Memory to compute coloring: 2.9375 MB\n", - "Coloring created on: 2024-08-14 08:51:01\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->h', inds=[(0, 0)]), ('traj.phases.phase0->path_constraint->mach', inds=[(0, 0)])] cannot be impacted by the design variables of the problem.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "Optimization Problem -- Optimization using pyOpt_sparse\n", - "================================================================================\n", - " Objective Function: _objfunc\n", - "\n", - " Solution: \n", - "--------------------------------------------------------------------------------\n", - " Total Time: 9.5988\n", - " User Objective Time : 1.5329\n", - " User Sensitivity Time : 6.0089\n", - " Interface Time : 0.4596\n", - " Opt Solver Time: 1.5974\n", - " Calls to Objective Function : 163\n", - " Calls to Sens Function : 141\n", - "\n", - "\n", - " Objectives\n", - " Index Name Value\n", - " 0 traj.phase0.t 3.235052E+00\n", - "\n", - " Variables (c - continuous, i - integer, d - discrete)\n", - " Index Name Type Lower Bound Value Upper Bound Status\n", - " 0 traj.phase0.t_duration_0 c 5.000000E-01 3.235052E+00 4.000000E+00 \n", - " 1 traj.phase0.states:r_0 c 0.000000E+00 1.808251E+00 1.000000E+03 \n", - " 2 traj.phase0.states:r_1 c 0.000000E+00 4.338695E+00 1.000000E+03 \n", - " 3 traj.phase0.states:r_2 c 0.000000E+00 7.365666E+00 1.000000E+03 \n", - " 4 traj.phase0.states:r_3 c 0.000000E+00 1.015786E+01 1.000000E+03 \n", - " 5 traj.phase0.states:r_4 c 0.000000E+00 1.292803E+01 1.000000E+03 \n", - " 6 traj.phase0.states:r_5 c 0.000000E+00 1.576502E+01 1.000000E+03 \n", - " 7 traj.phase0.states:r_6 c 0.000000E+00 1.862498E+01 1.000000E+03 \n", - " 8 traj.phase0.states:r_7 c 0.000000E+00 2.150890E+01 1.000000E+03 \n", - " 9 traj.phase0.states:r_8 c 0.000000E+00 2.455439E+01 1.000000E+03 \n", - " 10 traj.phase0.states:r_9 c 0.000000E+00 2.786181E+01 1.000000E+03 \n", - " 11 traj.phase0.states:r_10 c 0.000000E+00 3.146365E+01 1.000000E+03 \n", - " 12 traj.phase0.states:r_11 c 0.000000E+00 3.545645E+01 1.000000E+03 \n", - " 13 traj.phase0.states:r_12 c 0.000000E+00 3.978269E+01 1.000000E+03 \n", - " 14 traj.phase0.states:r_13 c 0.000000E+00 4.429074E+01 1.000000E+03 \n", - " 15 traj.phase0.states:r_14 c 0.000000E+00 4.889768E+01 1.000000E+03 \n", - " 16 traj.phase0.states:r_15 c 0.000000E+00 5.358594E+01 1.000000E+03 \n", - " 17 traj.phase0.states:r_16 c 0.000000E+00 5.835875E+01 1.000000E+03 \n", - " 18 traj.phase0.states:r_17 c 0.000000E+00 6.322053E+01 1.000000E+03 \n", - " 19 traj.phase0.states:r_18 c 0.000000E+00 6.817382E+01 1.000000E+03 \n", - " 20 traj.phase0.states:r_19 c 0.000000E+00 7.322328E+01 1.000000E+03 \n", - " 21 traj.phase0.states:r_20 c 0.000000E+00 7.838104E+01 1.000000E+03 \n", - " 22 traj.phase0.states:r_21 c 0.000000E+00 8.366664E+01 1.000000E+03 \n", - " 23 traj.phase0.states:r_22 c 0.000000E+00 8.909541E+01 1.000000E+03 \n", - " 24 traj.phase0.states:r_23 c 0.000000E+00 9.464480E+01 1.000000E+03 \n", - " 25 traj.phase0.states:r_24 c 0.000000E+00 1.001531E+02 1.000000E+03 \n", - " 26 traj.phase0.states:r_25 c 0.000000E+00 1.051991E+02 1.000000E+03 \n", - " 27 traj.phase0.states:r_26 c 0.000000E+00 1.093932E+02 1.000000E+03 \n", - " 28 traj.phase0.states:r_27 c 0.000000E+00 1.128526E+02 1.000000E+03 \n", - " 29 traj.phase0.states:r_28 c 0.000000E+00 1.159909E+02 1.000000E+03 \n", - " 30 traj.phase0.states:r_29 c 0.000000E+00 1.191426E+02 1.000000E+03 \n", - " 31 traj.phase0.states:h_0 c 0.000000E+00 1.061251E+00 2.000000E+02 \n", - " 32 traj.phase0.states:h_1 c 0.000000E+00 1.139163E+00 2.000000E+02 \n", - " 33 traj.phase0.states:h_2 c 0.000000E+00 8.817671E+00 2.000000E+02 \n", - " 34 traj.phase0.states:h_3 c 0.000000E+00 2.664396E+01 2.000000E+02 \n", - " 35 traj.phase0.states:h_4 c 0.000000E+00 4.416992E+01 2.000000E+02 \n", - " 36 traj.phase0.states:h_5 c 0.000000E+00 5.944069E+01 2.000000E+02 \n", - " 37 traj.phase0.states:h_6 c 0.000000E+00 7.289145E+01 2.000000E+02 \n", - " 38 traj.phase0.states:h_7 c 0.000000E+00 8.421306E+01 2.000000E+02 \n", - " 39 traj.phase0.states:h_8 c 0.000000E+00 9.050723E+01 2.000000E+02 \n", - " 40 traj.phase0.states:h_9 c 0.000000E+00 8.886610E+01 2.000000E+02 \n", - " 41 traj.phase0.states:h_10 c 0.000000E+00 8.149176E+01 2.000000E+02 \n", - " 42 traj.phase0.states:h_11 c 0.000000E+00 7.430073E+01 2.000000E+02 \n", - " 43 traj.phase0.states:h_12 c 0.000000E+00 7.108753E+01 2.000000E+02 \n", - " 44 traj.phase0.states:h_13 c 0.000000E+00 7.162002E+01 2.000000E+02 \n", - " 45 traj.phase0.states:h_14 c 0.000000E+00 7.402781E+01 2.000000E+02 \n", - " 46 traj.phase0.states:h_15 c 0.000000E+00 7.691804E+01 2.000000E+02 \n", - " 47 traj.phase0.states:h_16 c 0.000000E+00 7.976963E+01 2.000000E+02 \n", - " 48 traj.phase0.states:h_17 c 0.000000E+00 8.255693E+01 2.000000E+02 \n", - " 49 traj.phase0.states:h_18 c 0.000000E+00 8.533555E+01 2.000000E+02 \n", - " 50 traj.phase0.states:h_19 c 0.000000E+00 8.797341E+01 2.000000E+02 \n", - " 51 traj.phase0.states:h_20 c 0.000000E+00 9.008071E+01 2.000000E+02 \n", - " 52 traj.phase0.states:h_21 c 0.000000E+00 9.124420E+01 2.000000E+02 \n", - " 53 traj.phase0.states:h_22 c 0.000000E+00 9.175806E+01 2.000000E+02 \n", - " 54 traj.phase0.states:h_23 c 0.000000E+00 9.384262E+01 2.000000E+02 \n", - " 55 traj.phase0.states:h_24 c 0.000000E+00 1.021986E+02 2.000000E+02 \n", - " 56 traj.phase0.states:h_25 c 0.000000E+00 1.207230E+02 2.000000E+02 \n", - " 57 traj.phase0.states:h_26 c 0.000000E+00 1.466410E+02 2.000000E+02 \n", - " 58 traj.phase0.states:h_27 c 0.000000E+00 1.725203E+02 2.000000E+02 \n", - " 59 traj.phase0.states:h_28 c 0.000000E+00 1.921019E+02 2.000000E+02 \n", - " 60 traj.phase0.states:h_29 c 0.000000E+00 2.000000E+02 2.000000E+02 u\n", - " 61 traj.phase0.states:v_0 c 1.000000E-01 2.001425E+00 1.000000E+19 \n", - " 62 traj.phase0.states:v_1 c 1.000000E-01 2.688857E+00 1.000000E+19 \n", - " 63 traj.phase0.states:v_2 c 1.000000E-01 3.059756E+00 1.000000E+19 \n", - " 64 traj.phase0.states:v_3 c 1.000000E-01 3.065020E+00 1.000000E+19 \n", - " 65 traj.phase0.states:v_4 c 1.000000E-01 3.014454E+00 1.000000E+19 \n", - " 66 traj.phase0.states:v_5 c 1.000000E-01 2.961233E+00 1.000000E+19 \n", - " 67 traj.phase0.states:v_6 c 1.000000E-01 2.900159E+00 1.000000E+19 \n", - " 68 traj.phase0.states:v_7 c 1.000000E-01 2.859498E+00 1.000000E+19 \n", - " 69 traj.phase0.states:v_8 c 1.000000E-01 2.953381E+00 1.000000E+19 \n", - " 70 traj.phase0.states:v_9 c 1.000000E-01 3.227750E+00 1.000000E+19 \n", - " 71 traj.phase0.states:v_10 c 1.000000E-01 3.595819E+00 1.000000E+19 \n", - " 72 traj.phase0.states:v_11 c 1.000000E-01 3.913933E+00 1.000000E+19 \n", - " 73 traj.phase0.states:v_12 c 1.000000E-01 4.117508E+00 1.000000E+19 \n", - " 74 traj.phase0.states:v_13 c 1.000000E-01 4.235655E+00 1.000000E+19 \n", - " 75 traj.phase0.states:v_14 c 1.000000E-01 4.317820E+00 1.000000E+19 \n", - " 76 traj.phase0.states:v_15 c 1.000000E-01 4.394204E+00 1.000000E+19 \n", - " 77 traj.phase0.states:v_16 c 1.000000E-01 4.474365E+00 1.000000E+19 \n", - " 78 traj.phase0.states:v_17 c 1.000000E-01 4.557915E+00 1.000000E+19 \n", - " 79 traj.phase0.states:v_18 c 1.000000E-01 4.643845E+00 1.000000E+19 \n", - " 80 traj.phase0.states:v_19 c 1.000000E-01 4.735667E+00 1.000000E+19 \n", - " 81 traj.phase0.states:v_20 c 1.000000E-01 4.841499E+00 1.000000E+19 \n", - " 82 traj.phase0.states:v_21 c 1.000000E-01 4.967212E+00 1.000000E+19 \n", - " 83 traj.phase0.states:v_22 c 1.000000E-01 5.100068E+00 1.000000E+19 \n", - " 84 traj.phase0.states:v_23 c 1.000000E-01 5.186247E+00 1.000000E+19 \n", - " 85 traj.phase0.states:v_24 c 1.000000E-01 5.124442E+00 1.000000E+19 \n", - " 86 traj.phase0.states:v_25 c 1.000000E-01 4.823478E+00 1.000000E+19 \n", - " 87 traj.phase0.states:v_26 c 1.000000E-01 4.304558E+00 1.000000E+19 \n", - " 88 traj.phase0.states:v_27 c 1.000000E-01 3.708505E+00 1.000000E+19 \n", - " 89 traj.phase0.states:v_28 c 1.000000E-01 3.190636E+00 1.000000E+19 \n", - " 90 traj.phase0.states:v_29 c 1.000000E-01 2.950864E+00 1.000000E+19 \n", - " 91 traj.phase0.states:gam_0 c -1.500000E+00 1.135304E-02 1.500000E+00 \n", - " 92 traj.phase0.states:gam_1 c -1.500000E+00 3.610657E-02 1.500000E+00 \n", - " 93 traj.phase0.states:gam_2 c -1.500000E+00 4.740268E-01 1.500000E+00 \n", - " 94 traj.phase0.states:gam_3 c -1.500000E+00 5.938153E-01 1.500000E+00 \n", - " 95 traj.phase0.states:gam_4 c -1.500000E+00 5.275294E-01 1.500000E+00 \n", - " 96 traj.phase0.states:gam_5 c -1.500000E+00 4.638502E-01 1.500000E+00 \n", - " 97 traj.phase0.states:gam_6 c -1.500000E+00 4.145580E-01 1.500000E+00 \n", - " 98 traj.phase0.states:gam_7 c -1.500000E+00 3.140321E-01 1.500000E+00 \n", - " 99 traj.phase0.states:gam_8 c -1.500000E+00 7.842057E-02 1.500000E+00 \n", - " 100 traj.phase0.states:gam_9 c -1.500000E+00 -1.558413E-01 1.500000E+00 \n", - " 101 traj.phase0.states:gam_10 c -1.500000E+00 -2.146814E-01 1.500000E+00 \n", - " 102 traj.phase0.states:gam_11 c -1.500000E+00 -1.294795E-01 1.500000E+00 \n", - " 103 traj.phase0.states:gam_12 c -1.500000E+00 -2.388270E-02 1.500000E+00 \n", - " 104 traj.phase0.states:gam_13 c -1.500000E+00 3.897549E-02 1.500000E+00 \n", - " 105 traj.phase0.states:gam_14 c -1.500000E+00 6.016479E-02 1.500000E+00 \n", - " 106 traj.phase0.states:gam_15 c -1.500000E+00 6.124079E-02 1.500000E+00 \n", - " 107 traj.phase0.states:gam_16 c -1.500000E+00 5.816357E-02 1.500000E+00 \n", - " 108 traj.phase0.states:gam_17 c -1.500000E+00 5.665183E-02 1.500000E+00 \n", - " 109 traj.phase0.states:gam_18 c -1.500000E+00 5.501178E-02 1.500000E+00 \n", - " 110 traj.phase0.states:gam_19 c -1.500000E+00 4.807941E-02 1.500000E+00 \n", - " 111 traj.phase0.states:gam_20 c -1.500000E+00 3.220890E-02 1.500000E+00 \n", - " 112 traj.phase0.states:gam_21 c -1.500000E+00 1.262203E-02 1.500000E+00 \n", - " 113 traj.phase0.states:gam_22 c -1.500000E+00 1.285317E-02 1.500000E+00 \n", - " 114 traj.phase0.states:gam_23 c -1.500000E+00 7.683885E-02 1.500000E+00 \n", - " 115 traj.phase0.states:gam_24 c -1.500000E+00 2.409935E-01 1.500000E+00 \n", - " 116 traj.phase0.states:gam_25 c -1.500000E+00 4.652793E-01 1.500000E+00 \n", - " 117 traj.phase0.states:gam_26 c -1.500000E+00 6.245177E-01 1.500000E+00 \n", - " 118 traj.phase0.states:gam_27 c -1.500000E+00 6.313060E-01 1.500000E+00 \n", - " 119 traj.phase0.states:gam_28 c -1.500000E+00 4.419230E-01 1.500000E+00 \n", - " 120 traj.phase0.states:gam_29 c -1.500000E+00 -1.451374E-29 1.500000E+00 \n", - " 121 traj.phase0.states:m_0 c 1.000000E-02 1.894029E+01 1.000000E+02 \n", - " 122 traj.phase0.states:m_1 c 1.000000E-02 1.883985E+01 1.000000E+02 \n", - " 123 traj.phase0.states:m_2 c 1.000000E-02 1.873364E+01 1.000000E+02 \n", - " 124 traj.phase0.states:m_3 c 1.000000E-02 1.863493E+01 1.000000E+02 \n", - " 125 traj.phase0.states:m_4 c 1.000000E-02 1.854905E+01 1.000000E+02 \n", - " 126 traj.phase0.states:m_5 c 1.000000E-02 1.847497E+01 1.000000E+02 \n", - " 127 traj.phase0.states:m_6 c 1.000000E-02 1.841103E+01 1.000000E+02 \n", - " 128 traj.phase0.states:m_7 c 1.000000E-02 1.835553E+01 1.000000E+02 \n", - " 129 traj.phase0.states:m_8 c 1.000000E-02 1.830503E+01 1.000000E+02 \n", - " 130 traj.phase0.states:m_9 c 1.000000E-02 1.825309E+01 1.000000E+02 \n", - " 131 traj.phase0.states:m_10 c 1.000000E-02 1.819247E+01 1.000000E+02 \n", - " 132 traj.phase0.states:m_11 c 1.000000E-02 1.811961E+01 1.000000E+02 \n", - " 133 traj.phase0.states:m_12 c 1.000000E-02 1.803728E+01 1.000000E+02 \n", - " 134 traj.phase0.states:m_13 c 1.000000E-02 1.795056E+01 1.000000E+02 \n", - " 135 traj.phase0.states:m_14 c 1.000000E-02 1.786285E+01 1.000000E+02 \n", - " 136 traj.phase0.states:m_15 c 1.000000E-02 1.777538E+01 1.000000E+02 \n", - " 137 traj.phase0.states:m_16 c 1.000000E-02 1.768832E+01 1.000000E+02 \n", - " 138 traj.phase0.states:m_17 c 1.000000E-02 1.760158E+01 1.000000E+02 \n", - " 139 traj.phase0.states:m_18 c 1.000000E-02 1.751514E+01 1.000000E+02 \n", - " 140 traj.phase0.states:m_19 c 1.000000E-02 1.742897E+01 1.000000E+02 \n", - " 141 traj.phase0.states:m_20 c 1.000000E-02 1.734273E+01 1.000000E+02 \n", - " 142 traj.phase0.states:m_21 c 1.000000E-02 1.725562E+01 1.000000E+02 \n", - " 143 traj.phase0.states:m_22 c 1.000000E-02 1.716679E+01 1.000000E+02 \n", - " 144 traj.phase0.states:m_23 c 1.000000E-02 1.707681E+01 1.000000E+02 \n", - " 145 traj.phase0.states:m_24 c 1.000000E-02 1.699018E+01 1.000000E+02 \n", - " 146 traj.phase0.states:m_25 c 1.000000E-02 1.691721E+01 1.000000E+02 \n", - " 147 traj.phase0.states:m_26 c 1.000000E-02 1.686897E+01 1.000000E+02 \n", - " 148 traj.phase0.states:m_27 c 1.000000E-02 1.684160E+01 1.000000E+02 \n", - " 149 traj.phase0.states:m_28 c 1.000000E-02 1.682683E+01 1.000000E+02 \n", - " 150 traj.phase0.states:m_29 c 1.000000E-02 1.681815E+01 1.000000E+02 \n", - " 151 traj.phase0.controls:alpha_0 c -8.000000E+00 4.973442E+00 8.000000E+00 \n", - " 152 traj.phase0.controls:alpha_1 c -8.000000E+00 3.717277E+00 8.000000E+00 \n", - " 153 traj.phase0.controls:alpha_2 c -8.000000E+00 2.438031E+00 8.000000E+00 \n", - " 154 traj.phase0.controls:alpha_3 c -8.000000E+00 1.746173E+00 8.000000E+00 \n", - " 155 traj.phase0.controls:alpha_4 c -8.000000E+00 2.252173E+00 8.000000E+00 \n", - " 156 traj.phase0.controls:alpha_5 c -8.000000E+00 2.787437E+00 8.000000E+00 \n", - " 157 traj.phase0.controls:alpha_6 c -8.000000E+00 2.183369E+00 8.000000E+00 \n", - " 158 traj.phase0.controls:alpha_7 c -8.000000E+00 1.279424E+00 8.000000E+00 \n", - " 159 traj.phase0.controls:alpha_8 c -8.000000E+00 9.150560E-01 8.000000E+00 \n", - " 160 traj.phase0.controls:alpha_9 c -8.000000E+00 8.887437E-01 8.000000E+00 \n", - " 161 traj.phase0.controls:alpha_10 c -8.000000E+00 9.989669E-01 8.000000E+00 \n", - " 162 traj.phase0.controls:alpha_11 c -8.000000E+00 1.188370E+00 8.000000E+00 \n", - " 163 traj.phase0.controls:alpha_12 c -8.000000E+00 1.399596E+00 8.000000E+00 \n", - " 164 traj.phase0.controls:alpha_13 c -8.000000E+00 1.593930E+00 8.000000E+00 \n", - " 165 traj.phase0.controls:alpha_14 c -8.000000E+00 1.732653E+00 8.000000E+00 \n", - " 166 traj.phase0.controls:alpha_15 c -8.000000E+00 1.677144E+00 8.000000E+00 \n", - " 167 traj.phase0.controls:alpha_16 c -8.000000E+00 1.288778E+00 8.000000E+00 \n", - " 168 traj.phase0.controls:alpha_17 c -8.000000E+00 8.333924E-01 8.000000E+00 \n", - " 169 traj.phase0.controls:alpha_18 c -8.000000E+00 5.768231E-01 8.000000E+00 \n", - " 170 traj.phase0.controls:alpha_19 c -8.000000E+00 6.222670E-01 8.000000E+00 \n", - " 171 traj.phase0.controls:alpha_20 c -8.000000E+00 1.072921E+00 8.000000E+00 \n", - " 172 traj.phase0.controls:alpha_21 c -8.000000E+00 1.616123E+00 8.000000E+00 \n", - " 173 traj.phase0.controls:alpha_22 c -8.000000E+00 1.939212E+00 8.000000E+00 \n", - " 174 traj.phase0.controls:alpha_23 c -8.000000E+00 2.067380E+00 8.000000E+00 \n", - " 175 traj.phase0.controls:alpha_24 c -8.000000E+00 2.025821E+00 8.000000E+00 \n", - " 176 traj.phase0.controls:alpha_25 c -8.000000E+00 1.886097E+00 8.000000E+00 \n", - " 177 traj.phase0.controls:alpha_26 c -8.000000E+00 1.719769E+00 8.000000E+00 \n", - " 178 traj.phase0.controls:alpha_27 c -8.000000E+00 1.556405E+00 8.000000E+00 \n", - " 179 traj.phase0.controls:alpha_28 c -8.000000E+00 1.425576E+00 8.000000E+00 \n", - " 180 traj.phase0.controls:alpha_29 c -8.000000E+00 1.329200E+00 8.000000E+00 \n", - " 181 traj.phase0.controls:alpha_30 c -8.000000E+00 1.269196E+00 8.000000E+00 \n", - " 182 traj.phase0.controls:alpha_31 c -8.000000E+00 1.237649E+00 8.000000E+00 \n", - " 183 traj.phase0.controls:alpha_32 c -8.000000E+00 1.226643E+00 8.000000E+00 \n", - " 184 traj.phase0.controls:alpha_33 c -8.000000E+00 1.229056E+00 8.000000E+00 \n", - " 185 traj.phase0.controls:alpha_34 c -8.000000E+00 1.237764E+00 8.000000E+00 \n", - " 186 traj.phase0.controls:alpha_35 c -8.000000E+00 1.248216E+00 8.000000E+00 \n", - " 187 traj.phase0.controls:alpha_36 c -8.000000E+00 1.255861E+00 8.000000E+00 \n", - " 188 traj.phase0.controls:alpha_37 c -8.000000E+00 1.258037E+00 8.000000E+00 \n", - " 189 traj.phase0.controls:alpha_38 c -8.000000E+00 1.252083E+00 8.000000E+00 \n", - " 190 traj.phase0.controls:alpha_39 c -8.000000E+00 1.237697E+00 8.000000E+00 \n", - " 191 traj.phase0.controls:alpha_40 c -8.000000E+00 1.214581E+00 8.000000E+00 \n", - " 192 traj.phase0.controls:alpha_41 c -8.000000E+00 1.187259E+00 8.000000E+00 \n", - " 193 traj.phase0.controls:alpha_42 c -8.000000E+00 1.160259E+00 8.000000E+00 \n", - " 194 traj.phase0.controls:alpha_43 c -8.000000E+00 1.147529E+00 8.000000E+00 \n", - " 195 traj.phase0.controls:alpha_44 c -8.000000E+00 1.163018E+00 8.000000E+00 \n", - " 196 traj.phase0.controls:alpha_45 c -8.000000E+00 1.227572E+00 8.000000E+00 \n", - " 197 traj.phase0.controls:alpha_46 c -8.000000E+00 1.362033E+00 8.000000E+00 \n", - " 198 traj.phase0.controls:alpha_47 c -8.000000E+00 1.581976E+00 8.000000E+00 \n", - " 199 traj.phase0.controls:alpha_48 c -8.000000E+00 1.902974E+00 8.000000E+00 \n", - " 200 traj.phase0.controls:alpha_49 c -8.000000E+00 2.303857E+00 8.000000E+00 \n", - " 201 traj.phase0.controls:alpha_50 c -8.000000E+00 2.763451E+00 8.000000E+00 \n", - " 202 traj.phase0.controls:alpha_51 c -8.000000E+00 3.222276E+00 8.000000E+00 \n", - " 203 traj.phase0.controls:alpha_52 c -8.000000E+00 3.620850E+00 8.000000E+00 \n", - " 204 traj.phase0.controls:alpha_53 c -8.000000E+00 3.885758E+00 8.000000E+00 \n", - " 205 traj.phase0.controls:alpha_54 c -8.000000E+00 3.943583E+00 8.000000E+00 \n", - " 206 traj.phase0.controls:alpha_55 c -8.000000E+00 3.728639E+00 8.000000E+00 \n", - " 207 traj.phase0.controls:alpha_56 c -8.000000E+00 3.175237E+00 8.000000E+00 \n", - " 208 traj.phase0.controls:alpha_57 c -8.000000E+00 1.953374E+00 8.000000E+00 \n", - " 209 traj.phase0.controls:alpha_58 c -8.000000E+00 -2.669510E-01 8.000000E+00 \n", - " 210 traj.phase0.controls:alpha_59 c -8.000000E+00 -3.185529E+00 8.000000E+00 \n", - " 211 traj.phase0.controls:alpha_60 c -8.000000E+00 -6.502149E+00 8.000000E+00 \n", - "\n", - " Constraints (i - inequality, e - equality)\n", - " Index Name Type Lower Value Upper Status Lagrange Multiplier (N/A)\n", - " 0 traj.phases.phase0->final_boundary_constraint->h e 2.000000E+01 2.000000E+01 2.000000E+01 9.00000E+100\n", - " 1 traj.phases.phase0->final_boundary_constraint->mach e 1.000000E+00 1.000000E+00 1.000000E+00 9.00000E+100\n", - " 2 traj.phases.phase0->final_boundary_constraint->gam e 0.000000E+00 -1.451374E-29 0.000000E+00 9.00000E+100\n", - " 3 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.958707E-11 0.000000E+00 9.00000E+100\n", - " 4 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.170407E-10 0.000000E+00 9.00000E+100\n", - " 5 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.674016E-09 0.000000E+00 9.00000E+100\n", - " 6 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.483173E-09 0.000000E+00 9.00000E+100\n", - " 7 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.275880E-09 0.000000E+00 9.00000E+100\n", - " 8 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.891534E-10 0.000000E+00 9.00000E+100\n", - " 9 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 8.876132E-12 0.000000E+00 9.00000E+100\n", - " 10 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.192278E-09 0.000000E+00 9.00000E+100\n", - " 11 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.526827E-10 0.000000E+00 9.00000E+100\n", - " 12 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.403548E-09 0.000000E+00 9.00000E+100\n", - " 13 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.443211E-09 0.000000E+00 9.00000E+100\n", - " 14 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 7.460408E-09 0.000000E+00 9.00000E+100\n", - " 15 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.201537E-08 0.000000E+00 9.00000E+100\n", - " 16 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.453864E-08 0.000000E+00 9.00000E+100\n", - " 17 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.440186E-08 0.000000E+00 9.00000E+100\n", - " 18 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.118443E-08 0.000000E+00 9.00000E+100\n", - " 19 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.437229E-09 0.000000E+00 9.00000E+100\n", - " 20 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.282646E-09 0.000000E+00 9.00000E+100\n", - " 21 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 7.136694E-10 0.000000E+00 9.00000E+100\n", - " 22 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.266929E-10 0.000000E+00 9.00000E+100\n", - " 23 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 9.698335E-10 0.000000E+00 9.00000E+100\n", - " 24 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.686266E-09 0.000000E+00 9.00000E+100\n", - " 25 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.947525E-09 0.000000E+00 9.00000E+100\n", - " 26 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.968087E-09 0.000000E+00 9.00000E+100\n", - " 27 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.196982E-09 0.000000E+00 9.00000E+100\n", - " 28 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.003098E-09 0.000000E+00 9.00000E+100\n", - " 29 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.348922E-10 0.000000E+00 9.00000E+100\n", - " 30 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 9.573264E-11 0.000000E+00 9.00000E+100\n", - " 31 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.618833E-11 0.000000E+00 9.00000E+100\n", - " 32 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.939323E-12 0.000000E+00 9.00000E+100\n", - " 33 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.958776E-10 0.000000E+00 9.00000E+100\n", - " 34 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.228415E-09 0.000000E+00 9.00000E+100\n", - " 35 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 8.687241E-09 0.000000E+00 9.00000E+100\n", - " 36 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.213941E-08 0.000000E+00 9.00000E+100\n", - " 37 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 7.935680E-09 0.000000E+00 9.00000E+100\n", - " 38 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.183885E-10 0.000000E+00 9.00000E+100\n", - " 39 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 3.992336E-10 0.000000E+00 9.00000E+100\n", - " 40 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.166953E-08 0.000000E+00 9.00000E+100\n", - " 41 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.364229E-08 0.000000E+00 9.00000E+100\n", - " 42 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.509530E-08 0.000000E+00 9.00000E+100\n", - " 43 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.450711E-09 0.000000E+00 9.00000E+100\n", - " 44 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -6.244512E-09 0.000000E+00 9.00000E+100\n", - " 45 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.853536E-09 0.000000E+00 9.00000E+100\n", - " 46 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.659682E-08 0.000000E+00 9.00000E+100\n", - " 47 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.864625E-08 0.000000E+00 9.00000E+100\n", - " 48 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.327172E-08 0.000000E+00 9.00000E+100\n", - " 49 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -3.999166E-09 0.000000E+00 9.00000E+100\n", - " 50 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -2.595654E-09 0.000000E+00 9.00000E+100\n", - " 51 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.430617E-10 0.000000E+00 9.00000E+100\n", - " 52 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.639721E-10 0.000000E+00 9.00000E+100\n", - " 53 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.738167E-09 0.000000E+00 9.00000E+100\n", - " 54 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.035033E-09 0.000000E+00 9.00000E+100\n", - " 55 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.948604E-09 0.000000E+00 9.00000E+100\n", - " 56 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.150335E-09 0.000000E+00 9.00000E+100\n", - " 57 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.498266E-09 0.000000E+00 9.00000E+100\n", - " 58 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.885731E-09 0.000000E+00 9.00000E+100\n", - " 59 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.910319E-09 0.000000E+00 9.00000E+100\n", - " 60 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.608884E-09 0.000000E+00 9.00000E+100\n", - " 61 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.446982E-11 0.000000E+00 9.00000E+100\n", - " 62 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.177595E-11 0.000000E+00 9.00000E+100\n", - " 63 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 8.669661E-11 0.000000E+00 9.00000E+100\n", - " 64 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.425457E-10 0.000000E+00 9.00000E+100\n", - " 65 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.495271E-09 0.000000E+00 9.00000E+100\n", - " 66 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.890717E-09 0.000000E+00 9.00000E+100\n", - " 67 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.002595E-10 0.000000E+00 9.00000E+100\n", - " 68 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.233540E-11 0.000000E+00 9.00000E+100\n", - " 69 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.333111E-10 0.000000E+00 9.00000E+100\n", - " 70 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.586384E-10 0.000000E+00 9.00000E+100\n", - " 71 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.328661E-09 0.000000E+00 9.00000E+100\n", - " 72 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.244431E-09 0.000000E+00 9.00000E+100\n", - " 73 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.417564E-09 0.000000E+00 9.00000E+100\n", - " 74 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.313047E-08 0.000000E+00 9.00000E+100\n", - " 75 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.508276E-08 0.000000E+00 9.00000E+100\n", - " 76 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.290573E-08 0.000000E+00 9.00000E+100\n", - " 77 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.485751E-08 0.000000E+00 9.00000E+100\n", - " 78 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 8.460491E-09 0.000000E+00 9.00000E+100\n", - " 79 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.722336E-09 0.000000E+00 9.00000E+100\n", - " 80 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.961761E-09 0.000000E+00 9.00000E+100\n", - " 81 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.137116E-09 0.000000E+00 9.00000E+100\n", - " 82 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 6.134942E-10 0.000000E+00 9.00000E+100\n", - " 83 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.575649E-09 0.000000E+00 9.00000E+100\n", - " 84 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.877308E-09 0.000000E+00 9.00000E+100\n", - " 85 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.406236E-09 0.000000E+00 9.00000E+100\n", - " 86 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.197213E-09 0.000000E+00 9.00000E+100\n", - " 87 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.222827E-09 0.000000E+00 9.00000E+100\n", - " 88 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.184054E-10 0.000000E+00 9.00000E+100\n", - " 89 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.035708E-09 0.000000E+00 9.00000E+100\n", - " 90 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.411854E-10 0.000000E+00 9.00000E+100\n", - " 91 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.713817E-11 0.000000E+00 9.00000E+100\n", - " 92 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.013545E-11 0.000000E+00 9.00000E+100\n", - " 93 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 1.906407E-12 0.000000E+00 9.00000E+100\n", - " 94 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.544515E-10 0.000000E+00 9.00000E+100\n", - " 95 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.153722E-09 0.000000E+00 9.00000E+100\n", - " 96 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.294921E-09 0.000000E+00 9.00000E+100\n", - " 97 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.283903E-10 0.000000E+00 9.00000E+100\n", - " 98 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.186242E-10 0.000000E+00 9.00000E+100\n", - " 99 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.407349E-10 0.000000E+00 9.00000E+100\n", - " 100 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.355619E-11 0.000000E+00 9.00000E+100\n", - " 101 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.499061E-09 0.000000E+00 9.00000E+100\n", - " 102 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.860703E-10 0.000000E+00 9.00000E+100\n", - " 103 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.072973E-10 0.000000E+00 9.00000E+100\n", - " 104 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.310707E-09 0.000000E+00 9.00000E+100\n", - " 105 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.628688E-09 0.000000E+00 9.00000E+100\n", - " 106 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -8.892788E-09 0.000000E+00 9.00000E+100\n", - " 107 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -6.771570E-09 0.000000E+00 9.00000E+100\n", - " 108 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.515379E-09 0.000000E+00 9.00000E+100\n", - " 109 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.791748E-10 0.000000E+00 9.00000E+100\n", - " 110 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.434788E-10 0.000000E+00 9.00000E+100\n", - " 111 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.131372E-10 0.000000E+00 9.00000E+100\n", - " 112 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 3.961665E-11 0.000000E+00 9.00000E+100\n", - " 113 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.772205E-10 0.000000E+00 9.00000E+100\n", - " 114 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -6.956804E-10 0.000000E+00 9.00000E+100\n", - " 115 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.027190E-09 0.000000E+00 9.00000E+100\n", - " 116 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.398093E-10 0.000000E+00 9.00000E+100\n", - " 117 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.663799E-10 0.000000E+00 9.00000E+100\n", - " 118 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.439717E-10 0.000000E+00 9.00000E+100\n", - " 119 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.077334E-10 0.000000E+00 9.00000E+100\n", - " 120 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -5.873622E-11 0.000000E+00 9.00000E+100\n", - " 121 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.589182E-12 0.000000E+00 9.00000E+100\n", - " 122 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 5.678141E-13 0.000000E+00 9.00000E+100\n", - " 123 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.237633E-13 0.000000E+00 9.00000E+100\n", - " 124 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -6.531401E-13 0.000000E+00 9.00000E+100\n", - " 125 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.908550E-12 0.000000E+00 9.00000E+100\n", - " 126 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.938991E-12 0.000000E+00 9.00000E+100\n", - " 127 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.792036E-12 0.000000E+00 9.00000E+100\n", - " 128 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -7.633888E-13 0.000000E+00 9.00000E+100\n", - " 129 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 6.956028E-13 0.000000E+00 9.00000E+100\n", - " 130 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.016891E-12 0.000000E+00 9.00000E+100\n", - " 131 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.607554E-11 0.000000E+00 9.00000E+100\n", - " 132 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.976867E-12 0.000000E+00 9.00000E+100\n", - " 133 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.267879E-12 0.000000E+00 9.00000E+100\n", - " 134 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.066662E-12 0.000000E+00 9.00000E+100\n", - " 135 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -5.284450E-12 0.000000E+00 9.00000E+100\n", - " 136 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.832813E-12 0.000000E+00 9.00000E+100\n", - " 137 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.096152E-11 0.000000E+00 9.00000E+100\n", - " 138 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 8.725551E-13 0.000000E+00 9.00000E+100\n", - " 139 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.098462E-11 0.000000E+00 9.00000E+100\n", - " 140 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.368235E-12 0.000000E+00 9.00000E+100\n", - " 141 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.644216E-14 0.000000E+00 9.00000E+100\n", - " 142 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.473190E-13 0.000000E+00 9.00000E+100\n", - " 143 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.098858E-14 0.000000E+00 9.00000E+100\n", - " 144 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.390152E-12 0.000000E+00 9.00000E+100\n", - " 145 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.100810E-12 0.000000E+00 9.00000E+100\n", - " 146 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 2.490005E-13 0.000000E+00 9.00000E+100\n", - " 147 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.669389E-14 0.000000E+00 9.00000E+100\n", - " 148 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -1.282778E-11 0.000000E+00 9.00000E+100\n", - " 149 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -6.080867E-14 0.000000E+00 9.00000E+100\n", - " 150 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.161094E-13 0.000000E+00 9.00000E+100\n", - " 151 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.432280E-14 0.000000E+00 9.00000E+100\n", - " 152 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.998350E-15 0.000000E+00 9.00000E+100\n", - " 153 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.346861E-12 0.000000E+00 9.00000E+100\n", - " 154 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -8.979073E-13 0.000000E+00 9.00000E+100\n", - " 155 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.795815E-12 0.000000E+00 9.00000E+100\n", - " 156 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 157 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -5.611920E-13 0.000000E+00 9.00000E+100\n", - " 158 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.122384E-13 0.000000E+00 9.00000E+100\n", - " 159 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.010146E-12 0.000000E+00 9.00000E+100\n", - " 160 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 161 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.683576E-13 0.000000E+00 9.00000E+100\n", - " 162 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.122384E-12 0.000000E+00 9.00000E+100\n", - " 163 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.122384E-13 0.000000E+00 9.00000E+100\n", - " 164 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.964172E-12 0.000000E+00 9.00000E+100\n", - " 165 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", - " 166 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", - " 167 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.332831E-12 0.000000E+00 9.00000E+100\n", - " 168 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.331954E-12 0.000000E+00 9.00000E+100\n", - " 169 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", - " 170 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.664155E-13 0.000000E+00 9.00000E+100\n", - " 171 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.332078E-13 0.000000E+00 9.00000E+100\n", - " 172 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.669546E-12 0.000000E+00 9.00000E+100\n", - " 173 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.669546E-12 0.000000E+00 9.00000E+100\n", - " 174 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.226854E-13 0.000000E+00 9.00000E+100\n", - " 175 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.346861E-12 0.000000E+00 9.00000E+100\n", - " 176 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 177 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 2.469245E-12 0.000000E+00 9.00000E+100\n", - " 178 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734304E-13 0.000000E+00 9.00000E+100\n", - " 179 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.992232E-12 0.000000E+00 9.00000E+100\n", - " 180 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.346861E-12 0.000000E+00 9.00000E+100\n", - " 181 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 182 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.000000E-03 1.000000E+00 l 9.00000E+100\n", - " 183 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", - " 184 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.306255E-03 1.000000E+00 9.00000E+100\n", - " 185 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.306255E-03 1.000000E+00 9.00000E+100\n", - " 186 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", - " 187 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.695816E-03 1.000000E+00 9.00000E+100\n", - " 188 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.695816E-03 1.000000E+00 9.00000E+100\n", - " 189 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.613297E-02 1.000000E+00 9.00000E+100\n", - " 190 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.408835E-02 1.000000E+00 9.00000E+100\n", - " 191 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.408835E-02 1.000000E+00 9.00000E+100\n", - " 192 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.650905E-02 1.000000E+00 9.00000E+100\n", - " 193 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332198E-01 1.000000E+00 9.00000E+100\n", - " 194 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332198E-01 1.000000E+00 9.00000E+100\n", - " 195 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.783657E-01 1.000000E+00 9.00000E+100\n", - " 196 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208496E-01 1.000000E+00 9.00000E+100\n", - " 197 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208496E-01 1.000000E+00 9.00000E+100\n", - " 198 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.603248E-01 1.000000E+00 9.00000E+100\n", - " 199 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972034E-01 1.000000E+00 9.00000E+100\n", - " 200 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972034E-01 1.000000E+00 9.00000E+100\n", - " 201 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.318864E-01 1.000000E+00 9.00000E+100\n", - " 202 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644573E-01 1.000000E+00 9.00000E+100\n", - " 203 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644573E-01 1.000000E+00 9.00000E+100\n", - " 204 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.946811E-01 1.000000E+00 9.00000E+100\n", - " 205 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210653E-01 1.000000E+00 9.00000E+100\n", - " 206 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210653E-01 1.000000E+00 9.00000E+100\n", - " 207 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.411944E-01 1.000000E+00 9.00000E+100\n", - " 208 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.525361E-01 1.000000E+00 9.00000E+100\n", - " 209 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.525361E-01 1.000000E+00 9.00000E+100\n", - " 210 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.533691E-01 1.000000E+00 9.00000E+100\n", - " 211 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.443305E-01 1.000000E+00 9.00000E+100\n", - " 212 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.443305E-01 1.000000E+00 9.00000E+100\n", - " 213 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.276810E-01 1.000000E+00 9.00000E+100\n", - " 214 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.074588E-01 1.000000E+00 9.00000E+100\n", - " 215 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.074588E-01 1.000000E+00 9.00000E+100\n", - " 216 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.877243E-01 1.000000E+00 9.00000E+100\n", - " 217 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.715036E-01 1.000000E+00 9.00000E+100\n", - " 218 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.715036E-01 1.000000E+00 9.00000E+100\n", - " 219 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.607274E-01 1.000000E+00 9.00000E+100\n", - " 220 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554376E-01 1.000000E+00 9.00000E+100\n", - " 221 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554376E-01 1.000000E+00 9.00000E+100\n", - " 222 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.549938E-01 1.000000E+00 9.00000E+100\n", - " 223 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581001E-01 1.000000E+00 9.00000E+100\n", - " 224 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581001E-01 1.000000E+00 9.00000E+100\n", - " 225 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.634821E-01 1.000000E+00 9.00000E+100\n", - " 226 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701391E-01 1.000000E+00 9.00000E+100\n", - " 227 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701391E-01 1.000000E+00 9.00000E+100\n", - " 228 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.773019E-01 1.000000E+00 9.00000E+100\n", - " 229 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.845902E-01 1.000000E+00 9.00000E+100\n", - " 230 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.845902E-01 1.000000E+00 9.00000E+100\n", - " 231 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.917787E-01 1.000000E+00 9.00000E+100\n", - " 232 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988481E-01 1.000000E+00 9.00000E+100\n", - " 233 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988481E-01 1.000000E+00 9.00000E+100\n", - " 234 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.058300E-01 1.000000E+00 9.00000E+100\n", - " 235 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.127846E-01 1.000000E+00 9.00000E+100\n", - " 236 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.127846E-01 1.000000E+00 9.00000E+100\n", - " 237 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.197496E-01 1.000000E+00 9.00000E+100\n", - " 238 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.266777E-01 1.000000E+00 9.00000E+100\n", - " 239 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.266777E-01 1.000000E+00 9.00000E+100\n", - " 240 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.334593E-01 1.000000E+00 9.00000E+100\n", - " 241 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398670E-01 1.000000E+00 9.00000E+100\n", - " 242 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398670E-01 1.000000E+00 9.00000E+100\n", - " 243 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.456185E-01 1.000000E+00 9.00000E+100\n", - " 244 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504036E-01 1.000000E+00 9.00000E+100\n", - " 245 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504036E-01 1.000000E+00 9.00000E+100\n", - " 246 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.539405E-01 1.000000E+00 9.00000E+100\n", - " 247 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562210E-01 1.000000E+00 9.00000E+100\n", - " 248 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562210E-01 1.000000E+00 9.00000E+100\n", - " 249 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.574864E-01 1.000000E+00 9.00000E+100\n", - " 250 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.587903E-01 1.000000E+00 9.00000E+100\n", - " 251 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.587903E-01 1.000000E+00 9.00000E+100\n", - " 252 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.617603E-01 1.000000E+00 9.00000E+100\n", - " 253 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692131E-01 1.000000E+00 9.00000E+100\n", - " 254 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692131E-01 1.000000E+00 9.00000E+100\n", - " 255 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.845433E-01 1.000000E+00 9.00000E+100\n", - " 256 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109930E-01 1.000000E+00 9.00000E+100\n", - " 257 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109930E-01 1.000000E+00 9.00000E+100\n", - " 258 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.509611E-01 1.000000E+00 9.00000E+100\n", - " 259 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036149E-01 1.000000E+00 9.00000E+100\n", - " 260 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036149E-01 1.000000E+00 9.00000E+100\n", - " 261 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.660326E-01 1.000000E+00 9.00000E+100\n", - " 262 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332050E-01 1.000000E+00 9.00000E+100\n", - " 263 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332050E-01 1.000000E+00 9.00000E+100\n", - " 264 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.001149E-01 1.000000E+00 9.00000E+100\n", - " 265 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626017E-01 1.000000E+00 9.00000E+100\n", - " 266 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626017E-01 1.000000E+00 9.00000E+100\n", - " 267 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.171104E-01 1.000000E+00 9.00000E+100\n", - " 268 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605096E-01 1.000000E+00 9.00000E+100\n", - " 269 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605096E-01 1.000000E+00 9.00000E+100\n", - " 270 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.894516E-01 1.000000E+00 9.00000E+100\n", - " 271 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.000084E-01 1.800000E+00 9.00000E+100\n", - " 272 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.928085E-01 1.800000E+00 9.00000E+100\n", - " 273 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888633E-01 1.800000E+00 9.00000E+100\n", - " 274 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888633E-01 1.800000E+00 9.00000E+100\n", - " 275 traj.phases.phase0->path_constraint->mach i 1.000000E-01 6.907438E-01 1.800000E+00 9.00000E+100\n", - " 276 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911907E-01 1.800000E+00 9.00000E+100\n", - " 277 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911907E-01 1.800000E+00 9.00000E+100\n", - " 278 traj.phases.phase0->path_constraint->mach i 1.000000E-01 8.675478E-01 1.800000E+00 9.00000E+100\n", - " 279 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082474E-01 1.800000E+00 9.00000E+100\n", - " 280 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082474E-01 1.800000E+00 9.00000E+100\n", - " 281 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.235932E-01 1.800000E+00 9.00000E+100\n", - " 282 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290686E-01 1.800000E+00 9.00000E+100\n", - " 283 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290686E-01 1.800000E+00 9.00000E+100\n", - " 284 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.318678E-01 1.800000E+00 9.00000E+100\n", - " 285 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335865E-01 1.800000E+00 9.00000E+100\n", - " 286 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335865E-01 1.800000E+00 9.00000E+100\n", - " 287 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.348422E-01 1.800000E+00 9.00000E+100\n", - " 288 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351679E-01 1.800000E+00 9.00000E+100\n", - " 289 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351679E-01 1.800000E+00 9.00000E+100\n", - " 290 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.342128E-01 1.800000E+00 9.00000E+100\n", - " 291 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323614E-01 1.800000E+00 9.00000E+100\n", - " 292 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323614E-01 1.800000E+00 9.00000E+100\n", - " 293 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.308133E-01 1.800000E+00 9.00000E+100\n", - " 294 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336683E-01 1.800000E+00 9.00000E+100\n", - " 295 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336683E-01 1.800000E+00 9.00000E+100\n", - " 296 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.465991E-01 1.800000E+00 9.00000E+100\n", - " 297 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.728871E-01 1.800000E+00 9.00000E+100\n", - " 298 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.728871E-01 1.800000E+00 9.00000E+100\n", - " 299 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.012084E+00 1.800000E+00 9.00000E+100\n", - " 300 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060804E+00 1.800000E+00 9.00000E+100\n", - " 301 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060804E+00 1.800000E+00 9.00000E+100\n", - " 302 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.115233E+00 1.800000E+00 9.00000E+100\n", - " 303 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169664E+00 1.800000E+00 9.00000E+100\n", - " 304 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169664E+00 1.800000E+00 9.00000E+100\n", - " 305 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.218961E+00 1.800000E+00 9.00000E+100\n", - " 306 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260676E+00 1.800000E+00 9.00000E+100\n", - " 307 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260676E+00 1.800000E+00 9.00000E+100\n", - " 308 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.294084E+00 1.800000E+00 9.00000E+100\n", - " 309 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320511E+00 1.800000E+00 9.00000E+100\n", - " 310 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320511E+00 1.800000E+00 9.00000E+100\n", - " 311 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.341660E+00 1.800000E+00 9.00000E+100\n", - " 312 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359374E+00 1.800000E+00 9.00000E+100\n", - " 313 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359374E+00 1.800000E+00 9.00000E+100\n", - " 314 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.375222E+00 1.800000E+00 9.00000E+100\n", - " 315 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390254E+00 1.800000E+00 9.00000E+100\n", - " 316 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390254E+00 1.800000E+00 9.00000E+100\n", - " 317 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.405215E+00 1.800000E+00 9.00000E+100\n", - " 318 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420418E+00 1.800000E+00 9.00000E+100\n", - " 319 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420418E+00 1.800000E+00 9.00000E+100\n", - " 320 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.436019E+00 1.800000E+00 9.00000E+100\n", - " 321 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451991E+00 1.800000E+00 9.00000E+100\n", - " 322 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451991E+00 1.800000E+00 9.00000E+100\n", - " 323 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.468272E+00 1.800000E+00 9.00000E+100\n", - " 324 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484806E+00 1.800000E+00 9.00000E+100\n", - " 325 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484806E+00 1.800000E+00 9.00000E+100\n", - " 326 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.501575E+00 1.800000E+00 9.00000E+100\n", - " 327 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518659E+00 1.800000E+00 9.00000E+100\n", - " 328 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518659E+00 1.800000E+00 9.00000E+100\n", - " 329 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.536200E+00 1.800000E+00 9.00000E+100\n", - " 330 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554426E+00 1.800000E+00 9.00000E+100\n", - " 331 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554426E+00 1.800000E+00 9.00000E+100\n", - " 332 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.573592E+00 1.800000E+00 9.00000E+100\n", - " 333 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593898E+00 1.800000E+00 9.00000E+100\n", - " 334 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593898E+00 1.800000E+00 9.00000E+100\n", - " 335 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.615451E+00 1.800000E+00 9.00000E+100\n", - " 336 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637985E+00 1.800000E+00 9.00000E+100\n", - " 337 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637985E+00 1.800000E+00 9.00000E+100\n", - " 338 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.660947E+00 1.800000E+00 9.00000E+100\n", - " 339 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683024E+00 1.800000E+00 9.00000E+100\n", - " 340 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683024E+00 1.800000E+00 9.00000E+100\n", - " 341 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.702449E+00 1.800000E+00 9.00000E+100\n", - " 342 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716559E+00 1.800000E+00 9.00000E+100\n", - " 343 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716559E+00 1.800000E+00 9.00000E+100\n", - " 344 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.722341E+00 1.800000E+00 9.00000E+100\n", - " 345 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716750E+00 1.800000E+00 9.00000E+100\n", - " 346 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716750E+00 1.800000E+00 9.00000E+100\n", - " 347 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.696698E+00 1.800000E+00 9.00000E+100\n", - " 348 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634726E+00 1.800000E+00 9.00000E+100\n", - " 349 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634726E+00 1.800000E+00 9.00000E+100\n", - " 350 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.553462E+00 1.800000E+00 9.00000E+100\n", - " 351 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458859E+00 1.800000E+00 9.00000E+100\n", - " 352 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458859E+00 1.800000E+00 9.00000E+100\n", - " 353 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.357866E+00 1.800000E+00 9.00000E+100\n", - " 354 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256851E+00 1.800000E+00 9.00000E+100\n", - " 355 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256851E+00 1.800000E+00 9.00000E+100\n", - " 356 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.162030E+00 1.800000E+00 9.00000E+100\n", - " 357 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081340E+00 1.800000E+00 9.00000E+100\n", - " 358 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081340E+00 1.800000E+00 9.00000E+100\n", - " 359 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.024108E+00 1.800000E+00 9.00000E+100\n", - "\n", - "\n", - " Exit Status\n", - " Inform Description\n", - " 0 Solve Succeeded\n", - "--------------------------------------------------------------------------------\n", - "\n", - "coloring_files_fd\n" - ] - }, - { - "data": { - "image/png": "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KW3bthURkZo1a8pZZ50lq1evDklOVErJrFmzpF27dlXaKN19992yZMkSefnll2Xq1KmyYsWKhKPqOXPmyIgRI+Tkk0+W6dOnR5yLFbFx40YZMGCAHD16VBYsWBDSqxDNunXrpGHDhgn3eKD6EFGnkEsuuUSefPJJufTSS/3ZrB988IE8+OCDMnToUDn11FP9Zbt27SqLFi2Sd955R4qKiqROnTpy3HHHybBhw+S+++6Tu+++W/r37y/ffPON3HvvvdKmTRs5cuRIhesW3CgPGzZM3nrrLRk7dqyMHDlSNm3aJPfdd58UFRWFZCr//ve/l9GjR8v9998v27dvl2HDhklOTo58/vnnUqtWLbnuuuvkuOOOkyuvvFKeeOIJyczMlCFDhsj69etl3Lhx0qJFC7nhhhtC6tGwYUO5+uqrZePGjdK+fXt577335LnnnpOrr75aWrZsGbP+yTou4dq0aSOvvfaanH/++dKjRw//BU9ERL7++muZNGmSKKXk7LPPlnr16sm4cePkjjvukEsuuUQuuOAC2bVrl4wfP15yc3Pl7rvvjrmf8h63qpaZmSnjx4+Xq666SkaOHCljxoyRPXv2yPjx46WoqCihSHbAgAFy7733SklJSUhkfOWVV0rdunWlT58+0qRJE/npp59k2rRpMnXqVPnrX/8qjRs39pe97777ZObMmXLGGWfIPffcI3Xr1pXnn39eVqxYEfEj4tNPP/U36Hv37hWllP/qYL17947b0M2dO1f+/ve/y7hx4/w/gv7+97/LzTffLAMGDJCzzz475rYffPCBjBgxQpo2bSp33HGHfPHFFyHrO3XqJHXr1vW/tuu0bt06f71r164tIuLPX9mxY4cMHDhQtm7dKv/5z39kx44dId38zZs3j4iuly1bJv3790/KFe5QSQ4msqEM0S54smvXLvWnP/1JFRUVqZo1a6pWrVqp22+/PeSiCEop9cUXX6iTTjpJ1apVS4mIP4P10KFD6uabb1bFxcUqNzdXGYahpk+fri699NKITFxJIOv7wIEDSkTUTTfdFLL8H//4h2rdurXKyclRHTt2VM8991zUi3IcPXpU/etf/1JdunRR2dnZqqCgQJ144onqnXfeCSnz0EMPqfbt26usrCzVqFEjdfHFF6tNmzaFvJd9wZNFixapXr16qZycHFVUVKTuuOMOdfjw4bifLdHjYmc9P/LIIxHHIpHjZfv+++/V2LFj1THHHKNycnJUXl6e6tSpk7rxxhvVDz/8EFL2+eefV926dfMfn7POOkt99dVXIWViHdvyHLdoYmV9J/r5n332WXXMMceo7Oxs1b59ezVp0iR11llnhWT/x7J27VqVkZERMcth0qRJ6ve//71q1KiRqlmzpqpXr57q37+/+u9//xv1fVatWqVM01R16tTxZ90Hn1+2Sy+91J9FHv4vXmb1li1bVGFhoTrllFNCLkhSWlqqzjzzTFWvXr2I7zSY/d3F+rdw4cKQ8vHK2hYuXBi3XPj3tHbtWiUiFbrYDpIvQynfYA1QAZ9//rkYhiFPPvlkmXNvgT179kj79u1lxIgR8uyzz5ZZ/swzz5QjR474ZwggOcaNGydTpkyR77//PuKiMXAeDTUqZPPmzfLFF1/IAw88ICtXrpTvvvtOmjVr5nS1oJFt27bJAw88IAMHDpSGDRvKhg0b5F//+pesWbNGPv3004iLbkTz5ZdfSs+ePeWjjz6S3r17V0Ot3WfPnj3Stm1beeKJJ+Siiy5yujqIgmQyVMjzzz8vI0eOlKNHj8qMGTNopBEhJydH1q9fL2PHjpXBgwfLn//8Z2nSpIksWrQooUZaRKRLly4yefJk5vYm0Q8//CC33367XHjhhU5XBTEQUQMAoDEiagAANKZlQ71v3z655ZZb5LTTTpPGjRtH3Oko2GWXXea/Q1Twvw4dOsTdx9dffy05OTmSkZEhn376aUL1mj9/vvTq1Uvy8/MlIyMjYj5zZdl3Jop2I/hkind8dTJv3jw58cQTpVatWtKoUSO57LLLqvzKUqmgdevWEZcGddqSJUskJyfHfwnRo0ePyoQJE+SMM86Q5s2bS61ataRjx45y2223yZ49e0K2feGFF6L+H7b//eMf/yhXXebNm+ffNvzmI4sXL5aePXtKnTp1pF+/fvL1119HbH/NNddI//79JdHOxkTvBgbnfP3113LPPfeEzKe3jR49WkaMGFHtdSoPLRvqXbt2ybPPPiuHDh1K6ADm5eX57xJl/5s6dWrM8kePHpUxY8aU62IHSik577zzJCsrS2bMmCFLly6V/v37J7w9Kuf999+XIUOGSJMmTeTtt9+Wxx57TObNmyeDBg2KuOIZqpdSSv7yl7/IFVdc4Z9rfPDgQbnnnnukVatWMnHiRHnvvffkiiuukGeffVZOOumkkIvxmKYZ8f936dKlMnjwYBGRuHOQw+3fv1+uuOKKqDkTe/bskbPPPlt69+4tb731lhQUFMg555wTcgvUZcuWyaRJk+Tf//53wvOJx40b579IDfT09ddfy/jx46M21Pfcc494PB7/ncW05NjEsDhKS0v9N1LfuXNn3Pmp0eYal+WRRx5RxcXF6rHHHlMiopYvX17mNps3b1Yioh566KFy7as87Dmqid4Np6rEO77l9dtvv0XMWa4KvXv3Vp06dQp57w8//FCJSMRdkxJx5MiRiLnnqaJVq1YJ3RktEVVxHN577z0lImrNmjUh7/vTTz9FlJ02bZoSkZhznm379+9XtWvXVieffHK56nLNNdeonj17qrvuukuJiNq5c2dIPfPz89Vvv/2mlFLqxx9/VCKiVq9erZSyzt2uXbtW2f8Fp6TyuZ0s9nkXPifdNmzYMDV48ODqrVQ5aBlR291WyfDdd9/J3/72N3nqqadCrvYTzz333OO/is+tt94qGRkZ0rp1a3nyySclMzMzpPv1n//8p2RkZITcEaq0tFTq168vN910k3/Zli1b5LzzzpM6depIQUGBnH/++eXKbP3xxx/lyiuvlBYtWkh2drY0a9ZMRo4cGXJt5Y0bN8rFF18shYWFkpOTIx07dpR//vOf/rsKxfPll1/KWWedJfXr15fc3Fzp0aNHxD18Fy1a5L8X70033STFxcWSk5Mja9eulZKSErn55pulTZs2kpubKw0aNJBevXrJq6++mvBnDP6sy5cvl9GjR4fM8ezbt6+0b9++zGjGHlJ4+OGH5f7775c2bdpITk6O/w5Tn376qQwfPlwaNGggubm50rNnz5CrVq1YsUIyMjLkP//5T8R7z5w5UzIyMiIuWxpuz549ctNNN0nbtm0lJydHCgsLZejQobJmzRp/md27d8vYsWOluLhYsrOzpW3btnLnnXcm1GOQyHcd7ziUlpbK/fffL8cdd5zk5eVJvXr1pFu3bvLYY4+Vue+nn35aevfuLccdd5x/WY0aNaJeW71Pnz4iYt0rOp6pU6fK/v375f/9v/9X5v5tS5YskWeffVaef/75kDt72X799VfJycmRrKwsERH/1bzsG8U8+uij8ttvv8ntt9+e8D5Fond9Z2RkyLXXXiuTJ0/2H9NevXrJsmXLRCkljzzyiLRp00Zq164tp5xyiqxduzZk+wEDBkiXLl1kyZIlcsIJJ0heXp4UFxfLuHHjQnoAyjq3Z8yY4R8uqlOnjgwePDjksrjTp0+XjIyMqHdie/rppyUjI0NWrlzpX1bW/xWRwFDGggUL5IorrpCGDRtK3bp15ZJLLpEDBw7476pWr149KSoqkptvvtl/D2/bb7/9Jvfff7906NBBcnJypHHjxvLHP/7Rf8MVW+vWrWXYsGEya9YsMQxD8vLypEOHDjJp0qSQ+owaNUpERAYOHOhvX4KHGEePHi3z5s0r1yVrq5XTvxTKkkhEnZmZqZo0aaIyMzNVcXGxuuaaa9SuXbsiypaWlqp+/fqpUaNGKaWUmjx5ckIR9aZNm9Rbb72lRERdd911aunSpcrr9ao1a9YoEVGvvPKKv+wZZ5yh8vLy1LHHHutfZt8D+L333lNKKVVSUqI6duyoCgoK1BNPPKFmz56t/vznP6uWLVsmFFFv3rxZFRUVqUaNGqkJEyaoefPmqalTp6oxY8b4o4MdO3ao4uJi1bhxY/XMM8+oWbNmqWuvvVaJiLr66qtD3i/8+K5Zs0bVqVNHtWvXTk2ZMkV5PB51wQUXRPQo2Fc/Ki4uViNHjlQzZsxQ7777rtq1a5e66qqrVK1atdSECRPUwoUL1bvvvqv+8Y9/qCeeeCLuZ4tm1qxZSkSUx+OJWDdy5EhVVFQUd3u7p6K4uFgNHDhQvfHGG2rOnDnqhx9+UAsWLFDZ2dnq97//vZo6daqaNWuWuuyyyyK+h549e6qTTjop4r3PO+88VVhYGLcXYe/evapz584qPz9f3XvvvWr27NnqzTffVNdff71asGCBUkqpgwcPqm7duqn8/Hz16KOPqjlz5qhx48apmjVrRtyPOjyiTvS7jncc/v73v6saNWqou+++W82fP1/NmjVLTZw4Ud1zzz1xj+2hQ4dUXl6euuWWW+KWs9n/58LvGR6ub9++qm7duurAgQMJvW9JSYk69thj1V//+lelVOBqX8ER9caNG1VWVpZ66qmn1M8//6xuvfVW1bBhQ1VSUqLWrl2ratWqpd5///2E9hcs1lX9WrVqpfr27aveeust9b///U+1b99eNWjQQN1www3qrLPOUu+++656+eWXVZMmTVS3bt38vYhKWVeEa9iwoWrWrJl6/PHH/X8jJOze7/G+05dfflmJiDrttNPU9OnT1dSpU9Xvfvc7lZ2drZYsWaKUUurw4cOqsLBQXXTRRRGfq0+fPsowDP/rRP+v2N9xmzZt1E033aTmzJmjHnroIVWjRg11wQUXKMMw1P3336/mzp2rbr31ViUi6p///Kd/+6NHj6ozzjhD5efnq/Hjx6u5c+eq559/XhUXF6tOnTqpkpISf9lWrVqp5s2bq06dOqkpU6ao2bNnq1GjRikR8X+XO3bsUA8++KASEfXkk0+qpUuXqqVLl6odO3b432f79u1KRNTjjz9ezm+/eqR8Qz1hwgQ1YcIENWfOHDVnzhx15513qlq1aqkOHTqoffv2hZR94oknVP369dW2bduUUok31ErFvnRi8+bN1ZgxY5RS1h+t/Px8/8m3YcMGpZRSDzzwgMrKyvLfkP3pp5+O+sfqiiuuSKihHjNmjMrKylJff/11zDK33XabEhH18ccfhyy/+uqrVUZGhvrmm2/8y8KP7x/+8AeVk5OjNm7cGLLtkCFDVK1atdSePXuUUoGGul+/fhH779KlixoxYkTcz5Eo+w/O0qVLI9ZdeeWVKjs7O+729nfXrl07f7enrUOHDqpnz54RDe2wYcNUUVGR/5KQjz/+uBKRkOO2e/dulZOTE3H51HD33nuvEhE1d+7cmGWeeeYZJSIRl8t86KGHlIioOXPm+JeFN9SJftfxjsOwYcNUjx494n6OaOwfoa+99lqZZTdv3qyaNGmievXqFXKpzXCrV69WIqKuuuqqhOtx0003qbZt2/r/iEdrqJVS6qmnnlLZ2dlKRFRBQYH//+Cpp56qLr/88oT3FyxWQ920aVP//3mllJo+fboSEdWjR4+QRnnixIlKRNTKlSv9y/r37x/zb0RmZqb/b0us7/To0aOqWbNmqmvXriHHet++faqwsFD17dvXv+zGG29UeXl5/v/XSin19ddfKxEJ+WGd6P8V++/qddddF1JuxIgRSkTUhAkTQpb36NEj5AfBq6++GvVypsuXL48Y6mrVqpXKzc31Hw+lrB+9DRo0CDl/yur6Vkqp4uJidf7558dc7yQtu77L44YbbpAbbrhBBg8eLIMHD5b7779fpkyZImvWrJHnnnvOX27Dhg1y++23yyOPPFKld4cZNGiQzJs3T0REPvroIykpKZEbb7xRGjVqJHPnzhWRQLZyfn6+iFh3+alTp44MHz485L0SveDAzJkzZeDAgdKxY8eYZRYsWCCdOnXydzXaLrvsMlFKxU2csO/M1KJFi4htS0pKIu4ode6550a8R58+fWTmzJly2223yaJFi6rkHrexhkMSHSYZPny4v9tTRGTt2rWyZs0a/9WYjhw54v83dOhQ2bp1q3zzzTciYt1nOCcnJ6S77NVXX5VDhw7JH//4x7j7nTlzprRv3z7kpinhFixYIPn5+f6bKtjs7O5oXZPB25bnuw4/DiLW97VixQoZO3aszJ49W/bu3Rv3M9m2bNkiItY90ePZvXu3DB06VJRSMnXq1Lg35bCHGBLt9v7kk09k4sSJ8u9//1vy8vLilr366qtl9+7dsnr1atm+fbsMHz5c/vvf/8rKlSvlkUcekd27d8tFF13kv03mM888k1Adohk4cKD//7yI+P+/DhkyJOSctZfbGfO2WH8jSktLZfHixSHLw7/Tb775RrZs2SKjR48OOda1a9eWc889V5YtWyYlJSUiIjJmzBg5ePBgSALu5MmTJScnx/83qTz/V2zDhg0LeW1/TtM0I5YHf/Z3331X6tWr5798rP2vR48e0rRpU1m0aFHI9j169Ai54U5ubq60b98+4niWpbCwUH788cdybVNdUr6hjubss8+W/Px8WbZsmX/ZNddcI126dJFzzz1X9uzZI3v27PGfqPv37496y8FEnHrqqbJx40b57rvvZN68edKzZ08pLCyUU045RebNmycHDx6Ujz76KOSP9K5du6L+WGjatGlC+9y5c2fc+8ra+4h2j2c7G3bXrl1Vtm20so8//rjceuutMn36dBk4cKA0aNBARowYEXL3rETZY53R6rx7925p0KBBQu8TXk97PP/mm2+WrKyskH/2dcvt6T0NGjSQ4cOHy5QpU/xjhC+88IL06dOnzKtsJfp9NW3aNOJHR2FhodSsWTPp39ftt98ujz76qCxbtkyGDBkiDRs2lEGDBpU5ddH+AZabmxuzzM8//yyDBw+WH3/8UebOneu/DWU0hw8flilTpkj37t2lV69ecfdtGzNmjJxzzjnSq1cv//9te9x57969EfcUz8/P94997tq1S2666SaZOHGi1K9fX66//nrZvXu3rF27Vl577TW5+eab/eO95RV+Xtr3l4613K6zLd7fiLK+U3t9rPOitLRUfv75ZxER6dy5s/Tu3VsmT54sItasmJdeeknOOussf13L83+lIp8/+LNv375d9uzZI9nZ2RH72rZtW8R+ouVCxLrNbzy5ublVElAkQ9pefV0pFfJL8ssvv5QNGzZI/fr1I8oOHDhQCgoKIuZ3JsK+pd28efNk7ty5/iklgwYNkrvuuksWL14shw4dCmmoGzZsKJ988knEeyWaTNa4cWPZvHlz3DINGzaUrVu3Riy3I6B4U9PKu220iDY/P1/Gjx8v48ePl+3bt/uj6zPPPDMkgSoRXbp0ERGRVatWydChQ0PWrVq1yr++LOH1tD/H7bffLuecc07UbYITpP74xz/KtGnTZO7cudKyZUtZvnx53Htp2xL9vj7++GNRSoXUc8eOHXLkyJGkf181a9aUG2+8UW688UbZs2ePzJs3T+644w45/fTTZdOmTSG3mQxmv/fu3bujrv/555/l1FNPlR9++EHmz58v3bp1i/k5RKxoaseOHTJu3Li45YJ99dVX8tVXX8m0adMi1rVr1066d+8ecetI20033SS/+93v5IILLhARq/dj8uTJUlBQIL1795bTTjtN3nvvPRk4cGDC9akqwYmhNvtvRHjjFP6d2utjnReZmZkhfwv/+Mc/ytixY2X16tWybt062bp1a0hPUXn/r1RGo0aNpGHDhjJr1qyo6+vUqVMl+wm3e/dubefDp2VE/cYbb0hJSYmccMIJ/mWvvfaaLFy4MOTfrbfeKiIizzzzjLz77rsV2ldRUZF06tRJ3nzzTfnss8/8DfXgwYNl586dMmHCBKlbt27IDQUGDhwo+/bti8gUfuWVVxLa55AhQ2ThwoURXU3BBg0aJF9//bV4vd6Q5VOmTJGMjIy4f3gGDRokCxYs8P+hD962Vq1aIcc1EU2aNJHLLrtMLrjgAvnmm2/8PRmJKi4ulj59+shLL70UMef1m2++ifmHoyzHHXecHHvssbJixQrp1atX1H/BfxROO+00KS4ulsmTJ8vkyZMlNzfX/wc+niFDhsi3334bd7hh0KBBsn///oiL6EyZMsW/Pt62Ff2uo6lXr56MHDlSrrnmGtm9e3fUuac2uzszWras3UivW7dO5syZ47/vdjz/+c9/JDc3t1w3hwj/f71w4UK59NJLRcTKan7++edjbjdt2jR56qmn/MuUUnLgwAH/6/379yd84ZOqFutvRGZmpvTr1y/utscdd5wUFxfLK6+8ElL/AwcOyJtvvunPBLddcMEFkpubKy+88IK88MILUlxcLKeddlrI+5Xn/0plDBs2THbt2iVHjx6Nup+K/CDIyckREYkZMR85ckQ2bdoknTp1qlTdk8a54fH43nvvPTVt2jQ1adIkJSJq1KhRatq0aWratGn+TND169ervn37qscff1y99957aubMmeq2225Tubm5qnPnziGJHNFURTKZUkpdd911SkRUXl6eOnjwoH95mzZtlIio4cOHh5Q/cOCAat++vSooKFD/93//p2bPnq2uv/76cmd9FxYWqokTJ6r58+erN998U11xxRURWd9NmzZVzz77rD9rNCMjQ40dOzbk/SRG1nf79u3VSy+9pN577z110UUXKRFRDz/8sL+cnUw2bdq0iDr26dNH3XvvvWr69Onq/fffV88884xq2LChOvHEEyOOaSJzghcuXKhq1qypzj77bDV37lz18ssvqxYtWqguXbqUOWc03ne3YMEClZOTo0477TT1yiuvqPfff1/973//Uw8++KAaOXJkRPnbb79d5eTkqMaNG6sLL7ywzHorFcj6rl27trr//vvVnDlz1Ntvv61uvPHGiKzvOnXqqAkTJqi5c+equ+++W2VlZSWc9V3Wdx3vOAwbNkzddttt6o033lDvv/++mjJlimrdurVq1apVROJZuLZt26oLLrggZFlJSYnq3bu3ysjIUI899pg/09b+t3bt2oj3+fHHH1WNGjXiHtcXX3xR1ahRQ7344otx6xQrmcz266+/qmOPPTbkfFZKqQsuuEB17NhReTweNXHiRJWZmRk3CVCp2MlkwdnZSsU+/tH+HwVnfdszQ66//vqYmfzRvlM7CXPo0KHq7bffVq+//rrq3bt3SNZ3+GcvLCxU2dnZ6o477ohYn+j/lVh/V2N9J+HXwjhy5IgaMmSIatCggRo/fryaOXOmmjdvnnrhhRfUpZdeqt566y1/2VatWinTNCPqGn4f9XXr1ikRUSNGjFBLlixRy5cvD5nn/9lnnykRUTNmzIh4Lx1o21C3atUq5k3P7Zuw7969W5199tmqdevWKi8vT2VnZ6tjjz1W3XLLLSEZjLFUVUP99ttvKxGJmDBvZ3FHS/nfvHmzOvfcc1Xt2rVVnTp11Lnnnqs++uijhC94smnTJjVmzBjVtGlTlZWVpZo1a6bOO+88tX37dn+ZDRs2qAsvvFA1bNhQZWVlqeOOO0498sgjERm3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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Jacobian shape: (361, 212) (23.30% nonzero)\n", - "FWD solves: 154 REV solves: 0\n", - "Total colors vs. total size: 154 vs 212 (27.36% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-12\n", - "Time to compute sparsity: 0.1941 sec\n", - "Time to compute coloring: 0.4864 sec\n", - "Memory to compute coloring: 2.9375 MB\n", - "Coloring created on: 2024-08-14 08:51:01\n", - "\n", - "--- Constraint Report [traj] ---\n", - " --- phase0 ---\n", - " [final] 2.0000e+04 == h [m]\n", - " [final] 1.0000e+00 == aero.mach [None]\n", - " [final] 0.0000e+00 == gam [rad]\n", - " [path] 1.0000e+02 <= h <= 2.0000e+04 [m]\n", - " [path] 1.0000e-01 <= aero.mach <= 1.8000e+00 [None]\n", - "\n", - "--------------------------------------------------------------------------------\n", - "--- Finite differenced component with partial coloring -------------------------\n", - "-------------------------------------------------------------------------------- \n", - "\n", - "Model viewer data has already been recorded for Driver.\n", - "Model viewer data has already been recorded for Driver.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/driver.py:659: DriverWarning:The following design variable initial conditions are out of their specified bounds:\n", - " traj.phase0.t_duration\n", - " val: [500.]\n", - " lower: 50.0\n", - " upper: 400.0\n", - "Set the initial value of the design variable to a valid value or set the driver option['invalid_desvar_behavior'] to 'ignore'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Coloring for 'traj.phases.phase0.rhs_disc.aero.q_comp' (class DynamicPressureCompFD)\n", - "\n", - "Jacobian shape: (60, 120) (1.67% nonzero)\n", - "FWD solves: 2 REV solves: 0\n", - "Total colors vs. total size: 2 vs 120 (98.33% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-06\n", - "Time to compute sparsity: 0.0037 sec\n", - "Time to compute coloring: 0.0040 sec\n", - "Memory to compute coloring: 0.0000 MB\n", - "\n", - "Coloring for 'traj.phases.phase0.rhs_col.aero.q_comp' (class DynamicPressureCompFD)\n", - "\n", - "Jacobian shape: (30, 60) (3.33% nonzero)\n", - "FWD solves: 2 REV solves: 0\n", - "Total colors vs. total size: 2 vs 60 (96.67% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-06\n", - "Time to compute sparsity: 0.0018 sec\n", - "Time to compute coloring: 0.0019 sec\n", - "Memory to compute coloring: 0.0000 MB\n", - "Full total jacobian for problem 'problem8' was computed 3 times, taking 0.19566941703669727 seconds.\n", - "Total jacobian shape: (361, 212) \n", - "\n", - "\n", - "Jacobian shape: (361, 212) (3.44% nonzero)\n", - "FWD solves: 13 REV solves: 0\n", - "Total colors vs. total size: 13 vs 212 (93.87% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-12\n", - "Time to compute sparsity: 0.1957 sec\n", - "Time to compute coloring: 0.1057 sec\n", - "Memory to compute coloring: 0.0781 MB\n", - "Coloring created on: 2024-08-14 08:51:12\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/rfalck/Codes/OpenMDAO.git/openmdao/core/total_jac.py:1646: DerivativesWarning:Constraints or objectives [('traj.phases.phase0->path_constraint->h', inds=[(0, 0)]), ('traj.phases.phase0->path_constraint->mach', inds=[(0, 0)])] cannot be impacted by the design variables of the problem.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "Optimization Problem -- Optimization using pyOpt_sparse\n", - "================================================================================\n", - " Objective Function: _objfunc\n", - "\n", - " Solution: \n", - "--------------------------------------------------------------------------------\n", - " Total Time: 3.5145\n", - " User Objective Time : 1.2823\n", - " User Sensitivity Time : 1.3879\n", - " Interface Time : 0.3666\n", - " Opt Solver Time: 0.4778\n", - " Calls to Objective Function : 136\n", - " Calls to Sens Function : 111\n", - "\n", - "\n", - " Objectives\n", - " Index Name Value\n", - " 0 traj.phase0.t 3.235052E+00\n", - "\n", - " Variables (c - continuous, i - integer, d - discrete)\n", - " Index Name Type Lower Bound Value Upper Bound Status\n", - " 0 traj.phase0.t_duration_0 c 5.000000E-01 3.235052E+00 4.000000E+00 \n", - " 1 traj.phase0.states:r_0 c 0.000000E+00 1.808252E+00 1.000000E+03 \n", - " 2 traj.phase0.states:r_1 c 0.000000E+00 4.338692E+00 1.000000E+03 \n", - " 3 traj.phase0.states:r_2 c 0.000000E+00 7.365611E+00 1.000000E+03 \n", - " 4 traj.phase0.states:r_3 c 0.000000E+00 1.015780E+01 1.000000E+03 \n", - " 5 traj.phase0.states:r_4 c 0.000000E+00 1.292797E+01 1.000000E+03 \n", - " 6 traj.phase0.states:r_5 c 0.000000E+00 1.576494E+01 1.000000E+03 \n", - " 7 traj.phase0.states:r_6 c 0.000000E+00 1.862488E+01 1.000000E+03 \n", - " 8 traj.phase0.states:r_7 c 0.000000E+00 2.150884E+01 1.000000E+03 \n", - " 9 traj.phase0.states:r_8 c 0.000000E+00 2.455450E+01 1.000000E+03 \n", - " 10 traj.phase0.states:r_9 c 0.000000E+00 2.786210E+01 1.000000E+03 \n", - " 11 traj.phase0.states:r_10 c 0.000000E+00 3.146415E+01 1.000000E+03 \n", - " 12 traj.phase0.states:r_11 c 0.000000E+00 3.545715E+01 1.000000E+03 \n", - " 13 traj.phase0.states:r_12 c 0.000000E+00 3.978347E+01 1.000000E+03 \n", - " 14 traj.phase0.states:r_13 c 0.000000E+00 4.429150E+01 1.000000E+03 \n", - " 15 traj.phase0.states:r_14 c 0.000000E+00 4.889839E+01 1.000000E+03 \n", - " 16 traj.phase0.states:r_15 c 0.000000E+00 5.358656E+01 1.000000E+03 \n", - " 17 traj.phase0.states:r_16 c 0.000000E+00 5.835928E+01 1.000000E+03 \n", - " 18 traj.phase0.states:r_17 c 0.000000E+00 6.322095E+01 1.000000E+03 \n", - " 19 traj.phase0.states:r_18 c 0.000000E+00 6.817413E+01 1.000000E+03 \n", - " 20 traj.phase0.states:r_19 c 0.000000E+00 7.322350E+01 1.000000E+03 \n", - " 21 traj.phase0.states:r_20 c 0.000000E+00 7.838121E+01 1.000000E+03 \n", - " 22 traj.phase0.states:r_21 c 0.000000E+00 8.366676E+01 1.000000E+03 \n", - " 23 traj.phase0.states:r_22 c 0.000000E+00 8.909550E+01 1.000000E+03 \n", - " 24 traj.phase0.states:r_23 c 0.000000E+00 9.464487E+01 1.000000E+03 \n", - " 25 traj.phase0.states:r_24 c 0.000000E+00 1.001531E+02 1.000000E+03 \n", - " 26 traj.phase0.states:r_25 c 0.000000E+00 1.051992E+02 1.000000E+03 \n", - " 27 traj.phase0.states:r_26 c 0.000000E+00 1.093934E+02 1.000000E+03 \n", - " 28 traj.phase0.states:r_27 c 0.000000E+00 1.128527E+02 1.000000E+03 \n", - " 29 traj.phase0.states:r_28 c 0.000000E+00 1.159910E+02 1.000000E+03 \n", - " 30 traj.phase0.states:r_29 c 0.000000E+00 1.191427E+02 1.000000E+03 \n", - " 31 traj.phase0.states:h_0 c 0.000000E+00 1.061193E+00 2.000000E+02 \n", - " 32 traj.phase0.states:h_1 c 0.000000E+00 1.139660E+00 2.000000E+02 \n", - " 33 traj.phase0.states:h_2 c 0.000000E+00 8.818884E+00 2.000000E+02 \n", - " 34 traj.phase0.states:h_3 c 0.000000E+00 2.664471E+01 2.000000E+02 \n", - " 35 traj.phase0.states:h_4 c 0.000000E+00 4.417045E+01 2.000000E+02 \n", - " 36 traj.phase0.states:h_5 c 0.000000E+00 5.944120E+01 2.000000E+02 \n", - " 37 traj.phase0.states:h_6 c 0.000000E+00 7.289197E+01 2.000000E+02 \n", - " 38 traj.phase0.states:h_7 c 0.000000E+00 8.421245E+01 2.000000E+02 \n", - " 39 traj.phase0.states:h_8 c 0.000000E+00 9.050324E+01 2.000000E+02 \n", - " 40 traj.phase0.states:h_9 c 0.000000E+00 8.885867E+01 2.000000E+02 \n", - " 41 traj.phase0.states:h_10 c 0.000000E+00 8.148440E+01 2.000000E+02 \n", - " 42 traj.phase0.states:h_11 c 0.000000E+00 7.429612E+01 2.000000E+02 \n", - " 43 traj.phase0.states:h_12 c 0.000000E+00 7.108600E+01 2.000000E+02 \n", - " 44 traj.phase0.states:h_13 c 0.000000E+00 7.162076E+01 2.000000E+02 \n", - " 45 traj.phase0.states:h_14 c 0.000000E+00 7.403012E+01 2.000000E+02 \n", - " 46 traj.phase0.states:h_15 c 0.000000E+00 7.692156E+01 2.000000E+02 \n", - " 47 traj.phase0.states:h_16 c 0.000000E+00 7.977373E+01 2.000000E+02 \n", - " 48 traj.phase0.states:h_17 c 0.000000E+00 8.256154E+01 2.000000E+02 \n", - " 49 traj.phase0.states:h_18 c 0.000000E+00 8.534020E+01 2.000000E+02 \n", - " 50 traj.phase0.states:h_19 c 0.000000E+00 8.797691E+01 2.000000E+02 \n", - " 51 traj.phase0.states:h_20 c 0.000000E+00 9.008302E+01 2.000000E+02 \n", - " 52 traj.phase0.states:h_21 c 0.000000E+00 9.124628E+01 2.000000E+02 \n", - " 53 traj.phase0.states:h_22 c 0.000000E+00 9.176010E+01 2.000000E+02 \n", - " 54 traj.phase0.states:h_23 c 0.000000E+00 9.384403E+01 2.000000E+02 \n", - " 55 traj.phase0.states:h_24 c 0.000000E+00 1.021991E+02 2.000000E+02 \n", - " 56 traj.phase0.states:h_25 c 0.000000E+00 1.207227E+02 2.000000E+02 \n", - " 57 traj.phase0.states:h_26 c 0.000000E+00 1.466407E+02 2.000000E+02 \n", - " 58 traj.phase0.states:h_27 c 0.000000E+00 1.725202E+02 2.000000E+02 \n", - " 59 traj.phase0.states:h_28 c 0.000000E+00 1.921022E+02 2.000000E+02 \n", - " 60 traj.phase0.states:h_29 c 0.000000E+00 2.000000E+02 2.000000E+02 u\n", - " 61 traj.phase0.states:v_0 c 1.000000E-01 2.001429E+00 1.000000E+19 \n", - " 62 traj.phase0.states:v_1 c 1.000000E-01 2.688834E+00 1.000000E+19 \n", - " 63 traj.phase0.states:v_2 c 1.000000E-01 3.059718E+00 1.000000E+19 \n", - " 64 traj.phase0.states:v_3 c 1.000000E-01 3.064999E+00 1.000000E+19 \n", - " 65 traj.phase0.states:v_4 c 1.000000E-01 3.014441E+00 1.000000E+19 \n", - " 66 traj.phase0.states:v_5 c 1.000000E-01 2.961218E+00 1.000000E+19 \n", - " 67 traj.phase0.states:v_6 c 1.000000E-01 2.900146E+00 1.000000E+19 \n", - " 68 traj.phase0.states:v_7 c 1.000000E-01 2.859530E+00 1.000000E+19 \n", - " 69 traj.phase0.states:v_8 c 1.000000E-01 2.953520E+00 1.000000E+19 \n", - " 70 traj.phase0.states:v_9 c 1.000000E-01 3.227951E+00 1.000000E+19 \n", - " 71 traj.phase0.states:v_10 c 1.000000E-01 3.595990E+00 1.000000E+19 \n", - " 72 traj.phase0.states:v_11 c 1.000000E-01 3.914027E+00 1.000000E+19 \n", - " 73 traj.phase0.states:v_12 c 1.000000E-01 4.117528E+00 1.000000E+19 \n", - " 74 traj.phase0.states:v_13 c 1.000000E-01 4.235627E+00 1.000000E+19 \n", - " 75 traj.phase0.states:v_14 c 1.000000E-01 4.317759E+00 1.000000E+19 \n", - " 76 traj.phase0.states:v_15 c 1.000000E-01 4.394120E+00 1.000000E+19 \n", - " 77 traj.phase0.states:v_16 c 1.000000E-01 4.474273E+00 1.000000E+19 \n", - " 78 traj.phase0.states:v_17 c 1.000000E-01 4.557813E+00 1.000000E+19 \n", - " 79 traj.phase0.states:v_18 c 1.000000E-01 4.643749E+00 1.000000E+19 \n", - " 80 traj.phase0.states:v_19 c 1.000000E-01 4.735599E+00 1.000000E+19 \n", - " 81 traj.phase0.states:v_20 c 1.000000E-01 4.841455E+00 1.000000E+19 \n", - " 82 traj.phase0.states:v_21 c 1.000000E-01 4.967172E+00 1.000000E+19 \n", - " 83 traj.phase0.states:v_22 c 1.000000E-01 5.100034E+00 1.000000E+19 \n", - " 84 traj.phase0.states:v_23 c 1.000000E-01 5.186229E+00 1.000000E+19 \n", - " 85 traj.phase0.states:v_24 c 1.000000E-01 5.124443E+00 1.000000E+19 \n", - " 86 traj.phase0.states:v_25 c 1.000000E-01 4.823488E+00 1.000000E+19 \n", - " 87 traj.phase0.states:v_26 c 1.000000E-01 4.304563E+00 1.000000E+19 \n", - " 88 traj.phase0.states:v_27 c 1.000000E-01 3.708506E+00 1.000000E+19 \n", - " 89 traj.phase0.states:v_28 c 1.000000E-01 3.190624E+00 1.000000E+19 \n", - " 90 traj.phase0.states:v_29 c 1.000000E-01 2.950864E+00 1.000000E+19 \n", - " 91 traj.phase0.states:gam_0 c -1.500000E+00 1.134219E-02 1.500000E+00 \n", - " 92 traj.phase0.states:gam_1 c -1.500000E+00 3.615926E-02 1.500000E+00 \n", - " 93 traj.phase0.states:gam_2 c -1.500000E+00 4.740163E-01 1.500000E+00 \n", - " 94 traj.phase0.states:gam_3 c -1.500000E+00 5.938147E-01 1.500000E+00 \n", - " 95 traj.phase0.states:gam_4 c -1.500000E+00 5.275201E-01 1.500000E+00 \n", - " 96 traj.phase0.states:gam_5 c -1.500000E+00 4.638622E-01 1.500000E+00 \n", - " 97 traj.phase0.states:gam_6 c -1.500000E+00 4.145441E-01 1.500000E+00 \n", - " 98 traj.phase0.states:gam_7 c -1.500000E+00 3.139592E-01 1.500000E+00 \n", - " 99 traj.phase0.states:gam_8 c -1.500000E+00 7.827885E-02 1.500000E+00 \n", - " 100 traj.phase0.states:gam_9 c -1.500000E+00 -1.558849E-01 1.500000E+00 \n", - " 101 traj.phase0.states:gam_10 c -1.500000E+00 -2.146216E-01 1.500000E+00 \n", - " 102 traj.phase0.states:gam_11 c -1.500000E+00 -1.294009E-01 1.500000E+00 \n", - " 103 traj.phase0.states:gam_12 c -1.500000E+00 -2.381884E-02 1.500000E+00 \n", - " 104 traj.phase0.states:gam_13 c -1.500000E+00 3.901375E-02 1.500000E+00 \n", - " 105 traj.phase0.states:gam_14 c -1.500000E+00 6.019736E-02 1.500000E+00 \n", - " 106 traj.phase0.states:gam_15 c -1.500000E+00 6.126044E-02 1.500000E+00 \n", - " 107 traj.phase0.states:gam_16 c -1.500000E+00 5.817340E-02 1.500000E+00 \n", - " 108 traj.phase0.states:gam_17 c -1.500000E+00 5.666401E-02 1.500000E+00 \n", - " 109 traj.phase0.states:gam_18 c -1.500000E+00 5.500050E-02 1.500000E+00 \n", - " 110 traj.phase0.states:gam_19 c -1.500000E+00 4.805151E-02 1.500000E+00 \n", - " 111 traj.phase0.states:gam_20 c -1.500000E+00 3.219514E-02 1.500000E+00 \n", - " 112 traj.phase0.states:gam_21 c -1.500000E+00 1.262438E-02 1.500000E+00 \n", - " 113 traj.phase0.states:gam_22 c -1.500000E+00 1.284704E-02 1.500000E+00 \n", - " 114 traj.phase0.states:gam_23 c -1.500000E+00 7.682352E-02 1.500000E+00 \n", - " 115 traj.phase0.states:gam_24 c -1.500000E+00 2.409760E-01 1.500000E+00 \n", - " 116 traj.phase0.states:gam_25 c -1.500000E+00 4.652704E-01 1.500000E+00 \n", - " 117 traj.phase0.states:gam_26 c -1.500000E+00 6.245211E-01 1.500000E+00 \n", - " 118 traj.phase0.states:gam_27 c -1.500000E+00 6.313138E-01 1.500000E+00 \n", - " 119 traj.phase0.states:gam_28 c -1.500000E+00 4.419321E-01 1.500000E+00 \n", - " 120 traj.phase0.states:gam_29 c -1.500000E+00 3.443217E-27 1.500000E+00 \n", - " 121 traj.phase0.states:m_0 c 1.000000E-02 1.894029E+01 1.000000E+02 \n", - " 122 traj.phase0.states:m_1 c 1.000000E-02 1.883985E+01 1.000000E+02 \n", - " 123 traj.phase0.states:m_2 c 1.000000E-02 1.873364E+01 1.000000E+02 \n", - " 124 traj.phase0.states:m_3 c 1.000000E-02 1.863493E+01 1.000000E+02 \n", - " 125 traj.phase0.states:m_4 c 1.000000E-02 1.854905E+01 1.000000E+02 \n", - " 126 traj.phase0.states:m_5 c 1.000000E-02 1.847497E+01 1.000000E+02 \n", - " 127 traj.phase0.states:m_6 c 1.000000E-02 1.841103E+01 1.000000E+02 \n", - " 128 traj.phase0.states:m_7 c 1.000000E-02 1.835554E+01 1.000000E+02 \n", - " 129 traj.phase0.states:m_8 c 1.000000E-02 1.830504E+01 1.000000E+02 \n", - " 130 traj.phase0.states:m_9 c 1.000000E-02 1.825309E+01 1.000000E+02 \n", - " 131 traj.phase0.states:m_10 c 1.000000E-02 1.819245E+01 1.000000E+02 \n", - " 132 traj.phase0.states:m_11 c 1.000000E-02 1.811959E+01 1.000000E+02 \n", - " 133 traj.phase0.states:m_12 c 1.000000E-02 1.803726E+01 1.000000E+02 \n", - " 134 traj.phase0.states:m_13 c 1.000000E-02 1.795054E+01 1.000000E+02 \n", - " 135 traj.phase0.states:m_14 c 1.000000E-02 1.786283E+01 1.000000E+02 \n", - " 136 traj.phase0.states:m_15 c 1.000000E-02 1.777537E+01 1.000000E+02 \n", - " 137 traj.phase0.states:m_16 c 1.000000E-02 1.768831E+01 1.000000E+02 \n", - " 138 traj.phase0.states:m_17 c 1.000000E-02 1.760157E+01 1.000000E+02 \n", - " 139 traj.phase0.states:m_18 c 1.000000E-02 1.751513E+01 1.000000E+02 \n", - " 140 traj.phase0.states:m_19 c 1.000000E-02 1.742897E+01 1.000000E+02 \n", - " 141 traj.phase0.states:m_20 c 1.000000E-02 1.734274E+01 1.000000E+02 \n", - " 142 traj.phase0.states:m_21 c 1.000000E-02 1.725563E+01 1.000000E+02 \n", - " 143 traj.phase0.states:m_22 c 1.000000E-02 1.716680E+01 1.000000E+02 \n", - " 144 traj.phase0.states:m_23 c 1.000000E-02 1.707682E+01 1.000000E+02 \n", - " 145 traj.phase0.states:m_24 c 1.000000E-02 1.699019E+01 1.000000E+02 \n", - " 146 traj.phase0.states:m_25 c 1.000000E-02 1.691723E+01 1.000000E+02 \n", - " 147 traj.phase0.states:m_26 c 1.000000E-02 1.686898E+01 1.000000E+02 \n", - " 148 traj.phase0.states:m_27 c 1.000000E-02 1.684161E+01 1.000000E+02 \n", - " 149 traj.phase0.states:m_28 c 1.000000E-02 1.682684E+01 1.000000E+02 \n", - " 150 traj.phase0.states:m_29 c 1.000000E-02 1.681816E+01 1.000000E+02 \n", - " 151 traj.phase0.controls:alpha_0 c -8.000000E+00 4.973741E+00 8.000000E+00 \n", - " 152 traj.phase0.controls:alpha_1 c -8.000000E+00 3.717104E+00 8.000000E+00 \n", - " 153 traj.phase0.controls:alpha_2 c -8.000000E+00 2.438083E+00 8.000000E+00 \n", - " 154 traj.phase0.controls:alpha_3 c -8.000000E+00 1.746526E+00 8.000000E+00 \n", - " 155 traj.phase0.controls:alpha_4 c -8.000000E+00 2.252280E+00 8.000000E+00 \n", - " 156 traj.phase0.controls:alpha_5 c -8.000000E+00 2.787241E+00 8.000000E+00 \n", - " 157 traj.phase0.controls:alpha_6 c -8.000000E+00 2.183305E+00 8.000000E+00 \n", - " 158 traj.phase0.controls:alpha_7 c -8.000000E+00 1.279567E+00 8.000000E+00 \n", - " 159 traj.phase0.controls:alpha_8 c -8.000000E+00 9.151259E-01 8.000000E+00 \n", - " 160 traj.phase0.controls:alpha_9 c -8.000000E+00 8.887053E-01 8.000000E+00 \n", - " 161 traj.phase0.controls:alpha_10 c -8.000000E+00 9.990293E-01 8.000000E+00 \n", - " 162 traj.phase0.controls:alpha_11 c -8.000000E+00 1.188532E+00 8.000000E+00 \n", - " 163 traj.phase0.controls:alpha_12 c -8.000000E+00 1.399648E+00 8.000000E+00 \n", - " 164 traj.phase0.controls:alpha_13 c -8.000000E+00 1.593808E+00 8.000000E+00 \n", - " 165 traj.phase0.controls:alpha_14 c -8.000000E+00 1.732442E+00 8.000000E+00 \n", - " 166 traj.phase0.controls:alpha_15 c -8.000000E+00 1.676799E+00 8.000000E+00 \n", - " 167 traj.phase0.controls:alpha_16 c -8.000000E+00 1.288126E+00 8.000000E+00 \n", - " 168 traj.phase0.controls:alpha_17 c -8.000000E+00 8.326768E-01 8.000000E+00 \n", - " 169 traj.phase0.controls:alpha_18 c -8.000000E+00 5.767046E-01 8.000000E+00 \n", - " 170 traj.phase0.controls:alpha_19 c -8.000000E+00 6.228017E-01 8.000000E+00 \n", - " 171 traj.phase0.controls:alpha_20 c -8.000000E+00 1.073561E+00 8.000000E+00 \n", - " 172 traj.phase0.controls:alpha_21 c -8.000000E+00 1.616546E+00 8.000000E+00 \n", - " 173 traj.phase0.controls:alpha_22 c -8.000000E+00 1.939322E+00 8.000000E+00 \n", - " 174 traj.phase0.controls:alpha_23 c -8.000000E+00 2.067233E+00 8.000000E+00 \n", - " 175 traj.phase0.controls:alpha_24 c -8.000000E+00 2.025623E+00 8.000000E+00 \n", - " 176 traj.phase0.controls:alpha_25 c -8.000000E+00 1.885933E+00 8.000000E+00 \n", - " 177 traj.phase0.controls:alpha_26 c -8.000000E+00 1.719606E+00 8.000000E+00 \n", - " 178 traj.phase0.controls:alpha_27 c -8.000000E+00 1.556261E+00 8.000000E+00 \n", - " 179 traj.phase0.controls:alpha_28 c -8.000000E+00 1.425519E+00 8.000000E+00 \n", - " 180 traj.phase0.controls:alpha_29 c -8.000000E+00 1.329224E+00 8.000000E+00 \n", - " 181 traj.phase0.controls:alpha_30 c -8.000000E+00 1.269221E+00 8.000000E+00 \n", - " 182 traj.phase0.controls:alpha_31 c -8.000000E+00 1.237648E+00 8.000000E+00 \n", - " 183 traj.phase0.controls:alpha_32 c -8.000000E+00 1.226643E+00 8.000000E+00 \n", - " 184 traj.phase0.controls:alpha_33 c -8.000000E+00 1.229088E+00 8.000000E+00 \n", - " 185 traj.phase0.controls:alpha_34 c -8.000000E+00 1.237863E+00 8.000000E+00 \n", - " 186 traj.phase0.controls:alpha_35 c -8.000000E+00 1.248347E+00 8.000000E+00 \n", - " 187 traj.phase0.controls:alpha_36 c -8.000000E+00 1.255918E+00 8.000000E+00 \n", - " 188 traj.phase0.controls:alpha_37 c -8.000000E+00 1.258005E+00 8.000000E+00 \n", - " 189 traj.phase0.controls:alpha_38 c -8.000000E+00 1.252035E+00 8.000000E+00 \n", - " 190 traj.phase0.controls:alpha_39 c -8.000000E+00 1.237691E+00 8.000000E+00 \n", - " 191 traj.phase0.controls:alpha_40 c -8.000000E+00 1.214657E+00 8.000000E+00 \n", - " 192 traj.phase0.controls:alpha_41 c -8.000000E+00 1.187413E+00 8.000000E+00 \n", - " 193 traj.phase0.controls:alpha_42 c -8.000000E+00 1.160437E+00 8.000000E+00 \n", - " 194 traj.phase0.controls:alpha_43 c -8.000000E+00 1.147677E+00 8.000000E+00 \n", - " 195 traj.phase0.controls:alpha_44 c -8.000000E+00 1.163082E+00 8.000000E+00 \n", - " 196 traj.phase0.controls:alpha_45 c -8.000000E+00 1.227556E+00 8.000000E+00 \n", - " 197 traj.phase0.controls:alpha_46 c -8.000000E+00 1.362005E+00 8.000000E+00 \n", - " 198 traj.phase0.controls:alpha_47 c -8.000000E+00 1.581968E+00 8.000000E+00 \n", - " 199 traj.phase0.controls:alpha_48 c -8.000000E+00 1.902981E+00 8.000000E+00 \n", - " 200 traj.phase0.controls:alpha_49 c -8.000000E+00 2.303879E+00 8.000000E+00 \n", - " 201 traj.phase0.controls:alpha_50 c -8.000000E+00 2.763494E+00 8.000000E+00 \n", - " 202 traj.phase0.controls:alpha_51 c -8.000000E+00 3.222351E+00 8.000000E+00 \n", - " 203 traj.phase0.controls:alpha_52 c -8.000000E+00 3.620975E+00 8.000000E+00 \n", - " 204 traj.phase0.controls:alpha_53 c -8.000000E+00 3.885887E+00 8.000000E+00 \n", - " 205 traj.phase0.controls:alpha_54 c -8.000000E+00 3.943608E+00 8.000000E+00 \n", - " 206 traj.phase0.controls:alpha_55 c -8.000000E+00 3.728647E+00 8.000000E+00 \n", - " 207 traj.phase0.controls:alpha_56 c -8.000000E+00 3.175513E+00 8.000000E+00 \n", - " 208 traj.phase0.controls:alpha_57 c -8.000000E+00 1.953518E+00 8.000000E+00 \n", - " 209 traj.phase0.controls:alpha_58 c -8.000000E+00 -2.680277E-01 8.000000E+00 \n", - " 210 traj.phase0.controls:alpha_59 c -8.000000E+00 -3.186387E+00 8.000000E+00 \n", - " 211 traj.phase0.controls:alpha_60 c -8.000000E+00 -6.498824E+00 8.000000E+00 \n", - "\n", - " Constraints (i - inequality, e - equality)\n", - " Index Name Type Lower Value Upper Status Lagrange Multiplier (N/A)\n", - " 0 traj.phases.phase0->final_boundary_constraint->h e 2.000000E+01 2.000000E+01 2.000000E+01 9.00000E+100\n", - " 1 traj.phases.phase0->final_boundary_constraint->mach e 1.000000E+00 1.000000E+00 1.000000E+00 9.00000E+100\n", - " 2 traj.phases.phase0->final_boundary_constraint->gam e 0.000000E+00 3.443217E-27 0.000000E+00 9.00000E+100\n", - " 3 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.552810E-12 0.000000E+00 9.00000E+100\n", - " 4 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.046439E-11 0.000000E+00 9.00000E+100\n", - " 5 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.848173E-11 0.000000E+00 9.00000E+100\n", - " 6 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.610680E-11 0.000000E+00 9.00000E+100\n", - " 7 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 -2.665200E-12 0.000000E+00 9.00000E+100\n", - " 8 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.397515E-11 0.000000E+00 9.00000E+100\n", - " 9 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.344246E-11 0.000000E+00 9.00000E+100\n", - " 10 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.008652E-12 0.000000E+00 9.00000E+100\n", - " 11 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 9.233801E-11 0.000000E+00 9.00000E+100\n", - " 12 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.027775E-11 0.000000E+00 9.00000E+100\n", - " 13 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.950600E-13 0.000000E+00 9.00000E+100\n", - " 14 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.768393E-11 0.000000E+00 9.00000E+100\n", - " 15 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.872022E-11 0.000000E+00 9.00000E+100\n", - " 16 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.809246E-11 0.000000E+00 9.00000E+100\n", - " 17 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.754079E-11 0.000000E+00 9.00000E+100\n", - " 18 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 5.477482E-11 0.000000E+00 9.00000E+100\n", - " 19 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.055354E-11 0.000000E+00 9.00000E+100\n", - " 20 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.418264E-11 0.000000E+00 9.00000E+100\n", - " 21 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.516554E-12 0.000000E+00 9.00000E+100\n", - " 22 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.990013E-11 0.000000E+00 9.00000E+100\n", - " 23 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 1.710236E-10 0.000000E+00 9.00000E+100\n", - " 24 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.944973E-10 0.000000E+00 9.00000E+100\n", - " 25 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 4.195268E-10 0.000000E+00 9.00000E+100\n", - " 26 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.904603E-10 0.000000E+00 9.00000E+100\n", - " 27 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.109923E-10 0.000000E+00 9.00000E+100\n", - " 28 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.730646E-10 0.000000E+00 9.00000E+100\n", - " 29 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 3.910083E-11 0.000000E+00 9.00000E+100\n", - " 30 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 2.625019E-11 0.000000E+00 9.00000E+100\n", - " 31 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 6.908494E-12 0.000000E+00 9.00000E+100\n", - " 32 traj.phase0.collocation_constraint.defects:r e 0.000000E+00 -8.581599E-14 0.000000E+00 9.00000E+100\n", - " 33 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 7.704140E-12 0.000000E+00 9.00000E+100\n", - " 34 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.113076E-10 0.000000E+00 9.00000E+100\n", - " 35 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.244031E-10 0.000000E+00 9.00000E+100\n", - " 36 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.474074E-10 0.000000E+00 9.00000E+100\n", - " 37 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.455747E-10 0.000000E+00 9.00000E+100\n", - " 38 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -7.867488E-12 0.000000E+00 9.00000E+100\n", - " 39 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 9.528717E-11 0.000000E+00 9.00000E+100\n", - " 40 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -4.757884E-11 0.000000E+00 9.00000E+100\n", - " 41 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 9.949985E-10 0.000000E+00 9.00000E+100\n", - " 42 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 4.319985E-10 0.000000E+00 9.00000E+100\n", - " 43 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -3.674005E-10 0.000000E+00 9.00000E+100\n", - " 44 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -2.405882E-10 0.000000E+00 9.00000E+100\n", - " 45 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.656754E-10 0.000000E+00 9.00000E+100\n", - " 46 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.359499E-11 0.000000E+00 9.00000E+100\n", - " 47 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.475263E-10 0.000000E+00 9.00000E+100\n", - " 48 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -6.480640E-12 0.000000E+00 9.00000E+100\n", - " 49 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.174606E-12 0.000000E+00 9.00000E+100\n", - " 50 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 5.122334E-11 0.000000E+00 9.00000E+100\n", - " 51 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 -1.826693E-11 0.000000E+00 9.00000E+100\n", - " 52 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.114736E-10 0.000000E+00 9.00000E+100\n", - " 53 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 4.226978E-10 0.000000E+00 9.00000E+100\n", - " 54 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.908801E-10 0.000000E+00 9.00000E+100\n", - " 55 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.645522E-10 0.000000E+00 9.00000E+100\n", - " 56 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 6.303746E-10 0.000000E+00 9.00000E+100\n", - " 57 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.153195E-09 0.000000E+00 9.00000E+100\n", - " 58 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.224957E-09 0.000000E+00 9.00000E+100\n", - " 59 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.107411E-10 0.000000E+00 9.00000E+100\n", - " 60 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.910082E-11 0.000000E+00 9.00000E+100\n", - " 61 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 1.813936E-11 0.000000E+00 9.00000E+100\n", - " 62 traj.phase0.collocation_constraint.defects:h e 0.000000E+00 2.367602E-13 0.000000E+00 9.00000E+100\n", - " 63 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.453280E-12 0.000000E+00 9.00000E+100\n", - " 64 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.836046E-11 0.000000E+00 9.00000E+100\n", - " 65 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 7.905250E-11 0.000000E+00 9.00000E+100\n", - " 66 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.911224E-11 0.000000E+00 9.00000E+100\n", - " 67 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.052043E-12 0.000000E+00 9.00000E+100\n", - " 68 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.138425E-11 0.000000E+00 9.00000E+100\n", - " 69 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.299781E-11 0.000000E+00 9.00000E+100\n", - " 70 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.509601E-11 0.000000E+00 9.00000E+100\n", - " 71 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.823833E-11 0.000000E+00 9.00000E+100\n", - " 72 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 -3.277984E-12 0.000000E+00 9.00000E+100\n", - " 73 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.687704E-13 0.000000E+00 9.00000E+100\n", - " 74 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.142828E-11 0.000000E+00 9.00000E+100\n", - " 75 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 8.973326E-12 0.000000E+00 9.00000E+100\n", - " 76 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.249802E-11 0.000000E+00 9.00000E+100\n", - " 77 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.787703E-11 0.000000E+00 9.00000E+100\n", - " 78 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.120084E-11 0.000000E+00 9.00000E+100\n", - " 79 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.920162E-11 0.000000E+00 9.00000E+100\n", - " 80 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.611434E-11 0.000000E+00 9.00000E+100\n", - " 81 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 3.303598E-12 0.000000E+00 9.00000E+100\n", - " 82 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 2.241654E-11 0.000000E+00 9.00000E+100\n", - " 83 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.751343E-10 0.000000E+00 9.00000E+100\n", - " 84 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 6.500658E-10 0.000000E+00 9.00000E+100\n", - " 85 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.129387E-09 0.000000E+00 9.00000E+100\n", - " 86 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 9.507006E-10 0.000000E+00 9.00000E+100\n", - " 87 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 4.210537E-10 0.000000E+00 9.00000E+100\n", - " 88 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 6.680607E-11 0.000000E+00 9.00000E+100\n", - " 89 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.117415E-10 0.000000E+00 9.00000E+100\n", - " 90 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 5.824569E-12 0.000000E+00 9.00000E+100\n", - " 91 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 6.248477E-13 0.000000E+00 9.00000E+100\n", - " 92 traj.phase0.collocation_constraint.defects:v e 0.000000E+00 1.193594E-11 0.000000E+00 9.00000E+100\n", - " 93 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 6.057834E-14 0.000000E+00 9.00000E+100\n", - " 94 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.385452E-12 0.000000E+00 9.00000E+100\n", - " 95 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.471362E-11 0.000000E+00 9.00000E+100\n", - " 96 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 8.446511E-12 0.000000E+00 9.00000E+100\n", - " 97 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 2.128199E-12 0.000000E+00 9.00000E+100\n", - " 98 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.899771E-11 0.000000E+00 9.00000E+100\n", - " 99 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.353903E-11 0.000000E+00 9.00000E+100\n", - " 100 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 9.199743E-12 0.000000E+00 9.00000E+100\n", - " 101 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 2.889265E-11 0.000000E+00 9.00000E+100\n", - " 102 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -7.725557E-13 0.000000E+00 9.00000E+100\n", - " 103 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.971730E-12 0.000000E+00 9.00000E+100\n", - " 104 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.385422E-11 0.000000E+00 9.00000E+100\n", - " 105 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.190208E-12 0.000000E+00 9.00000E+100\n", - " 106 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.797238E-12 0.000000E+00 9.00000E+100\n", - " 107 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.365858E-11 0.000000E+00 9.00000E+100\n", - " 108 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -8.678590E-12 0.000000E+00 9.00000E+100\n", - " 109 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.377760E-11 0.000000E+00 9.00000E+100\n", - " 110 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -6.635415E-12 0.000000E+00 9.00000E+100\n", - " 111 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -8.489688E-13 0.000000E+00 9.00000E+100\n", - " 112 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -5.951590E-12 0.000000E+00 9.00000E+100\n", - " 113 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.142833E-11 0.000000E+00 9.00000E+100\n", - " 114 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.210596E-10 0.000000E+00 9.00000E+100\n", - " 115 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -2.511338E-10 0.000000E+00 9.00000E+100\n", - " 116 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -1.607014E-10 0.000000E+00 9.00000E+100\n", - " 117 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -9.519070E-11 0.000000E+00 9.00000E+100\n", - " 118 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -3.159547E-11 0.000000E+00 9.00000E+100\n", - " 119 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 -4.258993E-11 0.000000E+00 9.00000E+100\n", - " 120 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 4.074534E-12 0.000000E+00 9.00000E+100\n", - " 121 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 3.332733E-13 0.000000E+00 9.00000E+100\n", - " 122 traj.phase0.collocation_constraint.defects:gam e 0.000000E+00 7.864171E-14 0.000000E+00 9.00000E+100\n", - " 123 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -8.935973E-15 0.000000E+00 9.00000E+100\n", - " 124 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -6.236026E-14 0.000000E+00 9.00000E+100\n", - " 125 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.938251E-13 0.000000E+00 9.00000E+100\n", - " 126 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.395569E-13 0.000000E+00 9.00000E+100\n", - " 127 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.072700E-14 0.000000E+00 9.00000E+100\n", - " 128 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.426505E-14 0.000000E+00 9.00000E+100\n", - " 129 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.007300E-14 0.000000E+00 9.00000E+100\n", - " 130 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.527459E-14 0.000000E+00 9.00000E+100\n", - " 131 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.050448E-13 0.000000E+00 9.00000E+100\n", - " 132 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.392197E-12 0.000000E+00 9.00000E+100\n", - " 133 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.110762E-12 0.000000E+00 9.00000E+100\n", - " 134 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 3.879678E-13 0.000000E+00 9.00000E+100\n", - " 135 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.070784E-14 0.000000E+00 9.00000E+100\n", - " 136 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -5.039774E-14 0.000000E+00 9.00000E+100\n", - " 137 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.008168E-14 0.000000E+00 9.00000E+100\n", - " 138 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.805121E-14 0.000000E+00 9.00000E+100\n", - " 139 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -2.395377E-14 0.000000E+00 9.00000E+100\n", - " 140 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.099246E-15 0.000000E+00 9.00000E+100\n", - " 141 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.740950E-15 0.000000E+00 9.00000E+100\n", - " 142 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.501397E-13 0.000000E+00 9.00000E+100\n", - " 143 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 5.507644E-14 0.000000E+00 9.00000E+100\n", - " 144 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.717767E-13 0.000000E+00 9.00000E+100\n", - " 145 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -4.366942E-13 0.000000E+00 9.00000E+100\n", - " 146 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -3.716139E-15 0.000000E+00 9.00000E+100\n", - " 147 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.227762E-13 0.000000E+00 9.00000E+100\n", - " 148 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 -5.891756E-13 0.000000E+00 9.00000E+100\n", - " 149 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 4.507303E-13 0.000000E+00 9.00000E+100\n", - " 150 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.074328E-13 0.000000E+00 9.00000E+100\n", - " 151 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 1.080362E-14 0.000000E+00 9.00000E+100\n", - " 152 traj.phase0.collocation_constraint.defects:m e 0.000000E+00 7.082094E-15 0.000000E+00 9.00000E+100\n", - " 153 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.346861E-12 0.000000E+00 9.00000E+100\n", - " 154 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -8.979073E-13 0.000000E+00 9.00000E+100\n", - " 155 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 156 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 157 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 6.734305E-13 0.000000E+00 9.00000E+100\n", - " 158 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", - " 159 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", - " 160 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 0.000000E+00 0.000000E+00 9.00000E+100\n", - " 161 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -8.417881E-13 0.000000E+00 9.00000E+100\n", - " 162 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.346861E-12 0.000000E+00 9.00000E+100\n", - " 163 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", - " 164 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.683576E-12 0.000000E+00 9.00000E+100\n", - " 165 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", - " 166 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 1.683576E-12 0.000000E+00 9.00000E+100\n", - " 167 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", - " 168 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -9.991849E-13 0.000000E+00 9.00000E+100\n", - " 169 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.297003E-13 0.000000E+00 9.00000E+100\n", - " 170 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 2.328947E-12 0.000000E+00 9.00000E+100\n", - " 171 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 9.996233E-13 0.000000E+00 9.00000E+100\n", - " 172 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", - " 173 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 3.367152E-13 0.000000E+00 9.00000E+100\n", - " 174 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", - " 175 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -3.367152E-13 0.000000E+00 9.00000E+100\n", - " 176 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -2.693722E-12 0.000000E+00 9.00000E+100\n", - " 177 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 5.162967E-12 0.000000E+00 9.00000E+100\n", - " 178 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -4.040583E-12 0.000000E+00 9.00000E+100\n", - " 179 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -6.734305E-13 0.000000E+00 9.00000E+100\n", - " 180 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -8.979073E-13 0.000000E+00 9.00000E+100\n", - " 181 traj.phase0.continuity_comp.defect_control_rates:alpha_rate e 0.000000E+00 -1.795815E-12 0.000000E+00 9.00000E+100\n", - " 182 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.000000E-03 1.000000E+00 l 9.00000E+100\n", - " 183 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", - " 184 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.305963E-03 1.000000E+00 9.00000E+100\n", - " 185 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.305963E-03 1.000000E+00 9.00000E+100\n", - " 186 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.999990E-03 1.000000E+00 l 9.00000E+100\n", - " 187 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.698298E-03 1.000000E+00 9.00000E+100\n", - " 188 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.698298E-03 1.000000E+00 9.00000E+100\n", - " 189 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.613850E-02 1.000000E+00 9.00000E+100\n", - " 190 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.409442E-02 1.000000E+00 9.00000E+100\n", - " 191 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.409442E-02 1.000000E+00 9.00000E+100\n", - " 192 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.651376E-02 1.000000E+00 9.00000E+100\n", - " 193 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332236E-01 1.000000E+00 9.00000E+100\n", - " 194 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.332236E-01 1.000000E+00 9.00000E+100\n", - " 195 traj.phases.phase0->path_constraint->h i 5.000000E-03 1.783690E-01 1.000000E+00 9.00000E+100\n", - " 196 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208522E-01 1.000000E+00 9.00000E+100\n", - " 197 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.208522E-01 1.000000E+00 9.00000E+100\n", - " 198 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.603270E-01 1.000000E+00 9.00000E+100\n", - " 199 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972060E-01 1.000000E+00 9.00000E+100\n", - " 200 traj.phases.phase0->path_constraint->h i 5.000000E-03 2.972060E-01 1.000000E+00 9.00000E+100\n", - " 201 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.318895E-01 1.000000E+00 9.00000E+100\n", - " 202 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644599E-01 1.000000E+00 9.00000E+100\n", - " 203 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.644599E-01 1.000000E+00 9.00000E+100\n", - " 204 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.946819E-01 1.000000E+00 9.00000E+100\n", - " 205 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210622E-01 1.000000E+00 9.00000E+100\n", - " 206 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.210622E-01 1.000000E+00 9.00000E+100\n", - " 207 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.411844E-01 1.000000E+00 9.00000E+100\n", - " 208 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.525162E-01 1.000000E+00 9.00000E+100\n", - " 209 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.525162E-01 1.000000E+00 9.00000E+100\n", - " 210 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.533390E-01 1.000000E+00 9.00000E+100\n", - " 211 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.442933E-01 1.000000E+00 9.00000E+100\n", - " 212 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.442933E-01 1.000000E+00 9.00000E+100\n", - " 213 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.276417E-01 1.000000E+00 9.00000E+100\n", - " 214 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.074220E-01 1.000000E+00 9.00000E+100\n", - " 215 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.074220E-01 1.000000E+00 9.00000E+100\n", - " 216 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.876936E-01 1.000000E+00 9.00000E+100\n", - " 217 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.714806E-01 1.000000E+00 9.00000E+100\n", - " 218 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.714806E-01 1.000000E+00 9.00000E+100\n", - " 219 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.607122E-01 1.000000E+00 9.00000E+100\n", - " 220 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554300E-01 1.000000E+00 9.00000E+100\n", - " 221 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.554300E-01 1.000000E+00 9.00000E+100\n", - " 222 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.549925E-01 1.000000E+00 9.00000E+100\n", - " 223 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581038E-01 1.000000E+00 9.00000E+100\n", - " 224 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.581038E-01 1.000000E+00 9.00000E+100\n", - " 225 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.634899E-01 1.000000E+00 9.00000E+100\n", - " 226 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701506E-01 1.000000E+00 9.00000E+100\n", - " 227 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.701506E-01 1.000000E+00 9.00000E+100\n", - " 228 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.773168E-01 1.000000E+00 9.00000E+100\n", - " 229 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.846078E-01 1.000000E+00 9.00000E+100\n", - " 230 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.846078E-01 1.000000E+00 9.00000E+100\n", - " 231 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.917981E-01 1.000000E+00 9.00000E+100\n", - " 232 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988686E-01 1.000000E+00 9.00000E+100\n", - " 233 traj.phases.phase0->path_constraint->h i 5.000000E-03 3.988686E-01 1.000000E+00 9.00000E+100\n", - " 234 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.058517E-01 1.000000E+00 9.00000E+100\n", - " 235 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.128077E-01 1.000000E+00 9.00000E+100\n", - " 236 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.128077E-01 1.000000E+00 9.00000E+100\n", - " 237 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.197735E-01 1.000000E+00 9.00000E+100\n", - " 238 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.267010E-01 1.000000E+00 9.00000E+100\n", - " 239 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.267010E-01 1.000000E+00 9.00000E+100\n", - " 240 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.334802E-01 1.000000E+00 9.00000E+100\n", - " 241 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398845E-01 1.000000E+00 9.00000E+100\n", - " 242 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.398845E-01 1.000000E+00 9.00000E+100\n", - " 243 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.456325E-01 1.000000E+00 9.00000E+100\n", - " 244 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504151E-01 1.000000E+00 9.00000E+100\n", - " 245 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.504151E-01 1.000000E+00 9.00000E+100\n", - " 246 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.539510E-01 1.000000E+00 9.00000E+100\n", - " 247 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562314E-01 1.000000E+00 9.00000E+100\n", - " 248 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.562314E-01 1.000000E+00 9.00000E+100\n", - " 249 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.574970E-01 1.000000E+00 9.00000E+100\n", - " 250 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.588005E-01 1.000000E+00 9.00000E+100\n", - " 251 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.588005E-01 1.000000E+00 9.00000E+100\n", - " 252 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.617693E-01 1.000000E+00 9.00000E+100\n", - " 253 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692202E-01 1.000000E+00 9.00000E+100\n", - " 254 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.692202E-01 1.000000E+00 9.00000E+100\n", - " 255 traj.phases.phase0->path_constraint->h i 5.000000E-03 4.845480E-01 1.000000E+00 9.00000E+100\n", - " 256 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109953E-01 1.000000E+00 9.00000E+100\n", - " 257 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.109953E-01 1.000000E+00 9.00000E+100\n", - " 258 traj.phases.phase0->path_constraint->h i 5.000000E-03 5.509613E-01 1.000000E+00 9.00000E+100\n", - " 259 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036137E-01 1.000000E+00 9.00000E+100\n", - " 260 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.036137E-01 1.000000E+00 9.00000E+100\n", - " 261 traj.phases.phase0->path_constraint->h i 5.000000E-03 6.660310E-01 1.000000E+00 9.00000E+100\n", - " 262 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332037E-01 1.000000E+00 9.00000E+100\n", - " 263 traj.phases.phase0->path_constraint->h i 5.000000E-03 7.332037E-01 1.000000E+00 9.00000E+100\n", - " 264 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.001140E-01 1.000000E+00 9.00000E+100\n", - " 265 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626012E-01 1.000000E+00 9.00000E+100\n", - " 266 traj.phases.phase0->path_constraint->h i 5.000000E-03 8.626012E-01 1.000000E+00 9.00000E+100\n", - " 267 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.171109E-01 1.000000E+00 9.00000E+100\n", - " 268 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605109E-01 1.000000E+00 9.00000E+100\n", - " 269 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.605109E-01 1.000000E+00 9.00000E+100\n", - " 270 traj.phases.phase0->path_constraint->h i 5.000000E-03 9.894524E-01 1.000000E+00 9.00000E+100\n", - " 271 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.000084E-01 1.800000E+00 9.00000E+100\n", - " 272 traj.phases.phase0->path_constraint->mach i 1.000000E-01 4.928085E-01 1.800000E+00 9.00000E+100\n", - " 273 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888646E-01 1.800000E+00 9.00000E+100\n", - " 274 traj.phases.phase0->path_constraint->mach i 1.000000E-01 5.888646E-01 1.800000E+00 9.00000E+100\n", - " 275 traj.phases.phase0->path_constraint->mach i 1.000000E-01 6.907438E-01 1.800000E+00 9.00000E+100\n", - " 276 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911845E-01 1.800000E+00 9.00000E+100\n", - " 277 traj.phases.phase0->path_constraint->mach i 1.000000E-01 7.911845E-01 1.800000E+00 9.00000E+100\n", - " 278 traj.phases.phase0->path_constraint->mach i 1.000000E-01 8.675368E-01 1.800000E+00 9.00000E+100\n", - " 279 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082374E-01 1.800000E+00 9.00000E+100\n", - " 280 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.082374E-01 1.800000E+00 9.00000E+100\n", - " 281 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.235861E-01 1.800000E+00 9.00000E+100\n", - " 282 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290630E-01 1.800000E+00 9.00000E+100\n", - " 283 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.290630E-01 1.800000E+00 9.00000E+100\n", - " 284 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.318632E-01 1.800000E+00 9.00000E+100\n", - " 285 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335832E-01 1.800000E+00 9.00000E+100\n", - " 286 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.335832E-01 1.800000E+00 9.00000E+100\n", - " 287 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.348393E-01 1.800000E+00 9.00000E+100\n", - " 288 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351639E-01 1.800000E+00 9.00000E+100\n", - " 289 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.351639E-01 1.800000E+00 9.00000E+100\n", - " 290 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.342080E-01 1.800000E+00 9.00000E+100\n", - " 291 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323579E-01 1.800000E+00 9.00000E+100\n", - " 292 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.323579E-01 1.800000E+00 9.00000E+100\n", - " 293 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.308141E-01 1.800000E+00 9.00000E+100\n", - " 294 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336777E-01 1.800000E+00 9.00000E+100\n", - " 295 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.336777E-01 1.800000E+00 9.00000E+100\n", - " 296 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.466231E-01 1.800000E+00 9.00000E+100\n", - " 297 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.729274E-01 1.800000E+00 9.00000E+100\n", - " 298 traj.phases.phase0->path_constraint->mach i 1.000000E-01 9.729274E-01 1.800000E+00 9.00000E+100\n", - " 299 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.012135E+00 1.800000E+00 9.00000E+100\n", - " 300 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060859E+00 1.800000E+00 9.00000E+100\n", - " 301 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.060859E+00 1.800000E+00 9.00000E+100\n", - " 302 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.115285E+00 1.800000E+00 9.00000E+100\n", - " 303 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169708E+00 1.800000E+00 9.00000E+100\n", - " 304 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.169708E+00 1.800000E+00 9.00000E+100\n", - " 305 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.218994E+00 1.800000E+00 9.00000E+100\n", - " 306 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260699E+00 1.800000E+00 9.00000E+100\n", - " 307 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.260699E+00 1.800000E+00 9.00000E+100\n", - " 308 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.294096E+00 1.800000E+00 9.00000E+100\n", - " 309 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320515E+00 1.800000E+00 9.00000E+100\n", - " 310 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.320515E+00 1.800000E+00 9.00000E+100\n", - " 311 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.341657E+00 1.800000E+00 9.00000E+100\n", - " 312 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359367E+00 1.800000E+00 9.00000E+100\n", - " 313 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.359367E+00 1.800000E+00 9.00000E+100\n", - " 314 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.375210E+00 1.800000E+00 9.00000E+100\n", - " 315 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390239E+00 1.800000E+00 9.00000E+100\n", - " 316 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.390239E+00 1.800000E+00 9.00000E+100\n", - " 317 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.405197E+00 1.800000E+00 9.00000E+100\n", - " 318 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420397E+00 1.800000E+00 9.00000E+100\n", - " 319 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.420397E+00 1.800000E+00 9.00000E+100\n", - " 320 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.435998E+00 1.800000E+00 9.00000E+100\n", - " 321 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451969E+00 1.800000E+00 9.00000E+100\n", - " 322 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.451969E+00 1.800000E+00 9.00000E+100\n", - " 323 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.468249E+00 1.800000E+00 9.00000E+100\n", - " 324 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484783E+00 1.800000E+00 9.00000E+100\n", - " 325 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.484783E+00 1.800000E+00 9.00000E+100\n", - " 326 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.501552E+00 1.800000E+00 9.00000E+100\n", - " 327 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518638E+00 1.800000E+00 9.00000E+100\n", - " 328 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.518638E+00 1.800000E+00 9.00000E+100\n", - " 329 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.536181E+00 1.800000E+00 9.00000E+100\n", - " 330 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554412E+00 1.800000E+00 9.00000E+100\n", - " 331 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.554412E+00 1.800000E+00 9.00000E+100\n", - " 332 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.573581E+00 1.800000E+00 9.00000E+100\n", - " 333 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593889E+00 1.800000E+00 9.00000E+100\n", - " 334 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.593889E+00 1.800000E+00 9.00000E+100\n", - " 335 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.615443E+00 1.800000E+00 9.00000E+100\n", - " 336 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637976E+00 1.800000E+00 9.00000E+100\n", - " 337 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.637976E+00 1.800000E+00 9.00000E+100\n", - " 338 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.660939E+00 1.800000E+00 9.00000E+100\n", - " 339 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683017E+00 1.800000E+00 9.00000E+100\n", - " 340 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.683017E+00 1.800000E+00 9.00000E+100\n", - " 341 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.702444E+00 1.800000E+00 9.00000E+100\n", - " 342 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716557E+00 1.800000E+00 9.00000E+100\n", - " 343 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716557E+00 1.800000E+00 9.00000E+100\n", - " 344 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.722340E+00 1.800000E+00 9.00000E+100\n", - " 345 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716752E+00 1.800000E+00 9.00000E+100\n", - " 346 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.716752E+00 1.800000E+00 9.00000E+100\n", - " 347 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.696700E+00 1.800000E+00 9.00000E+100\n", - " 348 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634730E+00 1.800000E+00 9.00000E+100\n", - " 349 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.634730E+00 1.800000E+00 9.00000E+100\n", - " 350 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.553465E+00 1.800000E+00 9.00000E+100\n", - " 351 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458861E+00 1.800000E+00 9.00000E+100\n", - " 352 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.458861E+00 1.800000E+00 9.00000E+100\n", - " 353 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.357867E+00 1.800000E+00 9.00000E+100\n", - " 354 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256851E+00 1.800000E+00 9.00000E+100\n", - " 355 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.256851E+00 1.800000E+00 9.00000E+100\n", - " 356 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.162028E+00 1.800000E+00 9.00000E+100\n", - " 357 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081335E+00 1.800000E+00 9.00000E+100\n", - " 358 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.081335E+00 1.800000E+00 9.00000E+100\n", - " 359 traj.phases.phase0->path_constraint->mach i 1.000000E-01 1.024103E+00 1.800000E+00 9.00000E+100\n", - "\n", - "\n", - " Exit Status\n", - " Inform Description\n", - " 0 Solve Succeeded\n", - "--------------------------------------------------------------------------------\n", - "\n", - "coloring_files_fd_pc\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAANaCAYAAABGOA9mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABnkElEQVR4nO3deXxUVZr/8W9YsrFKIIAYULBBFGwolUUUUESQaKP+wBEUtdHWEWVabadtURpwX3pQhtG23Wi3Vmy13eLG4k5UnKC27S4iuKCALLIOy/n9Ubm39qQqSeWeuvfzfr14kVRVkpPKSU499zznefKMMUYAAMBKTbweAAAASI2FGgAAi7FQAwBgMRZqAAAsxkINAIDFWKgBALAYCzUAABZjoQYAwGIs1AAAWIyF2iJ5eXlp/XvllVdq/VzXXXednnzyyXqPZ+bMmWk97sILL6zX12oIw4cPV58+fdJ6bLrfW7YsX75cF154oXr27KmioiIVFxfroIMO0pVXXqlvv/024883c+ZM5eXlNfg4hw8fruHDhzf4503Xzp07dcABB+iGG25wb3vvvfdUXl6url27qqioSO3atdPgwYP14IMPpvwcs2fPVt++fVVUVKS2bdvq8MMP15IlS2Ied+utt+rkk0/Wfvvtp7y8vEb7vj/77DNdeumlOuSQQ9S2bVu1a9dOQ4YM0WOPPZbw2G+++UYXXXSRhg0bprZt2yovL09//etfEx63adMmXXvttRo+fLg6deqkli1bqm/fvrrxxhu1ffv2mMcuWrRILVu2rNO8Q+No5vUAEFFZWRnz/tVXX62XX35Zixcvjrn9wAMPrPVzXXfddRo3bpxOPPHEhhyib1RWVmqfffbx5Gs/++yzOvXUU9W+fXtdeOGF6t+/v/Ly8vTPf/5T9957ryoqKrRs2TJPxhbv9ttv9/zrr1+/XlOnTnVv27Bhg8rKyjRhwgR16dJFW7Zs0UMPPaRJkyZpxYoVuvLKK93H7t69WyeddJLeeOMN/f73v9fhhx+uLVu26H//93+1ZcuWmK91xx13qEWLFjr66KP1zDPPNNr3+NJLL6miokKTJk3SYYcdpl27dmn+/PkaP368Zs2apT/+8Y/uY7/44gs99NBD6tevn8aMGaOHH3446edcuXKlbr31Vk2aNEmXXHKJWrZsqddff10zZ87UggULtGDBAveF3YgRIzRgwABNmzZN9913X6N8z8iQgbXOPPNM06JFizp9bIsWLcyZZ55Zr68vycyYMSOtx11wwQX1+loNYdiwYeaggw7yehg1Wr58uWnRooXp37+/2bBhQ8L9e/bsMY8//njGn3fGjBmmIX+dt2zZ0mCfq6527txpunTpYv7whz+k9fiBAweasrKymNtuueUW06RJE1NZWVnrx+/evdt9+6CDDjLDhg3LaLx1tWbNGrNnz56E28vLy01xcbHZvn27e1v0GJcuXWokmXnz5iV87ObNm83mzZsTbr/55puNJPP666/H3P7YY4+Zpk2bmpUrV9bjO0G2cOk7x/z000+aMmWKunTpovz8fHXv3l1XXHGFduzY4T4mLy9PW7Zs0X333edeLncu461Zs0ZTpkzRgQceqJYtW6q0tFRHH320Xn/99QYb4/bt2/W73/1O/fr1U5s2bdxLk0899VTCY/fs2aO5c+eqX79+7mXJQYMG6emnn455zE033aQDDjhABQUFKi0t1RlnnKFvvvkm6dd//fXXNWjQIBUVFalLly6aPn26du/eHfOY+Evf6T4vK1asUF5env70pz9p9uzZ2m+//dSyZUsNHjxYb731Vq3PzezZs7VlyxbdfvvtatOmTcL9eXl5Ovnkk2Nuu/fee/XLX/5ShYWFateunU466SR9/PHHtX6tdJ83Z8vgtdde0+GHH67i4mJNnjzZvS/6EnCm3/9dd92lnj17qqCgQAceeKD+9re/6ayzztK+++5b6/iffvppffvtt5o0aVKtj5Wk9u3bq1mz2IuEc+bM0dChQzVo0KBaP75Jk7r9OTTGaMyYMSopKdHKlSvd27du3aqDDjpIvXv3Toje48edbNtiwIAB2rp1q3766aeMx9iiRQu1aNEi6eeUpFWrVsXcfsIJJ6hly5a666670vr8aFws1Dlk+/btOuqoo3T//ffrkksuUUVFhU4//XTddNNNMX/cKysrVVRUpDFjxqiyslKVlZXuJUznl37GjBmqqKjQvHnz1L17dw0fPjytve907NixQz/99JMuvfRSPfnkk3r44Yd1xBFH6OSTT9b9998f89izzjpLv/3tb3XYYYdp/vz5euSRR/SrX/1KK1ascB9z/vnn67LLLtPIkSP19NNP6+qrr9YLL7ygww8/XGvXro35fKtXr9app56q0047TU899ZTGjRuna665Rr/97W9rHHOmz8ttt92mBQsW6NZbb9VDDz2kLVu2aMyYMdq4cWONX+ell15Sx44d01o4JOn666/X2WefrYMOOkhPPPGE5syZow8++ECDBw/W559/XuPHZvK8ff/99zr99NM1ceJEPffcc5oyZUqNnzud7//OO+/Uueeeq4MPPlhPPPGErrzySs2aNSvteVZRUaHS0tKUWz179uzRrl27tGbNGt1+++168cUXddlll7n3r1q1SitWrFDfvn01bdo0dezYUc2aNdNBBx3UoJd48/Ly9MADD6i4uFinnHKKdu7cKUmaMmWKvvrqKz366KNJF83avPzyy+rQoYNKS0sbbKzONtpBBx0Uc3t+fr4OP/xwVVRUNNjXQgPyOqRHavGXvu+44w4jyTz66KMxj7vxxhuNJPPSSy+5t6V76XvXrl1m586dZsSIEeakk06KuU8NdOnb+Rpnn3226d+/v3v7a6+9ZiSZK664IuXHfvzxx0aSmTJlSsztb7/9tpFkpk2b5t42bNgwI8k89dRTMY/9zW9+Y5o0aWK+/vrrtL+3VM/LV199ZSSZvn37ml27drm3v/POO0aSefjhh1N+TmOMKSwsNIMGDarxMY7169eboqIiM2bMmJjbV65caQoKCszEiRPd2+IvfdfleVu0aFHCGIYNGxZzCTjd73/37t2mU6dOZuDAgTGf7+uvvzbNmzc33bp1q/X77927txk9enTK+8877zwjyUgy+fn55vbbb4+5v7Ky0kgyrVu3NgceeKB59NFHzYsvvmjGjRtnJJk777wz5eeuy6XvN954wzRr1sxcdNFF5t577zWSzN13353R53DcddddRpKZM2dOysfUdOk7mffff98UFRUl/J47rrjiCtOkSZOkl8zhLSLqHLJ48WK1aNFC48aNi7n9rLPOkhTO3kzHHXfcoVAopMLCQjVr1kzNmzfXokWL0rqcmq6///3vGjJkiFq2bOl+jXvuuSfmazz//POSpAsuuCDl53n55ZclRb5Hx4ABA9S7d++E77lVq1b61a9+FXPbxIkTtWfPHr322ms1jjmT56W8vFxNmzZ13z/44IMlSV9//XWNXyMTlZWV2rZtW8L3XlZWpqOPPrrGn3emz9tee+2lo48+Ou2x1fb9f/rpp1q9erVOOeWUmI/r2rWrhgwZktbX+O6772qMJqdNm6alS5eqoqJCkydP1oUXXqg//elP7v179uyRFL4S9dxzz2n8+PE69thj9eijjyoUCumqq65K75tN05AhQ3Tttdfq1ltv1fnnn6/TTz9dZ599dsaf5/nnn9cFF1ygcePGxSTR1ceKFSt0/PHHq6ysTHfffXfSx5SWlmrPnj1avXp1g3xNNBwW6hyybt06derUKWE/q7S0VM2aNdO6detq/RyzZ8/W+eefr4EDB+rxxx/XW2+9paVLl2r06NHatm1bg4zziSee0CmnnKIuXbrowQcfVGVlpZYuXarJkyfHHA1Zs2aNmjZtqk6dOqX8XM731Llz54T79t5774TvuWPHjgmPcz5/Tc9Pps9LSUlJzPsFBQWSVOtz2LVrV3311Vc1PsaR6fden49N9ria1Pb9O58/2c8j2W3JbNu2TYWFhSnv79q1qw499FCNGTNGf/7zn3Xuuefq8ssv15o1a2LGeMABB6hbt27ux+Xl5WnUqFH65ptv9OOPP6Y1lnSddtppys/P144dO/Sf//mfGX/8iy++qJNPPlkjR47UQw891CBH7r7++msdddRRatasmRYtWqR27dolfZzzXDfU3wE0HI5n5ZCSkhK9/fbbMsbE/AL/+OOP2rVrl9q3b1/r53jwwQc1fPhw/fnPf465/eeff26wcT744IPab7/9NH/+/JhxRie8SVKHDh20e/durV69OuVC4fyx/f777xOOU3333XcJ3/MPP/yQ8DmcCCF+cYkfc7afF0kaNWqU5s6dq7feeqvWfero7z1esu891cem87w19Bls5+vX9POoTfv27WMSqWozYMAA3XHHHVq+fLk6dOigHj16qLi4OOljjTGS6p5Alszu3bt12mmnaa+99lJBQYHOPvtsvfnmm8rPz0/r41988UWdeOKJGjZsmB5//PG0P64mX3/9tYYPHy5jjF555ZUajyQ6z3U6f0fQuIioc8iIESO0efPmhEImToLWiBEj3NsKCgqSvjLOy8tzox/HBx98kHCGuz7y8vKUn58f88d/9erVCVnfxx13nCQlLI7RnMux8cUsli5dqo8//jjme5bCC2t0xrgk/e1vf1OTJk00dOjQGsec7edFki6++GK1aNFCU6ZMSZp4ZozRP/7xD0nS4MGDVVRUlPC9f/PNN1q8eHHC9x4t0+etofXq1UudOnXSo48+GnP7ypUrEwqNpHLAAQfoyy+/TPtrvvzyy2rSpIm6d+8uSWrWrJnGjh2rjz/+OCY50RijF154QT169GjQRWnGjBl6/fXX9dBDD2n+/Pl6//33046qX3rpJZ144ok64ogj9OSTTybMxbpYuXKlhg8frt27d2vx4sUxVxWSWb58uUpKStK+4oHGQ0SdQ8444wzddtttOvPMM91s1jfeeEPXXXedxowZo2OOOcZ9bN++ffXKK6/omWeeUefOndWqVSv16tVLxx9/vK6++mrNmDFDw4YN06effqqrrrpK++23n3bt2lXnsUUvyscff7yeeOIJTZkyRePGjdOqVat09dVXq3PnzjGZykceeaQmTZqka665Rj/88IOOP/54FRQUaNmyZSouLtbUqVPVq1cvnXvuuZo7d66aNGmi4447TitWrND06dNVVlamiy++OGYcJSUlOv/887Vy5Ur17NlTzz33nO666y6df/756tq1a8rxZ+t5ibfffvvpkUce0b/927+pX79+bsETSfroo4907733yhijk046SW3bttX06dM1bdo0nXHGGZowYYLWrVunWbNmqbCwUDNmzEj5dTJ93hpakyZNNGvWLJ133nkaN26cJk+erA0bNmjWrFnq3LlzWpHs8OHDddVVV2nr1q0xkfG5556r1q1ba8CAAerYsaPWrl2rv//975o/f77+8z//Ux06dHAfe/XVV+v555/X6NGjNXPmTLVu3Vp333233n///YQXEe+++667oG/atEnGGLc62GGHHVbjQrdgwQJdf/31mj59uvsi6Prrr9ell16q4cOH66STTkr5sW+88YZOPPFEderUSdOmTdN7770Xc/+BBx6o1q1bu+87Y1q+fLk77pYtW0qSm7/y448/6qijjtL333+ve+65Rz/++GPMZf599tknIbp+6623NGzYsKxUuEM9eZjIhlokK3iybt068+///u+mc+fOplmzZqZbt27m8ssvjymKYIwx7733nhkyZIgpLi42ktwM1h07dphLL73UdOnSxRQWFppQKGSefPJJc+aZZyZk4iqNrO8tW7YYSeZ3v/tdzO033HCD2XfffU1BQYHp3bu3ueuuu5IW5di9e7e55ZZbTJ8+fUx+fr5p06aNGTx4sHnmmWdiHnPjjTeanj17mubNm5v27dub008/3axatSrmczkFT1555RVz6KGHmoKCAtO5c2czbdo0s3Pnzhq/t3SfFyfr+eabb054LtJ5vhxffvmlmTJlitl///1NQUGBKSoqMgceeKC55JJLzFdffRXz2LvvvtscfPDB7vMzduxY869//SvmMame20yet2RSZX2n+/3feeedZv/99zf5+fmmZ8+e5t577zVjx46Nyf5P5YsvvjB5eXkJpxzuvfdec+SRR5r27dubZs2ambZt25phw4aZBx54IOnn+ec//2nKy8tNq1at3Kz76PnlOPPMM90s8vh/NWVWf/fdd6a0tNQcffTRMQVJ9uzZY0444QTTtm3bhJ9pNOdnl+rfyy+/HPP4mh7rePnll2t8XPzP6YsvvjCS6lRsB9mXZ0z1Zg1QB8uWLVMoFNJtt91W69lbYMOGDerZs6dOPPFE3XnnnbU+/oQTTtCuXbvcEwLIjunTp+v+++/Xl19+mVA0Bt5joUadfPPNN3rvvfd07bXX6oMPPtDnn3+uvffe2+thwSKrV6/Wtddeq6OOOkolJSX6+uuvdcstt+iTTz7Ru+++m1B0I5kPP/xQ/fv315IlS3TYYYc1wqiDZ8OGDerevbvmzp2r0047zevhIAmSyVAnd999t8aNG6fdu3fr6aefZpFGgoKCAq1YsUJTpkzRyJEj9R//8R/q2LGjXnnllbQWaUnq06eP5s2bx9neLPrqq690+eWXa+LEiV4PBSkQUQMAYDEiagAALJYzC/XPP/+s3//+9zr22GPVoUOHhO5H0f77v/9bgwYNUvv27VVQUKCuXbvq1FNP1b/+9a+0vtZPP/2kU089VaWlpcrLy8tKT+f4rkSNId2uRV778ccfddZZZ6l9+/YqLi7W4MGD0y6P6iczZ8607qjMzp07dcABB+iGG26Iuf2dd97RqFGj1KpVK7Vs2VJHHXWU3nzzzYSPr+/v5v/93//pj3/8o/bbbz/l5+erW7duuvzyyxNqBqxfv14TJkzQXnvtpe7duydNXHv77bdVVFSUduncV155RXl5eQ3WvAbZcd111yXUmpDCJZZbtmypb7/9tvEHVU85s1CvW7dOd955p3bs2FHrwrlu3Todd9xxuvvuu/XSSy9p1qxZWrZsmQYOHKhPP/201q919dVX6x//+IduueUWVVZW6qabbmqg7wK12bFjh0aMGKFFixZpzpw5euqpp9SxY0eNHj1ar776qtfDC7zbb79d69evj6lBvXTpUg0dOlTbtm3TAw88oAceeEDbt2/XiBEjEgrG1Pd3c8KECbr55pt17rnn6rnnntM555yj2bNn69/+7d9iHve73/1Oy5Yt04MPPqipU6fq/PPPj2lZumvXLp177rn6/e9/r969e6f1vYdCIVVWVioUCqX1eHgj1UI9YsQIDRgwQNOmTWv8QdWXl2fDMrFnzx63ufqaNWsyOrNqjDEfffSRkWSmT59e62OPOeYY07t377oONS3x51MbQ7Kz0vWxdevWBvtcjttuu81IMkuWLHFv27lzpznwwAPNgAED6vQ5t2zZ0lDDa1TJzkbXR32fh507d5ouXbqYP/zhDzG3jxo1ynTs2DHm82/atMm0b9/eHH744bV+3nR/N51uWP/1X/8Vc/t1112X0D2utLTU/O1vf3PfHzlypLnsssvc96+//nrTq1evhPoDuSZX53Y21dQ58LHHHjNNmzY1K1eubNxB1VPORNR5eXn1ugzoVCuq6YzgihUrlJeXp4ULF+rjjz92v+bTTz+tZs2a6eabb3Yfu3btWjVp0kRt2rSJqVz1H//xH+rQoYNbS9gYo5tuukndunVTYWGhQqFQRmdC9+zZo7lz56pfv34qKipS27ZtNWjQoJgymXv27NFNN92kAw44QAUFBSotLdUZZ5yhb775ptbPv337dl1++eXupcQuXbroggsu0IYNG2Iet++++7oVx/r376/CwkLNmjVLUrhT1sCBA9WmTRsVFxere/fumjx5ctrfY7R//OMf6tWrlwYPHuze1qxZM51++ul65513ar1sNXz4cPXp00evvfaaDj/8cBUXF7tj2bRpky699NKY7/Wiiy7Sli1b3I/v37+/jjzyyITPu3v3bnXp0iWm73cqf/vb3zR48GC1bNlSLVu2VL9+/XTPPffEPObee+/VL3/5SxUWFqpdu3Y66aST0roEm+7PuqbnYfHixRo+fLhKSkpUVFSkrl276v/9v/+nrVu31vi1n376aX377beaNGlSzO1vvvmmhg8fHlM9rFWrVho6dKiWLFmStFZ5tHR+N52vI0ljxoyJuf3444+XJD3++OPubdu3b4/pAd2yZUu3Iczy5ct19dVX6y9/+UtGpTqTXfo+66yz1LJlS33yyScaNWqUWrRooc6dO7tbA2+99ZaOOOIItWjRQj179kzog/3Xv/5VeXl5WrBggX7961+rXbt2atGihU444QS38pijpp/pypUr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qaee0hlnnFHj5dkFCxZo9+7dNf68KisrtW3btoTnvKysTEcffXSNP69Mf9bJnod+/fopPz9f5557ru67776Ey6s1+e6771RaWppw+9SpU/XZZ5/pwgsv1LfffqtVq1bp3//93/X1119LSt5Ksi6/m8cdd5z2339/XXbZZVqwYIE2bNigF154QdOmTVPTpk1jvk6vXr30ySef6PPPP9eaNWt0zz33aP369brkkkt0yy23qF27drr99tvdDlqnnXaa1q9fn/ZzES0vLy/mcnyzZs20//77q3Pnzm7DFUlq166dSktL3eclWqq/Ec7P3JHsZ7p48WIdeOCBGjBgQMztZ511lowx7u953759dcghh2jevHnuYz7++GO98847MVtV6f6uOI466qiYbQYnOe+4446L+X11bne+/yVLluinn37SmWeeGfN19uzZo9GjR2vp0qUJl9p/9atfxbx/8MEHa/v27Rn1FS8tLdWePXtyqoiOrxfqUCikQYMG6bTTTtPLL78sY0ydM/6cPaGFCxfqiy++0IoVK9yF+u2339bmzZu1cOFCde/eXfvtt5+kcIarJHXq1Cnh8yW7Ld6aNWvUtGnTGh/rfI1k/Zz33ntv9/5UH9usWbOYbkNS+A9Pp06dEj422dcYOnSonnzySe3atUtnnHGG9tlnH/Xp00cPP/xwjd9bKiUlJUnH7PTKTdX0vrZx/vDDD/rggw/UvHnzmH+tWrWSMUZr1651Hzt58mR9++237guwhx9+WDt27EhYIOOtWbNGkmrs+Vvfn1cmH5vscT169NDChQtVWlqqCy64QD169FCPHj00Z86clF/XsW3bNhUWFibcPnnyZN1www164IEHtM8++6hr16766KOPdOmll0qSunTpkvAxdfndzM/P1/PPP6+uXbvq2GOP1V577aVx48Zp2rRp2muvvRK+TpMmTbT//vu7rSwvvfRS9e/fXxMnTtSiRYt02WWXaf78+friiy+0Zs0aXXTRRbU+B8kUFxcnPC/5+flJ52p+fr67Vx4t1d+IdH6m69atSzknnPsdkydPVmVlpT755BNJ0rx581RQUKAJEya4j8nkd0VK/J10+minut35/p1e5ePGjUv4WjfeeKOMMQn9yON7yjs5Bsla+qbi/Kwy+RivBab6eqtWrXTAAQfos88+q9PH5+fn64gjjtDChQu1zz77qFOnTurbt6/b+/aVV17RokWL3MQWKTKpkr1yW716da1nmjt06KDdu3dr9erVSX8Ro7/G999/n7BAfPfddzX22y0pKdGuXbu0Zs2amMXaGKPVq1cn1FZOFc2OHTtWY8eO1Y4dO/TWW2/p+uuv18SJE7XvvvvGJIWlo2/fvvrnP/+ZcLtzW58+fWr9HMnG2b59exUVFenee+9N+jHRz9OoUaO09957a968eRo1apTmzZungQMH6sADD6zx6zrP4TfffKOysrKkj4n+ecVL5+flfGw6P+tUP68jjzxSRx55pHbv3q13331Xc+fO1UUXXaSOHTvq1FNPTfn127dvn/CH03HZZZfpoosu0ueff65WrVqpW7duOu+889SiRQsdcsghKT+nlNnv5v7776/Kykp9++23+umnn9SjRw9t3LhRv/3tb2vsN/7KK69o/vz57jx6/vnndeyxx+rQQw+VJF144YU6++yza/362ZLqb8T+++8fc1uyn2lJSUnK+STFzu0JEybokksu0V//+ldde+21euCBB3TiiSdqr732ch+Tye9KfTifZ+7cuRo0aFDSx2SjN7YzhxuyF3m2+TqijrZ27Vr985//TJj4mTjmmGP0v//7v3r88cfdy9stWrTQoEGDNHfuXH333XcxPaEHDRqkwsJCPfTQQzGfZ8mSJUkvf8U77rjjJEl//vOfUz7GuQz24IMPxty+dOlSffzxx25v3GSc++I/9vHHH9eWLVtq/NhkCgoKNGzYMN14442Swp21MnXSSSfpk08+0dtvv+3etmvXLj344IMaOHBgnWuKH3/88fryyy9VUlKiQw89NOFf9Iumpk2batKkSXryySf1+uuv6913300ri/3YY49V06ZNa/x5DR48WEVFRQnP+TfffKPFixfX+JzX52edTNOmTTVw4EDddtttkqSqqqoaH3/AAQfoyy+/THl/QUGB+vTpo27dumnlypWaP3++fvOb36ioqKjGz1uX380uXbqob9++Ki4u1s0336wWLVqkXGh37Nih8847TzNmzHBfWBtjYi6rbt682T2p4YVUfyPSKYo0YsQIffTRRwk/v/vvv195eXk66qij3Nv22msvnXjiibr//vv17LPPavXq1QlzO5PflfoYMmSI2rZtq48++ijp1zn00EPdKDwTBQUFNUbLy5cvV0lJSVZeBGRLTkXUzz//vLZs2aKff/5ZkvTRRx+5TdTHjBmj4uJibdy4USNHjtTEiRP1i1/8QkVFRfrss880Z84c7dixQzNmzKjz1x8xYoR2796tRYsWxRyzOOaYYzRjxgzl5eXF7B/ttddeuvTSS3XNNdfonHPO0fjx47Vq1SrNnDkzrUvfRx55pCZNmqRrrrlGP/zwg44//ngVFBRo2bJlKi4u1tSpU9WrVy+de+65mjt3rpo0aaLjjjtOK1as0PTp01VWVqaLL7445ecfOXKkRo0apcsuu0ybNm3SkCFD9MEHH2jGjBnq379/0qMc8f74xz/qm2++0YgRI7TPPvtow4YNmjNnjpo3b65hw4a5jxs+fLheffXVWv8YTp48WbfddpvGjx+vG264QaWlpbr99tv16aefujkAdXHRRRfp8ccf19ChQ3XxxRfr4IMP1p49e7Ry5Uq99NJL+t3vfqeBAwfGjOPGG2/UxIkTVVRUlFBQI5l9991X06ZN09VXX61t27a5x0g++ugjrV27VrNmzVLbtm01ffp0TZs2TWeccYYmTJigdevWadasWSosLKxxftbnZ+244447tHjxYpWXl6tr167avn27GzlFv8hMZvjw4brqqqu0devWmKNYH374oR5//HEdeuihKigo0Pvvv68bbrhBv/jFL3T11Ve7j8v0d7NZs2YaNmxYzN77TTfdpE6dOqlr16764Ycf9Oijj+rJJ5/UAw88kPQSuyRde+21KiwsjDl+NGrUKM2ZM0f//d//rf33319XXXWVRo8eXevzly3vvvtuzN+IK664Ql26dEmrdezFF1+s+++/X+Xl5brqqqvUrVs3VVRU6Pbbb9f555+fkFcyefJkzZ8/XxdeeKH22WefhJ97pr8rddWyZUvNnTtXZ555pn766SeNGzdOpaWlWrNmjd5//32tWbOmxhe9qfTt21evvPKKnnnmGXXu3FmtWrVSr1693PvfeustDRs2zLqqfzXyKoutLrp165ayEbrTmH379u3mnHPOMb179zYtW7Y0zZo1M/vss485/fTTE9L0U0mW9W1M+DhT+/btjSTz7bffurc7GZrJUv737Nljrr/+elNWVmby8/PNwQcfbJ555pm0C57s3r3b3HLLLaZPnz4mPz/ftGnTxgwePDim8f3u3bvNjTfeaHr27GmaN29u2rdvb04//XSzatWqmM+VrODJtm3bzGWXXWa6detmmjdvbjp37mzOP//8hKM63bp1M+Xl5Qnje/bZZ81xxx1nunTpYvLz801paakZM2aMef3112Med8ghh5hOnTrV+v0aY8zq1avNGWecYdq1a2cKCwvNoEGDzIIFC9L62FQ/O2OM2bx5s7nyyitNr1693Oeyb9++5uKLLzarV69OePzhhx9uJNWYxZ3M/fffbw477DBTWFhoWrZsafr372/mzZsX85i7777bHHzwwe44xo4dmzA/kx3PSvdnnep5qKysNCeddJLp1q2bKSgoMCUlJWbYsGG1HjszxpgvvvjC5OXlmUcffTTm9k8//dQMHTrUtGvXzuTn55v999/fXHnllQlZtZn+birJyYhZs2aZHj16mIKCAtO2bVszevRo89prr6Uc80cffWQKCwvNW2+9lXDf7NmzTdeuXU3r1q3NuHHjYo63JZMq67tFixYJj031/Mf/HjlZ3y+99JKZNGmSadu2rXsq4PPPP0/rcxpjzNdff20mTpxoSkpKTPPmzU2vXr3MzTffHJOJ79i9e7cpKyur8URJur8rkswFF1wQ87FfffWVkWRuvvnmmNud5+/vf/97zO2vvvqqKS8vN+3atTPNmzc3Xbp0MeXl5TGPc34X4n9GzvPn/P03xpj33nvPDBkyxBQXFyfMoS+++CIhSz8X0D0LWffzzz+rXbt2uvXWW2vMiIb9TjjhBO3atSujoj1I7a9//at+/etfa+nSpe5+ObJn+vTpuv/++/Xll1/WWmDHJoHZo4Z3XnvtNXXp0kW/+c1vvB4K6un666/XwoULtXTpUq+HAmRkw4YNuu2223Tdddfl1CItsVCjEZSXl2vFihV1SgyBXfr06aN58+bl1BlUQJK++uorXX755Zo4caLXQ8kYl74BALAYETUAABZjoQYAwGIs1AAAWIyFGgAAi6WVo75nzx599913atWqVW5VcwEAwELGGP3888/ae++9k3aYi5bWQv3dd9+lbDIAAADqZtWqVTV23JPSXKhbtWolSbrvvvvcFo6ItGkLqvFPhovav3aexwOxSNDnhCOXGh5kG3MCyWzdulVnnnmmu77WJK2F2rncXVxcrJYtW9ZvdD7iNAcJrPzwXGBKRAR+TlTj70QEcwI1SWc7OaM6ah07dkza9zSoUvWIDhrmhFS+a6MkqarsAI9HYgfmRAR/J5DM5s2b034sWd8AAFiMhRoA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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Jacobian shape: (361, 212) (3.44% nonzero)\n", - "FWD solves: 13 REV solves: 0\n", - "Total colors vs. total size: 13 vs 212 (93.87% improvement)\n", - "\n", - "Sparsity computed using tolerance: 1e-12\n", - "Time to compute sparsity: 0.1957 sec\n", - "Time to compute coloring: 0.1057 sec\n", - "Memory to compute coloring: 0.0781 MB\n", - "Coloring created on: 2024-08-14 08:51:12\n" - ] - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "import os \n", "import matplotlib\n", @@ -2859,7 +378,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "scrolled": true, "tags": [ "remove-input", "remove-output" From 2ad0e8a690c0bec049873dca3fc7387058b3a7fd Mon Sep 17 00:00:00 2001 From: Rob Falck Date: Wed, 14 Aug 2024 11:49:15 -0400 Subject: [PATCH 4/8] docstring linting --- dymos/transcriptions/explicit_shooting/explicit_shooting.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/dymos/transcriptions/explicit_shooting/explicit_shooting.py b/dymos/transcriptions/explicit_shooting/explicit_shooting.py index 463ae0b14..a0bc0129f 100644 --- a/dymos/transcriptions/explicit_shooting/explicit_shooting.py +++ b/dymos/transcriptions/explicit_shooting/explicit_shooting.py @@ -29,7 +29,6 @@ class ExplicitShooting(TranscriptionBase): .. math:: \bar{x}_{f} = \mathcal{I}(\bar{x}_0, t_0, t_d, \bar{\theta}) = \bar{x}_{0} + \int_{t_0}^{t_0+t_d} \left( f_{ode}(\bar{x}, t, \bar{\theta}) \right) dt - then the inputs are the initial states ($\bar{x}$), the initial time and duration ($t_0$ and $t_d$), and some set of parameters that impact the ODE ($\theta$). For Dymos, $\theta$ may include the phase parameters, or the node values that govern the shape of the controls. @@ -38,7 +37,6 @@ class ExplicitShooting(TranscriptionBase): ---------- **kwargs : dict Dictionary of arguments. - """ # nopep8: E501, W605 def __init__(self, **kwargs): super(ExplicitShooting, self).__init__(**kwargs) From 67ae56b48a17af930f20fec1f93788c96825a331 Mon Sep 17 00:00:00 2001 From: Rob Falck Date: Wed, 14 Aug 2024 12:52:13 -0400 Subject: [PATCH 5/8] removed use of copy_build_artifacts from GH workflow --- .github/workflows/dymos_docs_workflow.yml | 1 - docs/build_jupyter_book.py | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/dymos_docs_workflow.yml b/.github/workflows/dymos_docs_workflow.yml index 9998f5648..a924e72fa 100644 --- a/.github/workflows/dymos_docs_workflow.yml +++ b/.github/workflows/dymos_docs_workflow.yml @@ -240,7 +240,6 @@ jobs: cd docs export PYDEVD_DISABLE_FILE_VALIDATION=1 jupyter-book build -W --keep-going dymos_book - python copy_build_artifacts.py - name: Display doc build reports continue-on-error: True diff --git a/docs/build_jupyter_book.py b/docs/build_jupyter_book.py index 943224737..d4e9e9292 100755 --- a/docs/build_jupyter_book.py +++ b/docs/build_jupyter_book.py @@ -26,7 +26,6 @@ def build_book(book_dir=BOOK_DIR, clean=True, ignore_warnings=False): subprocess.run(['jupyter-book', 'build', '--keep-going', book_dir]) # nosec: trusted input else: subprocess.run(['jupyter-book', 'build', '-W', '--keep-going', book_dir]) # nosec: trusted input - # copy_build_artifacts(book_dir) os.chdir(save_cwd) From d2930887ff928ed4321ef49d58e59ba592c0b8ef Mon Sep 17 00:00:00 2001 From: Rob Falck Date: Wed, 14 Aug 2024 13:11:48 -0400 Subject: [PATCH 6/8] doc build issue --- docs/dymos_book/faq/use_partial_coloring.ipynb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/dymos_book/faq/use_partial_coloring.ipynb b/docs/dymos_book/faq/use_partial_coloring.ipynb index 655416311..f0eb87576 100644 --- a/docs/dymos_book/faq/use_partial_coloring.ipynb +++ b/docs/dymos_book/faq/use_partial_coloring.ipynb @@ -260,7 +260,7 @@ "\n", " p.driver = om.pyOptSparseDriver()\n", " p.driver.options['optimizer'] = 'IPOPT'\n", - " \n", + "\n", " p.driver.opt_settings['max_iter'] = 500\n", " p.driver.opt_settings['print_level'] = 0\n", " p.driver.opt_settings['nlp_scaling_method'] = 'gradient-based'\n", @@ -268,7 +268,7 @@ " p.driver.opt_settings['mu_strategy'] = 'adaptive'\n", " p.driver.opt_settings['bound_mult_init_method'] = 'mu-based'\n", " p.driver.opt_settings['mu_init'] = 0.01\n", - " \n", + "\n", " p.driver.declare_coloring(tol=1.0E-12)\n", "\n", " #\n", @@ -352,7 +352,7 @@ " #\n", " # Solve for the optimal trajectory\n", " #\n", - " \n", + "\n", " print(80 * '-')\n", " print(f'{\"--- \" + header + \" \":-<80}')\n", " print(80 * '-', '\\n')\n", @@ -366,7 +366,6 @@ " stfd = '_fd' if fd else ''\n", " stpc = '_pc' if pc else ''\n", " saved_coloring_dir = f'coloring_files{stfd}{stpc}'\n", - " print(saved_coloring_dir)\n", " if os.path.exists(saved_coloring_dir):\n", " shutil.rmtree(saved_coloring_dir)\n", " shutil.move(p.get_coloring_dir(mode='output'), saved_coloring_dir)\n", From bfb4da4cb21a12713d520eef2fc5a7877603842d Mon Sep 17 00:00:00 2001 From: Rob Falck Date: Wed, 14 Aug 2024 14:30:45 -0400 Subject: [PATCH 7/8] partial coloring doc now handles old and new OpenMDAO output file behavior --- .../dymos_book/faq/use_partial_coloring.ipynb | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/docs/dymos_book/faq/use_partial_coloring.ipynb b/docs/dymos_book/faq/use_partial_coloring.ipynb index f0eb87576..5c0b79772 100644 --- a/docs/dymos_book/faq/use_partial_coloring.ipynb +++ b/docs/dymos_book/faq/use_partial_coloring.ipynb @@ -363,14 +363,24 @@ " # In practice, use the command line interface to view these files instead:\n", " # `openmdao view_coloring coloring_files/total_coloring.pkl --view`\n", " #\n", - " stfd = '_fd' if fd else ''\n", - " stpc = '_pc' if pc else ''\n", - " saved_coloring_dir = f'coloring_files{stfd}{stpc}'\n", - " if os.path.exists(saved_coloring_dir):\n", - " shutil.rmtree(saved_coloring_dir)\n", - " shutil.move(p.get_coloring_dir(mode='output'), saved_coloring_dir)\n", - "\n", - " _view_coloring(os.path.join(saved_coloring_dir, 'total_coloring.pkl'));\n" + " from openmdao import __version__ as om_version\n", + " om_version_tup = tuple((int(s) for s in om_version.split('-')[0].split('.')))\n", + "\n", + " # Handle the output directory behavior change as of OpenMAO 3.34.3-dev\n", + " if om_version_tup > (3, 34, 2):\n", + " stfd = '_fd' if fd else ''\n", + " stpc = '_pc' if pc else ''\n", + " saved_coloring_dir = f'coloring_files{stfd}{stpc}'\n", + " if os.path.exists(saved_coloring_dir):\n", + " shutil.rmtree(saved_coloring_dir)\n", + " shutil.move(p.get_coloring_dir(mode='output'), saved_coloring_dir)\n", + " else:\n", + " coloring_dir = f'coloring_files{stfd}{stpc}'\n", + " if fd or pc:\n", + " if os.path.exists(coloring_dir):\n", + " shutil.rmtree(coloring_dir)\n", + " shutil.move('coloring_files', coloring_dir)\n", + " _view_coloring(os.path.join(saved_coloring_dir, 'total_coloring.pkl'))" ] }, { From 2a56af72069156eb88d1192e5b45da970e9ca378 Mon Sep 17 00:00:00 2001 From: Rob Falck Date: Thu, 15 Aug 2024 08:36:37 -0400 Subject: [PATCH 8/8] cleanup --- docs/dymos_book/faq/use_partial_coloring.ipynb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/dymos_book/faq/use_partial_coloring.ipynb b/docs/dymos_book/faq/use_partial_coloring.ipynb index 5c0b79772..5b08351da 100644 --- a/docs/dymos_book/faq/use_partial_coloring.ipynb +++ b/docs/dymos_book/faq/use_partial_coloring.ipynb @@ -260,6 +260,7 @@ "\n", " p.driver = om.pyOptSparseDriver()\n", " p.driver.options['optimizer'] = 'IPOPT'\n", + " p.driver.options['print_results'] = False\n", "\n", " p.driver.opt_settings['max_iter'] = 500\n", " p.driver.opt_settings['print_level'] = 0\n", @@ -340,7 +341,7 @@ " p.setup()\n", "\n", " p['traj.phase0.t_initial'] = 0.0\n", - " p['traj.phase0.t_duration'] = 500\n", + " p['traj.phase0.t_duration'] = 400\n", "\n", " p['traj.phase0.states:r'] = phase.interp('r', [0.0, 50000.0])\n", " p['traj.phase0.states:h'] = phase.interp('h', [100.0, 20000.0])\n", @@ -367,20 +368,21 @@ " om_version_tup = tuple((int(s) for s in om_version.split('-')[0].split('.')))\n", "\n", " # Handle the output directory behavior change as of OpenMAO 3.34.3-dev\n", + " stfd = '_fd' if fd else ''\n", + " stpc = '_pc' if pc else ''\n", " if om_version_tup > (3, 34, 2):\n", - " stfd = '_fd' if fd else ''\n", - " stpc = '_pc' if pc else ''\n", " saved_coloring_dir = f'coloring_files{stfd}{stpc}'\n", " if os.path.exists(saved_coloring_dir):\n", " shutil.rmtree(saved_coloring_dir)\n", " shutil.move(p.get_coloring_dir(mode='output'), saved_coloring_dir)\n", + " _view_coloring(os.path.join(saved_coloring_dir, 'total_coloring.pkl'))\n", " else:\n", " coloring_dir = f'coloring_files{stfd}{stpc}'\n", " if fd or pc:\n", " if os.path.exists(coloring_dir):\n", " shutil.rmtree(coloring_dir)\n", - " shutil.move('coloring_files', coloring_dir)\n", - " _view_coloring(os.path.join(saved_coloring_dir, 'total_coloring.pkl'))" + " shutil.move('coloring_files', coloring_dir)\n", + " _view_coloring(os.path.join(coloring_dir, 'total_coloring.pkl'))" ] }, {