Note
Go to the end to download the full example code.
MDO formulations for a toy example in aerostructure#
from __future__ import annotations
from gemseo import configure_logger
from gemseo import create_discipline
from gemseo import create_scenario
from gemseo import generate_n2_plot
from gemseo.problems.mdo.aerostructure.aerostructure_design_space import (
AerostructureDesignSpace,
)
from gemseo.settings.mda import MDAChain_Settings
from gemseo.settings.opt import NLOPT_COBYLA_Settings
from gemseo.settings.opt import NLOPT_SLSQP_Settings
configure_logger()
# Passed to algo settings
cobyla_settings = NLOPT_COBYLA_Settings(
max_iter=7,
xtol_rel=1e-8,
xtol_abs=1e-8,
ftol_rel=1e-8,
ftol_abs=1e-8,
ineq_tolerance=1e-5,
eq_tolerance=1e-3,
)
slsqp_settings = NLOPT_SLSQP_Settings(
max_iter=10,
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)

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,
"range",
design_space,
maximize_objective=True,
formulation_name="MDF",
)
scenario.add_constraint("reserve_fact", constraint_type="ineq", value=0.5)
scenario.add_constraint("lift", value=0.5)
scenario.execute(slsqp_settings)
scenario.post_process(post_name="OptHistoryView", save=False, show=True)
INFO - 20:38:24: Variable reserve_fact was removed from the Design Space, it is not an input of any discipline.
INFO - 20:38:24: *** Start MDOScenario execution ***
INFO - 20:38:24: MDOScenario
INFO - 20:38:24: Disciplines: Aerodynamics Mission Structure
INFO - 20:38:24: MDO formulation: MDF
INFO - 20:38:24: Optimization problem:
INFO - 20:38:24: minimize -range(thick_airfoils, thick_panels, sweep)
INFO - 20:38:24: with respect to sweep, thick_airfoils, thick_panels
INFO - 20:38:24: under the equality constraints
INFO - 20:38:24: lift(thick_airfoils, thick_panels, sweep) = 0.5
INFO - 20:38:24: under the inequality constraints
INFO - 20:38:24: reserve_fact(thick_airfoils, thick_panels, sweep) <= 0.5
INFO - 20:38:24: over the design space:
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | thick_airfoils | 5 | 15 | 25 | float |
INFO - 20:38:24: | thick_panels | 1 | 3 | 20 | float |
INFO - 20:38:24: | sweep | 10 | 25 | 35 | float |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:24: 10%|█ | 1/10 [00:00<00:00, 80.00 it/sec, obj=-4.25e+3]
INFO - 20:38:24: 20%|██ | 2/10 [00:00<00:00, 47.01 it/sec, obj=-4.51e+3]
INFO - 20:38:24: 30%|███ | 3/10 [00:00<00:00, 56.00 it/sec, obj=-4.51e+3]
INFO - 20:38:24: 40%|████ | 4/10 [00:00<00:00, 73.81 it/sec, obj=Not evaluated]
INFO - 20:38:24: Optimization result:
INFO - 20:38:24: Optimizer info:
INFO - 20:38:24: Status: None
INFO - 20:38:24: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO stopped the driver.
INFO - 20:38:24: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:24: Solution:
INFO - 20:38:24: The solution is feasible.
INFO - 20:38:24: Objective: -4509.505446934416
INFO - 20:38:24: Standardized constraints:
INFO - 20:38:24: [lift-0.5] = 8.881784197001252e-15
INFO - 20:38:24: [reserve_fact-0.5] = 6.464347279688809e-09
INFO - 20:38:24: Design space:
INFO - 20:38:24: +----------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +----------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:24: | thick_panels | 1 | 3.225589224567829 | 20 | float |
INFO - 20:38:24: | sweep | 10 | 24.99326599309897 | 35 | float |
INFO - 20:38:24: +----------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: *** End MDOScenario execution ***
<gemseo.post.opt_history_view.OptHistoryView object at 0x78592f936a80>
Create an MDO scenario with bilevel formulation#
Then, we create an MDO scenario based on the bilevel formulation
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.
aero_scenario = create_scenario(
[aerodynamics, mission],
"range",
design_space_ref.filter(["thick_airfoils"], copy=True),
maximize_objective=True,
formulation_name="DisciplinaryOpt",
)
aero_scenario.set_algorithm(slsqp_settings)
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.
struct_scenario = create_scenario(
[structure, mission],
"range",
design_space_ref.filter(["thick_panels"], copy=True),
maximize_objective=True,
formulation_name="DisciplinaryOpt",
)
struct_scenario.set_algorithm(slsqp_settings)
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 = design_space_ref.filter(["sweep"], copy=True)
system_scenario = create_scenario(
[aero_scenario, struct_scenario, mission],
"range",
design_space_system,
formulation_name="BiLevel",
maximize_objective=True,
main_mda_settings=MDAChain_Settings(inner_mda_name="MDAJacobi", tolerance=1e-8),
)
system_scenario.add_constraint("reserve_fact", constraint_type="ineq", value=0.5)
system_scenario.add_constraint("lift", value=0.5)
system_scenario.execute(cobyla_settings)
system_scenario.post_process(post_name="OptHistoryView", save=False, show=True)
INFO - 20:38:24: *** Start MDOScenario execution ***
INFO - 20:38:24: MDOScenario
INFO - 20:38:24: Disciplines: MDOScenario MDOScenario Mission
INFO - 20:38:24: MDO formulation: BiLevel
INFO - 20:38:24: Optimization problem:
INFO - 20:38:24: minimize -range(sweep)
INFO - 20:38:24: with respect to sweep
INFO - 20:38:24: under the equality constraints
INFO - 20:38:24: lift(sweep) = 0.5
INFO - 20:38:24: under the inequality constraints
INFO - 20:38:24: reserve_fact(sweep) <= 0.5
INFO - 20:38:24: over the design space:
INFO - 20:38:24: +-------+-------------+-------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +-------+-------------+-------+-------------+-------+
INFO - 20:38:24: | sweep | 10 | 25 | 35 | float |
INFO - 20:38:24: +-------+-------------+-------+-------------+-------+
INFO - 20:38:24: Solving optimization problem with algorithm NLOPT_COBYLA:
INFO - 20:38:24: *** Start MDOScenario execution ***
INFO - 20:38:24: MDOScenario
INFO - 20:38:24: Disciplines: Aerodynamics Mission
INFO - 20:38:24: MDO formulation: DisciplinaryOpt
INFO - 20:38:24: Optimization problem:
INFO - 20:38:24: minimize -range(thick_airfoils)
INFO - 20:38:24: with respect to thick_airfoils
INFO - 20:38:24: under the equality constraints
INFO - 20:38:24: lift(thick_airfoils) = 0.5
INFO - 20:38:24: over the design space:
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | thick_airfoils | 5 | 15 | 25 | float |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:24: 10%|█ | 1/10 [00:00<00:00, 2344.50 it/sec, obj=-4.27e+3]
WARNING - 20:38:24: Optimization found no feasible point; the least infeasible point is selected.
INFO - 20:38:24: 20%|██ | 2/10 [00:00<00:00, 602.76 it/sec, obj=-4.51e+3]
INFO - 20:38:24: Optimization result:
INFO - 20:38:24: Optimizer info:
INFO - 20:38:24: Status: 5
INFO - 20:38:24: Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 20:38:24: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:24: Solution:
WARNING - 20:38:24: The solution is not feasible.
INFO - 20:38:24: Objective: -4513.429203824652
INFO - 20:38:24: Standardized constraints:
INFO - 20:38:24: [lift-0.5] = 0.008666666666666822
INFO - 20:38:24: Design space:
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: *** End MDOScenario execution ***
INFO - 20:38:24: *** Start MDOScenario execution ***
INFO - 20:38:24: MDOScenario
INFO - 20:38:24: Disciplines: Mission Structure
INFO - 20:38:24: MDO formulation: DisciplinaryOpt
INFO - 20:38:24: Optimization problem:
INFO - 20:38:24: minimize -range(thick_panels)
INFO - 20:38:24: with respect to thick_panels
INFO - 20:38:24: under the inequality constraints
INFO - 20:38:24: reserve_fact(thick_panels) <= 0.5
INFO - 20:38:24: over the design space:
INFO - 20:38:24: +--------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +--------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | thick_panels | 1 | 3 | 20 | float |
INFO - 20:38:24: +--------------+-------------+-------+-------------+-------+
INFO - 20:38:24: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:24: 10%|█ | 1/10 [00:00<00:00, 2295.73 it/sec, obj=-4.51e+3]
ERROR - 20:38:24: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
nlopt.RoundoffLimited: NLopt roundoff-limited
INFO - 20:38:24: 20%|██ | 2/10 [00:00<00:00, 731.67 it/sec, obj=-4.5e+3]
INFO - 20:38:24: Optimization result:
INFO - 20:38:24: Optimizer info:
INFO - 20:38:24: Status: None
INFO - 20:38:24: Message: GEMSEO stopped the driver.
INFO - 20:38:24: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:24: Solution:
INFO - 20:38:24: The solution is feasible.
INFO - 20:38:24: Objective: -4504.955637332531
INFO - 20:38:24: Standardized constraints:
INFO - 20:38:24: [reserve_fact-0.5] = 1.062133492268913e-09
INFO - 20:38:24: Design space:
INFO - 20:38:24: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: | thick_panels | 1 | 3.266666666489645 | 20 | float |
INFO - 20:38:24: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: *** End MDOScenario execution ***
INFO - 20:38:24: 14%|█▍ | 1/7 [00:00<00:00, 66.69 it/sec, obj=-4.51e+3]
INFO - 20:38:24: *** Start MDOScenario execution ***
INFO - 20:38:24: MDOScenario
INFO - 20:38:24: Disciplines: Aerodynamics Mission
INFO - 20:38:24: MDO formulation: DisciplinaryOpt
INFO - 20:38:24: Optimization problem:
INFO - 20:38:24: minimize -range(thick_airfoils)
INFO - 20:38:24: with respect to thick_airfoils
INFO - 20:38:24: under the equality constraints
INFO - 20:38:24: lift(thick_airfoils) = 0.5
INFO - 20:38:24: over the design space:
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:24: 10%|█ | 1/10 [00:00<00:00, 3004.52 it/sec, obj=-4.27e+3]
WARNING - 20:38:24: Optimization found no feasible point; the least infeasible point is selected.
INFO - 20:38:24: Optimization result:
INFO - 20:38:24: Optimizer info:
INFO - 20:38:24: Status: 5
INFO - 20:38:24: Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 20:38:24: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:24: Solution:
WARNING - 20:38:24: The solution is not feasible.
INFO - 20:38:24: Objective: -4267.910320106269
INFO - 20:38:24: Standardized constraints:
INFO - 20:38:24: [lift-0.5] = 0.12708333333392363
INFO - 20:38:24: Design space:
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:24: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:24: *** End MDOScenario execution ***
INFO - 20:38:24: *** Start MDOScenario execution ***
INFO - 20:38:24: MDOScenario
INFO - 20:38:24: Disciplines: Mission Structure
INFO - 20:38:24: MDO formulation: DisciplinaryOpt
INFO - 20:38:24: Optimization problem:
INFO - 20:38:24: minimize -range(thick_panels)
INFO - 20:38:24: with respect to thick_panels
INFO - 20:38:24: under the inequality constraints
INFO - 20:38:24: reserve_fact(thick_panels) <= 0.5
INFO - 20:38:24: over the design space:
INFO - 20:38:24: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: | thick_panels | 1 | 3.266666666489645 | 20 | float |
INFO - 20:38:24: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:24: 10%|█ | 1/10 [00:00<00:00, 3170.30 it/sec, obj=-4.27e+3]
INFO - 20:38:24: 20%|██ | 2/10 [00:00<00:00, 846.39 it/sec, obj=-4.27e+3]
INFO - 20:38:24: 30%|███ | 3/10 [00:00<00:00, 908.97 it/sec, obj=-4.27e+3]
INFO - 20:38:24: 40%|████ | 4/10 [00:00<00:00, 1163.39 it/sec, obj=-4.27e+3]
INFO - 20:38:24: Optimization result:
INFO - 20:38:24: Optimizer info:
INFO - 20:38:24: Status: None
INFO - 20:38:24: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
INFO - 20:38:24: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:24: Solution:
INFO - 20:38:24: The solution is feasible.
INFO - 20:38:24: Objective: -4270.047650046897
INFO - 20:38:24: Standardized constraints:
INFO - 20:38:24: [reserve_fact-0.5] = 1.5540514652911952e-08
INFO - 20:38:24: Design space:
INFO - 20:38:24: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:24: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: | thick_panels | 1 | 1.764999997412866 | 20 | float |
INFO - 20:38:24: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:24: *** End MDOScenario execution ***
INFO - 20:38:25: 29%|██▊ | 2/7 [00:00<00:00, 66.81 it/sec, obj=-4.27e+3]
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Aerodynamics Mission
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_airfoils)
INFO - 20:38:25: with respect to thick_airfoils
INFO - 20:38:25: under the equality constraints
INFO - 20:38:25: lift(thick_airfoils) = 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2892.62 it/sec, obj=-4.53e+3]
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 839.20 it/sec, obj=-3.83e+3]
INFO - 20:38:25: 30%|███ | 3/10 [00:00<00:00, 1182.38 it/sec, obj=-4.43e+3]
INFO - 20:38:25: 40%|████ | 4/10 [00:00<00:00, 1301.77 it/sec, obj=-4.5e+3]
INFO - 20:38:25: 50%|█████ | 5/10 [00:00<00:00, 1399.03 it/sec, obj=-4.51e+3]
INFO - 20:38:25: 60%|██████ | 6/10 [00:00<00:00, 1459.06 it/sec, obj=-4.52e+3]
INFO - 20:38:25: 70%|███████ | 7/10 [00:00<00:00, 1521.17 it/sec, obj=-4.52e+3]
INFO - 20:38:25: 80%|████████ | 8/10 [00:00<00:00, 1566.28 it/sec, obj=-4.52e+3]
INFO - 20:38:25: 90%|█████████ | 9/10 [00:00<00:00, 1612.78 it/sec, obj=-4.53e+3]
INFO - 20:38:25: 100%|██████████| 10/10 [00:00<00:00, 1645.15 it/sec, obj=-4.53e+3]
WARNING - 20:38:25: Optimization found no feasible point; the least infeasible point is selected.
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: None
INFO - 20:38:25: Message: Maximum number of iterations reached. GEMSEO stopped the driver.
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
WARNING - 20:38:25: The solution is not feasible.
INFO - 20:38:25: Objective: -3831.807218275781
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [lift-0.5] = -0.0023374064594913757
INFO - 20:38:25: Design space:
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 25 | 25 | float |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Mission Structure
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_panels)
INFO - 20:38:25: with respect to thick_panels
INFO - 20:38:25: under the inequality constraints
INFO - 20:38:25: reserve_fact(thick_panels) <= 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 1.764999997412866 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2560.63 it/sec, obj=-3.82e+3]
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 799.14 it/sec, obj=-3.82e+3]
ERROR - 20:38:25: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
nlopt.RoundoffLimited: NLopt roundoff-limited
INFO - 20:38:25: 30%|███ | 3/10 [00:00<00:00, 863.62 it/sec, obj=-3.82e+3]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: None
INFO - 20:38:25: Message: GEMSEO stopped the driver.
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
INFO - 20:38:25: The solution is feasible.
INFO - 20:38:25: Objective: -3818.5902856031416
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [reserve_fact-0.5] = 2.8144597763457568e-11
INFO - 20:38:25: Design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 3.414591822896584 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: 43%|████▎ | 3/7 [00:00<00:00, 60.29 it/sec, obj=-3.82e+3]
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Aerodynamics Mission
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_airfoils)
INFO - 20:38:25: with respect to thick_airfoils
INFO - 20:38:25: under the equality constraints
INFO - 20:38:25: lift(thick_airfoils) = 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 25 | 25 | float |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2634.61 it/sec, obj=-3.82e+3]
WARNING - 20:38:25: Optimization found no feasible point; the least infeasible point is selected.
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 657.41 it/sec, obj=-4.49e+3]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: 5
INFO - 20:38:25: Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
WARNING - 20:38:25: The solution is not feasible.
INFO - 20:38:25: Objective: -4490.54017449428
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [lift-0.5] = 0.00918103190482844
INFO - 20:38:25: Design space:
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Mission Structure
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_panels)
INFO - 20:38:25: with respect to thick_panels
INFO - 20:38:25: under the inequality constraints
INFO - 20:38:25: reserve_fact(thick_panels) <= 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 3.414591822896584 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2519.10 it/sec, obj=-4.5e+3]
ERROR - 20:38:25: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
nlopt.RoundoffLimited: NLopt roundoff-limited
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 854.06 it/sec, obj=-4.5e+3]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: None
INFO - 20:38:25: Message: GEMSEO stopped the driver.
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
INFO - 20:38:25: The solution is feasible.
INFO - 20:38:25: Objective: -4503.594576633829
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [reserve_fact-0.5] = 1.1323209037072957e-10
INFO - 20:38:25: Design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 3.256301558340416 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: 57%|█████▋ | 4/7 [00:00<00:00, 62.17 it/sec, obj=-4.51e+3]
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Aerodynamics Mission
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_airfoils)
INFO - 20:38:25: with respect to thick_airfoils
INFO - 20:38:25: under the equality constraints
INFO - 20:38:25: lift(thick_airfoils) = 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2167.60 it/sec, obj=-4.51e+3]
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 447.87 it/sec, obj=-3.85e+3]
INFO - 20:38:25: 30%|███ | 3/10 [00:00<00:00, 641.95 it/sec, obj=-4.48e+3]
INFO - 20:38:25: 40%|████ | 4/10 [00:00<00:00, 724.19 it/sec, obj=-4.51e+3]
INFO - 20:38:25: 50%|█████ | 5/10 [00:00<00:00, 797.55 it/sec, obj=-4.51e+3]
ERROR - 20:38:25: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
nlopt.RoundoffLimited: NLopt roundoff-limited
INFO - 20:38:25: 60%|██████ | 6/10 [00:00<00:00, 734.81 it/sec, obj=-3.85e+3]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: None
INFO - 20:38:25: Message: GEMSEO stopped the driver.
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
INFO - 20:38:25: The solution is feasible.
INFO - 20:38:25: Objective: -3854.0819929120544
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [lift-0.5] = 0.0
INFO - 20:38:25: Design space:
INFO - 20:38:25: +----------------+-------------+------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+------------------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 24.3567703351527 | 25 | float |
INFO - 20:38:25: +----------------+-------------+------------------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Mission Structure
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_panels)
INFO - 20:38:25: with respect to thick_panels
INFO - 20:38:25: under the inequality constraints
INFO - 20:38:25: reserve_fact(thick_panels) <= 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 3.256301558340416 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2407.75 it/sec, obj=-3.84e+3]
ERROR - 20:38:25: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
nlopt.RoundoffLimited: NLopt roundoff-limited
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 847.59 it/sec, obj=-3.84e+3]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: None
INFO - 20:38:25: Message: GEMSEO stopped the driver.
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
INFO - 20:38:25: The solution is feasible.
INFO - 20:38:25: Objective: -3843.382025541499
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [reserve_fact-0.5] = -1.1290524071227992e-10
INFO - 20:38:25: Design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 3.303233590674794 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: 71%|███████▏ | 5/7 [00:00<00:00, 59.22 it/sec, obj=-3.85e+3]
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Aerodynamics Mission
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_airfoils)
INFO - 20:38:25: with respect to thick_airfoils
INFO - 20:38:25: under the equality constraints
INFO - 20:38:25: lift(thick_airfoils) = 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +----------------+-------------+------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+------------------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 24.3567703351527 | 25 | float |
INFO - 20:38:25: +----------------+-------------+------------------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2557.50 it/sec, obj=-3.85e+3]
WARNING - 20:38:25: Optimization found no feasible point; the least infeasible point is selected.
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 652.25 it/sec, obj=-4.49e+3]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: 5
INFO - 20:38:25: Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
WARNING - 20:38:25: The solution is not feasible.
INFO - 20:38:25: Objective: -4492.38920700084
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [lift-0.5] = 0.00858587320790527
INFO - 20:38:25: Design space:
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Mission Structure
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_panels)
INFO - 20:38:25: with respect to thick_panels
INFO - 20:38:25: under the inequality constraints
INFO - 20:38:25: reserve_fact(thick_panels) <= 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 3.303233590674794 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2568.47 it/sec, obj=-4.5e+3]
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 801.36 it/sec, obj=-4.5e+3]
INFO - 20:38:25: 30%|███ | 3/10 [00:00<00:00, 874.54 it/sec, obj=-4.5e+3]
INFO - 20:38:25: 40%|████ | 4/10 [00:00<00:00, 1120.05 it/sec, obj=-4.5e+3]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: None
INFO - 20:38:25: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO stopped the driver.
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
INFO - 20:38:25: The solution is feasible.
INFO - 20:38:25: Objective: -4504.850158478924
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [reserve_fact-0.5] = 5.3804996014150674e-09
INFO - 20:38:25: Design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 3.264536834765667 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: 86%|████████▌ | 6/7 [00:00<00:00, 59.19 it/sec, obj=-4.51e+3]
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Aerodynamics Mission
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_airfoils)
INFO - 20:38:25: with respect to thick_airfoils
INFO - 20:38:25: under the equality constraints
INFO - 20:38:25: lift(thick_airfoils) = 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2928.98 it/sec, obj=-4.51e+3]
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 884.87 it/sec, obj=-4.48e+3]
INFO - 20:38:25: 30%|███ | 3/10 [00:00<00:00, 1241.90 it/sec, obj=-4.51e+3]
INFO - 20:38:25: 40%|████ | 4/10 [00:00<00:00, 1256.44 it/sec, obj=-4.51e+3]
INFO - 20:38:25: 50%|█████ | 5/10 [00:00<00:00, 1283.37 it/sec, obj=-4.51e+3]
ERROR - 20:38:25: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
nlopt.RoundoffLimited: NLopt roundoff-limited
INFO - 20:38:25: 60%|██████ | 6/10 [00:00<00:00, 1009.10 it/sec, obj=-4.48e+3]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: None
INFO - 20:38:25: Message: GEMSEO stopped the driver.
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
INFO - 20:38:25: The solution is feasible.
INFO - 20:38:25: Objective: -4509.519641910682
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [lift-0.5] = -0.0001369125207841826
INFO - 20:38:25: Design space:
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 20:38:25: +----------------+-------------+-------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: *** Start MDOScenario execution ***
INFO - 20:38:25: MDOScenario
INFO - 20:38:25: Disciplines: Mission Structure
INFO - 20:38:25: MDO formulation: DisciplinaryOpt
INFO - 20:38:25: Optimization problem:
INFO - 20:38:25: minimize -range(thick_panels)
INFO - 20:38:25: with respect to thick_panels
INFO - 20:38:25: under the inequality constraints
INFO - 20:38:25: reserve_fact(thick_panels) <= 0.5
INFO - 20:38:25: over the design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 3.264536834765667 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 20:38:25: 10%|█ | 1/10 [00:00<00:00, 2900.63 it/sec, obj=-4.51e+3]
INFO - 20:38:25: 20%|██ | 2/10 [00:00<00:00, 843.16 it/sec, obj=-4.51e+3]
INFO - 20:38:25: 30%|███ | 3/10 [00:00<00:00, 868.99 it/sec, obj=-4.51e+3]
INFO - 20:38:25: 40%|████ | 4/10 [00:00<00:00, 1035.63 it/sec, obj=Not evaluated]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: None
INFO - 20:38:25: Message: Successive iterates of the design variables are closer than xtol_rel or xtol_abs. GEMSEO stopped the driver.
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
INFO - 20:38:25: The solution is feasible.
INFO - 20:38:25: Objective: -4509.583287345491
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [reserve_fact-0.5] = -2.105693397425057e-10
INFO - 20:38:25: Design space:
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: | thick_panels | 1 | 3.225021426834291 | 20 | float |
INFO - 20:38:25: +--------------+-------------+-------------------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
INFO - 20:38:25: 100%|██████████| 7/7 [00:00<00:00, 57.88 it/sec, obj=-4.51e+3]
INFO - 20:38:25: Optimization result:
INFO - 20:38:25: Optimizer info:
INFO - 20:38:25: Status: None
INFO - 20:38:25: Message: Maximum number of iterations reached. GEMSEO stopped the driver.
INFO - 20:38:25: Number of calls to the objective function by the optimizer: 0
INFO - 20:38:25: Solution:
INFO - 20:38:25: The solution is feasible.
INFO - 20:38:25: Objective: -4509.243708600623
INFO - 20:38:25: Standardized constraints:
INFO - 20:38:25: [lift-0.5] = 5.903055821931957e-13
INFO - 20:38:25: [reserve_fact-0.5] = -0.2599999989201578
INFO - 20:38:25: Design space:
INFO - 20:38:25: +-------+-------------+-------+-------------+-------+
INFO - 20:38:25: | Name | Lower bound | Value | Upper bound | Type |
INFO - 20:38:25: +-------+-------------+-------+-------------+-------+
INFO - 20:38:25: | sweep | 10 | 25 | 35 | float |
INFO - 20:38:25: +-------+-------------+-------+-------------+-------+
INFO - 20:38:25: *** End MDOScenario execution ***
<gemseo.post.opt_history_view.OptHistoryView object at 0x78590cf212b0>
Total running time of the script: (0 minutes 1.327 seconds)









