gemseo.disciplines.scenario_adapters.mdo_scenario_adapter module#

A discipline running a scenario.

class MDOScenarioAdapter(scenario, input_names, output_names, reset_x0_before_opt=False, set_x0_before_opt=False, set_bounds_before_opt=False, output_multipliers=False, name='', keep_opt_history=False, save_opt_history=False, opt_history_file_prefix='', scenario_log_level=None, naming=Naming.NUMBERED)[source]#

Bases: ProcessDiscipline

An adapter class for MDO Scenario.

The specified input variables update the default input data of the top level discipline while the output ones filter the output data from the top level discipline outputs.

Initialize self. See help(type(self)) for accurate signature.

Parameters:
  • scenario (BaseScenario) -- The scenario to adapt.

  • input_names (Sequence[str]) -- The inputs to overload at sub-scenario execution.

  • output_names (Sequence[str]) -- The outputs to get from the sub-scenario execution.

  • reset_x0_before_opt (bool) --

    If True, reset the initial guess before running the sub optimization.

    By default it is set to False.

  • set_x0_before_opt (bool) --

    If True, set the initial guess of the sub-scenario. This is useful for multi-start optimization.

    By default it is set to False.

  • set_bounds_before_opt (bool) --

    If True, set the bounds of the design space. This is useful for trust regions.

    By default it is set to False.

  • output_multipliers (bool) --

    If True, the Lagrange multipliers of the scenario optimal solution are computed and added to the outputs.

    By default it is set to False.

  • name (str) --

    The name of the scenario adapter. If empty, use the name of the scenario adapter suffixed by "_adapter".

    By default it is set to "".

  • keep_opt_history (bool) --

    Whether to keep database copies after each execution. Depending on the size of the databases and the number of consecutive executions, this can be very memory consuming. If the adapter will be executed in parallel, the databases will not be saved to the main process by the sub-processes, so this argument should be set to False to avoid unnecessary memory use in the sub-processes.

    By default it is set to False.

  • save_opt_history (bool) --

    Whether to save the optimization history to an HDF5 file after each execution.

    By default it is set to False.

  • opt_history_file_prefix (str) --

    The base name for the databases to be exported. The full names of the databases are built from the provided base name suffixed by "_identifier.h5" where identifier is replaced by an identifier according to the naming_method. If empty, use DEFAULT_DATABASE_FILE_PREFIX.

    By default it is set to "".

  • scenario_log_level (int | None) -- The level of the root logger during the scenario execution. If None, do not change the level of the root logger.

  • naming (NameGenerator.Naming) --

    The way of naming the database files. When the adapter will be executed in parallel, this method shall be set to UUID because this method is multiprocess-safe.

    By default it is set to "NUMBERED".

Raises:

ValueError -- If both reset_x0_before_opt and set_x0_before_opt are True.

static get_bnd_mult_name(variable_name, is_upper)[source]#

Return the name of the lower bound-constraint multiplier of a variable.

Parameters:
  • variable_name (str) -- The name of the variable.

  • is_upper (bool) -- If True, return name of the upper bound-constraint multiplier. Otherwise, return the name of the lower bound-constraint multiplier.

Returns:

The name of a bound-constraint multiplier.

Return type:

str

static get_cstr_mult_name(constraint_name)[source]#

Return the name of the multiplier of a constraint.

Parameters:

constraint_name (str) -- The name of the constraint.

Returns:

The name of the multiplier.

Return type:

str

add_outputs(output_names)[source]#

Add outputs to the scenario adapter.

Parameters:

output_names (Iterable[str]) -- The names of the outputs to be added.

Return type:

None

DEFAULT_DATABASE_FILE_PREFIX: ClassVar[str] = 'database'#
LOWER_BND_SUFFIX: ClassVar[str] = '_lower_bnd'#
MULTIPLIER_SUFFIX: ClassVar[str] = '_multiplier'#
UPPER_BND_SUFFIX: ClassVar[str] = '_upper_bnd'#
databases: list[Database]#

The copies of the scenario databases after execution.

keep_opt_history: bool#

Whether to keep databases copies after each execution.

post_optimal_analysis: PostOptimalAnalysis#

The post-optimal analysis.

save_opt_history: bool#

Whether to save the optimization history after each execution.

scenario: BaseScenario#

The scenario to be adapted.