Constraints history

Preliminaries: instantiation and execution of the MDO scenario

Let’s start with the following code lines which instantiate and execute the MDOScenario :

from gemseo.api import create_discipline, create_scenario

formulation = 'MDF'

disciplines = create_discipline(["SobieskiPropulsion", "SobieskiAerodynamics",
                                 "SobieskiMission", "SobieskiStructure"])

scenario = create_scenario(disciplines,


algo_options = {'max_iter': 10, 'algo': "SLSQP"}
for constraint in ["g_1","g_2","g_3"]:
    scenario.add_constraint(constraint, 'ineq')




The ConstraintsHistory post processing plots the constraints functions history in lines charts with violation indication by color on background.

The plot method requires the list of constraint names to plot. It is possible either to save the plot, to show the plot or both.

This plot is more precise than the constraint plot provided by the History of evaluations but scales less with the number of constraints


  • constraints_list, list(str) - list of constraint names

  • extension, str - file extension

  • file_path, str - the base paths of the files to export

  • save, bool - if True, exports plot to pdf

  • show, bool - if True, displays the plot windows

Case of the MDF formulation

To visualize the constraints history of the scenario, we use the execute_post() API method with the keyword "ConstraintsHistory" and additional arguments concerning the type of display (file , screen, both):

scenario.post_process("ConstraintsHistory", constraints_list=["g_1", "g_2", "g_3"], save=True, show=False, file_path="mdf")

History of the constraints on the Sobieski use case for the MDF formulation using the ConstraintsHistory plot