Note
Click here to download the full example code
MDO formulations for a toy example in aerostructure¶
from __future__ import division, unicode_literals
from copy import deepcopy
from matplotlib import pyplot as plt
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)
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 - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Aerodynamics Structure Mission
INFO - 21:52:55: MDOFormulation: MDF
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_airfoils, thick_panels, sweep)
INFO - 21:52:55: With respect to: thick_airfoils, thick_panels, sweep
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: reserve_fact(thick_airfoils, thick_panels, sweep) <= 0.5
INFO - 21:52:55: lift(thick_airfoils, thick_panels, sweep) == 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (15+0j) | 25 | float |
INFO - 21:52:55: | thick_panels | 1 | (3+0j) | 20 | float |
INFO - 21:52:55: | sweep | 10 | (25+0j) | 35 | float |
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/10 [00:00<?, ?it]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/conda/3.2.0/lib/python3.8/site-packages/scipy/sparse/linalg/dsolve/linsolve.py:407: SparseEfficiencyWarning: splu requires CSC matrix format
warn('splu requires CSC matrix format', SparseEfficiencyWarning)
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/conda/3.2.0/lib/python3.8/site-packages/gemseo/algos/opt/lib_nlopt.py:278: ComplexWarning: Casting complex values to real discards the imaginary part
grad[:] = obj_func.jac(xn_vect)
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/conda/3.2.0/lib/python3.8/site-packages/gemseo/algos/opt/lib_nlopt.py:319: ComplexWarning: Casting complex values to real discards the imaginary part
grad[:] = atleast_2d(cstr_jac)[
INFO - 21:52:55: Optimization: 40%|████ | 4/10 [00:00<00:00, 89.59 it/sec]
INFO - 21:52:55: Optimization: 40%|████ | 4/10 [00:00<00:00, 88.94 it/sec]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 4509.5054469281
INFO - 21:52:55: The result is feasible.
INFO - 21:52:55: Status: None
INFO - 21:52:55: Optimizer message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 4
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: lift - 0.5 = 1.196277521486877e-10
INFO - 21:52:55: reserve_fact - 0.5 = 2.1966985030985597e-07
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:55: | thick_panels | 1 | (3.2255891895822506+0j) | 20 | float |
INFO - 21:52:55: | sweep | 10 | (24.993265993246517+0j) | 35 | float |
INFO - 21:52:55: +----------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.119968 ***
<gemseo.post.opt_history_view.OptHistoryView object at 0x7f6182c9b310>
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=False)
# Workaround for HTML rendering, instead of ``show=True``
plt.show()
Out:
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: MDOScenario MDOScenario Mission
INFO - 21:52:55: MDOFormulation: BiLevel
INFO - 21:52:55: Algorithm: NLOPT_COBYLA
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(sweep)
INFO - 21:52:55: With respect to: sweep
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: reserve_fact(sweep) <= 0.5
INFO - 21:52:55: lift(sweep) == 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +-------+-------------+---------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +-------+-------------+---------+-------------+-------+
INFO - 21:52:55: | sweep | 10 | (25+0j) | 35 | float |
INFO - 21:52:55: +-------+-------------+---------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/7 [00:00<?, ?it]
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Aerodynamics Mission
INFO - 21:52:55: MDOFormulation: DisciplinaryOpt
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_airfoils)
INFO - 21:52:55: With respect to: thick_airfoils
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: lift(thick_airfoils) == 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (15+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:55: [A
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/conda/3.2.0/lib/python3.8/site-packages/gemseo/algos/opt/lib_nlopt.py:278: ComplexWarning: Casting complex values to real discards the imaginary part
grad[:] = obj_func.jac(xn_vect)
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/conda/3.2.0/lib/python3.8/site-packages/gemseo/algos/opt/lib_nlopt.py:319: ComplexWarning: Casting complex values to real discards the imaginary part
grad[:] = atleast_2d(cstr_jac)[
WARNING - 21:52:55: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 21:52:55: Optimization: 40%|████ | 2/5 [00:00<00:00, 581.14 it/sec]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 4500.624867974909
INFO - 21:52:55: The result is not feasible.
INFO - 21:52:55: Status: 5
INFO - 21:52:55: Optimizer message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 8
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: lift - 0.5 = 0.005333333333333523
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.014477 ***
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Structure Mission
INFO - 21:52:55: MDOFormulation: DisciplinaryOpt
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_panels)
INFO - 21:52:55: With respect to: thick_panels
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: reserve_fact(thick_panels) <= 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +--------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +--------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | thick_panels | 1 | (3+0j) | 20 | float |
INFO - 21:52:55: +--------------+-------------+--------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:55: [A
INFO - 21:52:55: Optimization: 80%|████████ | 4/5 [00:00<00:00, 472.86 it/sec, obj=4.51e+3]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 4506.645473559234
INFO - 21:52:55: The result is feasible.
INFO - 21:52:55: Status: None
INFO - 21:52:55: Optimizer message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 5
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: reserve_fact - 0.5 = 1.1943299682570796e-09
INFO - 21:52:55: Design space:
INFO - 21:52:55: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:55: | thick_panels | 1 | (3.249999999800945+0j) | 20 | float |
INFO - 21:52:55: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.016392 ***
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Aerodynamics Mission
INFO - 21:52:55: MDOFormulation: DisciplinaryOpt
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_airfoils)
INFO - 21:52:55: With respect to: thick_airfoils
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: lift(thick_airfoils) == 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:55: [A
WARNING - 21:52:55: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 21:52:55: Optimization: 20%|██ | 1/5 [00:00<00:00, 1274.63 it/sec]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 4267.901616337711
INFO - 21:52:55: The result is not feasible.
INFO - 21:52:55: Status: 5
INFO - 21:52:55: Optimizer message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 8
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: lift - 0.5 = 0.1271388888895526
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.009531 ***
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Structure Mission
INFO - 21:52:55: MDOFormulation: DisciplinaryOpt
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_panels)
INFO - 21:52:55: With respect to: thick_panels
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: reserve_fact(thick_panels) <= 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:55: | thick_panels | 1 | (3.249999999800945+0j) | 20 | float |
INFO - 21:52:55: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:55: [A
INFO - 21:52:55: Optimization: 80%|████████ | 4/5 [00:00<00:00, 630.31 it/sec, obj=4.27e+3]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 4270.014801163452
INFO - 21:52:55: The result is feasible.
INFO - 21:52:55: Status: None
INFO - 21:52:55: Optimizer message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 5
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: reserve_fact - 0.5 = 2.0847750192842796e-09
INFO - 21:52:55: Design space:
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | thick_panels | 1 | (1.7652777774336332+0j) | 20 | float |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.013247 ***
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Aerodynamics Mission
INFO - 21:52:55: MDOFormulation: DisciplinaryOpt
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_airfoils)
INFO - 21:52:55: With respect to: thick_airfoils
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: lift(thick_airfoils) == 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:55: [A
WARNING - 21:52:55: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 21:52:55: Optimization: 100%|██████████| 5/5 [00:00<00:00, 609.44 it/sec, obj=4.51e+3]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 3831.8061828224563
INFO - 21:52:55: The result is not feasible.
INFO - 21:52:55: Status: None
INFO - 21:52:55: Optimizer message: Maximum number of iterations reached. GEMSEO Stopped the driver
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 7
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: lift - 0.5 = -0.002338332392893716
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (25+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.013960 ***
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Structure Mission
INFO - 21:52:55: MDOFormulation: DisciplinaryOpt
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_panels)
INFO - 21:52:55: With respect to: thick_panels
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: reserve_fact(thick_panels) <= 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | thick_panels | 1 | (1.7652777774336332+0j) | 20 | float |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:55: [A
ERROR - 21:52:55: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
INFO - 21:52:55: Optimization: 60%|██████ | 3/5 [00:00<00:00, 692.43 it/sec]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 3818.589637887974
INFO - 21:52:55: The result is feasible.
INFO - 21:52:55: Status: None
INFO - 21:52:55: Optimizer message: GEMSEO Stopped the driver
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 4
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: reserve_fact - 0.5 = -1.332978172285948e-10
INFO - 21:52:55: Design space:
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | thick_panels | 1 | (3.4145871932564784+0j) | 20 | float |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.012582 ***
INFO - 21:52:55: Optimization: 43%|████▎ | 3/7 [00:00<00:00, 53.22 it/sec, obj=3.82e+3]
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Aerodynamics Mission
INFO - 21:52:55: MDOFormulation: DisciplinaryOpt
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_airfoils)
INFO - 21:52:55: With respect to: thick_airfoils
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: lift(thick_airfoils) == 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (25+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+---------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:55: [A
WARNING - 21:52:55: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 21:52:55: Optimization: 40%|████ | 2/5 [00:00<00:00, 880.93 it/sec]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 4490.5401741987625
INFO - 21:52:55: The result is not feasible.
INFO - 21:52:55: Status: 5
INFO - 21:52:55: Optimizer message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 8
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: lift - 0.5 = 0.009181047336962123
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.011473 ***
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Structure Mission
INFO - 21:52:55: MDOFormulation: DisciplinaryOpt
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_panels)
INFO - 21:52:55: With respect to: thick_panels
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: reserve_fact(thick_panels) <= 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | thick_panels | 1 | (3.4145871932564784+0j) | 20 | float |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:55: [A
ERROR - 21:52:55: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
INFO - 21:52:55: Optimization: 60%|██████ | 3/5 [00:00<00:00, 703.18 it/sec]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 4503.59456876238
INFO - 21:52:55: The result is feasible.
INFO - 21:52:55: Status: None
INFO - 21:52:55: Optimizer message: GEMSEO Stopped the driver
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 4
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: reserve_fact - 0.5 = -2.689262146304827e-10
INFO - 21:52:55: Design space:
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: | thick_panels | 1 | (3.2563016355647765+0j) | 20 | float |
INFO - 21:52:55: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.012986 ***
INFO - 21:52:55:
INFO - 21:52:55: *** Start MDO Scenario execution ***
INFO - 21:52:55: MDOScenario
INFO - 21:52:55: Disciplines: Aerodynamics Mission
INFO - 21:52:55: MDOFormulation: DisciplinaryOpt
INFO - 21:52:55: Algorithm: NLOPT_SLSQP
INFO - 21:52:55: Optimization problem:
INFO - 21:52:55: Minimize: -range(thick_airfoils)
INFO - 21:52:55: With respect to: thick_airfoils
INFO - 21:52:55: Subject to constraints:
INFO - 21:52:55: lift(thick_airfoils) == 0.5
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:55: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:55: [A
INFO - 21:52:55: Optimization: 100%|██████████| 5/5 [00:00<00:00, 505.47 it/sec, obj=4.51e+3]
INFO - 21:52:55: Optimization result:
INFO - 21:52:55: Objective value = 3854.081803199325
INFO - 21:52:55: The result is feasible.
INFO - 21:52:55: Status: None
INFO - 21:52:55: Optimizer message: Maximum number of iterations reached. GEMSEO Stopped the driver
INFO - 21:52:55: Number of calls to the objective function by the optimizer: 7
INFO - 21:52:55: Constraints values:
INFO - 21:52:55: lift - 0.5 = 0.0
INFO - 21:52:55: Design space:
INFO - 21:52:55: +----------------+-------------+------------------------+-------------+-------+
INFO - 21:52:55: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:55: +----------------+-------------+------------------------+-------------+-------+
INFO - 21:52:55: | thick_airfoils | 5 | (24.35677419636821+0j) | 25 | float |
INFO - 21:52:55: +----------------+-------------+------------------------+-------------+-------+
INFO - 21:52:55: *** MDO Scenario run terminated in 0:00:00.016070 ***
INFO - 21:52:56:
INFO - 21:52:56: *** Start MDO Scenario execution ***
INFO - 21:52:56: MDOScenario
INFO - 21:52:56: Disciplines: Structure Mission
INFO - 21:52:56: MDOFormulation: DisciplinaryOpt
INFO - 21:52:56: Algorithm: NLOPT_SLSQP
INFO - 21:52:56: Optimization problem:
INFO - 21:52:56: Minimize: -range(thick_panels)
INFO - 21:52:56: With respect to: thick_panels
INFO - 21:52:56: Subject to constraints:
INFO - 21:52:56: reserve_fact(thick_panels) <= 0.5
INFO - 21:52:56: Design space:
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: | thick_panels | 1 | (3.2563016355647765+0j) | 20 | float |
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:56: [A
ERROR - 21:52:56: NLopt run failed: NLopt roundoff-limited, RoundoffLimited
INFO - 21:52:56: Optimization: 40%|████ | 2/5 [00:00<00:00, 1054.69 it/sec]
INFO - 21:52:56: Optimization result:
INFO - 21:52:56: Objective value = 3843.3818343295015
INFO - 21:52:56: The result is feasible.
INFO - 21:52:56: Status: None
INFO - 21:52:56: Optimizer message: GEMSEO Stopped the driver
INFO - 21:52:56: Number of calls to the objective function by the optimizer: 3
INFO - 21:52:56: Constraints values:
INFO - 21:52:56: reserve_fact - 0.5 = 8.733991307963151e-11
INFO - 21:52:56: Design space:
INFO - 21:52:56: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:56: | thick_panels | 1 | (3.303233602225065+0j) | 20 | float |
INFO - 21:52:56: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:56: *** MDO Scenario run terminated in 0:00:00.010353 ***
INFO - 21:52:56:
INFO - 21:52:56: *** Start MDO Scenario execution ***
INFO - 21:52:56: MDOScenario
INFO - 21:52:56: Disciplines: Aerodynamics Mission
INFO - 21:52:56: MDOFormulation: DisciplinaryOpt
INFO - 21:52:56: Algorithm: NLOPT_SLSQP
INFO - 21:52:56: Optimization problem:
INFO - 21:52:56: Minimize: -range(thick_airfoils)
INFO - 21:52:56: With respect to: thick_airfoils
INFO - 21:52:56: Subject to constraints:
INFO - 21:52:56: lift(thick_airfoils) == 0.5
INFO - 21:52:56: Design space:
INFO - 21:52:56: +----------------+-------------+------------------------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +----------------+-------------+------------------------+-------------+-------+
INFO - 21:52:56: | thick_airfoils | 5 | (24.35677419636821+0j) | 25 | float |
INFO - 21:52:56: +----------------+-------------+------------------------+-------------+-------+
INFO - 21:52:56: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:56: [A
WARNING - 21:52:56: Optimization found no feasible point ! The least infeasible point is selected.
INFO - 21:52:56: Optimization: 40%|████ | 2/5 [00:00<00:00, 882.97 it/sec]
INFO - 21:52:56: Optimization result:
INFO - 21:52:56: Objective value = 4492.389203681739
INFO - 21:52:56: The result is not feasible.
INFO - 21:52:56: Status: 5
INFO - 21:52:56: Optimizer message: NLOPT_MAXEVAL_REACHED: Optimization stopped because maxeval (above) was reached
INFO - 21:52:56: Number of calls to the objective function by the optimizer: 8
INFO - 21:52:56: Constraints values:
INFO - 21:52:56: lift - 0.5 = 0.008585874885500111
INFO - 21:52:56: Design space:
INFO - 21:52:56: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:56: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:56: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:56: *** MDO Scenario run terminated in 0:00:00.011251 ***
INFO - 21:52:56:
INFO - 21:52:56: *** Start MDO Scenario execution ***
INFO - 21:52:56: MDOScenario
INFO - 21:52:56: Disciplines: Structure Mission
INFO - 21:52:56: MDOFormulation: DisciplinaryOpt
INFO - 21:52:56: Algorithm: NLOPT_SLSQP
INFO - 21:52:56: Optimization problem:
INFO - 21:52:56: Minimize: -range(thick_panels)
INFO - 21:52:56: With respect to: thick_panels
INFO - 21:52:56: Subject to constraints:
INFO - 21:52:56: reserve_fact(thick_panels) <= 0.5
INFO - 21:52:56: Design space:
INFO - 21:52:56: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:56: | thick_panels | 1 | (3.303233602225065+0j) | 20 | float |
INFO - 21:52:56: +--------------+-------------+------------------------+-------------+-------+
INFO - 21:52:56: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:56: [A
INFO - 21:52:56: Optimization: 80%|████████ | 4/5 [00:00<00:00, 622.30 it/sec, obj=4.5e+3]
INFO - 21:52:56: Optimization result:
INFO - 21:52:56: Objective value = 4504.850157627395
INFO - 21:52:56: The result is feasible.
INFO - 21:52:56: Status: None
INFO - 21:52:56: Optimizer message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 21:52:56: Number of calls to the objective function by the optimizer: 5
INFO - 21:52:56: Constraints values:
INFO - 21:52:56: reserve_fact - 0.5 = 1.6281845205412537e-08
INFO - 21:52:56: Design space:
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: | thick_panels | 1 | (3.2645368413367506+0j) | 20 | float |
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: *** MDO Scenario run terminated in 0:00:00.013481 ***
INFO - 21:52:56: Optimization: 86%|████████▌ | 6/7 [00:00<00:00, 28.64 it/sec, obj=4.51e+3]
INFO - 21:52:56:
INFO - 21:52:56: *** Start MDO Scenario execution ***
INFO - 21:52:56: MDOScenario
INFO - 21:52:56: Disciplines: Aerodynamics Mission
INFO - 21:52:56: MDOFormulation: DisciplinaryOpt
INFO - 21:52:56: Algorithm: NLOPT_SLSQP
INFO - 21:52:56: Optimization problem:
INFO - 21:52:56: Minimize: -range(thick_airfoils)
INFO - 21:52:56: With respect to: thick_airfoils
INFO - 21:52:56: Subject to constraints:
INFO - 21:52:56: lift(thick_airfoils) == 0.5
INFO - 21:52:56: Design space:
INFO - 21:52:56: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:56: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:56: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:56: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:56: [A
INFO - 21:52:56: Optimization: 100%|██████████| 5/5 [00:00<00:00, 494.30 it/sec, obj=4.51e+3]
INFO - 21:52:56: Optimization result:
INFO - 21:52:56: Objective value = 4509.5196419107815
INFO - 21:52:56: The result is feasible.
INFO - 21:52:56: Status: None
INFO - 21:52:56: Optimizer message: Maximum number of iterations reached. GEMSEO Stopped the driver
INFO - 21:52:56: Number of calls to the objective function by the optimizer: 7
INFO - 21:52:56: Constraints values:
INFO - 21:52:56: lift - 0.5 = -0.00013691254268788366
INFO - 21:52:56: Design space:
INFO - 21:52:56: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:56: | thick_airfoils | 5 | (5+0j) | 25 | float |
INFO - 21:52:56: +----------------+-------------+--------+-------------+-------+
INFO - 21:52:56: *** MDO Scenario run terminated in 0:00:00.016074 ***
INFO - 21:52:56:
INFO - 21:52:56: *** Start MDO Scenario execution ***
INFO - 21:52:56: MDOScenario
INFO - 21:52:56: Disciplines: Structure Mission
INFO - 21:52:56: MDOFormulation: DisciplinaryOpt
INFO - 21:52:56: Algorithm: NLOPT_SLSQP
INFO - 21:52:56: Optimization problem:
INFO - 21:52:56: Minimize: -range(thick_panels)
INFO - 21:52:56: With respect to: thick_panels
INFO - 21:52:56: Subject to constraints:
INFO - 21:52:56: reserve_fact(thick_panels) <= 0.5
INFO - 21:52:56: Design space:
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: | thick_panels | 1 | (3.2645368413367506+0j) | 20 | float |
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: Optimization: 0%| | 0/5 [00:00<?, ?it]
INFO - 21:52:56: [A
INFO - 21:52:56: Optimization: 80%|████████ | 4/5 [00:00<00:00, 613.92 it/sec, obj=4.51e+3]
INFO - 21:52:56: Optimization result:
INFO - 21:52:56: Objective value = 4509.58328735659
INFO - 21:52:56: The result is feasible.
INFO - 21:52:56: Status: None
INFO - 21:52:56: Optimizer message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
INFO - 21:52:56: Number of calls to the objective function by the optimizer: 5
INFO - 21:52:56: Constraints values:
INFO - 21:52:56: reserve_fact - 0.5 = 6.781846195735852e-10
INFO - 21:52:56: Design space:
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: | thick_panels | 1 | (3.2250214265766473+0j) | 20 | float |
INFO - 21:52:56: +--------------+-------------+-------------------------+-------------+-------+
INFO - 21:52:56: *** MDO Scenario run terminated in 0:00:00.013851 ***
INFO - 21:52:56: Optimization: 100%|██████████| 7/7 [00:00<00:00, 24.32 it/sec, obj=4.51e+3]
INFO - 21:52:56: Optimization result:
INFO - 21:52:56: Objective value = 4509.243436170917
INFO - 21:52:56: The result is feasible.
INFO - 21:52:56: Status: None
INFO - 21:52:56: Optimizer message: Maximum number of iterations reached. GEMSEO Stopped the driver
INFO - 21:52:56: Number of calls to the objective function by the optimizer: 9
INFO - 21:52:56: Constraints values:
INFO - 21:52:56: lift - 0.5 = 5.555555621938879e-05
INFO - 21:52:56: reserve_fact - 0.5 = -0.1583333321544771
INFO - 21:52:56: Design space:
INFO - 21:52:56: +-------+-------------+---------+-------------+-------+
INFO - 21:52:56: | name | lower_bound | value | upper_bound | type |
INFO - 21:52:56: +-------+-------------+---------+-------------+-------+
INFO - 21:52:56: | sweep | 10 | (25+0j) | 35 | float |
INFO - 21:52:56: +-------+-------------+---------+-------------+-------+
INFO - 21:52:56: *** MDO Scenario run terminated in 0:00:00.294110 ***
Total running time of the script: ( 0 minutes 2.144 seconds)