gemseo.formulations.mdf module#

The Multi-disciplinary Design Feasible (MDF) formulation.

class MDF(disciplines, objective_name, design_space, settings_model=None, **settings)[source]#

Bases: BaseMDOFormulation

The Multidisciplinary Design Feasible (MDF) formulation.

This formulation draws an optimization architecture where:

  • the coupling of strongly coupled disciplines is made consistent by means of a Multidisciplinary Design Analysis (MDA),

  • the optimization problem with respect to the local and global design variables is made at the top level.

Note that the multidisciplinary analysis is made at each optimization iteration.

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

Parameters:
  • disciplines (Sequence[Discipline]) -- The disciplines.

  • objective_name (str) -- The name(s) of the discipline output(s) used as objective. If multiple names are passed, the objective will be a vector.

  • design_space (DesignSpace) -- The design space.

  • settings_model (MDF_Settings | None) -- The settings of the formulation as a Pydantic model. If None, use **settings.

  • **settings (Any) -- The settings of the formulation. This argument is ignored when settings_model is not None.

Settings#

alias of MDF_Settings

classmethod get_default_sub_option_values(**options)[source]#

Return the default values of the sub-options of the formulation.

When some options of the formulation depend on higher level options, the default values of these sub-options may be obtained here, mainly for use in the API.

Parameters:

**options (str) -- The options required to deduce the sub-options grammar.

Returns:

Either None or the sub-options default values.

Return type:

StrKeyMapping

classmethod get_sub_options_grammar(**options)[source]#

Get the sub-options grammar.

When some options of the formulation depend on higher level options, the schema of the sub-options may be obtained here, mainly for use in the API.

Parameters:

**options (str) -- The options required to deduce the sub-options grammar.

Returns:

Either None or the sub-options grammar.

Return type:

JSONGrammar

get_top_level_disciplines(include_sub_formulations=False)[source]#

Return the top level disciplines that are executed in the foreground.

A formulation structures the optimization problem into multiple levels of disciplines. The top level disciplines map from the design_space to the objective, constraint and observable spaces. They can be composed of both user disciplines and process disciplines added by the formulation, e.g. MDOChain. These process disciplines may also include both user disciplines and process disciplines, and so on.

Parameters:

include_sub_formulations (bool) --

Whether to include the top level disciplines of the formulations that make up the current one.

By default it is set to False.

Returns:

The top level disciplines.

Return type:

tuple[Discipline, ...]

mda: BaseMDA#

The MDA used in the formulation.