Scenario#
from gemseo import create_discipline
from gemseo import create_scenario
from gemseo import read_design_space
Instantiate an MDO or DOE scenario:
discipline_names = ["disc1", "disc2", "disc3"]
disciplines = create_discipline(discipline_names, "ext_path")
design_space = read_design_space("file.csv")
scenario_type = "MDO" # or 'DOE'
scenario = create_scenario(
disciplines,
formulation_name="MDF",
objective_name="obj",
design_space=design_space,
name="my_scenario",
scenario_type=scenario_type,
**formulation_options,
)
scenario.add_constraint("cstr1") # =0
scenario.add_constraint("cstr2", value=1.0) # =1
scenario.add_constraint("cstr3", constraint_type="ineq") # <=0
scenario.add_constraint("cstr4", constraint_type="ineq", value=1.0) # <=1
scenario.add_constraint("cstr5", constraint_type="ineq", positive=True) # >=0
scenario.add_constraint("cstr6", constraint_type="ineq", positive=True, value=1.0) # >=1
scenario.xdsmize() # Build the XDSM graph to check it.
Execute the scenario:
scenario.execute(algo_name="SLSQP", max_iter=50, xtol_rel=1e-3) # if MDO
scenario.execute(algo_name="LHS", n_samples=30) # if DOE
optimum = scenario.get_optimum()
Save the optimisation history:
optimum_result = scenario.save_optimization_history("file.h5")