gemseo.formulations.idf module#

The Individual Discipline Feasible (IDF) formulation.

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

Bases: BaseMDOFormulation

The Individual Discipline Feasible (IDF) formulation.

This formulation draws an optimization architecture where the coupling variables of strongly coupled disciplines is made consistent by adding equality constraints on the coupling variables at top level, the optimization problem with respect to the local, global design variables and coupling variables is made at the top level.

The disciplinary analysis is made at each optimization iteration while the multidisciplinary analysis is made at the optimum.

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 (IDF_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 IDF_Settings

get_top_level_disciplines()[source]#

Return the disciplines which inputs are required to run the scenario.

A formulation seeks to compute the objective and constraints from the input variables. It structures the optimization problem into multiple levels of disciplines. The disciplines directly depending on these inputs are called top level disciplines.

By default, this method returns all disciplines. This method can be overloaded by subclasses.

Returns:

The top level disciplines.

Return type:

tuple[Discipline, ...]