Benchmark MDO formulations based on scalable disciplines¶
study package implements several classes
to benchmark MDO formulations based on scalable disciplines.
ScalabilityStudy class implements
the concept of scalability study:
By instantiating a
ScalabilityStudy, the user defines the MDO problem in terms of design parameters, objective function and constraints.
The user adds different optimization strategies, defined in terms of both optimization algorithms and MDO formulation.
The user adds different scaling strategies, in terms of sizes of design parameters, coupling variables and equality and inequality constraints. The user can also define a scaling strategies according to particular parameters rather than groups of parameters.
Lastly, the user executes the
ScalabilityStudyand the results are written in several files and stored into directories in a hierarchical way, where names depends on both MDO formulation, scaling strategy and replications when it is necessary. Different kinds of files are stored: optimization graphs, dependency matrix plots and of course, scalability results by means of a dedicated class:
PostScalabilityStudy class implements the way as the set of
ScalabilityResult-based result files
contained in the study directory are graphically post-processed. This class
provides several methods to easily change graphical properties, notably
the plot labels. It also makes it possible to define a cost function per
MDO formulation, converting the numbers of executions and linearizations
of the different disciplines required by a MDO process in an estimation
of the computational cost associated with what would be a scaled version
of the true problem.
Comparing MDO formulations in terms of estimated true computational time
rather than CPU time of the
ScalabilityStudy is highly
Indeed, time is often an obviousness criterion to distinguish between
MDO formulations having the same performance in terms of distance to the
optimum: look at our calculation budget and choose the best formulation
that satisfies this budget, or even saves us time. Thus, it is important
to carefully define these cost functions.