Note
Click here to download the full example code
MDO formulations for a toy example in aerostructure¶
from copy import deepcopy
from gemseo.api import configure_logger
from gemseo.api import create_discipline
from gemseo.api import create_scenario
from gemseo.api import generate_n2_plot
from gemseo.problems.aerostructure.aerostructure_design_space import (
AerostructureDesignSpace,
)
from matplotlib import pyplot as plt
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)

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:
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/4.0.1/lib/python3.9/site-packages/gemseo/algos/design_space.py:448: ComplexWarning: Casting complex values to real discards the imaginary part
self.__current_value[name] = array_value.astype(
INFO - 10:06:17: Variable reserve_fact was removed from the Design Space, it is not an input of any discipline.
INFO - 10:06:17:
INFO - 10:06:17: *** Start MDOScenario execution ***
INFO - 10:06:17: MDOScenario
INFO - 10:06:17: Disciplines: Aerodynamics Structure Mission
INFO - 10:06:17: MDO formulation: MDF
INFO - 10:06:17: Optimization problem:
INFO - 10:06:17: minimize -range(thick_airfoils, thick_panels, sweep)
INFO - 10:06:17: with respect to sweep, thick_airfoils, thick_panels
INFO - 10:06:17: subject to constraints:
INFO - 10:06:17: reserve_fact(thick_airfoils, thick_panels, sweep) <= 0.5
INFO - 10:06:17: lift(thick_airfoils, thick_panels, sweep) == 0.5
INFO - 10:06:17: over the design space:
INFO - 10:06:17: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:17: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:17: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:17: | thick_airfoils | 5 | 15 | 25 | float |
INFO - 10:06:17: | thick_panels | 1 | 3 | 20 | float |
INFO - 10:06:17: | sweep | 10 | 25 | 35 | float |
INFO - 10:06:17: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:17: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:17: ... 0%| | 0/10 [00:00<?, ?it]
INFO - 10:06:18: ... 30%|███ | 3/10 [00:00<00:00, 84.56 it/sec]
INFO - 10:06:18: ... 40%|████ | 4/10 [00:00<00:00, 65.62 it/sec]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 4
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -4509.50544693336
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: lift - 0.5 = 8.215650382226158e-15
INFO - 10:06:18: reserve_fact - 0.5 = 5.413625103756203e-09
INFO - 10:06:18: Design space:
INFO - 10:06:18: +----------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: | thick_panels | 1 | 3.225589224733846 | 20 | float |
INFO - 10:06:18: | sweep | 10 | 24.99326599312615 | 35 | float |
INFO - 10:06:18: +----------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.162855) ***
<gemseo.post.opt_history_view.OptHistoryView object at 0x7fdbf8584f10>
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()
Out:
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/4.0.1/lib/python3.9/site-packages/gemseo/algos/design_space.py:448: ComplexWarning: Casting complex values to real discards the imaginary part
self.__current_value[name] = array_value.astype(
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=False)
# Workaround for HTML rendering, instead of ``show=True``
plt.show()
Out:
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: MDOScenario MDOScenario Mission
INFO - 10:06:18: MDO formulation: BiLevel
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(sweep)
INFO - 10:06:18: with respect to sweep
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: reserve_fact(sweep) <= 0.5
INFO - 10:06:18: lift(sweep) == 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +-------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +-------+-------------+-------+-------------+-------+
INFO - 10:06:18: | sweep | 10 | 25 | 35 | float |
INFO - 10:06:18: +-------+-------------+-------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_COBYLA:
INFO - 10:06:18: ... 0%| | 0/7 [00:00<?, ?it]
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Aerodynamics Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_airfoils)
INFO - 10:06:18: with respect to thick_airfoils
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: lift(thick_airfoils) == 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 15 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
WARNING - 10:06:18: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 10:06:18: ... 40%|████ | 2/5 [00:00<00:00, 450.76 it/sec]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: 5
INFO - 10:06:18: Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 8
INFO - 10:06:18: Solution:
WARNING - 10:06:18: The solution is not feasible.
INFO - 10:06:18: Objective: -4500.62486797491
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: lift - 0.5 = 0.005333333333333634
INFO - 10:06:18: Design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.020136) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Structure Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_panels)
INFO - 10:06:18: with respect to thick_panels
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: reserve_fact(thick_panels) <= 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +--------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
INFO - 10:06:18: ... 80%|████████ | 4/5 [00:00<00:00, 318.27 it/sec, obj=-4.51e+3]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 5
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -4506.645473559042
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: reserve_fact - 0.5 = 4.75033345992415e-10
INFO - 10:06:18: Design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.249999999920828 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.024361) ***
INFO - 10:06:18: ... 14%|█▍ | 1/7 [00:00<00:00, 66.00 it/sec]
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Aerodynamics Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_airfoils)
INFO - 10:06:18: with respect to thick_airfoils
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: lift(thick_airfoils) == 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
WARNING - 10:06:18: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 10:06:18: ... 20%|██ | 1/5 [00:00<00:00, 1127.02 it/sec]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: 5
INFO - 10:06:18: Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 8
INFO - 10:06:18: Solution:
WARNING - 10:06:18: The solution is not feasible.
INFO - 10:06:18: Objective: -4267.901616337772
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: lift - 0.5 = 0.12713888888915292
INFO - 10:06:18: Design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.007529) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Structure Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_panels)
INFO - 10:06:18: with respect to thick_panels
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: reserve_fact(thick_panels) <= 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.249999999920828 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
ERROR - 10:06:18: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
INFO - 10:06:18: ... 40%|████ | 2/5 [00:00<00:00, 773.51 it/sec]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 3
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -4270.014801163224
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: reserve_fact - 0.5 = 1.3178436120142578e-10
INFO - 10:06:18: Design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 1.765277777757134 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.009519) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Aerodynamics Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_airfoils)
INFO - 10:06:18: with respect to thick_airfoils
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: lift(thick_airfoils) == 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
WARNING - 10:06:18: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 10:06:18: ... 100%|██████████| 5/5 [00:00<00:00, 420.66 it/sec, obj=-4.51e+3]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Maximum number of iterations reached. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 7
INFO - 10:06:18: Solution:
WARNING - 10:06:18: The solution is not feasible.
INFO - 10:06:18: Objective: -3831.8061828212526
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: lift - 0.5 = -0.0023383323939722422
INFO - 10:06:18: Design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 25 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.014957) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Structure Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_panels)
INFO - 10:06:18: with respect to thick_panels
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: reserve_fact(thick_panels) <= 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 1.765277777757134 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
INFO - 10:06:18: ... 80%|████████ | 4/5 [00:00<00:00, 407.64 it/sec]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 4
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -3818.589637887225
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: reserve_fact - 0.5 = -1.0631850955178379e-10
INFO - 10:06:18: Design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.414587193246589 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.015391) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Aerodynamics Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_airfoils)
INFO - 10:06:18: with respect to thick_airfoils
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: lift(thick_airfoils) == 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 25 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
WARNING - 10:06:18: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 10:06:18: ... 40%|████ | 2/5 [00:00<00:00, 671.95 it/sec]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: 5
INFO - 10:06:18: Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 8
INFO - 10:06:18: Solution:
WARNING - 10:06:18: The solution is not feasible.
INFO - 10:06:18: Objective: -4490.540174198762
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: lift - 0.5 = 0.009181047336995207
INFO - 10:06:18: Design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.010488) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Structure Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_panels)
INFO - 10:06:18: with respect to thick_panels
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: reserve_fact(thick_panels) <= 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.414587193246589 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
INFO - 10:06:18: ... 80%|████████ | 4/5 [00:00<00:00, 432.92 it/sec, obj=-4.5e+3]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 5
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -4503.594568762557
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: reserve_fact - 0.5 = 4.5724135588898207e-10
INFO - 10:06:18: Design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.256301635443915 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.014628) ***
INFO - 10:06:18: ... 57%|█████▋ | 4/7 [00:00<00:00, 29.96 it/sec, obj=-4.51e+3]
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Aerodynamics Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_airfoils)
INFO - 10:06:18: with respect to thick_airfoils
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: lift(thick_airfoils) == 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
INFO - 10:06:18: ... 100%|██████████| 5/5 [00:00<00:00, 341.12 it/sec, obj=-4.51e+3]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Maximum number of iterations reached. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 7
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -3854.0818034962194
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: lift - 0.5 = 0.0
INFO - 10:06:18: Design space:
INFO - 10:06:18: +----------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 24.35677419032555 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.017697) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Structure Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_panels)
INFO - 10:06:18: with respect to thick_panels
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: reserve_fact(thick_panels) <= 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.256301635443915 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
INFO - 10:06:18: ... 80%|████████ | 4/5 [00:00<00:00, 418.22 it/sec]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 4
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -3843.3818346286994
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: reserve_fact - 0.5 = -1.0020073659688933e-10
INFO - 10:06:18: Design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.303233602238194 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.015040) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Aerodynamics Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_airfoils)
INFO - 10:06:18: with respect to thick_airfoils
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: lift(thick_airfoils) == 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +----------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 24.35677419032555 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
WARNING - 10:06:18: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 10:06:18: ... 40%|████ | 2/5 [00:00<00:00, 690.33 it/sec]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: 5
INFO - 10:06:18: Message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 8
INFO - 10:06:18: Solution:
WARNING - 10:06:18: The solution is not feasible.
INFO - 10:06:18: Objective: -4492.389203686935
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: lift - 0.5 = 0.008585874882770628
INFO - 10:06:18: Design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.010324) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Structure Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_panels)
INFO - 10:06:18: with respect to thick_panels
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: reserve_fact(thick_panels) <= 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.303233602238194 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
ERROR - 10:06:18: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
INFO - 10:06:18: ... 40%|████ | 2/5 [00:00<00:00, 738.75 it/sec]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 3
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -4504.850157624369
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: reserve_fact - 0.5 = -2.198845550083206e-10
INFO - 10:06:18: Design space:
INFO - 10:06:18: +--------------+-------------+------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.26453684407339 | 20 | float |
INFO - 10:06:18: +--------------+-------------+------------------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.009837) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Aerodynamics Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_airfoils)
INFO - 10:06:18: with respect to thick_airfoils
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: lift(thick_airfoils) == 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
INFO - 10:06:18: ... 100%|██████████| 5/5 [00:00<00:00, 353.65 it/sec, obj=-4.51e+3]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Maximum number of iterations reached. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 7
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -4509.519641910823
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: lift - 0.5 = -0.00013691255181019768
INFO - 10:06:18: Design space:
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: | thick_airfoils | 5 | 5 | 25 | float |
INFO - 10:06:18: +----------------+-------------+-------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.017204) ***
INFO - 10:06:18:
INFO - 10:06:18: *** Start MDOScenario execution ***
INFO - 10:06:18: MDOScenario
INFO - 10:06:18: Disciplines: Structure Mission
INFO - 10:06:18: MDO formulation: DisciplinaryOpt
INFO - 10:06:18: Optimization problem:
INFO - 10:06:18: minimize -range(thick_panels)
INFO - 10:06:18: with respect to thick_panels
INFO - 10:06:18: subject to constraints:
INFO - 10:06:18: reserve_fact(thick_panels) <= 0.5
INFO - 10:06:18: over the design space:
INFO - 10:06:18: +--------------+-------------+------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.26453684407339 | 20 | float |
INFO - 10:06:18: +--------------+-------------+------------------+-------------+-------+
INFO - 10:06:18: Solving optimization problem with algorithm NLOPT_SLSQP:
INFO - 10:06:18: ... 0%| | 0/5 [00:00<?, ?it]
INFO - 10:06:18:
INFO - 10:06:18: ... 80%|████████ | 4/5 [00:00<00:00, 434.65 it/sec, obj=-4.51e+3]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 5
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -4509.583287367007
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: reserve_fact - 0.5 = 2.2632107743447705e-08
INFO - 10:06:18: Design space:
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: | thick_panels | 1 | 3.225021422872048 | 20 | float |
INFO - 10:06:18: +--------------+-------------+-------------------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.014547) ***
INFO - 10:06:18: ... 100%|██████████| 7/7 [00:00<00:00, 18.68 it/sec, obj=-4.51e+3]
INFO - 10:06:18: ... 100%|██████████| 7/7 [00:00<00:00, 18.58 it/sec, obj=-4.51e+3]
INFO - 10:06:18: Optimization result:
INFO - 10:06:18: Optimizer info:
INFO - 10:06:18: Status: None
INFO - 10:06:18: Message: Maximum number of iterations reached. GEMSEO Stopped the driver
INFO - 10:06:18: Number of calls to the objective function by the optimizer: 9
INFO - 10:06:18: Solution:
INFO - 10:06:18: The solution is feasible.
INFO - 10:06:18: Objective: -4509.243436177998
INFO - 10:06:18: Standardized constraints:
INFO - 10:06:18: lift - 0.5 = 5.5555555820374636e-05
INFO - 10:06:18: reserve_fact - 0.5 = -0.1583333328503187
INFO - 10:06:18: Design space:
INFO - 10:06:18: +-------+-------------+-------+-------------+-------+
INFO - 10:06:18: | name | lower_bound | value | upper_bound | type |
INFO - 10:06:18: +-------+-------------+-------+-------------+-------+
INFO - 10:06:18: | sweep | 10 | 25 | 35 | float |
INFO - 10:06:18: +-------+-------------+-------+-------------+-------+
INFO - 10:06:18: *** End MDOScenario execution (time: 0:00:00.385826) ***
Total running time of the script: ( 0 minutes 2.114 seconds)