.. Copyright 2021 IRT Saint Exupéry, https://www.irt-saintexupery.com This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. .. Contributors: :author: Damien Guénot, Francois Gallard .. include:: ../includes/big_toc_css.rst .. include:: ../tune_toc.rst .. _post_processing: How to deal with post-processing ================================ In this section we describe the post processing features of GEMSEO, used to analyze :class:`~gemseo.algos.opt_result.OptimizationResult`, called the :term:`optimization history`. What data to post-process? ~~~~~~~~~~~~~~~~~~~~~~~~~~ Post-processing features are applicable to any :class:`~gemseo.algos.opt_problem.OptimizationProblem` that has been solved, which may have been loaded from the disk. In practice, - a :class:`~gemseo.core.scenario.Scenario` instance has a :class:`~gemseo.core.formulation.MDOFormulation` attribute, - a :class:`~gemseo.core.formulation.MDOFormulation` instance has an :class:`~gemseo.algos.opt_problem.OptimizationProblem` attribute, - an :class:`~gemseo.algos.opt_problem.OptimizationProblem` instance has an :class:`~gemseo.algos.opt_result.OptimizationResult` attribute. Illustration on the Sobieski use case ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The post-processing features are illustrated on MDO results obtained on the :ref:`SSBJ use case `, using different types of :code:`formulation` (:ref:`MDF formulation `, :ref:`IDF formulation `, ...) To setup the case, please see :ref:`sobieski_mdo`. The code lines follow, modulo the :code:`formulation` value: .. code:: from gemseo.api import create_discipline, create_scenario formulation = 'MDF' disciplines = create_discipline(["SobieskiPropulsion", "SobieskiAerodynamics", "SobieskiMission", "SobieskiStructure"]) scenario = create_scenario(disciplines, formulation=formulation, objective_name="y_4", maximize_objective=True, design_space="design_space.txt") scenario.set_differentiation_method("user") algo_options = {'max_iter': 10, 'algo': "SLSQP"} for constraint in ["g_1","g_2","g_3"]: scenario.add_constraint(constraint, 'ineq') scenario.execute(algo_options) How to apply a post-process feature? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From this :code:`scenario`, we can apply any kind of post-processing dedicated to :class:`~gemseo.core.scenario.Scenario` instances, - either by means of its :meth:`~gemseo.core.scenario.Scenario.post_process` method: .. automethod:: gemseo.core.scenario.Scenario.post_process :noindex: - or by means of the :meth:`~gemseo.api.execute_post` API method: .. automethod:: gemseo.api.execute_post :noindex: What are the post-processing features? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. raw:: html

Basic history


Constraints history


Gradient sensitivity


Optimization history view


Parallel coordinates


Quadratic approximation


Radar chart


Robustness


Self-Organizing Maps


.. toctree:: :caption: Post processing methods :maxdepth: 1 :hidden: _postprocessing/basic_history.rst _postprocessing/gradients_sensitivity.rst _postprocessing/quadratic_approximation.rst _postprocessing/som.rst _postprocessing/constraints_history.rst _postprocessing/opt_history_view.rst _postprocessing/radar_chart.rst _postprocessing/correlations.rst _postprocessing/parallel_coordinates.rst _postprocessing/robustness.rst