gemseo / formulations

idf module

The Individual Discipline Feasible formulation

class gemseo.formulations.idf.IDF(disciplines, objective_name, design_space, maximize_objective=False, normalize_constraints=True, parallel_exec=False, use_threading=True, start_at_equilibrium=False)[source]

Bases: gemseo.core.formulation.MDOFormulation

The Individual Discipline Feasible 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 w.r.t. local, global design variables and coupling variables is made at the top level. Disciplinary analysis is made at a each optimization iteration. Multidisciplinary analysis is made at the optimum.

Constructor, initializes the objective functions and constraints

  • disciplines (list(MDODiscipline)) – the disciplines list.

  • objective_name (str) – the objective function data name.

  • design_space (DesignSpace) – the design space.

  • maximize_objective (bool) – if True, the objective function is maximized, by default, a minimization is performed.

  • normalize_constraints (bool) – if True, outputs of the coupling consistency contraints are scaled.

  • parallel_exec (bool) – if True, all constraints and objectives are computed in parallel. At every iteration, all disciplines are executed in parallel. Otherwise, a separate constraint is created for each discipline with couplings.

  • use_threading (bool) – if True and parallel_exec=True, the disciplines are run in parallel using multi-threading, if False and parallel_exec=True, multi-processing is used.

  • start_at_equilibrium (bool) – if True, an MDA is used to initialize coupling variables.


Returns the expected data exchange sequence, used for xdsm representation See MDOFormulation.get_expected_dataflow


Returns the expected execution sequence, used for xdsm representation See MDOFormulation.get_expected_workflow


Returns the disciplines which inputs are required to run the associated scenario By default, returns all disciplines To be overloaded by subclasses


the list of top level disciplines