gemseo.problems.mdo.scalable.data_driven.problem module#
Scalable MDO problem.
This module implements the concept of scalable problem by means of the
ScalableProblem class.
Given
an MDO scenario based on a set of sampled disciplines with a particular problem dimension,
a new problem dimension (= number of inputs and outputs),
a scalable problem:
makes each discipline scalable based on the new problem dimension,
creates the corresponding MDO scenario.
Then, this MDO scenario can be executed and post-processed.
We can repeat this tasks for different sizes of variables and compare the scalability, which is the dependence of the scenario results on the problem dimension.
See also
Discipline, ScalableDiscipline
and Scenario
- class ScalableProblem(datasets, design_variables, objective_function, eq_constraints=None, ineq_constraints=None, maximize_objective=False, sizes=None, **parameters)[source]#
Bases:
objectScalable problem.
- Parameters:
datasets (Iterable[IODataset]) -- One input-output dataset per discipline.
design_variables (Iterable[str]) -- The names of the design variables.
objective_function (str) -- The name of the objective.
eq_constraints (Iterable[str] | None) -- The names of the equality constraints, if any.
ineq_constraints (Iterable[str] | None) -- The names of the inequality constraints, if any.
maximize_objective (bool) --
Whether to maximize the objective.
By default it is set to False.
sizes (Mapping[str, int] | None) -- The sizes of the inputs and outputs. If
None, use the original sizes.**parameters (Any) -- The optional parameters of the scalable model.
- create_scenario(formulation_name='DisciplinaryOpt', scenario_type='MDO', start_at_equilibrium=False, active_probability=0.1, feasibility_level=0.5, **formulation_settings)[source]#
Create a
Scenariofrom the scalable disciplines.- Parameters:
formulation_name (str) --
The MDO formulation to use for the scenario.
By default it is set to "DisciplinaryOpt".
scenario_type (str) --
The type of scenario, either
MDOorDOE.By default it is set to "MDO".
start_at_equilibrium (bool) --
Whether to start at equilibrium using a preliminary MDA.
By default it is set to False.
active_probability (float) --
The probability to set the inequality constraints as active at the initial step of the optimization.
By default it is set to 0.1.
feasibility_level (float) --
The offset of satisfaction for inequality constraints.
By default it is set to 0.5.
**formulation_settings (Any) -- The formulation settings.
- Returns:
The
Scenariofrom the scalable disciplines.- Return type:
- plot_1d_interpolations(save=True, show=False, step=0.01, varnames=None, directory='.', png=False)[source]#
Plot 1d interpolations.
- Parameters:
save (bool) --
Whether to save the figure.
By default it is set to True.
show (bool) --
Whether to display the figure.
By default it is set to False.
step (float) --
The step to evaluate the 1d interpolation function.
By default it is set to 0.01.
varnames (Sequence[str] | None) -- The names of the variable to plot. If
None, all the variables are plotted.directory (Path | str) --
The directory path.
By default it is set to ".".
png (bool) --
Whether to use PNG file format instead of PDF.
By default it is set to False.
- property n_calls_linearize: dict[str, int]#
The number of disciplinary linearizations per discipline.
- property n_calls_linearize_top_level: dict[str, int]#
The number of top-level disciplinary linearizations per discipline.