MDO formulations for a toy example in aerostructure

from __future__ import division, unicode_literals

from copy import deepcopy

from gemseo.api import (
    configure_logger,
    create_discipline,
    create_scenario,
    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_dict=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_dict=struc_formulas
)
mission_formulas = {"range": "8e11*lift/(mass*drag)"}
mission = create_discipline(
    "AnalyticDiscipline", name="Mission", expressions_dict=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)

Out:

    INFO - 09:26:11:
    INFO - 09:26:11: *** Start MDO Scenario execution ***
    INFO - 09:26:11: MDOScenario
    INFO - 09:26:11:    Disciplines: Aerodynamics Structure Mission
    INFO - 09:26:11:    MDOFormulation: MDF
    INFO - 09:26:11:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:11: Optimization problem:
    INFO - 09:26:11:    Minimize: -range(thick_airfoils, thick_panels, sweep)
    INFO - 09:26:11:    With respect to: thick_airfoils, thick_panels, sweep
    INFO - 09:26:11:    Subject to constraints:
    INFO - 09:26:11:       reserve_fact(thick_airfoils, thick_panels, sweep) <= 0.5
    INFO - 09:26:11:       lift(thick_airfoils, thick_panels, sweep) == 0.5
    INFO - 09:26:11: Design Space:
    INFO - 09:26:11: +----------------+-------------+---------+-------------+-------+
    INFO - 09:26:11: | name           | lower_bound |  value  | upper_bound | type  |
    INFO - 09:26:11: +----------------+-------------+---------+-------------+-------+
    INFO - 09:26:11: | thick_airfoils |      5      | (15+0j) |      25     | float |
    INFO - 09:26:11: | thick_panels   |      1      |  (3+0j) |      20     | float |
    INFO - 09:26:11: | sweep          |      10     | (25+0j) |      35     | float |
    INFO - 09:26:11: +----------------+-------------+---------+-------------+-------+
    INFO - 09:26:11: Optimization:   0%|          | 0/10 [00:00<?, ?it]
   ERROR - 09:26:11: NLOPT run failed : NLopt roundoff-limited, RoundoffLimited
    INFO - 09:26:11: Optimization:  40%|████      | 4/10 [00:00<00:00, 115.17 it/sec, obj=4.51e+3]
    INFO - 09:26:11: Optimization result:
    INFO - 09:26:11: Objective value = 4509.505446930044
    INFO - 09:26:11: The result is feasible.
    INFO - 09:26:11: Status: None
    INFO - 09:26:11: Optimizer message:  GEMSEO Stopped the driver
    INFO - 09:26:11: Number of calls to the objective function by the optimizer: 4
    INFO - 09:26:11: Constraints values w.r.t. 0:
    INFO - 09:26:11:    lift = 1.1837386626467605e-10
    INFO - 09:26:11:    reserve_fact = 2.1929840698931002e-07
    INFO - 09:26:11: Design Space:
    INFO - 09:26:11: +----------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:11: | name           | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:11: +----------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:11: | thick_airfoils |      5      |         5         |      25     | float |
    INFO - 09:26:11: | thick_panels   |      1      | 3.225589189654568 |      20     | float |
    INFO - 09:26:11: | sweep          |      10     | 24.99326599319672 |      35     | float |
    INFO - 09:26:11: +----------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:11: *** MDO Scenario run terminated in 0:00:00.098110 ***

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

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,
    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)

Out:

    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: MDOScenario MDOScenario Mission
    INFO - 09:26:12:    MDOFormulation: BiLevel
    INFO - 09:26:12:    Algorithm: NLOPT_COBYLA
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(sweep)
    INFO - 09:26:12:    With respect to: sweep
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       reserve_fact(sweep) <= 0.5
    INFO - 09:26:12:       lift(sweep) == 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +-------+-------------+---------+-------------+-------+
    INFO - 09:26:12: | name  | lower_bound |  value  | upper_bound | type  |
    INFO - 09:26:12: +-------+-------------+---------+-------------+-------+
    INFO - 09:26:12: | sweep |      10     | (25+0j) |      35     | float |
    INFO - 09:26:12: +-------+-------------+---------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/7 [00:00<?, ?it]
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Aerodynamics Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_airfoils)
    INFO - 09:26:12:    With respect to: thick_airfoils
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       lift(thick_airfoils) == 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+---------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound |  value  | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+---------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      | (15+0j) |      25     | float |
    INFO - 09:26:12: +----------------+-------------+---------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
 WARNING - 09:26:12: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 09:26:12: Optimization:  60%|██████    | 3/5 [00:00<00:00, 399.40 it/sec, obj=4.5e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 4500.624867974909
    INFO - 09:26:12: The result is not feasible.
    INFO - 09:26:12: Status: 5
    INFO - 09:26:12: Optimizer message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 8
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    lift = 0.005333333333333523
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound | value | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.021490 ***
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Structure Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_panels)
    INFO - 09:26:12:    With respect to: thick_panels
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       reserve_fact(thick_panels) <= 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+--------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound | value  | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+--------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | (3+0j) |      20     | float |
    INFO - 09:26:12: +--------------+-------------+--------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
    INFO - 09:26:12: Optimization: 100%|██████████| 5/5 [00:00<00:00, 268.63 it/sec, obj=4.26e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 4259.673200985174
    INFO - 09:26:12: The result is feasible.
    INFO - 09:26:12: Status: None
    INFO - 09:26:12: Optimizer message: Maximum number of iterations reached. GEMSEO Stopped the driver
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 6
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    reserve_fact = 5.908660227760265e-10
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 3.249999999901522 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.027283 ***
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Aerodynamics Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_airfoils)
    INFO - 09:26:12:    With respect to: thick_airfoils
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       lift(thick_airfoils) == 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound | value | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
 WARNING - 09:26:12: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 09:26:12: Optimization:  20%|██        | 1/5 [00:00<00:00, 1124.00 it/sec, obj=4.27e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 4267.901616337765
    INFO - 09:26:12: The result is not feasible.
    INFO - 09:26:12: Status: 5
    INFO - 09:26:12: Optimizer message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 8
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    lift = 0.12713888888921754
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound | value | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.012453 ***
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Structure Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_panels)
    INFO - 09:26:12:    With respect to: thick_panels
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       reserve_fact(thick_panels) <= 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 3.249999999901522 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
    INFO - 09:26:12: Optimization: 100%|██████████| 5/5 [00:00<00:00, 447.75 it/sec, obj=4.27e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 4270.014801167415
    INFO - 09:26:12: The result is feasible.
    INFO - 09:26:12: Status: None
    INFO - 09:26:12: Optimizer message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 6
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    reserve_fact = 1.795151405303841e-08
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 1.765277774787501 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.019109 ***
    INFO - 09:26:12: Optimization:  57%|█████▋    | 4/7 [00:00<00:00, 49.93 it/sec, obj=4.27e+3]
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Aerodynamics Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_airfoils)
    INFO - 09:26:12:    With respect to: thick_airfoils
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       lift(thick_airfoils) == 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound | value | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
 WARNING - 09:26:12: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 09:26:12: Optimization: 100%|██████████| 5/5 [00:00<00:00, 466.50 it/sec, obj=4.51e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 3831.8061828323216
    INFO - 09:26:12: The result is not feasible.
    INFO - 09:26:12: Status: None
    INFO - 09:26:12: Optimizer message: Maximum number of iterations reached. GEMSEO Stopped the driver
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 7
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    lift = -0.0023383323840736048
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound | value | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      |   25  |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.019298 ***
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Structure Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_panels)
    INFO - 09:26:12:    With respect to: thick_panels
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       reserve_fact(thick_panels) <= 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 1.765277774787501 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
    INFO - 09:26:12: Optimization: 100%|██████████| 5/5 [00:00<00:00, 450.30 it/sec, obj=4.51e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 4510.28733758947
    INFO - 09:26:12: The result is feasible.
    INFO - 09:26:12: Status: None
    INFO - 09:26:12: Optimizer message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 6
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    reserve_fact = 9.825129154705792e-09
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 3.414587191640841 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.019179 ***
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Aerodynamics Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_airfoils)
    INFO - 09:26:12:    With respect to: thick_airfoils
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       lift(thick_airfoils) == 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound | value | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      |   25  |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
 WARNING - 09:26:12: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 09:26:12: Optimization:  40%|████      | 2/5 [00:00<00:00, 719.16 it/sec, obj=4.49e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 4490.54017419866
    INFO - 09:26:12: The result is not feasible.
    INFO - 09:26:12: Status: 5
    INFO - 09:26:12: Optimizer message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 8
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    lift = 0.009181047342347703
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound | value | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.015229 ***
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Structure Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_panels)
    INFO - 09:26:12:    With respect to: thick_panels
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       reserve_fact(thick_panels) <= 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 3.414587191640841 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
    INFO - 09:26:12: Optimization: 100%|██████████| 5/5 [00:00<00:00, 452.81 it/sec, obj=3.83e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 3826.743052193993
    INFO - 09:26:12: The result is feasible.
    INFO - 09:26:12: Status: None
    INFO - 09:26:12: Optimizer message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 6
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    reserve_fact = 2.441211677250976e-10
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 3.256301635506198 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.019028 ***
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Aerodynamics Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_airfoils)
    INFO - 09:26:12:    With respect to: thick_airfoils
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       lift(thick_airfoils) == 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound | value | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
    INFO - 09:26:12: Optimization: 100%|██████████| 5/5 [00:00<00:00, 377.65 it/sec, obj=4.51e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 3854.081803343046
    INFO - 09:26:12: The result is feasible.
    INFO - 09:26:12: Status: None
    INFO - 09:26:12: Optimizer message: Maximum number of iterations reached. GEMSEO Stopped the driver
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 7
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    lift = 0.0
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      | 24.35677419344305 |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.021626 ***
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Structure Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_panels)
    INFO - 09:26:12:    With respect to: thick_panels
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       reserve_fact(thick_panels) <= 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 3.256301635506198 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
    INFO - 09:26:12: Optimization: 100%|██████████| 5/5 [00:00<00:00, 407.32 it/sec, obj=4.5e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 4499.256641689055
    INFO - 09:26:12: The result is feasible.
    INFO - 09:26:12: Status: None
    INFO - 09:26:12: Optimizer message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 6
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    reserve_fact = 1.0071417477774958e-08
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 3.303233600552277 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.020263 ***
    INFO - 09:26:12: Optimization: 100%|██████████| 7/7 [00:00<00:00, 22.75 it/sec, obj=3.85e+3]
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Aerodynamics Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_airfoils)
    INFO - 09:26:12:    With respect to: thick_airfoils
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       lift(thick_airfoils) == 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      | 24.35677419344305 |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
 WARNING - 09:26:12: Optimization found no feasible point !  The least infeasible point is selected.
    INFO - 09:26:12: Optimization:  40%|████      | 2/5 [00:00<00:00, 720.52 it/sec, obj=4.49e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 4492.3892036841535
    INFO - 09:26:12: The result is not feasible.
    INFO - 09:26:12: Status: 5
    INFO - 09:26:12: Optimizer message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 8
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    lift = 0.008585874889775913
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | name           | lower_bound | value | upper_bound | type  |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: | thick_airfoils |      5      |   5   |      25     | float |
    INFO - 09:26:12: +----------------+-------------+-------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.014956 ***
    INFO - 09:26:12:
    INFO - 09:26:12: *** Start MDO Scenario execution ***
    INFO - 09:26:12: MDOScenario
    INFO - 09:26:12:    Disciplines: Structure Mission
    INFO - 09:26:12:    MDOFormulation: DisciplinaryOpt
    INFO - 09:26:12:    Algorithm: NLOPT_SLSQP
    INFO - 09:26:12: Optimization problem:
    INFO - 09:26:12:    Minimize: -range(thick_panels)
    INFO - 09:26:12:    With respect to: thick_panels
    INFO - 09:26:12:    Subject to constraints:
    INFO - 09:26:12:       reserve_fact(thick_panels) <= 0.5
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 3.303233600552277 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: Optimization:   0%|          | 0/5 [00:00<?, ?it]
    INFO - 09:26:12: 
   ERROR - 09:26:12: NLOPT run failed : NLopt roundoff-limited, RoundoffLimited
    INFO - 09:26:12: Optimization:  40%|████      | 2/5 [00:00<00:00, 835.85 it/sec, obj=3.86e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 3858.451348417431
    INFO - 09:26:12: The result is feasible.
    INFO - 09:26:12: Status: None
    INFO - 09:26:12: Optimizer message:  GEMSEO Stopped the driver
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 3
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    reserve_fact = 4.969322731085413e-10
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | name         | lower_bound |       value       | upper_bound | type  |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: | thick_panels |      1      | 3.264536843988948 |      20     | float |
    INFO - 09:26:12: +--------------+-------------+-------------------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.013967 ***
    INFO - 09:26:12: Optimization: 100%|██████████| 7/7 [00:00<00:00, 19.81 it/sec, obj=4.51e+3]
    INFO - 09:26:12: Optimization result:
    INFO - 09:26:12: Objective value = 4509.243436178001
    INFO - 09:26:12: The result is feasible.
    INFO - 09:26:12: Status: None
    INFO - 09:26:12: Optimizer message: Maximum number of iterations reached. GEMSEO Stopped the driver
    INFO - 09:26:12: Number of calls to the objective function by the optimizer: 8
    INFO - 09:26:12: Constraints values w.r.t. 0:
    INFO - 09:26:12:    lift = 5.5555555884878594e-05
    INFO - 09:26:12:    reserve_fact = -0.1583333327326315
    INFO - 09:26:12: Design Space:
    INFO - 09:26:12: +-------+-------------+---------+-------------+-------+
    INFO - 09:26:12: | name  | lower_bound |  value  | upper_bound | type  |
    INFO - 09:26:12: +-------+-------------+---------+-------------+-------+
    INFO - 09:26:12: | sweep |      10     | (25+0j) |      35     | float |
    INFO - 09:26:12: +-------+-------------+---------+-------------+-------+
    INFO - 09:26:12: *** MDO Scenario run terminated in 0:00:00.362958 ***

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

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

Gallery generated by Sphinx-Gallery