.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/formulations/plot_doe_sobieski_mdf_example.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_formulations_plot_doe_sobieski_mdf_example.py: MDF-based DOE on the Sobieski SSBJ test case ============================================ .. GENERATED FROM PYTHON SOURCE LINES 26-37 .. code-block:: default from __future__ import division, unicode_literals from os import name as os_name from gemseo.api import configure_logger, create_discipline, create_scenario from gemseo.problems.sobieski.core import SobieskiProblem IS_NT = os_name == "nt" configure_logger() .. rst-class:: sphx-glr-script-out Out: .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 38-45 Instantiate the disciplines ---------------------------- First, we instantiate the four disciplines of the use case: :class:`~gemseo.problems.sobieski.wrappers.SobieskiPropulsion`, :class:`~gemseo.problems.sobieski.wrappers.SobieskiAerodynamics`, :class:`~gemseo.problems.sobieski.wrappers.SobieskiMission` and :class:`~gemseo.problems.sobieski.wrappers.SobieskiStructure`. .. GENERATED FROM PYTHON SOURCE LINES 45-54 .. code-block:: default disciplines = create_discipline( [ "SobieskiPropulsion", "SobieskiAerodynamics", "SobieskiMission", "SobieskiStructure", ] ) .. GENERATED FROM PYTHON SOURCE LINES 55-63 Build, execute and post-process the scenario -------------------------------------------- Then, we build the scenario which links the disciplines with the formulation and the optimization algorithm. Here, we use the :class:`.BiLevel` formulation. We tell the scenario to minimize -y_4 instead of minimizing y_4 (range), which is the default option. We need to define the design space. .. GENERATED FROM PYTHON SOURCE LINES 63-65 .. code-block:: default design_space = SobieskiProblem().read_design_space() .. GENERATED FROM PYTHON SOURCE LINES 66-68 Instantiate the scenario ^^^^^^^^^^^^^^^^^^^^^^^^ .. GENERATED FROM PYTHON SOURCE LINES 68-76 .. code-block:: default scenario = create_scenario( disciplines, formulation="MDF", objective_name="y_4", design_space=design_space, maximize_objective=True, scenario_type="DOE", ) .. GENERATED FROM PYTHON SOURCE LINES 77-79 Set the design constraints ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. GENERATED FROM PYTHON SOURCE LINES 79-82 .. code-block:: default for constraint in ["g_1", "g_2", "g_3"]: scenario.add_constraint(constraint, "ineq") .. GENERATED FROM PYTHON SOURCE LINES 83-86 Execute the scenario ^^^^^^^^^^^^^^^^^^^^ Use provided analytic derivatives .. GENERATED FROM PYTHON SOURCE LINES 86-92 .. code-block:: default scenario.set_differentiation_method("user") n_processes = 4 if IS_NT: # Under windows, don't do multiprocessing n_processes = 1 .. GENERATED FROM PYTHON SOURCE LINES 93-95 We define the algorithm options. Here the criterion = center option of pyDOE centers the points within the sampling intervals. .. GENERATED FROM PYTHON SOURCE LINES 95-106 .. code-block:: default algo_options = { "criterion": "center", # Evaluate gradient of the MDA # with coupled adjoint "eval_jac": True, # Run in parallel on 4 processors "n_processes": n_processes, } run_inputs = {"n_samples": 30, "algo": "lhs", "algo_options": algo_options} scenario.execute(run_inputs) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none {'eval_jac': False, 'algo': 'lhs', 'n_samples': 30, 'algo_options': {'criterion': 'center', 'eval_jac': True, 'n_processes': 4}} .. GENERATED FROM PYTHON SOURCE LINES 107-109 Plot the optimization history view ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. GENERATED FROM PYTHON SOURCE LINES 109-111 .. code-block:: default scenario.post_process("OptHistoryView", show=True, save=False) .. rst-class:: sphx-glr-horizontal * .. image:: /examples/formulations/images/sphx_glr_plot_doe_sobieski_mdf_example_001.png :alt: Evolution of the optimization variables :class: sphx-glr-multi-img * .. image:: /examples/formulations/images/sphx_glr_plot_doe_sobieski_mdf_example_002.png :alt: Evolution of the objective value :class: sphx-glr-multi-img * .. image:: /examples/formulations/images/sphx_glr_plot_doe_sobieski_mdf_example_003.png :alt: Distance to the optimum :class: sphx-glr-multi-img * .. image:: /examples/formulations/images/sphx_glr_plot_doe_sobieski_mdf_example_004.png :alt: Hessian diagonal approximation :class: sphx-glr-multi-img * .. image:: /examples/formulations/images/sphx_glr_plot_doe_sobieski_mdf_example_005.png :alt: Evolution of the inequality constraints :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out Out: .. code-block:: none /home/docs/checkouts/readthedocs.org/user_builds/gemseo/conda/3.0.3/lib/python3.8/site-packages/gemseo/post/opt_history_view.py:312: UserWarning: FixedFormatter should only be used together with FixedLocator ax1.set_yticklabels(y_labels) /home/docs/checkouts/readthedocs.org/user_builds/gemseo/conda/3.0.3/lib/python3.8/site-packages/gemseo/post/opt_history_view.py:716: MatplotlibDeprecationWarning: default base will change from np.e to 10 in 3.4. To suppress this warning specify the base keyword argument. norm=SymLogNorm(linthresh=linthresh, vmin=-vmax, vmax=vmax), /home/docs/checkouts/readthedocs.org/user_builds/gemseo/conda/3.0.3/lib/python3.8/site-packages/gemseo/post/opt_history_view.py:626: MatplotlibDeprecationWarning: default base will change from np.e to 10 in 3.4. To suppress this warning specify the base keyword argument. norm=SymLogNorm(linthresh=1.0, vmin=-vmax, vmax=vmax), /home/docs/checkouts/readthedocs.org/user_builds/gemseo/conda/3.0.3/lib/python3.8/site-packages/gemseo/post/opt_history_view.py:619: MatplotlibDeprecationWarning: Passing parameters norm and vmin/vmax simultaneously is deprecated since 3.3 and will become an error two minor releases later. Please pass vmin/vmax directly to the norm when creating it. im1 = ax1.imshow( .. GENERATED FROM PYTHON SOURCE LINES 112-114 Plot the scatter matrix ^^^^^^^^^^^^^^^^^^^^^^^ .. GENERATED FROM PYTHON SOURCE LINES 114-118 .. code-block:: default scenario.post_process( "ScatterPlotMatrix", show=True, save=False, variables_list=["y_4", "x_shared"] ) .. image:: /examples/formulations/images/sphx_glr_plot_doe_sobieski_mdf_example_006.png :alt: plot doe sobieski mdf example :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out Out: .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 119-121 Plot correlations ^^^^^^^^^^^^^^^^^ .. GENERATED FROM PYTHON SOURCE LINES 121-122 .. code-block:: default scenario.post_process("Correlations", show=True, save=False) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 3.925 seconds) .. _sphx_glr_download_examples_formulations_plot_doe_sobieski_mdf_example.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_doe_sobieski_mdf_example.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_doe_sobieski_mdf_example.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_