MDO formulations for a toy example in aerostructure

from __future__ import annotations

from copy import deepcopy

from gemseo import configure_logger
from gemseo import create_discipline
from gemseo import create_scenario
from gemseo import generate_n2_plot
from gemseo.problems.aerostructure.aerostructure_design_space import (
    AerostructureDesignSpace,
)

configure_logger()


algo_options = {
    "xtol_rel": 1e-8,
    "xtol_abs": 1e-8,
    "ftol_rel": 1e-8,
    "ftol_abs": 1e-8,
    "ineq_tolerance": 1e-5,
    "eq_tolerance": 1e-3,
}

Create discipline

First, we create disciplines (aero, structure, mission) with dummy formulas using the AnalyticDiscipline class.

aero_formulas = {
    "drag": "0.1*((sweep/360)**2 + 200 + "
    + "thick_airfoils**2-thick_airfoils -4*displ)",
    "forces": "10*sweep + 0.2*thick_airfoils-0.2*displ",
    "lift": "(sweep + 0.2*thick_airfoils-2.*displ)/3000.",
}
aerodynamics = create_discipline(
    "AnalyticDiscipline", name="Aerodynamics", expressions=aero_formulas
)
struc_formulas = {
    "mass": "4000*(sweep/360)**3 + 200000 + " + "100*thick_panels +200.0*forces",
    "reserve_fact": "-3*sweep " + "-6*thick_panels+0.1*forces+55",
    "displ": "2*sweep + 3*thick_panels-2.*forces",
}
structure = create_discipline(
    "AnalyticDiscipline", name="Structure", expressions=struc_formulas
)
mission_formulas = {"range": "8e11*lift/(mass*drag)"}
mission = create_discipline(
    "AnalyticDiscipline", name="Mission", expressions=mission_formulas
)

disciplines = [aerodynamics, structure, mission]

We can see that structure and aerodynamics are strongly coupled:

generate_n2_plot(disciplines, save=False, show=True)
plot aerostructure

Create an MDO scenario with MDF formulation

Then, we create an MDO scenario based on the MDF formulation

design_space = AerostructureDesignSpace()
scenario = create_scenario(
    disciplines=disciplines,
    formulation="MDF",
    objective_name="range",
    design_space=design_space,
    maximize_objective=True,
)
scenario.add_constraint("reserve_fact", "ineq", value=0.5)
scenario.add_constraint("lift", "eq", value=0.5)
scenario.execute({"algo": "NLOPT_SLSQP", "max_iter": 10, "algo_options": algo_options})
scenario.post_process("OptHistoryView", save=False, show=True)
  • Evolution of the optimization variables
  • Evolution of the objective value
  • Distance to the optimum
  • Hessian diagonal approximation
  • Evolution of the inequality constraints
  • Evolution of the equality constraints
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.0.0/lib/python3.9/site-packages/gemseo/algos/design_space.py:426: ComplexWarning: Casting complex values to real discards the imaginary part
  self.__current_value[name] = array_value.astype(
    INFO - 16:27:41: Variable reserve_fact was removed from the Design Space, it is not an input of any discipline.
    INFO - 16:27:41:
    INFO - 16:27:41: *** Start MDOScenario execution ***
    INFO - 16:27:41: MDOScenario
    INFO - 16:27:41:    Disciplines: Aerodynamics Mission Structure
    INFO - 16:27:41:    MDO formulation: MDF
    INFO - 16:27:41: Optimization problem:
    INFO - 16:27:41:    minimize -range(thick_airfoils, thick_panels, sweep)
    INFO - 16:27:41:    with respect to sweep, thick_airfoils, thick_panels
    INFO - 16:27:41:    subject to constraints:
    INFO - 16:27:41:       reserve_fact(thick_airfoils, thick_panels, sweep) <= 0.5
    INFO - 16:27:41:       lift(thick_airfoils, thick_panels, sweep) == 0.5
    INFO - 16:27:41:    over the design space:
    INFO - 16:27:41:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:41:    | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:41:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:41:    | thick_airfoils |      5      |   15  |      25     | float |
    INFO - 16:27:41:    | thick_panels   |      1      |   3   |      20     | float |
    INFO - 16:27:41:    | sweep          |      10     |   25  |      35     | float |
    INFO - 16:27:41:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:41: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:41: ...   0%|          | 0/10 [00:00<?, ?it]
    INFO - 16:27:41: ...  10%|█         | 1/10 [00:00<00:00, 27.69 it/sec, obj=-4.25e+3]
    INFO - 16:27:41: ...  20%|██        | 2/10 [00:00<00:00, 11.42 it/sec, obj=-4.51e+3]
   ERROR - 16:27:41: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
    INFO - 16:27:41: ...  30%|███       | 3/10 [00:00<00:00, 16.75 it/sec, obj=-4.51e+3]
    INFO - 16:27:41: Optimization result:
    INFO - 16:27:41:    Optimizer info:
    INFO - 16:27:41:       Status: None
    INFO - 16:27:41:       Message:  GEMSEO Stopped the driver
    INFO - 16:27:41:       Number of calls to the objective function by the optimizer: 4
    INFO - 16:27:41:    Solution:
    INFO - 16:27:41:       The solution is feasible.
    INFO - 16:27:41:       Objective: -4509.505446938985
    INFO - 16:27:41:       Standardized constraints:
    INFO - 16:27:41:          lift - 0.5 = 1.4988010832439613e-14
    INFO - 16:27:41:          reserve_fact - 0.5 = 1.1013668199666427e-08
    INFO - 16:27:41:       Design space:
    INFO - 16:27:41:       +----------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:41:       | name           | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:41:       +----------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:41:       | thick_airfoils |      5      |         5         |      25     | float |
    INFO - 16:27:41:       | thick_panels   |      1      | 3.225589223849015 |      20     | float |
    INFO - 16:27:41:       | sweep          |      10     | 24.99326599298144 |      35     | float |
    INFO - 16:27:41:       +----------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:41: *** End MDOScenario execution (time: 0:00:00.194115) ***
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.0.0/lib/python3.9/site-packages/genson/schema/strategies/base.py:42: UserWarning: Schema incompatible. Keyword 'description' has conflicting values ('The width and height of the figure in inches, e.g. ``(w, h)``.\nIf ``None``, use the :attr:`.OptPostProcessor.DEFAULT_FIG_SIZE`\nof the post-processor.' vs. 'The width and height of the figure in inches, e.g. `(w, h)`.\nIf ``None``, use the :attr:`.OptPostProcessor.DEFAULT_FIG_SIZE`\nof the post-processor.'). Using 'The width and height of the figure in inches, e.g. ``(w, h)``.\nIf ``None``, use the :attr:`.OptPostProcessor.DEFAULT_FIG_SIZE`\nof the post-processor.'
  warn(('Schema incompatible. Keyword {0!r} has conflicting '
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.0.0/lib/python3.9/site-packages/gemseo/post/opt_history_view.py:599: UserWarning: All values for SymLogScale are below linthresh, making it effectively linear. You likely should lower the value of linthresh.
  col_bar = fig.colorbar(

<gemseo.post.opt_history_view.OptHistoryView object at 0x7fea3cba3ca0>

Create an MDO scenario with bilevel formulation

Then, we create an MDO scenario based on the bilevel formulation

sub_scenario_options = {
    "max_iter": 5,
    "algo": "NLOPT_SLSQP",
    "algo_options": algo_options,
}
design_space_ref = AerostructureDesignSpace()

Create the aeronautics sub-scenario

For this purpose, we create a first sub-scenario to maximize the range with respect to the thick airfoils, based on the aerodynamics discipline.

design_space_aero = deepcopy(design_space_ref).filter(["thick_airfoils"])
aero_scenario = create_scenario(
    disciplines=[aerodynamics, mission],
    formulation="DisciplinaryOpt",
    objective_name="range",
    design_space=design_space_aero,
    maximize_objective=True,
)
aero_scenario.default_inputs = sub_scenario_options

Create the structure sub-scenario

We create a second sub-scenario to maximize the range with respect to the thick panels, based on the structure discipline.

design_space_struct = deepcopy(design_space_ref).filter(["thick_panels"])
struct_scenario = create_scenario(
    disciplines=[structure, mission],
    formulation="DisciplinaryOpt",
    objective_name="range",
    design_space=design_space_struct,
    maximize_objective=True,
)
struct_scenario.default_inputs = sub_scenario_options

Create the system scenario

Lastly, we build a system scenario to maximize the range with respect to the sweep, which is a shared variable, based on the previous sub-scenarios.

design_space_system = deepcopy(design_space_ref).filter(["sweep"])
system_scenario = create_scenario(
    disciplines=[aero_scenario, struct_scenario, mission],
    formulation="BiLevel",
    objective_name="range",
    design_space=design_space_system,
    maximize_objective=True,
    inner_mda_name="MDAJacobi",
    tolerance=1e-8,
)
system_scenario.add_constraint("reserve_fact", "ineq", value=0.5)
system_scenario.add_constraint("lift", "eq", value=0.5)
system_scenario.execute(
    {"algo": "NLOPT_COBYLA", "max_iter": 7, "algo_options": algo_options}
)
system_scenario.post_process("OptHistoryView", save=False, show=True)
  • Evolution of the optimization variables
  • Evolution of the objective value
  • Distance to the optimum
  • Evolution of the inequality constraints
  • Evolution of the equality constraints
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: MDOScenario MDOScenario Mission
    INFO - 16:27:43:    MDO formulation: BiLevel
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(sweep)
    INFO - 16:27:43:    with respect to sweep
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       reserve_fact(sweep) <= 0.5
    INFO - 16:27:43:       lift(sweep) == 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +-------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | name  | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:    +-------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | sweep |      10     |   25  |      35     | float |
    INFO - 16:27:43:    +-------+-------------+-------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_COBYLA:
    INFO - 16:27:43: ...   0%|          | 0/7 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Aerodynamics Mission
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_airfoils)
    INFO - 16:27:43:    with respect to thick_airfoils
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       lift(thick_airfoils) == 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | thick_airfoils |      5      |   15  |      25     | float |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 182.96 it/sec, obj=-4.27e+3]
    INFO - 16:27:43:
 WARNING - 16:27:43: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 160.46 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: 5
    INFO - 16:27:43:       Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 8
    INFO - 16:27:43:    Solution:
 WARNING - 16:27:43:       The solution is not feasible.
    INFO - 16:27:43:       Objective: -4513.429203824654
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          lift - 0.5 = 0.008666666666666933
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.025745) ***
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Mission Structure
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_panels)
    INFO - 16:27:43:    with respect to thick_panels
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       reserve_fact(thick_panels) <= 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +--------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | name         | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:    +--------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | thick_panels |      1      |   3   |      20     | float |
    INFO - 16:27:43:    +--------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 163.80 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
   ERROR - 16:27:43: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 163.10 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message:  GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 3
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -4504.955637332531
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          reserve_fact - 0.5 = 1.062133492268913e-09
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | thick_panels |      1      | 3.266666666489645 |      20     | float |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.024214) ***
    INFO - 16:27:43: ...  14%|█▍        | 1/7 [00:00<00:00,  8.20 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Aerodynamics Mission
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_airfoils)
    INFO - 16:27:43:    with respect to thick_airfoils
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       lift(thick_airfoils) == 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 802.28 it/sec, obj=-4.27e+3]
    INFO - 16:27:43:
 WARNING - 16:27:43: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: 5
    INFO - 16:27:43:       Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 8
    INFO - 16:27:43:    Solution:
 WARNING - 16:27:43:       The solution is not feasible.
    INFO - 16:27:43:       Objective: -4267.91032010627
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          lift - 0.5 = 0.12708333333392363
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.016976) ***
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Mission Structure
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_panels)
    INFO - 16:27:43:    with respect to thick_panels
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       reserve_fact(thick_panels) <= 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | thick_panels |      1      | 3.266666666489645 |      20     | float |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 771.30 it/sec, obj=-4.27e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 245.50 it/sec, obj=-4.27e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  60%|██████    | 3/5 [00:00<00:00, 270.90 it/sec, obj=-4.27e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  80%|████████  | 4/5 [00:00<00:00, 350.83 it/sec, obj=-4.27e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 5
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -4270.047650046897
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          reserve_fact - 0.5 = 1.5540514652911952e-08
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | thick_panels |      1      | 1.764999997412866 |      20     | float |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.024695) ***
    INFO - 16:27:43: ...  29%|██▊       | 2/7 [00:00<00:00, 10.82 it/sec, obj=-4.27e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Aerodynamics Mission
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_airfoils)
    INFO - 16:27:43:    with respect to thick_airfoils
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       lift(thick_airfoils) == 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 799.22 it/sec, obj=-4.53e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 246.87 it/sec, obj=-3.83e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  60%|██████    | 3/5 [00:00<00:00, 353.44 it/sec, obj=-4.43e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  80%|████████  | 4/5 [00:00<00:00, 384.13 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ... 100%|██████████| 5/5 [00:00<00:00, 404.42 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
 WARNING - 16:27:43: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message: Maximum number of iterations reached. GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 7
    INFO - 16:27:43:    Solution:
 WARNING - 16:27:43:       The solution is not feasible.
    INFO - 16:27:43:       Objective: -3831.8072182757824
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          lift - 0.5 = -0.0023374064594913757
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | thick_airfoils |      5      |   25  |      25     | float |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.026021) ***
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Mission Structure
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_panels)
    INFO - 16:27:43:    with respect to thick_panels
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       reserve_fact(thick_panels) <= 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | thick_panels |      1      | 1.764999997412866 |      20     | float |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 781.79 it/sec, obj=-3.82e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 242.50 it/sec, obj=-3.82e+3]
    INFO - 16:27:43:
   ERROR - 16:27:43: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
    INFO - 16:27:43: ...  60%|██████    | 3/5 [00:00<00:00, 288.37 it/sec, obj=-3.82e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message:  GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 4
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -3818.5902856031416
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          reserve_fact - 0.5 = 2.8144597763457568e-11
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | thick_panels |      1      | 3.414591822896584 |      20     | float |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.022848) ***
    INFO - 16:27:43: ...  43%|████▎     | 3/7 [00:00<00:00, 11.76 it/sec, obj=-3.82e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Aerodynamics Mission
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_airfoils)
    INFO - 16:27:43:    with respect to thick_airfoils
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       lift(thick_airfoils) == 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | thick_airfoils |      5      |   25  |      25     | float |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 933.73 it/sec, obj=-3.82e+3]
    INFO - 16:27:43:
 WARNING - 16:27:43: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 277.10 it/sec, obj=-4.49e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: 5
    INFO - 16:27:43:       Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 8
    INFO - 16:27:43:    Solution:
 WARNING - 16:27:43:       The solution is not feasible.
    INFO - 16:27:43:       Objective: -4490.540174494279
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          lift - 0.5 = 0.00918103190482844
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.019779) ***
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Mission Structure
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_panels)
    INFO - 16:27:43:    with respect to thick_panels
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       reserve_fact(thick_panels) <= 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | thick_panels |      1      | 3.414591822896584 |      20     | float |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 771.15 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 248.44 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  60%|██████    | 3/5 [00:00<00:00, 273.17 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  80%|████████  | 4/5 [00:00<00:00, 353.70 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 5
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -4503.594576633827
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          reserve_fact - 0.5 = 1.120170622925798e-10
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | thick_panels |      1      | 3.256301558340618 |      20     | float |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.024006) ***
    INFO - 16:27:43: ...  57%|█████▋    | 4/7 [00:00<00:00, 12.50 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Aerodynamics Mission
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_airfoils)
    INFO - 16:27:43:    with respect to thick_airfoils
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       lift(thick_airfoils) == 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 791.08 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 260.85 it/sec, obj=-3.85e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  60%|██████    | 3/5 [00:00<00:00, 375.17 it/sec, obj=-4.48e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  80%|████████  | 4/5 [00:00<00:00, 385.05 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ... 100%|██████████| 5/5 [00:00<00:00, 393.03 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message: Maximum number of iterations reached. GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 7
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -3854.081992911564
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          lift - 0.5 = 0.0
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +----------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | name           | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:       +----------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | thick_airfoils |      5      | 24.35677033516269 |      25     | float |
    INFO - 16:27:43:       +----------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.027675) ***
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Mission Structure
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_panels)
    INFO - 16:27:43:    with respect to thick_panels
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       reserve_fact(thick_panels) <= 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | thick_panels |      1      | 3.256301558340618 |      20     | float |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 794.38 it/sec, obj=-3.84e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 246.03 it/sec, obj=-3.84e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  60%|██████    | 3/5 [00:00<00:00, 270.56 it/sec, obj=-3.84e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  80%|████████  | 4/5 [00:00<00:00, 350.00 it/sec, obj=-3.84e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 5
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -3843.3820255412966
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          reserve_fact - 0.5 = 1.120596948567254e-09
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | thick_panels |      1      | 3.303233590469241 |      20     | float |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.024162) ***
    INFO - 16:27:43: ...  71%|███████▏  | 5/7 [00:00<00:00, 12.66 it/sec, obj=-3.85e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Aerodynamics Mission
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_airfoils)
    INFO - 16:27:43:    with respect to thick_airfoils
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       lift(thick_airfoils) == 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +----------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | name           | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:    +----------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | thick_airfoils |      5      | 24.35677033516269 |      25     | float |
    INFO - 16:27:43:    +----------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 818.40 it/sec, obj=-3.85e+3]
    INFO - 16:27:43:
 WARNING - 16:27:43: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 271.99 it/sec, obj=-4.49e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: 5
    INFO - 16:27:43:       Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 8
    INFO - 16:27:43:    Solution:
 WARNING - 16:27:43:       The solution is not feasible.
    INFO - 16:27:43:       Objective: -4492.389207000819
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          lift - 0.5 = 0.00858587320859483
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.020109) ***
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Mission Structure
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_panels)
    INFO - 16:27:43:    with respect to thick_panels
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       reserve_fact(thick_panels) <= 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | thick_panels |      1      | 3.303233590469241 |      20     | float |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 693.50 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 242.73 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  60%|██████    | 3/5 [00:00<00:00, 269.29 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  80%|████████  | 4/5 [00:00<00:00, 347.82 it/sec, obj=-4.5e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 5
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -4504.850158480371
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          reserve_fact - 0.5 = 1.2098553270334378e-08
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:       | thick_panels |      1      | 3.264536833649439 |      20     | float |
    INFO - 16:27:43:       +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.024273) ***
    INFO - 16:27:43: ...  86%|████████▌ | 6/7 [00:00<00:00, 12.99 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Aerodynamics Mission
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_airfoils)
    INFO - 16:27:43:    with respect to thick_airfoils
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       lift(thick_airfoils) == 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:    | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 16:27:43:    +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 807.22 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 267.16 it/sec, obj=-4.48e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  60%|██████    | 3/5 [00:00<00:00, 383.86 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  80%|████████  | 4/5 [00:00<00:00, 395.89 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ... 100%|██████████| 5/5 [00:00<00:00, 391.46 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message: Maximum number of iterations reached. GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 7
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -4509.519641910663
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          lift - 0.5 = -0.00013691251706354768
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | name           | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 16:27:43:       +----------------+-------------+-------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.028370) ***
    INFO - 16:27:43:
    INFO - 16:27:43: *** Start MDOScenario execution ***
    INFO - 16:27:43: MDOScenario
    INFO - 16:27:43:    Disciplines: Mission Structure
    INFO - 16:27:43:    MDO formulation: DisciplinaryOpt
    INFO - 16:27:43: Optimization problem:
    INFO - 16:27:43:    minimize -range(thick_panels)
    INFO - 16:27:43:    with respect to thick_panels
    INFO - 16:27:43:    subject to constraints:
    INFO - 16:27:43:       reserve_fact(thick_panels) <= 0.5
    INFO - 16:27:43:    over the design space:
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43:    | thick_panels |      1      | 3.264536833649439 |      20     | float |
    INFO - 16:27:43:    +--------------+-------------+-------------------+-------------+-------+
    INFO - 16:27:43: Solving optimization problem with algorithm NLOPT_SLSQP:
    INFO - 16:27:43: ...   0%|          | 0/5 [00:00<?, ?it]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  20%|██        | 1/5 [00:00<00:00, 796.94 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43: ...  40%|████      | 2/5 [00:00<00:00, 247.09 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
   ERROR - 16:27:43: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
    INFO - 16:27:43: ...  60%|██████    | 3/5 [00:00<00:00, 294.08 it/sec, obj=-4.51e+3]
    INFO - 16:27:43:
    INFO - 16:27:43:
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message:  GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 4
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -4509.583287343643
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          reserve_fact - 0.5 = -2.2032509150449187e-10
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +--------------+-------------+------------------+-------------+-------+
    INFO - 16:27:43:       | name         | lower_bound |      value       | upper_bound | type  |
    INFO - 16:27:43:       +--------------+-------------+------------------+-------------+-------+
    INFO - 16:27:43:       | thick_panels |      1      | 3.22502142685452 |      20     | float |
    INFO - 16:27:43:       +--------------+-------------+------------------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.022785) ***
    INFO - 16:27:43: ... 100%|██████████| 7/7 [00:00<00:00, 13.06 it/sec, obj=-4.51e+3]
    INFO - 16:27:43: Optimization result:
    INFO - 16:27:43:    Optimizer info:
    INFO - 16:27:43:       Status: None
    INFO - 16:27:43:       Message: Maximum number of iterations reached. GEMSEO Stopped the driver
    INFO - 16:27:43:       Number of calls to the objective function by the optimizer: 9
    INFO - 16:27:43:    Solution:
    INFO - 16:27:43:       The solution is feasible.
    INFO - 16:27:43:       Objective: -4509.243708600623
    INFO - 16:27:43:       Standardized constraints:
    INFO - 16:27:43:          lift - 0.5 = 5.898614929833457e-13
    INFO - 16:27:43:          reserve_fact - 0.5 = -0.2599999989201862
    INFO - 16:27:43:       Design space:
    INFO - 16:27:43:       +-------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | name  | lower_bound | value | upper_bound | type  |
    INFO - 16:27:43:       +-------+-------------+-------+-------------+-------+
    INFO - 16:27:43:       | sweep |      10     |   25  |      35     | float |
    INFO - 16:27:43:       +-------+-------------+-------+-------------+-------+
    INFO - 16:27:43: *** End MDOScenario execution (time: 0:00:00.551516) ***
 WARNING - 16:27:43: Failed to create Hessian approximation.
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.0.0/lib/python3.9/site-packages/gemseo/post/opt_history_view.py", line 621, in _create_hessian_approx_plot
    _, diag, _, _ = SR1Approx(history).build_approximation(
  File "/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.0.0/lib/python3.9/site-packages/gemseo/post/core/hessians.py", line 379, in build_approximation
    x_hist, grad_hist, _, _ = self.get_x_grad_history(
  File "/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.0.0/lib/python3.9/site-packages/gemseo/post/core/hessians.py", line 170, in get_x_grad_history
    raise ValueError(
ValueError: Cannot build approximation for function: -range because its gradient history is too small: 0.

<gemseo.post.opt_history_view.OptHistoryView object at 0x7fea3bc00a00>

Total running time of the script: ( 0 minutes 3.374 seconds)

Gallery generated by Sphinx-Gallery